第三章順序程序設(shè)計(jì)_第1頁
第三章順序程序設(shè)計(jì)_第2頁
第三章順序程序設(shè)計(jì)_第3頁
第三章順序程序設(shè)計(jì)_第4頁
第三章順序程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、12 順序結(jié)構(gòu)順序結(jié)構(gòu) 分支結(jié)構(gòu)分支結(jié)構(gòu) 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)C語言用于順序結(jié)構(gòu)的基本語句是表達(dá)式語句、復(fù)合語句和空語語言用于順序結(jié)構(gòu)的基本語句是表達(dá)式語句、復(fù)合語句和空語句。句。 3.1.1 表達(dá)式語句表達(dá)式語句3表達(dá)式;表達(dá)式; 【例例】a1; 【功能功能】完成計(jì)算表達(dá)式的值或?qū)⒔Y(jié)果賦給某一變量的任務(wù);完成計(jì)算表達(dá)式的值或?qū)⒔Y(jié)果賦給某一變量的任務(wù); 【例例】i+; 【例例】printf(“bye!”); 【例例】x=y+z;4 表達(dá)式語句中最常用的是表達(dá)式語句中最常用的是賦值表達(dá)式賦值表達(dá)式 ;);) 簡單賦值:變量表達(dá)式;簡單賦值:變量表達(dá)式; 多重賦值:變量多重賦值:變量1變量變量2變量變

2、量n表達(dá)式;表達(dá)式; 賦值表達(dá)式可以出現(xiàn)在任何表達(dá)式允許出現(xiàn)的地方,而賦賦值表達(dá)式可以出現(xiàn)在任何表達(dá)式允許出現(xiàn)的地方,而賦 值語句則不能;值語句則不能;x=(y=2)+(z=3+y);x=(y=2;)+(z=3+y;);正確正確錯誤錯誤53.1.2 復(fù)合語句復(fù)合語句 若干連續(xù)語句若干連續(xù)語句 【例例】 z=x; x=y; y=z; 中最后一個語句末尾的分號不能省略,并且在中最后一個語句末尾的分號不能省略,并且在 之外之外不能再加不能再加“;”。 【應(yīng)用范圍應(yīng)用范圍】復(fù)合語句主要用于選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中。復(fù)合語句主要用于選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中。返回返回63.1.3 空語句空語句; 【功能功能】一般

3、作為程序的轉(zhuǎn)向點(diǎn)或作為循環(huán)語句中的空循環(huán)體;一般作為程序的轉(zhuǎn)向點(diǎn)或作為循環(huán)語句中的空循環(huán)體;7C語言的輸入和輸出函數(shù)(原型放在頭文件語言的輸入和輸出函數(shù)(原型放在頭文件stdio.h中中):): putchar(字符輸出);(字符輸出); printf(格式輸出);(格式輸出); getchar(字符輸入);(字符輸入); scanf(格式輸入);(格式輸入);83.2.1 數(shù)據(jù)的輸出數(shù)據(jù)的輸出 1、putchar函數(shù)函數(shù) 在顯示器上輸出在顯示器上輸出字符。字符。 putchar (參數(shù))(參數(shù)) 參數(shù)可以是一個字符型變量、一個整型變量或一個字參數(shù)可以是一個字符型變量、一個整型變量或一個字符型

4、常量(包括控制字符和轉(zhuǎn)義字符)等。符型常量(包括控制字符和轉(zhuǎn)義字符)等。 【例例】使用庫函數(shù)使用庫函數(shù)putchar()輸出各種字符。()輸出各種字符。9 include main( ) char ch1, ch2; int j; ch1=C; ch2=h; j=105;putchar(ch1);putchar(ch2);putchar(j);putchar(n);putchar(141); putchar(n);輸出字符輸出字符C C輸出字符輸出字符h h輸出字符輸出字符i i輸出字符輸出字符n n輸出字符輸出字符a a,141141是轉(zhuǎn)義字符是轉(zhuǎn)義字符輸出換行輸出換行10 2、printf

5、函數(shù)函數(shù) 1) printf(“格式控制字符串格式控制字符串”,輸出項(xiàng),輸出項(xiàng)1,輸出項(xiàng),輸出項(xiàng)2,) 將各輸出項(xiàng)(可以是變量、常量、表達(dá)式)的值將各輸出項(xiàng)(可以是變量、常量、表達(dá)式)的值按指定的格式輸出到屏幕上。按指定的格式輸出到屏幕上。 【例例】 printf( “”,x ); 2) printf函數(shù)中常用的格式控制函數(shù)中常用的格式控制 11格式字符格式字符 格式修飾格式修飾 格式說明總是由格式說明總是由“”字符開始字符開始標(biāo)志、類型修飾、輸標(biāo)志、類型修飾、輸出最小寬度和精度出最小寬度和精度說明輸出項(xiàng)類型說明輸出項(xiàng)類型 格式字符格式字符 見見P32表表3.1; 【例例】printf(“xd

6、,y=fn”,x,y);); 【例】【例】main()() char c=A; int x=1234; float y=-123.456789; printf(“|%c|%s|%d|%f|%e|n”,c,“Hello”,x,y,y); 12v 標(biāo)志標(biāo)志 -表示輸出值左對齊,右邊補(bǔ)空;表示輸出值左對齊,右邊補(bǔ)空; 【例例】 printf(”-d”,-24);); 運(yùn)行結(jié)果:運(yùn)行結(jié)果:-24 +表示輸出結(jié)果右對齊,輸出符號位;表示輸出結(jié)果右對齊,輸出符號位; 對對o格式輸出時加前綴格式輸出時加前綴0,對,對x格式輸出時加前綴格式輸出時加前綴0 x,對,對 e、g、f格式當(dāng)結(jié)果有小數(shù)時才給出小數(shù)點(diǎn);

7、格式當(dāng)結(jié)果有小數(shù)時才給出小數(shù)點(diǎn);13v 精度精度 m .nm .n 【例例】printfprintf(“8.1f8.1f”,123.45123.45);); 輸出結(jié)果:輸出結(jié)果: 123.5123.5v 輸出寬度輸出寬度 用十進(jìn)制整數(shù)限定輸出數(shù)據(jù)的位數(shù):用十進(jìn)制整數(shù)限定輸出數(shù)據(jù)的位數(shù): 【例例】printfprintf(“5d5d”,-24-24);); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: -24-24數(shù)據(jù)總寬度小數(shù)位數(shù)14v 類型修飾類型修飾 h h表示輸出項(xiàng)是短整型或無符號短整型;表示輸出項(xiàng)是短整型或無符號短整型; l l表示輸出項(xiàng)是長整型或無符號長整型;表示輸出項(xiàng)是長整型或無符號長整型;【例例】 lo

8、ng int x long int x12345671234567; printfprintf(”|%ld|%d|%ld|%d|”, x, x, x, x); ; 輸出結(jié)果:輸出結(jié)果:|1234567|-10617|1234567|-10617|15 【例例】printfprintf函數(shù)應(yīng)用舉例。函數(shù)應(yīng)用舉例。 include include main( ) main( ) int x =28; int x =28; float y =-1.7; float y =-1.7; char c = char c =B B; ; double z =1.25e+7; double z =1.25e+

9、7; printf( printf(“x=%+5d, y=%-8.3fnx=%+5d, y=%-8.3fn”, x, y);, x, y); printf( printf(“|%c#%-5c|n|%c#%-5c|n”, c, c);, c, c); printf( printf(“z=%lfnz=%lfn”, z);, z); x= x= +28,y=-1.700+28,y=-1.700 |B#B|B#B | |Z=12500000.000000Z=12500000.000000163.2.2 數(shù)據(jù)的輸入數(shù)據(jù)的輸入 1、getchar函數(shù)函數(shù)cgetchar( ) 從鍵盤上讀取從鍵盤上讀取字符

10、;字符;【例例】include main( ) char ch; ch=getchar( ); printf(“%c:%dn”, ch, ch); include main( ) char ch; ch=getchar( ); printf(“c:%dn”, ch); 17 2、scanf函數(shù)函數(shù) 1)函數(shù)調(diào)用)函數(shù)調(diào)用 scanf(“格式控制字符串格式控制字符串”,輸入項(xiàng),輸入項(xiàng)1,輸入項(xiàng),輸入項(xiàng)2,) 按指定的格式接收由鍵盤輸入的數(shù)據(jù),并存入輸入按指定的格式接收由鍵盤輸入的數(shù)據(jù),并存入輸入項(xiàng)變量所在的內(nèi)存單元中。項(xiàng)變量所在的內(nèi)存單元中。 格式修飾格式修飾 格式字符格式字符 輸入項(xiàng)必須為地址

11、引用:輸入項(xiàng)必須為地址引用:&變量名變量名【例例】scanf(“%d, %d”, &x, &y);18 2)scanf函數(shù)中常用的格式控制函數(shù)中常用的格式控制 格式字符格式字符 見見P36表表3.3; 輸入數(shù)據(jù)寬度輸入數(shù)據(jù)寬度 用十進(jìn)制整數(shù)設(shè)定輸入數(shù)據(jù)的寬用十進(jìn)制整數(shù)設(shè)定輸入數(shù)據(jù)的寬 度,度,【例例】scanf(”5d”,&a);輸入輸入7654321 類型修飾符類型修飾符 類同于類同于printf函數(shù);函數(shù); 3)scanf函數(shù)的使用要點(diǎn)函數(shù)的使用要點(diǎn) int x;scanf(”%d”,x);); 輸入數(shù)據(jù)時,不允許規(guī)定精度輸入數(shù)據(jù)時,不允許規(guī)定精度錯誤錯誤s

12、canf(”%d”,&x)19 輸入數(shù)據(jù)時,數(shù)據(jù)與數(shù)據(jù)之間應(yīng)使用分隔符;輸入數(shù)據(jù)時,數(shù)據(jù)與數(shù)據(jù)之間應(yīng)使用分隔符; 【例例】scanf(”d,d”,&x,&y);); 【例例】scanf(”dd”,&x,&y);); 按原樣輸入的字符在鍵入時不能遺漏,否則將導(dǎo)致數(shù)據(jù)按原樣輸入的字符在鍵入時不能遺漏,否則將導(dǎo)致數(shù)據(jù) 項(xiàng)與對應(yīng)讀入數(shù)據(jù)錯位;項(xiàng)與對應(yīng)讀入數(shù)據(jù)錯位; 【例例】scanf(“x=%d,y=%d”,&x,&y);正確的輸入應(yīng)該是正確的輸入應(yīng)該是x3,y4 鍵入數(shù)據(jù)的類型、寬度應(yīng)該與格式控制中給定的相一致;鍵入數(shù)據(jù)的類型、寬度應(yīng)該與格式控

13、制中給定的相一致; 例例 double a,b;scanf(”dd”,&a,&b);); 錯誤錯誤20 為了提高程序設(shè)計(jì)的質(zhì)量和效率,現(xiàn)在普遍采用結(jié)構(gòu)化程序設(shè)為了提高程序設(shè)計(jì)的質(zhì)量和效率,現(xiàn)在普遍采用結(jié)構(gòu)化程序設(shè)計(jì)方法。結(jié)構(gòu)化程序由若干個基本結(jié)構(gòu)組成。每一個基本結(jié)構(gòu)可以計(jì)方法。結(jié)構(gòu)化程序由若干個基本結(jié)構(gòu)組成。每一個基本結(jié)構(gòu)可以包含一個或若干個語句。包含一個或若干個語句。 見下圖。先執(zhí)行見下圖。先執(zhí)行A操作,再執(zhí)行操作,再執(zhí)行B操作,兩者是順操作,兩者是順序執(zhí)行的關(guān)系。圖是序執(zhí)行的關(guān)系。圖是ns結(jié)構(gòu)化流程圖。結(jié)構(gòu)化流程圖。21 【例例】輸入三角形的三邊長,求三角形面積。輸入三角形

14、的三邊長,求三角形面積。 設(shè)輸入的三邊長設(shè)輸入的三邊長a、b、c能構(gòu)成三角形。從數(shù)學(xué)知識已知求三角形能構(gòu)成三角形。從數(shù)學(xué)知識已知求三角形面積的公式為:面積的公式為: 其中其中s=(a+b+c)/2; include include main( ) float a,b,c,s,area; scanf(%f,%f,%f,&a,&b,&c); s= (a+b+c) /2 ; area=sqrt(s*(s-a)*(s-b)*(s-c); 22 printf(a=%7.2f,b=%7.2f,c =%7.2f,s =%7.2fn, a,b,c,s); printf(area=%7.

15、2fn,area); 運(yùn)行情況如下:輸入運(yùn)行情況如下:輸入 3,4,6 a= 3.00,b= 4.00,c= 6.00,s= 6.50 area= 5.33 23【例例】編寫程序,鍵盤輸入一個三位整數(shù),逆序輸出之。編寫程序,鍵盤輸入一個三位整數(shù),逆序輸出之。 #include main( ) int a,i,j,k; printf(“Input datas:”); scanf(“%3d”,&a); printf(“output:%d%d%dn”,k,j,i); 24 【例例】不借助于第不借助于第3個變量,將鍵盤輸入的兩個整數(shù)賦予變量個變量,將鍵盤輸入的兩個整數(shù)賦予變量a和和b,程序輸出

16、,程序輸出a,b的原始值以及相互交換后的值。的原始值以及相互交換后的值。 include main( ) int a,b; printf(“Input a and b:”); scanf(“%d%d”,&a,&b); printf(“old a=%d b=%dn”,a,b); a=a+b; b=a-b; a=a-b; printf(“new a=%d b=%dn”,a,b); 686+8=1486+8=1414-8=614-6=8625負(fù)數(shù)的進(jìn)轉(zhuǎn)換負(fù)數(shù)的進(jìn)轉(zhuǎn)換 (1)負(fù)數(shù)十進(jìn)制轉(zhuǎn)換成八進(jìn)制或十六進(jìn)制負(fù)數(shù)十進(jìn)制轉(zhuǎn)換成八進(jìn)制或十六進(jìn)制如(如(-12)10=( )8=( )16第一步

17、:將第一步:將-12看成看成12,轉(zhuǎn)換成二進(jìn)制,轉(zhuǎn)換成二進(jìn)制 0000 0000 0000 1100第二步:取反加一第二步:取反加一 1111 1111 1111 0100第三步:轉(zhuǎn)換成八進(jìn)制是三位一結(jié)合:(第三步:轉(zhuǎn)換成八進(jìn)制是三位一結(jié)合:(177764)8 轉(zhuǎn)換成十六進(jìn)制是四位一結(jié)合:(轉(zhuǎn)換成十六進(jìn)制是四位一結(jié)合:(fff4)16(2)負(fù)數(shù)八進(jìn)制或十六進(jìn)制轉(zhuǎn)換成十進(jìn)制負(fù)數(shù)八進(jìn)制或十六進(jìn)制轉(zhuǎn)換成十進(jìn)制如(如(-12)8=( )10或或(-12)16=( )10注意:在此首先可以不看負(fù)號注意:在此首先可以不看負(fù)號將將12轉(zhuǎn)換成二進(jìn)制,對于八進(jìn)制是一位展開為三位,轉(zhuǎn)換成二進(jìn)制,對于八進(jìn)制是一位展開為三位,16進(jìn)制是一位展開為四位。進(jìn)制是一位展開為四位。得到:得到:八進(jìn)制轉(zhuǎn)換成的二進(jìn)制:八進(jìn)制轉(zhuǎn)換成的二進(jìn)制:000 000 000 001 010 利用二進(jìn)制化十進(jìn)制的公式得出利用二進(jìn)制化十進(jìn)制的公式得出1*23+1*21=10 所以所以(-12)8=(-10)10 16進(jìn)制轉(zhuǎn)換成的二進(jìn)制:進(jìn)制轉(zhuǎn)換成的二進(jìn)制:0000 0000 0001 0010 利用二進(jìn)制化十進(jìn)制的公式得出利用二進(jìn)制化十進(jìn)制的公式得出1*24+1*21=18 所以所以(-12)8=(-18)1026負(fù)數(shù)的進(jìn)轉(zhuǎn)換負(fù)數(shù)的進(jìn)轉(zhuǎn)換 (3)負(fù)數(shù)八進(jìn)制

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論