C 语 言 的 格 式 - SO-NET_第1页
C 语 言 的 格 式 - SO-NET_第2页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、c 语 言 的 格 式 - so-net c 语 言 的 格 式 - so-net c 語 言 的 格 式 什麼是 c 語言? c 語言執行過程?原始程式 - 經由編譯器 - 變成目的檔 - 經由連結器 - 變成執行檔 source.c - compiler - source.obj - linker - source.exe c 語 言 的 特 性(1) 可 以 像 組 合 語 言 一 樣 進 行 硬 體 之 直 接 存 取 . (2) 為 語 法 規 則 簡 單 , 清 楚 , 容 易 使 用 之 結 構 化 語 言 . (3) 必 要 時 可 以 與 組 合 語 言 連 結 . ( 4

2、) 可 攜 性 ( portability ) 極 佳 , 跨 平 台 的 能 力 強 . 標 準 c 語 言 格 式#include stdio.h - 前置處理器 subroutine( ) - 副程式 . . subroutine( ) - 副程式 main( ) - 主程式 int i=0 ; /* 變 數 宣 告 */ i=i+1; /* 算 數 運 算 */- 程式主體 printf(i=%dn,i) ; /* 輸 出 至 螢 幕 */ c 語言簡介 c 语 言 的 格 式 - so-net 基 本 資 料 型 態 變 數 命 名 的 原 則 ?1. 2. 3. 開 頭 必 須 是

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 s

4、hort 0-65535 unsigned long 0-4294967295 float double char 10-38-1038 10-308-10308 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.98

5、7654322e-7; /*雙精準度*/ (3) 字 元 部 份 : char c='c' char bell=7; /*7 為 ascii 之響聲字元*/ c 語言簡介 c 语 言 的 格 式 - so-net 儲 存 類 別 自 動 變 數 ( auto variable ) 自 屬 當 變 動 的 程 數 變 區 式 就 數 塊 執 不 只 結 行 存 在 構 離 在 它 所 定 義 的 區 塊 內 有 效 。 只 要 在 變 數 所 內 執 行,該 變 數 的 資 料 是 有 效 而 正 確 的。 開 了 該 區 塊 , 所 有 於 區 塊 內 定 義 的 自 動 了

6、。 example 1: main( ) int x=1; inner( ); printf(%dn,x); int x=2; printf(%dn,x); inner( ) 靜 態 變 數 ( static variable)靜 態 變 數 與 自 動 變 數 一 樣 , 是 某 特 定 函 數 內 的 區 域 性 變 數 , 但靜 態 變 數 的 值 不 會 因 函 數 的 執 行 結 束 而 消 失 。 靜 態 變 數 的 宣 告 如 下 所 示 : static int a; static int b=12345; static char c; static float d=13.45

7、; . . . example 1:main() increment(); increment(); increment(); increment() int x=0; x=x+1; printf(%dn,x); result = ? main() example 2: increment(); increment(); increment(); increment() static int x=0; x=x+1; printf(%dn,x); result = ?4 c 語 言簡介 c 语 言 的 格 式 - so-net 外 部 變 數 ( extern variable)外 部 變 數

8、和 前 面 所 提 到 的 變 數 不 同。外 部 變 數 的 有 效 範 圍 不 是 區 域 性 , 而 是 整 體 性 ( global ) , 外 部 變 數 定 義 在 任 何 函 數 的 外 面 , 表 示 可 以 被 其 他 函 數 所 共 用 。 example 1:int x=123; main() printf(%dn,x); int x=123; example 2: main() int x=321; printf(%dn,x); result = ? result = ? example 3:#include stdio.h #include extern.c int

9、x=123; main() printf(%dn,x); run1(); run2(); run1() printf(%dn,x); extern.c 內 容 如 下 : #include stdio.h run2() extern int x; printf(%dn,x); result = ? c 語言簡介 c 语 言 的 格 式 - so-net /* = */ /* 程式實例: */ /* 局部(local)和整體(global) 變數 */ /* = */ #include stdio.h int step = 10; int count = 5; /* 整體變數宣告 */ /* 整

10、體變數宣告 */ /* - */ /* 將變數值加一 */ /* - */ 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 */ /* 局部變數宣告 */ /* 局部變數加

11、一 */ /* 整體變數加一 */ 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 功 能 敘 述 以十進位方式印出。 以八進位方式印出。 以十六進位方式印出。 以不帶符號的十進位方式印出。 以

12、長整數(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',c14=abc ; printf(/%d/n,x); printf(/%15d/n/%-15d/n,x,x); printf(/%f %4.3f/n,y,y); printf(/%08

13、.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 單引號。 d

14、ouble 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 %cn,x,y,z); scanf(%3d %4f,x,y); printf(%d %fn,x,y); result : 24 12.45 g - 此處為鍵盤輸入之資料 24 12.4500001 g 123 4567890 - 此處為鍵盤輸入之資料 123 4567.0

15、0000 c 語言簡介 c 语 言 的 格 式 - so-net c 語言基本資料處理 算 術 運 算 元 ( arithmetic operators ) 將 整 數及浮 點 數 或 字 元 指 定 給 某 一 不 特 定 的 變 數 之 動 作 加、減、乘、除、負 數 及 模 數 運 算子加 (+) 減 (-) 乘 (*) 除 (/) 為 一 般 的 四 則 運 算,而 模 數 運 算 (%) 、 、 、 是 經 由 兩 常 數 相 除 所 得 的 餘 數 稱 之。負 數 是 在 某 個 常 數 前 面 加 個 減 號 所 成 的 組 合 稱 之 。 運 算 子 的 優 先 權*、/、%、

16、+、- 以 上 所 標 示 的 運 算 子 , 其 運 算 的 優 先 順 序 由 左 至 右 。 負號 (-) 乘 ( * )、除 ( / )、餘數( % ) 加 ( +)、減 ( - ) 高優先順序 中優先順序 低優先順序 型別之轉換:語法: (type) expressionmain( ) int x1; float y1,y2; x1=(int)4.123; y1=(float)46/5; y2=(int)5.3456; printf(%d %f %fn,x1,y1,y2); result: 4 9.20000000 5.00000000 c 語言簡介 c 语 言 的 格 式 - so

17、-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-; pri

18、ntf(%d %dn,aplus,bplus); printf(%d %dn,a,b); printf(%d %dn,cminus,dminus); printf(%d %dn,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(或

19、) not(反向) 運算子 功能敘述 1' complement(一的補數) left shift(左移) right shift 關 係 運 算 子 ( relational operators ) :程 或 有 條 件 的 敘 述 當 中 , 一 般 用 於 控 制 流 關 係 運 算 子 運算子 = 小於 小於等於 大於 功能敘述 = = != !, 負號 (-), +, -乘 ( * )、除 ( / )、餘數( % ) 加 ( +)、減 ( - ) , =, , = =, != | 運算子 功能敘述 大於等於 等於 不等於 基本運算子優先順序表 c 語言簡介 c 语 言 的 格

20、 式 - so-net 流 程 控 制 控 制 結 構 ( control structure )結 構 化 程 式 設 計 的 基 礎 建 立 在 下 列 三 個 結 構 : ( 1 ) 循 序 ( sequential ) : 以 一 個 接 著 一 個 方 式 進 行 作 業 。 ( 2 ) 條 件 執 行 ( conditional ) : if_then_else 。 ( 3 ) 迴 路 ( looping ) : 條 件 執 行 if 的 運 用以 下 是 if_then_else 流 程 控 制 可 能 出 現 的 四 種 語 法 syntax 1: if (關係運算元) sta

21、tement ; 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 超 過 一 個 以 上

22、,則 須 以 將 其區塊分隔開來 。 example 1:void main(void) int x; scanf(%d,x); if ( x = 10 ) printf(%d = 10n,x); else printf(%d 10n,x); example 2:void main(void) char c; scanf(%c,c); if( c = 'a' ) printf(c=%cn,c); printf(this is true.n); else printf(c!=an); printf(that isn't true.n); result: a - 此處為鍵盤

23、輸入值 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

24、( ) int i=0; while ( i 5 ) printf(%dn,i+); printf(out of loop.n); void main( ) int i=0,c=0; while ( i 5 ) printf(%d,i+); printf(%dn,+c); printf(out of loop.n); result = ? result = ? c 語言簡介 c 语 言 的 格 式 - so-net 迴 路 do-while 的 運 用do-while 迴 路 , 由 於 測 試 條 件 在 迴 路 的 後 面 , 所 以 迴 路 中 的 敘 述 至 少 會 被 執 行 一 次

25、 , syntax 1: example: do statement ; while ( 關係運算元 ) ;syntax 2: void main( ) int i=0,c=0; do printf(%d,i+); printf(%dn,+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 允 許 使 用 者 在

26、同 一 行 敘 述 中 就 設 定 了 迴 路 的 三 個 部 份 。 (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

27、); printf(%dn,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

28、. . . label : . label ; main( ) int i=1111; repeat : printf(%dn,i); goto repeat ; 條 件 執 行 switch 的 運 用switch 語 法 如 下 所 示 switch ( 變數) case 常數 1 : statement 1 ; case 常數 2 : statement 2 ; . case 常數 n : statement n ; default : statement ; ps. 此 處 常 數 的 資 料 型 態 為 整 數 與 字 元 兩 種 。 c 語言簡介 c 语 言 的 格 式 - so-

29、net example 1:void main( ) char var='d' switch (var ) case 'a' : printf(var = an); break; case 'b' : printf(var = bn); break; case 'c' : printf(var =cn); break; default : printf(i'm in default.); /* end of switch */ /*end of main */ example 2:void main( ) int var=

30、3; switch ( var ) case 1 : printf(var = 1n); break; case 2 : printf(var = 2n); break; case 3 : printf(var = 3n); break; default : printf(i'm in default); /* end of switch */ /*end of main */ c 語言簡介 c 语 言 的 格 式 - so-net 函 數 何 謂 函 數 ?1. 2. c 語言使用的函數可以寫出特别美丽的程式結構,使程式簡單化,偵錯简单。 將重複之某些指令撰寫成一個函數,可減少編輯程式時間,更可使程式精 簡

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论