版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)關(guān)系運(yùn)算符與關(guān)系表達(dá)式邏輯運(yùn)算符與邏輯表達(dá)式if語(yǔ)句(條件運(yùn)算符與條件表達(dá)式)switch語(yǔ)句程序舉例第四章 選擇結(jié)構(gòu)程序設(shè)計(jì)選擇結(jié)構(gòu)程序設(shè)計(jì) 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.1 程序語(yǔ)言概述語(yǔ)言概述(C中語(yǔ)句的種類有多少?)C語(yǔ)句概述C語(yǔ)句種類控制語(yǔ)句函數(shù)調(diào)用語(yǔ)句 表達(dá)式語(yǔ)句空語(yǔ)句 ;復(fù)合語(yǔ)句 由一次函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成一個(gè)語(yǔ)句,如 printf(“This is a C statement.”);a=3 i=i+1a=3; i=i+1;任何表達(dá)式加上分號(hào)就成為語(yǔ)句。if( )else 條件語(yǔ)句for( ) 循環(huán)語(yǔ)句while( ) 循環(huán)語(yǔ)句dowhile(
2、) 循環(huán)語(yǔ)句continue 結(jié)束本次循環(huán)語(yǔ)句break 中止執(zhí)行switch或循環(huán)語(yǔ)句switch 多分支選擇語(yǔ)句goto 轉(zhuǎn)向語(yǔ)句return 從函數(shù)返回語(yǔ)句用 把一些語(yǔ)句括起來就成為復(fù)合語(yǔ)句。如: z=x+y; t=z/100; printf(“%f”,t); 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.3.1 ifif語(yǔ)句語(yǔ)句vif語(yǔ)句的三種形式形式一:格式:if (expression) statement;執(zhí)行過程:exprstatement非0=0例:if (xy) printf(“%d”,x);exprstatement1statement2非0=0l形式二:u格式:if (express
3、ion) statement1; else statement2;u執(zhí)行過程:例:if (xy) max=x; else max=y; 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)if ( expr1 ) statement1;else if (expr2 ) statement2; else if (expr3 ) statement3; . else statementn; 形式三:格式形式三:格式 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)expr1statemnt1非0=0expr2expr3statemntnstatemnt3statemnt2非0非0=0=0例:if (salary1000) index=0.4
4、; else if (salary800) index=0.3; else if (salary600) index=0.2; else if (salary400) index=0.1; else index=0; 執(zhí)行過程:執(zhí)行過程: 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)如:if(a=b&x=y) printf(“a=b,x=y”); if(3) printf(“OK”); if(a) printf(“%d”,a);說明:說明:uif后面的表達(dá)式類型任意u語(yǔ)句可以是復(fù)合語(yǔ)句用 u if(x) if(x!=0) if(!x) if(x=0)例 考慮下面程序的輸出結(jié)果: #include ma
5、in() int x,y; scanf(“%d,%d”,&x,&y); if(xy) x=y; y=x; else x+; y+; printf(“%d,%dn”,x,y);Compile Error!編譯出錯(cuò) 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)/*c#include main() int x,y; printf(Enter an integer:); scanf(%d,&x); y=x; if(y0) y= -y; printf(ninteger:%d absolute value:%dn,x,y);h5_1.c*/例例: 求一個(gè)數(shù)的絕對(duì)值求一個(gè)數(shù)的絕對(duì)值運(yùn)行:Enter
6、an integer:-12 integer:-12 absolute value :12/*變量定義*/*語(yǔ)句提示*/*鍵盤輸入一個(gè)數(shù)值*/ 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)/*ch5_2.c*/#include main() int a,b; /*變量定義*/ printf(Enter integer a:); /*語(yǔ)句提示*/ scanf(%d,&a); /*鍵盤輸入一個(gè)數(shù)值*/ printf(Enter integer b:); /*語(yǔ)句提示*/ scanf(%d,&b); /*鍵盤輸入一個(gè)數(shù)值*/ if(a=b) printf(a=bn); else printf(a!=
7、bn);例例:輸入兩個(gè)數(shù)并判斷兩數(shù)相等否輸入兩個(gè)數(shù)并判斷兩數(shù)相等否運(yùn)行:運(yùn)行:Enter integer a:12 Enter integer b:12 a=b 運(yùn)行:運(yùn)行:Enter integer a:12 Enter integer b:9 a!=b 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)/*ch5_3.c*/#include main() char c; /*變量定義*/ printf(Enter a character:); /*語(yǔ)句提示*/ c=getchar(); /*鍵盤輸入一個(gè)字符*/ if(c=0&c=A&c=a&c=z) printf(The charact
8、er is a lower lettern); else printf(The character is other charactern);例例 判斷輸入字符種類判斷輸入字符種類運(yùn)行:Enter a character: The character is a control character運(yùn)行:Enter a character:8 The character is a digit運(yùn)行: Enter a character: D The character is a capital letter運(yùn)行: Enter a character: h The character is a low
9、er letter運(yùn)行: Enter a character:F1 The character is other characterThe character is a control characterThe character is a digitThe character is a capital letterThe character is a lower letterThe character is other character 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.3.24.3.2 if if 語(yǔ)句嵌套:語(yǔ)句嵌套:一般形式if (expr1) if (expr2) statement1
10、 else statement2else if(expr3) statement3 else statement4內(nèi)嵌if內(nèi)嵌if 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)例:輸入兩數(shù)并判斷其大小關(guān)系例:輸入兩數(shù)并判斷其大小關(guān)系/*ch5_4.c*/#include main() int x,y; printf(Enter integer x,y:); scanf(“%d %d”,x,y)%d,%d,&x,&y); if(x!=y) if(xy) printf(XYn); else printf(XYn); else printf(X=Yn);運(yùn)行:Enter integer x,y:12
11、 23 XY Enter integer x,y:12 12 X=Y 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)if (expr1) if (expr2) statement1 else statement2內(nèi)嵌ifif (expr1) if (expr2) statement1else statement3 內(nèi)嵌ifif (expr1) statement1else if(expr3) statement3 else statement4內(nèi)嵌if 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)if else 配對(duì)原則:配對(duì)原則:缺省缺省 時(shí),時(shí),else總是和它總是和它上面離它最近的未配對(duì)的上面離它最近的未配對(duì)的if配對(duì)配
12、對(duì)if()if()if()else.else.else. 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)例: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);修改: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);實(shí)現(xiàn)if else 正確配對(duì)方法:加 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)例: 考慮下面程序輸出結(jié)果: main() int x=100,a=10,b=20; int v1=5,v2=0; if(a70n”); case D: printf(“score60n”); .break; 第 五
13、章 選擇結(jié)構(gòu)程序設(shè)計(jì)lcase后可包含多個(gè)可執(zhí)行語(yǔ)句,且不必加 ;lswitch可嵌套;l多個(gè)case可共用一組執(zhí)行語(yǔ)句。l如果表達(dá)式的值不屬于E1,E2,En ,也沒有default語(yǔ)句,則該switch結(jié)構(gòu)不起任何作用 如: case A: case B: case C: printf(“score70n”); Break; case D: printf(“score60n”); . 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)例 switch(score) case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pas
14、s!”); case 2: printf(“Fail!”); default : printf(“data error!”); 運(yùn)行結(jié)果:score為5時(shí),輸出: Very good! Good! Pass! Fail! data error!Break;Break;Break;Break;Break; 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)例 void main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+;b+; break; case 3: a+
15、;b+; printf(“na=%d,b=%d”,a,b); 運(yùn)行結(jié)果:a=2,b=1 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)/*ch5_5.c*/#include main() int c; printf(Enter m or n or h or other:); c=getchar(); switch(c) case m: printf(nGood morning!n);break; case n: printf(nGood night!n); break; case h: printf(nHello!n); break; default : printf(n?n); break; 例:根據(jù)輸入字母
16、輸出字符串例:根據(jù)輸入字母輸出字符串返回 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.4.1 while語(yǔ)句v一般形式:while(表達(dá)式) 循環(huán)體語(yǔ)句;v執(zhí)行流程:expr循環(huán)體假(0)真(非0)while 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)v說明:循環(huán)體有可能一次也不執(zhí)行;循環(huán)體可為任意類型語(yǔ)句;循環(huán)體如果包含一個(gè)以上的語(yǔ)句,應(yīng)該用:下列情況,退出while循環(huán);條件表達(dá)式不成立(為零);循環(huán)體內(nèi)遇break,returnbreak,return,gotogoto;循環(huán)體中一般有使循環(huán)趨向結(jié)束的語(yǔ)句,也有無限循環(huán), 如 while(1)while(1) 循環(huán)體循環(huán)體; ;v特點(diǎn):先判斷表達(dá)式,后執(zhí)行循環(huán)體
17、第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)例 用while循環(huán)求 1001nn#include main() int i,sum=0; i=1; while(i=100) sum=sum+i; i+; printf(%d,sum);循環(huán)初值循環(huán)終值循環(huán)變量增值循環(huán)條件循環(huán)體 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)例 顯示110的平方#include main() int i=1; while(i=10) printf(%d*%d=%dn,i,i,i*i); i+; 運(yùn)行結(jié)果:1*1=12*2=43*3=94*4=165*5=256*6=367*7=498*8=649*9=8110*10=100 第 五 章 選擇結(jié)構(gòu)程
18、序設(shè)計(jì)4.4.2 dowhile語(yǔ)句v一般形式:do 循環(huán)體語(yǔ)句; while(表達(dá)式);v執(zhí)行流程:do循環(huán)體expr假(0)真(非0)while 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)v特點(diǎn):先執(zhí)行循環(huán)體,后判斷表達(dá)式v說明:l至少執(zhí)行一次循環(huán)體ldowhile可轉(zhuǎn)化成while結(jié)構(gòu)expr循環(huán)體假(0)真(非0)循環(huán)體While循環(huán) 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)例 用dowhile循環(huán)求 1001nn#include main() int i,sum=0; i=1; do sum+=i;i+; while(i=100); printf(%d,sum); 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)while和do
19、while比較#include main() int i,sum=0; scanf(%d,&i); do sum+=i;i+; while(i=10); printf(“sum=%d,sum);#include main() int i,sum=0; scanf(%d,&i); while(i=10) sum+=i;i+; printf( sum= %d,sum);運(yùn)行結(jié)果:1 sum= 55運(yùn)行結(jié)果:1 sum= 55運(yùn)行結(jié)果:11 sum=0運(yùn)行結(jié)果:11 sum= 11結(jié)論:當(dāng)while后面的表達(dá)式的第一次的值為“真”時(shí),兩種循環(huán)得到的結(jié)果相同。否則,兩者結(jié)果不相同。 第
20、 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.4.3 for語(yǔ)句v一般形式for(expr1 ; expr2 ; expr3) 循環(huán)體語(yǔ)句;v執(zhí)行流程:expr2循環(huán)體假(0)真(非0)forexpr1expr3 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)vfor語(yǔ)句一般應(yīng)用形式:for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值)循環(huán)體語(yǔ)句;v說明:for語(yǔ)句中expr1, expr2 ,expr3 類型任意,都可省略,但他們之間分號(hào);不可省無限循環(huán): for(;)for語(yǔ)句可以轉(zhuǎn)換成while結(jié)構(gòu)expr1;while(expr2)循環(huán)體語(yǔ)句;expr3;例 用for循環(huán)求 1001nn#include main() in
21、t i,sum=0; for(i=1;i=100;i+) sum+=i; printf(%d,sum); 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)例:#include main( ) int i=0; for(i=0;i10;i+) putchar(a+i); 運(yùn)行結(jié)果均為: abcdefghij例:#include main( ) int i=0; for(;i10;i+) putchar(a+i); 例:#include main( ) int i=0; for(;i10;) putchar(a+(i+); 例:#include main( ) int i=0; for(;i10;putchar(a+
22、i),i+) ; 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)#includemain() int i,j,k; for(i=0,j=100;i=j;i+,j-) k=i+j; printf(%d+%d=%dn,i,j,k); 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)#includemain() char c; for(;(c=getchar()!=n;) printf(%c ,c);#include main() int i,c; for(i=0;(c=getchar()!=n;i+=3)printf(%c ,i+c);輸出字符,以輸出字符,以回車換行結(jié)束?;剀嚀Q行結(jié)束。 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.4.4 其它控
23、制語(yǔ)句 1、break語(yǔ)句功能:在循環(huán)語(yǔ)句和switch語(yǔ)句中,終止并跳出循環(huán)體,即提前結(jié)束循環(huán),接著執(zhí)行循環(huán)下面的語(yǔ)句。說明:break只能終止并跳出最近一層的結(jié)構(gòu)break不能用于循環(huán)語(yǔ)句和switch語(yǔ)句之外的任何其它語(yǔ)句之中。 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)exprbreak;假(0)真(非0)whiledobreak;.expr假(0)真(非0)while 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)expr2break;.假(0)真(非0)forexpr1expr3switchexpr語(yǔ)句組1break;語(yǔ)句組2break;語(yǔ)句組nbreak;語(yǔ)句組break;.const 1const 2cons
24、t ndefaultcase 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)例 break舉例:輸出圓面積,面積大于100時(shí)停止#define PI 3.14159main() int r; float area; for(r=1;r100) break; printf(r=%d,area=%.2fn,r,area); 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)2、continue語(yǔ)句v功能:結(jié)束本次循環(huán),跳過循環(huán)體中尚未執(zhí)行的語(yǔ)句,進(jìn)行下一次是否執(zhí)行循環(huán)體的判斷v僅用于循環(huán)語(yǔ)句中exprcontinue;假(0)真(非0)while真(非0)docontinue;.expr假(0)whileexpr2continue;.假
25、(0)真(非0)forexpr1expr3 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)例:輸出100200之間的不能被3整除的數(shù)#include main() int n; for(n=100;n=200;n+) if(n%3= =0) continue; printf(%d ,n); 返回 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)v功能:無條件轉(zhuǎn)移語(yǔ)句v說明(語(yǔ)句標(biāo)號(hào)):不能用整數(shù)作標(biāo)號(hào);只能出現(xiàn)在goto所在函數(shù)內(nèi),且唯一;只能加在可執(zhí)行語(yǔ)句前面;限制使用goto語(yǔ)句; (1)與if語(yǔ)句一起構(gòu)成循環(huán)結(jié)構(gòu)。 (2)從循環(huán)體中跳轉(zhuǎn)到循環(huán)體外。 3、goto語(yǔ)句及用語(yǔ)句及用goto構(gòu)成循環(huán)構(gòu)成循環(huán)goto語(yǔ)句一般格式:語(yǔ)
26、句一般格式: goto 語(yǔ)句標(biāo)號(hào); .標(biāo)號(hào):語(yǔ)句; 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)例例 用用if 和和goto語(yǔ)句構(gòu)成循環(huán),求語(yǔ)句構(gòu)成循環(huán),求1001nn#include main() int i,sum=0; i=1;loop: if(i=100) sum+=i; i+; goto loop; printf(%d,sum);sum=0+1sum=1+2=3sum=3+3=6sum=6+4sum=4950+100=5050循環(huán)初值循環(huán)終值循環(huán)變量增值循環(huán)條件循環(huán)體 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.4.5 循環(huán)的嵌套v三種循環(huán)可互相嵌套,層數(shù)不限v外層循環(huán)可包含兩個(gè)以上內(nèi)循環(huán),但不能相互交叉v嵌套
27、循環(huán)的執(zhí)行流程(1) while() while() . (2) do do while( ); . while( );(3) while() do while( ); . (4) for( ; ;) do while(); while() .內(nèi)循環(huán)外循環(huán)內(nèi)循環(huán)v嵌套循環(huán)的跳轉(zhuǎn)禁止:l從外層跳入內(nèi)層l跳入同層的另一循環(huán) 第 五 章 選擇結(jié)構(gòu)程序設(shè)計(jì)例 循環(huán)嵌套,輸出九九表1234567891234567892468101214161836912151821242791827364554637281.ij#include main() int i,j; for(i=1;i10;i+) printf(%4d,i); printf(n-n); for(i=1;i10;i+) for(j=1;j10;j+) printf(j= =9)?%4dn:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)數(shù)學(xué)新人教版一年級(jí)下冊(cè)20以內(nèi)口算練習(xí)題大全
- 遼寧工程技術(shù)大學(xué)《建筑工程概預(yù)算課程設(shè)計(jì)A》2023-2024學(xué)年第一學(xué)期期末試卷
- 四川省瀘州市納溪區(qū)2024年中考數(shù)學(xué)適應(yīng)性考試試題含答案
- 九州職業(yè)技術(shù)學(xué)院《數(shù)字化運(yùn)營(yíng)管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 江蘇經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院《兒童文學(xué)與兒童劇創(chuàng)編》2023-2024學(xué)年第一學(xué)期期末試卷
- 吉安幼兒師范高等??茖W(xué)?!缎竽廖⑸飳W(xué)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南理工學(xué)院《導(dǎo)游實(shí)務(wù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖北生物科技職業(yè)學(xué)院《歷史學(xué)綜合素質(zhì)指導(dǎo)》2023-2024學(xué)年第一學(xué)期期末試卷
- 【物理】《彈力》(教學(xué)設(shè)計(jì))-2024-2025學(xué)年人教版(2024)初中物理八年級(jí)下冊(cè)
- 高考物理模擬測(cè)試題(含答案)
- 《陸上風(fēng)電場(chǎng)工程概算定額》NBT 31010-2019
- 原油脫硫技術(shù)
- 部編版初中語(yǔ)文七至九年級(jí)語(yǔ)文教材各冊(cè)人文主題與語(yǔ)文要素匯總一覽表合集單元目標(biāo)能力點(diǎn)
- 工程項(xiàng)目收入情況統(tǒng)計(jì)表
- GB/T 29490-2013企業(yè)知識(shí)產(chǎn)權(quán)管理規(guī)范
- GB/T 14436-1993工業(yè)產(chǎn)品保證文件總則
- 湖南省鄉(xiāng)鎮(zhèn)衛(wèi)生院街道社區(qū)衛(wèi)生服務(wù)中心地址醫(yī)療機(jī)構(gòu)名單目錄
- 《中外資產(chǎn)評(píng)估準(zhǔn)則》課件第6章 英國(guó)評(píng)估準(zhǔn)則
- FZ∕T 63006-2019 松緊帶
- 罐區(qū)自動(dòng)化系統(tǒng)總體方案(31頁(yè))ppt課件
- 工程建設(shè)項(xiàng)目?jī)?nèi)外關(guān)系協(xié)調(diào)措施
評(píng)論
0/150
提交評(píng)論