




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、4.1 語句概述 程序的結(jié)構(gòu): 4.1 語句概述 程序的結(jié)構(gòu): C語句可分為以下三類:1.控制語句2.表達式語句3.復(fù)合語句程序的執(zhí)行部分是由語句組成的。 程序的功能也是由執(zhí)行語句實現(xiàn)的。C語句可分為以下三類:程序的執(zhí)行部分是由語句組成的。 程序1. 控制語句 控制語句用于控制程序的流程,以實現(xiàn)程序的各種結(jié)構(gòu)方式??煞殖梢韵氯悾?)條件判斷語句:if else語句、switch語句;2)循環(huán)執(zhí)行語句:do while語句、while語句、for語句;3) 轉(zhuǎn)向語句:break語句、goto語句、continue語句、return語句。 1. 控制語句 控制語句用于控制程序的流程,以實現(xiàn)程序2
2、. 表達式語句表達式語句由表達式加上分號“;”組成。執(zhí)行表達式語句表示一個運算或者操作。其一般形式: 表達式;常見形式有賦值語句、函數(shù)調(diào)用語句和空語句例如:x=y+z; y+z; i+; 賦值語句加法運算語句,但計算結(jié)果不能保留,無實際意義自增1語句,i值增12. 表達式語句表達式語句由表達式加上分號“;”組成。1) 賦值語句 賦值語句是由賦值表達式再加上分號構(gòu)成的表達式語句。其一般形式為: 變量=表達式; 賦值語句的功能和特點與賦值表達式相同。是程序中使用最多的語句之一。 1) 賦值語句 賦值語句是由賦值表達式再加上分號構(gòu)在賦值語句的使用中需要注意以下幾點:1、賦值表達式的嵌套:賦值符右邊的
3、表達式又是一個賦值表達式: 變量=(變量=表達式);展開之后的一般形式為: 變量=變量=表達式;例如: a=b=c=d=e=5;按照賦值運算符的右接合性,等效于: e=5; d=e; c=d; b=c; a=b;在賦值語句的使用中需要注意以下幾點:1、賦值表達式的嵌套:2、變量說明中給變量賦初值和賦值語句的區(qū)別:給變量賦初值是變量說明的一部分,賦初值后的變量與其后的其它同類變量之間仍必須用逗號間隔,而賦值語句則必須用分號結(jié)尾。例如: int a=5,b,c;3、在變量說明中,不允許連續(xù)給多個變量賦初值: 如下述說明是錯誤的: int a=b=c=5;而賦值語句允許連續(xù)賦值: a=b=c=5;2
4、、變量說明中給變量賦初值和賦值語句的區(qū)別:2) 函數(shù)調(diào)用語句函數(shù)調(diào)用語句由函數(shù)名、實際參數(shù)加上分號“;”組成。執(zhí)行函數(shù)語句就是調(diào)用函數(shù)體 (在后面函數(shù)中再詳細介紹) 。其一般形式為: 函數(shù)名(實際參數(shù)表);例如:printf(C Program); 調(diào)用庫函數(shù),輸出字符串。 2) 函數(shù)調(diào)用語句函數(shù)調(diào)用語句由函數(shù)名、實際參數(shù)加上3) 空語句空語句只有分號“;”組成的語句稱為空語句??照Z句是什么也不執(zhí)行的語句。例如 while(getchar()!=n) ;空語句本語句的功能是,只要從鍵盤輸入的字符不是回車則重新輸入。3) 空語句空語句只有分號“;”組成的語句稱為空語句3. 復(fù)合語句復(fù)合語句把多個
5、語句用括號括起來組成的一個語句稱復(fù)合語句。在程序中應(yīng)把復(fù)合語句看成是單條語句,而不是多條語句。例如: x=y+z; a=b+c; printf(“%d%d”,x,a); 是一條復(fù)合語句。復(fù)合語句內(nèi)的各條語句都必須以分號“;”結(jié)尾,在括號“”外不能加分號。3. 復(fù)合語句復(fù)合語句把多個語句用括號括起來組成的4.2 printf 函數(shù)(格式輸出函數(shù))1 . printf()功能: 按格式控制所指定的形式(向用戶屏)輸出輸出項的值。C不提供輸入輸出語句,只調(diào)用printf()函數(shù)4.2 printf 函數(shù)(格式輸出函數(shù))1 . prin例:void main( ) int a,b,sum; a=123
6、;b=456; sum=a+b; printf(”a=%d,b=%d,c=%dn”,a,b,sum); 結(jié)果: a=123,b=456,c=579 原樣輸出格式控制符與輸出項表列一一對應(yīng)例:原樣格式控制符與輸出項表列一一對應(yīng) 2. 格式: printf ( 格式控制,輸出項表列) 輸出項表列: 由一個或多個輸出項組成(若多個、它們之間用逗號隔開),常量、變量、函數(shù)、表達式、字符數(shù)組名等均可做輸出項。 格式控制: 是用雙引號括起來的字符串,用來表示格式說明,也稱為轉(zhuǎn)換控制字符串。其中字符可由下面3類組成:普通字符(原樣輸出)轉(zhuǎn)義字符(輸出所表示的字符或?qū)崿F(xiàn)其功能)格式說明:控制對應(yīng)輸出項的輸出形
7、式 a= %d n 2. 格式: a= %d n#includevoid main( )int k=68;float t=56.3; printf(”%dt%dt%fn”,k,k+123,sqrt(t);結(jié)果:68 191 7.503333轉(zhuǎn)義字符,跳到下一區(qū)917轉(zhuǎn)義字符,回車格式控制符,對應(yīng)輸出格式#include轉(zhuǎn)義字符,跳到下一區(qū)917轉(zhuǎn) 3 .格式說明: 控制對應(yīng)輸出項的輸出形式(每個格式說明按先后順序與輸出項一一對應(yīng)),輸出結(jié)果中格式說明被對應(yīng)的輸出項值取代。 (1)格式說明基本形式: %d (或%i) 、%o 、%x (或%X) 、%u 、 %c 對應(yīng)的輸出項類型為字符型和整型。
8、帶符號十進制帶符號八進制帶符號十六進制無符號十進制字符 3 .格式說明:帶符號帶符號帶符號無符號字例: void main( ) int a=65 ; char c=! ; printf (”%d,%cn”,a,a); printf(”c=%c,Its ASCII code=%dn”,c,c); 結(jié)果: 65,A c=!, Its ASCII code=33例: main()int a=-1;printf(%d,%o,%x,%u,a,a,a,a);/* 假設(shè)int占2個字節(jié)*/-1的原碼:1000,0000,0000,0001。-1在內(nèi)存中的補碼表示為:1111,1111,1111,1111=
9、1,111,111,111,111,111=1,7,7,7,7,7=ffff輸出:-1,177777,ffff,65535-1是十進制,177777是八進制,ffff是十六進制。%o 、%x (或%X) 、%u按unsigned型輸出,且不帶前導(dǎo)符號“o”和“x”main()%o 、%x (或%X) 、%u按unsigne %s對應(yīng)的輸出項為字符串或字符數(shù)組 例: void main( ) char name =”Jone ”; printf ( ”%s%s%cn”,”Who is ”,name , ? ); 結(jié)果: Who is Jone ?字符串字符 %s對應(yīng)的輸出項為字符串或字符數(shù)組字符
10、串字符 %f、%e(或%E) 、%g (或%G) 對應(yīng) float 型輸出項%lf、%le(或%E) 、%lg (或%G) 對應(yīng) double 型輸出項%f小數(shù)形式(6位小數(shù)) %e(或%E)標準化指數(shù)形式(尾數(shù)的小數(shù)點前有一位且只有一位非零、6位小數(shù))%g (或%G)讓系統(tǒng)自動選取%f(去掉小數(shù)點后多余的零)或%e中較短者6位有效例: main( ) float f ; f=123.46 ; printf (”%f,%e,%gn”,f,f,f ) 結(jié)果: 123.459999,1.234600e+002,123.46數(shù)字 %f、%e(或%E) 、%g (或%G) 對應(yīng) floa(2) 在格式
11、說明基本形式中加附加格式說明符 若輸出項為long型或unsigned long型,則用下面格式說明控制: %ld、%lx、%lo、%lu 若輸出項為short型或unsigned short型,則用下面格式說明控制: %hd、%hx、%ho、%hu在格式說明%后加一個整數(shù)m指定寬度為|m|位: 若實際需要的位數(shù)|m|位、則此m失效 若m為無符號整數(shù),則左邊填空格 若m為負整數(shù),則右邊填空格 若m為帶正號整數(shù),則左邊填空格且所輸出的數(shù)據(jù)前有正負號(2) 在格式說明基本形式中加附加格式說明符 例: void main( ) int a=12;long b=12345678; printf ( ”
12、%6dn”,a); printf ( ”%-6dn”,a); printf ( ”%+6dn”,a); printf ( ”%12ldn”,b); printf ( ”%+8sn”,”book”); 1212+1212345678book字符串負數(shù)本身肯定帶負符號,帶正號必須這樣寫 例:1212+1212345678book字符串負數(shù)本身在%s中間插入m.n:m含義同,此m可省略、若省略則m=n。n為無符號整數(shù)、表示只輸出對應(yīng)字符串中左邊n個字符。例: void main() printf ( ”%8.3sn”,”book”); printf ( ”%.3sn”,”book”); 輸出:boo
13、boo寬度就是3在%s中間插入m.n:m含義同,此m可省略、若省略則m=在%f、%e(或%E) 、%g (或%G) 中間插入m.n:m含義同,此m可省略、若省略則m=n。 n為無符號整數(shù)、表示n位小數(shù),其余四舍五例8: printf ( ”a=%+10.3lfn”,123.45678); 輸出:注:若與中m為正整數(shù)且m前加0,則輸出 的左邊空位填0例9: printf ( ”a=%+010.3lfn”,123.45678); 輸出:a=+123.457a=+00123.457四舍五入在%f、%e(或%E) 、%g (或%G) 中間插入m.n在%x、%o、%lx、%lo 的%后加#輸出帶前導(dǎo)的八
14、進制或十六進制數(shù)據(jù)例10:void main( ) int x=7281; printf (”%o,%#on”,x,x); printf (”%x,%#xn”,x,x); 輸出: 16161,016161 1c71,0 x1c71注:格式控制中,連續(xù)的兩個%表示一個%(不是格式說明符)(16161) 8(1c71) 16在%x、%o、%lx、%lo 的%后加#輸出帶前導(dǎo)的八進制C語言順序結(jié)構(gòu)程序設(shè)計C語言順序結(jié)構(gòu)程序設(shè)計Printf函數(shù)輸出列表的運算順序程序示例main()int i=1,j=2;printf(%d %d %d,i+j,+i,i);4 2 1求值順序自右至左Printf函數(shù)輸出
15、列表的運算順序程序示例4 2 4.3 scanf 函數(shù)(格式輸入函數(shù))1 格式 scanf (格式控制,輸入項地址表列)地址:1)變量名前加&變量在內(nèi)存中的地址;2)數(shù)組名數(shù)組在內(nèi)存中的首地址。例如:&a, &b分別表示變量a和變量b 的地址。這個地址就是編譯系統(tǒng)在內(nèi)存中給a,b變量分配的地址。一個或多個地址組成(若多個之間用逗號隔開)4.3 scanf 函數(shù)(格式輸入函數(shù))1 格式 s變量的地址和變量值的關(guān)系如下: 1、在賦值表達式中給變量賦值: 如:a=567 2、scanf函數(shù)在本質(zhì)上也是給變量賦值,但要求寫變量的地址: 如:scanf(”%d”,&a); 3、這兩者在形式上是不同的。&
16、是一個取地址運算符,&a是一個表達式,其功能是求變量的地址。變量名,不能寫地址變量的值變量a的地址變量的地址和變量值的關(guān)系如下:變量名,不能寫地址變量變量a的4.6.2 功能:系統(tǒng)切換到用戶屏、要求并等待用戶按格式控制形式和順序輸入要賦給輸入項的常量,按回車鍵結(jié)束,系統(tǒng)立即把所輸入的賦給相應(yīng)輸入項。 它是一個標準庫函數(shù),與printf函數(shù)相同,使用scanf函數(shù)之前不必包含stdio.h文件。4.6.3 注意:格式控制字符串的作用與printf函數(shù)相同,但不能顯示非格式字符串,也就是不能顯示提示字符串。地址表列中給出各變量的地址。地址是由地址運算符“&”后跟變量名組成的。不能是符號常量,不加單
17、撇號或雙撇號,直接輸入一定要有4.6.2 功能:系統(tǒng)切換到用戶屏、要求并等待用戶按格式控制例: void main( ) int a,b,sum; scanf(”%d,%d”,&a,&b); sum=a+b; printf(“sum=%dn”,sum);執(zhí)行程序時應(yīng)輸入 123,456如果要輸入a=123; b=456;例: 如果要輸入使用scanf函數(shù)還必須注意以下幾點:1)scanf函數(shù)中沒有精度控制,如:scanf(%5.2f,&a);是非法的。不能用此語句輸入小數(shù)為2位的實數(shù)。2)scanf中要求給出變量地址,如給出變量名則會出錯。如 scanf(%d,a);是非法的,應(yīng)改為scnaf
18、(%d,&a) 。3)在輸入多個數(shù)值數(shù)據(jù)時,若格式控制串中沒有非格式字符作輸入數(shù)據(jù)之間的間隔則可用空格,TAB或回車作間隔。C編譯在碰到這些符號即認為該數(shù)據(jù)結(jié)束。使用scanf函數(shù)還必須注意以下幾點:4)在輸入字符數(shù)據(jù)時,若格式控制串中無非格式字符,則認為所有輸入的字符均為有效字符。如: scanf(%c%c%c,&a,&b,&c);輸入為:則賦值:如果在格式控制中加入空格作為間隔,如: scanf (%c %c %c,&a,&b,&c);輸入時數(shù)據(jù)之間可加空格。d efbcabcad efbca空格,輸入多少個無關(guān)de f4)在輸入字符數(shù)據(jù)時,若格式控制串中無非格式字符,則認為所有5)如果格
19、式控制串中有非格式字符則輸入時也要輸入該非格式字符。 scanf(%d,%d,%d,&a,&b,&c);輸入時應(yīng)為: scanf(a=%d,b=%d,c=%d,&a,&b,&c);則輸入應(yīng)為:非格式符“ , ”作間隔符5, 6,7a=5,b=6,c=7 “a=“、” ,”、“b=“、 ”c=“為間隔符5)如果格式控制串中有非格式字符則輸入時也要輸入該非格式字符6)如輸入的數(shù)據(jù)與輸出的類型不一致,scanf(a=%d,b=%d,c=%d,&a,&b,&c);輸入:雖然編譯能夠通過,但結(jié)果將不正確。scanf(”%d:%d”,&a,&b);應(yīng)輸入: a=5;b=6;c=7 123:4566)如輸入
20、的數(shù)據(jù)與輸出的類型不一致,a=5;b=6;c=7 scanf(”%d,%dn”,&a,&b);應(yīng)輸入:scanf(”%d%d”,&a,&b);應(yīng)輸入:123,4561按格式控制符輸入123 456數(shù)據(jù)分割,多少個無關(guān) 123,456按格式控制符輸入123 456數(shù)據(jù)分割,scanf(”%d”,&a); scanf(”%d”,&b) ;應(yīng)輸入:或輸入:scanf(”%dn”,&a); scanf(”%d”,&b) ;應(yīng)輸入:或輸入:123456 123 456多少個無關(guān)123456 123 456多少個無關(guān)scanf(”%d”,&a); scanf(”%d”,&b)void main()char
21、 a,b; scanf(%c%c,&a,&b); printf(%c%cn,a,b); scanf(%c %c,&a,&b); printf(n%c%cn,a,b); 輸入: 顯示: 輸入: 顯示: MNMMNMNvoid main()MNMMNMN 說明1.格式控制中不包含附加格式說明符m.n,一般不包含轉(zhuǎn)義字符(n可以)。2.double型輸入項必須使用如下格式說明:%lf 、 %le 、 %lg(輸出一樣)3.* 在格式說明%后插入*表示跳過它所指定的列數(shù),如: scanf(”%d%*5%dn”,&a,&b);輸入:結(jié)果:用%f只能輸出6位小數(shù),輸出10位用%20 . 10lf 1239
22、8765456a值:123 b值:456如果只有%*d則表示本輸入項再度入后不賦給相應(yīng)的變量 說明1.格式控制中不包含附加格式說明符m.n,一般不包含void main()int a; scanf(%d,&a); printf(%ld,a); 輸入:123 顯示:8061051main()long a; scanf(%ld,&a); printf(%ld,a); 輸入:1234567890 顯示:1234567890void main()4、 在格式說明基本形式中加附加格式說明符 l若輸出項為long 型或unsigned long型,則必須用下面格式說明控制: %ld、%lx、%lo、%lu
23、 h若輸出項為short 型或unsigned short型, 則可用下面格式說明控制: %hd、 %hx、%ho、%hu 。4、 在格式說明基本形式中加附加格式說明符4.4 其它輸入、輸出函數(shù)1.getchar 函數(shù)(字符輸入函數(shù))形式: getchar ( )功能: c= getchar ( );同 scanf ( ”%c”, &c);注意: 需在文件開頭加 #include ”stdio.h”輸入一個字符,賦給變量c4.4 其它輸入、輸出函數(shù)1.getchar 函數(shù)(字符例:#include void main( ) char a,b,c; a= getchar ( ); b= getc
24、har ( ); c= getchar ( ); putchar(a); putchar(b); putchar(c); 輸入:$#abc結(jié)果:$#輸入:$#abc結(jié)果:$#換行例:#include 輸入:$#abc結(jié)使用getchar函數(shù)還應(yīng)注意幾個問題: 1)getchar函數(shù)只能接受單個字符,輸入數(shù)字也按字符處理。輸入多于一個字符時,只接收第一個字符。 2)使用本函數(shù)前必須包含文件“stdio.h”。 3)在TC屏幕下運行含本函數(shù)程序時,將退出TC 屏幕進入用戶屏幕等待用戶輸入。輸入完畢再返回TC屏幕。使用getchar函數(shù)還應(yīng)注意幾個問題: 2. putchar 函數(shù)(字符輸出函數(shù))
25、格式: putchar ( 一個整形或字符型輸出項 ) 功能: 同 printf ( ”%c”, 輸出項 ),在顯示器上 輸出單個字符。例如:putchar(A); (輸出大寫字母A) putchar(x); (輸出字符變量x的值) putchar(101); (也是輸出字符A) putchar(n); (換行)對控制字符則執(zhí)行控制功能,不在屏幕上顯示。使用本函數(shù)前必須要用文件包含命令:#include 或 #include “stdio.h”2. putchar 函數(shù)(字符輸出函數(shù)) 格式: pu例:#includevoid main( ) char c=A ; putchar(66); p
26、utchar(53); putchar(c+2); putchar(n); putchar(7); putchar(n);結(jié)果:B+C 7B+C7換行換行例:#includeB+C7換行換行3. puts函數(shù)puts函數(shù)(字符串、字符數(shù)組中字符串輸出函數(shù))一般形式:puts(char *str);功能:將字符串或字符數(shù)組中存放的字符串輸出到顯示器上。例如:putstr(“ChinanBeijingn”);3. puts函數(shù)puts函數(shù)(字符串、字符數(shù)組中字符串輸出4. gets函數(shù)(字符串輸入函數(shù))gets函數(shù)(字符串輸入函數(shù))一般形式:gets(char *str);功能:接收從鍵盤輸入的一個字符串,存放在字符數(shù)組中。例如:char s81;gets(s);4. gets函數(shù)(字符串輸入函數(shù))gets函數(shù)(字符串輸入4.5 算法及其表示方法1 算法: 為解決一個問題而采取的方法和步驟稱為“算法”。2 算法的5大特性 (1)有窮性(有限的步驟) (2)確定性(不能有歧義) (3) 有0個或多個輸入 (4)有1個或多個輸出(即算法必須得到結(jié)果) (5)有效性:算法的每個步驟都應(yīng)當(dāng)能有效執(zhí)行,并能得到確定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)計課題申報書怎么寫好
- 吉林課題立項申報書
- 前端外包開發(fā)合同范本
- 單位和職工合同范本
- 信托制物業(yè)合同范本
- 員工疾病免責(zé)合同范本
- 品牌定制家具合同范本
- 勞務(wù)合同范本約束條款規(guī)定
- 后期剪輯合同范本
- 加盟代理項目合同范本
- GB/T 17145-2024廢礦物油回收與再生利用導(dǎo)則
- 普通高中生物學(xué)課程標準-(2024修訂版)
- GB/T 45006-2024風(fēng)電葉片用纖維增強復(fù)合材料拉擠板材
- 2025國家公務(wù)員政治理論應(yīng)知應(yīng)會知識考試題庫(含答案)
- 抖音矩陣規(guī)劃方案
- 2024年無錫職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案解析
- 黑龍江省龍東地區(qū)中考政治真題試題(含答案)
- 《焊接檢驗員培訓(xùn)》課件
- 棗莊學(xué)院《數(shù)字電子技術(shù)》2022-2023學(xué)年期末試卷
- 人力資源部人員培訓(xùn)方案(7篇)
- 《中國建筑特色》課件
評論
0/150
提交評論