C 语 言 的 格 式 - SO-NET
更新时间:2023-05-28 05:06:01 阅读量: 实用文档 文档下载
C 语 言 的 格 式 - SO-NET
C 語 言 的 格 式
什麼是 C 語言? C 語言執行過程?原始程式 --> 經由編譯器 --> 變成目的檔 --> 經由連結器 --> 變成執行檔 SOURCE.C --> COMPILER --> SOURCE.OBJ --> LINKER --> SOURCE.EXE
C 語 言 的 特 性(1) 可 以 像 組 合 語 言 一 樣 進 行 硬 體 之 直 接 存 取 . (2) 為 語 法 規 則 簡 單 , 清 楚 , 容 易 使 用 之 結 構 化 語 言 . (3) 必 要 時 可 以 與 組 合 語 言 連 結 . ( 4 ) 可 攜 性 ( Portability ) 極 佳 , 跨 平 台 的 能 力 強 .
標 準 C 語 言 格 式#include < stdio.h > ----> 前置處理器 subroutine( ) ----> 副程式 {. .. } subroutine( ) ----> 副程式 { } main( ) ----> 主程式 { int i=0 ; /* 變 數 宣 告 */ i=i+1; /* 算 數 運 算 */----> 程式主體 printf("i=%d\n",i) ; /* 輸 出 至 螢 幕 */ }
C 語言簡介
C 语 言 的 格 式 - SO-NET
基 本 資 料 型 態
變 數 命 名 的 原 則 ?1. 2. 3. 開 頭 必 須 是 字 母 ( letter ) 或 底 線 ( underscore ) . 字 元 的 大 寫 小 寫 所 代 表 的 意 義 不 同 . 不 得 使 用 關 鍵 字 ( keyword ) . (在 Borland C++ 軟體中已粗體顯現)
變 數 的 資 料 型 態 種 類 :類 別 符號位元 位元長(bits) 有 整 數 無 16 32 16 16 32 浮點數 有 字元 無 32 64 8 表 示 法 int(short) long unsigned int 數 值 範 圍 -32768->32767 -2147483648->2147483647 0->65535
unsigned short 0->65535 unsigned long 0->4294967295 float double char 10^-38->10^38 10^-308-->10^308 0->255
C 語言簡介
C 语 言 的 格 式 - SO-NET
變 數 的 宣 告 方 法 :(1) 整 數 部 份 : int a; int b,c=45; short int name; long int var_name; unsigned int argu1=30;
(2) 浮 點 數 部 份 : float a=12.3456; /*單精準度*/ float b=0.12345e2; double score=4.987654322e-7; /*雙精準度*/
(3) 字 元 部 份 : char c='c'; char bell=7; /*7 為 ASCII 之響聲字元*/
C 語言簡介
C 语 言 的 格 式 - SO-NET
儲 存 類 別 自 動 變 數 ( auto variable ) 自 屬 當 變 動 的 程 數 變 區 式 就 數 塊 執 不 只 結 行 存 在 構 離 在 它 所 定 義 的 區 塊 內 有 效 。 只 要 在 變 數 所 內 執 行,該 變 數 的 資 料 是 有 效 而 正 確 的。 開 了 該 區 塊 , 所 有 於 區 塊 內 定 義 的 自 動 了 。
Example 1: main( ) { int x=1; inner( ); printf("%d\n",x); } { int x=2; printf("%d\n",x); } inner( )
靜 態 變 數 ( static variable)靜 態 變 數 與 自 動 變 數 一 樣 , 是 某 特 定 函 數 內 的 區 域 性 變 數 , 但靜 態 變 數 的 值 不 會 因 函 數 的 執 行 結 束 而 消 失 。
靜 態 變 數 的 宣 告 如 下 所 示 : { static int a; static int b=12345; static char c; static float d=13.45; . . . }
Example 1:main() { increment(); increment(); increment(); } increment() { int x=0; x=x+1; printf("%d\n",x); } Result = ????? { } main() {
Example 2:
increment(); increment(); increment();
increment() static int x=0; x=x+1; printf("%d\n",x); } Result = ?????4
C 語
言簡介
C 语 言 的 格 式 - SO-NET
外 部 變 數 ( extern variable)外 部 變 數 和 前 面 所 提 到 的 變 數 不 同。外 部 變 數 的 有 效 範 圍 不 是 區 域 性 , 而 是 整 體 性 ( global ) , 外 部 變 數 定 義 在 任 何 函 數 的 外 面 , 表 示 可 以 被 其 他 函 數 所 共 用 。
Example 1:int x=123; main() { printf("%d\n",x); int x=123;
Example 2:
main() { int x=321; printf("%d\n",x); }
} Result = ?????
Result = ?????
Example 3:#include < stdio.h > #include "extern.c" int x=123; main() { printf("%d\n",x); run1(); run2(); } run1() { printf("%d\n",x); } extern.c 內 容 如 下 : #include < stdio.h > run2() { extern int x; printf("%d\n",x); }
Result = ?????
C 語言簡介
C 语 言 的 格 式 - SO-NET
/* ======================================== */ /* 程式實例: */ /* 局部(local)和整體(Global) 變數 */ /* ======================================== */ #include <stdio.h> int step = 10; int count = 5; /* 整體變數宣告 */ /* 整體變數宣告 */
/* ---------------------------------------- */ /* 將變數值加一 */ /* ---------------------------------------- */ void increment() { int step = 0; step++; count++; printf(" 副程序 } /* ---------------------------------------- */ /* 主程式 /* ---------------------------------------- */ void main() { int count = 0; count++; step++; printf(" 程序名 increment(); printf(" 主程序 STEP %2d
/* 局部變數 step 宣告 */ /* 局部變數加一 */ /* 整體變數加一 */ %2d \n",step, count);
%2d
*/
/* 局部變數宣告 */ /* 局部變數加一 */ /* 整體變數加一 */ COUNT \n"); /* 副程序呼叫 */ %2d \n",step, count);
}/* ======================================== */ 執行結果 程序名 副程序 主程序
STEP 1 11
COUNT 6 16
C 語言簡介
C 语 言 的 格 式 - SO-NET
基 本 輸 入 / 輸 出 函 數 格 式 化 輸 出 函 數 printf( )語 法 如 下 :
printf(format_string,arg1,arg2,...argn);轉換字元的種類
種 類
表 示 法 d o
功 能 敘 述 以十進位方式印出。 以八進位方式印出。 以十六進位方式印出。 以不帶符號的十進位方式印出。 以長整數(long)方式印出。 以 xxx.xxxxxxx 方式印出。 以指數的方式印出。 以字元方式印出。 以字串方式印出。 向左邊靠齊印出 。 指定欄位寬。 分隔欄寬。 指定浮點數之精確度。
整 數(integer)
x u l f e c s dd . *.*
浮點數(float) 字元(char)
其他(other)
{ int x=42; float y=12.345; char c='A',c1[4]="ABC "; printf("/%d/\n",x); printf("/%15d/\n/%-15d/\n",x,x); printf("/%f %4.3f/\n",y,y); printf("/%08.4f/\n",y); printf("/%0*.*f/\n",8,4,y); printf("/%c %s/\n",c,c1); }
result:
/42/ / /42 /12.3450000 /012.3450/ /012.3450/ /A ABC/
42/ / 12.345/
C 語言簡介
C 语 言 的 格 式 - SO-NET
表二.特殊控制碼種 類 \n \r \t \b \f \\ \' \" 功 能 敘 述 newline 新行。 carriage return 回歸鍵。 tab 跳格。 backspace 退位。 form feed 跳頁。 backslash 反斜線。 single quote 單引號。 double quote 雙引號。
格 式 化 輸 入 函 數 scanf( )語 法 如 下 :
scanf(format_string,argptr1,argptr2,...argptrn);
main( ) { int x; float y; char z; scanf("%d %f %c",&x,&y,&z); printf("%d %f %c\n",x,y,z); scanf("%3d %4f",&x,&y); printf("%d %f\n",x,y); }
result :
24 12.45 G -----> 此處為鍵盤輸入之資料 24 12.4500001 G 123 4567890 ------> 此處為鍵盤輸入之資料 123 4567.00000
C 語言簡介
C 语 言 的 格 式 - SO-NET
C 語言基本資料處理
算 術 運 算 元 ( Arithmetic operators )
將 整 數及浮 點 數 或 字 元 指 定 給 某 一 不 特 定 的 變 數 之 動 作
加、減、乘、除、負 數 及 模 數 運 算子加 (+) 減 (-) 乘 (*) 除 (/) 為 一 般 的 四 則 運 算,而 模 數 運 算 (%) 、 、 、 是 經 由 兩 常 數 相 除 所 得 的 餘 數 稱 之。負 數 是 在 某 個 常 數 前 面 加 個 減 號 所 成 的 組 合 稱 之 。
運 算 子 的 優 先 權*、/、%、+、- 以 上 所 標 示 的 運 算 子 , 其 運 算 的 優 先 順 序 由 左 至 右 。 負號 (-) 乘 ( * )、除 ( / )、餘數( % ) 加 ( +)、減 ( - ) 高優先順序 中優先順序 低優先順序
型別之轉換:語法: (type) expressionmain( ) { int x1; float y1,y2; x1=(int)4.123; y1=(float)46/5; y2=(int)5.3456; printf("%d %f %f\n",x1,y1,y2);
Result: 4 9.20000000 5.00000000
}
C 語言簡介
C 语 言 的 格 式 - SO-NET
遞 增 與 遞 減遞 增 與 遞 減 又 分 為 前 置 模 式 ( prefix ) 與 後 置 模 式( postfix ) ; 前 置 模 式:是 將 ++ 或 - - 置 於 變 數 之 前,其運算是在使用此運算元之前 先進行加一或減一之動作。 後 置 模 式: 是 將 ++ 或 - - 置 於 變 數 之 後,其運算是在使用此運算元之後 才進行加一或減一之動作 。main() { int a=1,b=1,c=1,d=1; int aplus,bplus; int cminus,dminus; aplus=++a; bplus=b++; cminus=--c; dminus=d--; printf("%d %d\n",aplus,bplus); printf("%d %d\n",a,b); printf("%d %d\n",cminus,dminus); printf("%d %d\n",c,d); } 2 2 0 0 1 2 1 0
Result:
設定特殊運算式特殊運算式 a += b a -= b a *= b a /= b a %= b 基本運算式 a=a+b a=a-b a=a*b a=a/b a=a%b
C 語言簡介
C 语 言 的 格 式 - SO-NET
邏 輯 運 算 子 ( Logical operators )邏 輯 運 算 的 種 類 運算子 && || ! 功能敘述 AND(及) OR(或) NOT(反向) ~ << >> 運算子 功能敘述 1' complement(一的補數) Left shift(左移) Right shift
關 係 運 算 子 ( Relational operators ) :程 或 有 條 件 的 敘 述 當 中 ,
一 般 用 於 控 制 流
關 係 運 算 子 運算子 < <= > 小於 小於等於 大於 功能敘述 >= == != !, 負號 (-), ++, -乘 ( * )、除 ( / )、餘數( % ) 加 ( +)、減 ( - ) <, <=, >, >= ==, != && || 運算子 功能敘述 大於等於 等於 不等於
基本運算子優先順序表
C 語言簡介
C 语 言 的 格 式 - SO-NET
流 程 控 制
控 制 結 構 ( control structure )結 構 化 程 式 設 計 的 基 礎 建 立 在 下 列 三 個 結 構 : ( 1 ) 循 序 ( sequential ) : 以 一
個 接 著 一 個 方 式 進 行 作 業 。 ( 2 ) 條 件 執 行 ( conditional ) : if_then_else 。 ( 3 ) 迴 路 ( looping ) :
條 件 執 行 if 的 運 用以 下 是 if_then_else 流 程 控 制 可 能 出 現 的 四 種 語 法 syntax 1: if (關係運算元) statement ; syntax 2: if (關係運算元) { statement 1 ; statement 2 ; . . . statement n ; } syntax 3: if (關係運算元) statement ; else statement ; syntax 4: if (關係運算元) { statement 1 ; statement 2 ; . statement n ; } else { statement 1 ; statement 2 ; . statement n ;12
C 語言簡介
C 语 言 的 格 式 - SO-NET
} ps. 如果 statement 超 過 一 個 以 上,則 須 以 { } 將 其區塊分隔開來 。
Example 1:Void main(void) { int x; scanf("%d",&x); if ( x >= 10 ) printf("%d >= 10\n",x); else printf("%d < 10\n",x); }
Example 2:Void main(void) { char c; scanf("%c",&c); if( c == 'A' ) { printf("c=%c\n",c); printf("This is true.\n"); } else { printf("c!=A\n"); printf("That isn't true.\n"); } Result: A -----> 此處為鍵盤輸入值 c=A This is true
Result: 10 ---> 此處為鍵盤輸入值 10 >= 10
C 語言簡介
C 语 言 的 格 式 - SO-NET
迴 路 while 的 運 用在 while 的敘述中,當關係運算元之條件為真時 , 會不斷地重覆執行位於 while 後 所 列 的 敘 述 , 直 到 條 件 變 為 否 定 才 停 止 。
Syntax 1:
Syntax 2:
while ( 關係運算元 ) statement ;
while ( 關係運算元 ) { statement 1 ; statement n ; }
Example 1:
Example 2:
Void main( ) { int i=0; while ( i < 5 ) printf("%d\n",i++); printf("out of loop.\n"); }
Void main( ) { int i=0,c=0; while ( i < 5 ) { printf("%d",i++); printf("%d\n",++c); } printf("out of loop.\n"); }Result = ?????
Result =
?????
C 語言簡介
C 语 言 的 格 式 - SO-NET
迴 路 do-while 的 運 用do-while 迴 路 , 由 於 測 試 條 件 在 迴 路 的 後 面 , 所 以 迴 路 中 的 敘 述 至 少 會 被 執 行 一 次 ,
Syntax 1:
Example:
do statement ;
while ( 關係運算元 ) ;Syntax 2:
Void main( ) { int i=0,c=0; do { printf("%d",i++); printf("%d\n",++c); } while ( i < 5 ) ; printf("out of the loop.\n"); }
do { statement 1 ; statement 2 ; . statement n ; } while ( 關係運算元 ) ;
Result = ?????
C 語言簡介
C 语 言 的 格 式 - SO-NET
迴 路 for 的 運 用for 允 許 使 用 者 在 同 一 行 敘 述 中 就 設 定 了 迴 路 的 三 個 部 份 。 (1) 計 數 器 的 初 值,(2) 關 係 運 算 元,(3) 增 減 迴 路 計 數 器 的 值 。 其 語 法 如 下 所 示 ,for ( 計數器初值,關係運算元,計數器值更新 ) statement ; or for ( 計數器初值,關係運算元,計數器值更新 ) { statement 1 ; . statement n ;
}
Example 1:Void main( )
Example 2:Void main( ) { int i,c; for (i=0, c=1 ; i < 5 ; ++i,++c ) { printf("%d",i); printf("%d\n",c); } printf("Out of Loop.\n"); } Result = ?????
{ int i; for( i = 0 ; i <= 5 ; ++i ) printf("%d ",i); } Result = ????? 012345
C 語言簡介
C 语 言 的 格 式 - SO-NET
goto 的 運 用在 一 個 程 式 中 , 使 用 got
o 敘 述 可 以 強 制 改 變 程 式 執 行 的 步 驟 , 但 也 會 因 此 使 程 式 的 結 構 混 亂 , 所 以 此 敘 述 應 儘 量 不 用 。 其 語 法 如 下 所 述 。
Example:Syntax : goto . . . label : . label ; main( ) { int i=1111; repeat : printf("%d\n",i); goto repeat ; }
條 件 執 行 switch 的 運 用switch 語 法 如 下 所 示 switch ( 變數) { case
常數 1 : statement 1 ; case 常數 2 : statement 2 ; . case 常數 n : statement n ; default : statement ;
} ps. 此 處 常 數 的 資 料 型 態 為 整 數 與 字 元 兩 種 。
C 語言簡介
C 语 言 的 格 式 - SO-NET
Example 1:Void main( ) { char var='D'; switch (var ) { case 'A' : printf("var = A\n"); break; case 'B' : printf("var = B\n"); break; case 'C' : printf("var =C\n"); break; default : printf("I'm in default."); } /* end of switch */ } /*end of main */
Example 2:Void main( ) { int var=3; switch ( var ) { case 1 : printf("var = 1\n"); break; case 2 : printf("var = 2\n"); break; case 3 : printf("var = 3\n"); break; default : printf("I'm in default"); } /* end of switch */ }/*end of main */
C 語言簡介
C 语 言 的 格 式 - SO-NET
函 數 何 謂 函 數 ?1. 2. C 語言使用的函數可以寫出非常漂亮的程式結構,使程式簡單化,偵錯容易。 將重複之某些指令撰寫成一個函數,可減少編輯程式時間,更可使程式精 簡,清晰了解。 C 語言使用的函數其呼叫方法與數學上使用函數完全相同, 例 如 :
3.
a = function ( x , y ) ;表示將變數 x , y 輸入函數 function , 其傳回函數值設定給變數 a 。
函 數 的 結 構 (格式)1. 2. 3. 函 數 的 定 義 (Function Definition) 呼 叫 函 數 (Function Call) 函 數 原 形 宣 告 (Function Prototype)
函 數 的 定 義 (格式)Example:
儲存類別 資料型別 函數名稱 (形式引 數的串列) { 形式引數的宣告 ; 函數的本體(執行敘述) }
void line (void) { int j; for (j=1;j<20;j++) printf(“%d\n”,j);
} C 語言簡介19
C 语 言 的 格 式 - SO-NET
函 數 的 傳 回 值 與 資 料 形 態
要 求 函 數 送 回 傳 回 值 (函數值) , 必 須 在 函 數 本 體 中 利 用 return 敘 述 進 行 , 例 如 :
return ( 變數或式子 ) ;此 處 必 須 先 宣 告 傳 回 值 (函數值) 的 資 料 形 態 是 什 麼 。 return()敘述之目的如下
1. 將控制權傳回給呼叫程式 2. 將 return()敘述後括號內之數值傳給呼叫程式之方式
呼叫程式 函數
v o id m a in (v o id ){ in t a n s ; ******* *******
in t fu n c (v o id ) {******* ******* x=3; r e tu r n (x ) ;}
a n s = fu n c ();***** }
3
C 語言簡介
C 语 言 的 格 式 - SO-NET
呼叫函式傳值的方式有兩種:( 1 ) 傳 遞 變 數 值 本 身 ( Call by value ) (一般 c 函式採用的方式)
double power(double,int); .... int i=3; double x=4.0; double result=power(x,i);
call by value x 4.0copy暫時存放
i
3copy 3暫時存放
4.0
複製後交給函式處理
power(double,int)複製後,函式如何改變數值
都與原先變數不相干
C 語言簡介
正在阅读:
C 语 言 的 格 式 - SO-NET05-28
110kV变电站继电保护改造调试问题剖析03-03
环境监测上岗证考试习题集-下册03-09
NCCW MX1说明书10-16
实验4 图像几何变换—哈哈镜制作07-20
雀巢咖啡市场调查报告05-24
阅读单词05-09
富兴镇中城乡环境综合治理宣传方案01-25
高二生物人教新课标版上学期期中复习03-26
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- NET
- SO
- 九上历史期中试卷(含答案)
- solidworks三维及二维练习题
- 全民健身运动会活动策划书
- 2007证券市场基础知识最新模拟试题1
- Dragon Boat Festivalhttp
- 高职机电一体化技术专业定位与人才培养模式的浅谈
- 自主创新设计性实验报告册
- 第五章横向分布系数计算例
- 模糊聚类分析在地下工程地质环境质量评价中的应用
- 劳动保障年审手册
- 化学气相沉积法制作梯度折射率光学材料的详细介绍
- 《小摄影师》教学设计
- 电容充放电时间计算
- 英语高中作文4篇
- 曲轴箱通风的作用
- 【写作资料】托福写作10大高频写作题目汇总
- 2010年临床助理医师外科学试题答案及解析(4)
- 1004以职业规划促进中职生的自我管理和提高
- 中考名著复习之格列佛游记1
- 基于数据挖掘的银行客户管理