c5選擇程序流程設(shè)計(jì)PPT課件_第1頁(yè)
c5選擇程序流程設(shè)計(jì)PPT課件_第2頁(yè)
c5選擇程序流程設(shè)計(jì)PPT課件_第3頁(yè)
c5選擇程序流程設(shè)計(jì)PPT課件_第4頁(yè)
c5選擇程序流程設(shè)計(jì)PPT課件_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第1頁(yè)/共30頁(yè)本講主要內(nèi)容:if語(yǔ)句 學(xué)習(xí)目的與要求: 掌握if語(yǔ)句的三種形式(if,if-else,if-else if) 及其執(zhí)行過(guò)程; 掌握if語(yǔ)句嵌套概念; 掌握條件運(yùn)算; 掌握多路分支switch語(yǔ)句的格式及其執(zhí)行過(guò)程。 學(xué)習(xí)重點(diǎn):if語(yǔ)句和switch語(yǔ)句的格式及其執(zhí)行過(guò)程。 學(xué)習(xí)難點(diǎn):if語(yǔ)句的嵌套;switch語(yǔ)句的執(zhí)行過(guò)程。 第2頁(yè)/共30頁(yè) if語(yǔ)句(條件選擇語(yǔ)句) if語(yǔ)句的三種形式 形式一: 格式:if (expression) statement 執(zhí)行過(guò)程:exprstatement非0=0例:if (xy) printf(“%d”,x);exprstatement

2、1statement2非0=0l形式二:u格式:if (expression) statement1 else statement2u執(zhí)行過(guò)程:例:if (xy) max=x; else max=y;第3頁(yè)/共30頁(yè) 形式三: 格式:if ( expr1 ) statement1else if (expr2 ) statement2else if (expr3 ) statement3. else statementn expr1statemnt1非0=0expr2expr3statemntnstatemnt3statemnt2非0非0=0=0u執(zhí)行過(guò)程: 例:if (salary1000)

3、index=0.4; else if (salary800) index=0.3; else if (salary600) index=0.2; else if (salary400) index=0.1; else index=0; 第4頁(yè)/共30頁(yè)如:if(a=b&x=y) printf(“a=b,x=y”); if(3) printf(“OK”); if(a) printf(“%d”,a);l說(shuō)明:uif后面的表達(dá)式類(lèi)型任意u語(yǔ)句可以是復(fù)合語(yǔ)句u if(x) if(x!=0) if(!x) if(x=0)例 考慮下面程序的輸出結(jié)果: #include main() int x,y; sc

4、anf(“%d,%d”,&x,&y); if(xy) x=y; y=x; else x+; y+; printf(“%d,%dn”,x,y);Compile Error!第5頁(yè)/共30頁(yè)/*ch4_1.c*/#include main() int x,y; printf(Enter an integer:); scanf(%d,&x); y=x; if(yabsolute value:%dn,x,y);例 求一個(gè)數(shù)的絕對(duì)值運(yùn)行:Enter an integer:-12 integer:-12-absolute value :12第6頁(yè)/共30頁(yè)/*ch4_2.c*/#include main(

5、) int a,b; printf(Enter integer a:); scanf(%d,&a); printf(Enter integer b:); scanf(%d,&b); if(a=b) printf(a=bn); else printf(a!=bn);例 輸入兩個(gè)數(shù)并判斷兩數(shù)相等否運(yùn)行:Enter integer a:12 Enter integer b:12 a=b 運(yùn)行:Enter integer a:12 Enter integer b:9 a!=b 第7頁(yè)/共30頁(yè)/*ch4_3.c*/#include main() char c; printf(Enter a chara

6、cter:); c=getchar(); if(c=0&c=A&c=a&c=z) printf(The character is a lower lettern); else printf(The character is other charactern);例 判斷輸入字符種類(lèi)運(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 let

7、ter運(yùn)行: Enter a character: h The character is a lower letter運(yùn)行: Enter a character:F1 The character is other character第8頁(yè)/共30頁(yè)vif語(yǔ)句嵌套:l一般形式:if (expr1) if (expr2) statement1 else statement2else if(expr3) statement3 else statement4內(nèi)嵌if內(nèi)嵌ifif (expr1) if (expr2) statement1 else statement2內(nèi)嵌ifif (expr1) if

8、 (expr2) statement1else statement3 內(nèi)嵌ifif (expr1) statement1else if(expr3) statement3 else statement4內(nèi)嵌if第9頁(yè)/共30頁(yè)例 輸入兩數(shù)并判斷其大小關(guān)系/*ch4_4.c*/#include main() int x,y; printf(Enter integer x,y:); scanf(%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,

9、23 XY Enter integer x,y:12,12 X=Y第10頁(yè)/共30頁(yè) if else 配對(duì)原則:缺省 時(shí),else總是和它上面離它最近的未配對(duì)的if配對(duì)if()if()if()else.else.else.第11頁(yè)/共30頁(yè)例: 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ì)方法:加 第12頁(yè)/共30頁(yè)例 考慮下面程序輸出結(jié)果: main() int x=100,a=10,b

10、=20; int v1=5,v2=0; if(a60n”); break; .第15頁(yè)/共30頁(yè)例 switch(score) case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail!”); default : printf(“data error!”); 運(yùn)行結(jié)果:score為5時(shí),輸出: Very good! Good! Pass! Fail! data error!第16頁(yè)/共30頁(yè)例 void main() int x=1,y=0,a=0,b

11、=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+;b+; break; case 3: a+;b+; printf(“na=%d,b=%d”,a,b); 運(yùn)行結(jié)果:a=2,b=1第17頁(yè)/共30頁(yè)/*ch4_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: print

12、f(nGood night!n); break; case h: printf(nHello!n); break; default : printf(n?n); break; 例 根據(jù)輸入字母輸出字符串第18頁(yè)/共30頁(yè)一、if if 語(yǔ)句的的綜合應(yīng)用例1:求一元二次方程ax2+bx+c=0的實(shí)根解(設(shè)a0)。補(bǔ)充例題:輸入任意三個(gè)數(shù),按由大到小順序排列輸出。補(bǔ)充例題:輸入任意三個(gè)數(shù),按由大到小順序排列輸出。 例例2 2:閏年判斷程序。:閏年判斷程序。例3:學(xué)生成績(jī)分等顯示程序。學(xué)生有數(shù)學(xué)、英語(yǔ)兩門(mén)課。按百分制考核。要求輸入各門(mén)課成績(jī),按平均成績(jī)分等顯示:excellence(優(yōu)秀): 平均成

13、績(jī)90; all right(良好): 80平均成績(jī)90; middling(中等): 70平均成績(jī)80; pass(及格): 60平均成績(jī)70; fail(不及格): 平均成績(jī)=0) x1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*a); printf(x1=%f,x2=%f,x1,x2); 返回?cái)U(kuò)充到復(fù)數(shù)根第20頁(yè)/共30頁(yè)#include math.h main()float a,b,c; float x1,x2,d; printf(Please Input a,b,c: ); scanf(%f,%f,%f,&a,&b,&c); d=b*b-4*a*c;

14、if(d=0) x1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*a); printf(x1=%f,x2=%f,x1,x2); 返回float realpart,imagpart;else realpart=-b/(2*a); imagpart=sqrt(-d)/(2*a); printf(x1=%f+%fin,realpart,imagpart); printf(x2=%f-%fin,realpart,imagpart); 第21頁(yè)/共30頁(yè)補(bǔ)充例題:輸入任意三個(gè)數(shù),按由大到小順序排列輸出。 結(jié)束輸出a,b,c開(kāi)始輸入a,b,cabNoYes交換a與b的值bcN

15、oYes交換b與c的值acNoYes交換a與c的值a為三數(shù)中最大者b為三數(shù)中次大者a為a,b中最大者main( ) int a,b,c,t; printf(Please Input a,b,c: ); scanf(%d,%d,%d,&a,&b,&c); if (ab) t=a;a=b;b=t; if (ac) t=a;a=c;c=t; if (b=b&b=c翻譯為C語(yǔ)言表達(dá)式a=c&c=bb=a&a=cb=c&c=ac=a&a=bc=b&b=amain() int a,b,c; printf(Please input a b c:); scanf(%d%d%d,&a,&b,&c); if (a

16、=b&b=c) printf(%d,%d,%dn,a,b,c); if (a=c&c=b) printf(%d,%d,%dn,a,c,b); if (b=a&a=c) printf(%d,%d,%dn,b,a,c); if (b=c&c=a) printf(%d,%d,%dn,b,c,a); if (c=a&a=b) printf(%d,%d,%dn,c,a,b); if (c=b&b=a) printf(%d,%d,%dn,c,b,a);返回第23頁(yè)/共30頁(yè)綜合上述兩種情況,得到閏年判別條件的邏輯表達(dá)式:例例2 2:閏年判斷程序。:閏年判斷程序。main() int year; print

17、f(Type in a year:n); scanf(%d,&year); if (year%400=0|year%4=0&year%100!=0) printf(%d is a leap year.n); else printf(%d is not a leap year.n);閏年的判別條件:(假設(shè)年份變量用閏年的判別條件:(假設(shè)年份變量用yearyear表示)表示) 當(dāng)yearyear是400400的整倍數(shù)時(shí)為閏年;條件表示為: year%400=0 當(dāng)yearyear是4 4的整倍數(shù),但不是100100的整倍數(shù)時(shí)為閏年。條件表示為: year%4=0 & year%100 != 0ye

18、ar%400=0 | year%4=0 & year%100 != 0返回第24頁(yè)/共30頁(yè)例例3 3:學(xué)生成績(jī)分等顯示程序。學(xué)生有數(shù)學(xué)、英語(yǔ)兩門(mén)課。:學(xué)生成績(jī)分等顯示程序。學(xué)生有數(shù)學(xué)、英語(yǔ)兩門(mén)課。按百分制考核。要求輸入各門(mén)課成績(jī),按平均成績(jī)分等顯示:按百分制考核。要求輸入各門(mén)課成績(jī),按平均成績(jī)分等顯示: excellenceexcellence(優(yōu)秀):(優(yōu)秀): 平均成績(jī)平均成績(jī)9090; all rightall right(良好):(良好): 8080平均成績(jī)平均成績(jī)9090; middlingmiddling(中等):(中等): 7070平均成績(jī)平均成績(jī)8080; passpass(

19、及格):(及格): 6060平均成績(jī)平均成績(jī)7070; failfail(不(不及格):及格): 平均成績(jī)平均成績(jī)60=90) printf(excellencen); else if(ave=80) printf(all rightn); else if(ave=70) printf(middlingn); else if(ave=60) printf(passn); else printf(failn);返回第25頁(yè)/共30頁(yè)二、switch switch 語(yǔ)句的綜合應(yīng)用例3:學(xué)生成績(jī)分等顯示程序。學(xué)生有數(shù)學(xué)、英語(yǔ)兩門(mén)課。按百分制考核。要求輸入各門(mén)課成績(jī),按平均成績(jī)分等顯示。 excell

20、ence(優(yōu)秀): 平均成績(jī)90; all right(良好): 80平均成績(jī)90; middling(中等): 70平均成績(jī)80; pass(及格): 60平均成績(jī)70; fail(不及格): 平均成績(jī)60。返回補(bǔ)充例題:編寫(xiě)計(jì)算器程序。用戶輸入運(yùn)算數(shù)和四則運(yùn)補(bǔ)充例題:編寫(xiě)計(jì)算器程序。用戶輸入運(yùn)算數(shù)和四則運(yùn) 算符,輸出計(jì)算結(jié)果。算符,輸出計(jì)算結(jié)果。第26頁(yè)/共30頁(yè)main()float a,b; int ave;scanf(%f,%f,&a,&b); ave=(a+b)/2; switch(ave/10) case 10: case 9: printf(excellencen); brea

21、k; case 8: printf(all rightn); break; case 7: printf(middlingn); break; case 6: printf(pathn); break; default: printf(failn);返回采用采用switchswitch編程時(shí),要注意編程時(shí),要注意精選精選switchswitch后的表達(dá)式:后的表達(dá)式:(1 1)若采用平均值)若采用平均值aveave 將有將有101101種可能;種可能;(2 2)若采用:)若采用:ave/10 ave/10 只有只有1111種結(jié)果,再經(jīng)種結(jié)果,再經(jīng) 過(guò)合并后僅剩下過(guò)合并后僅剩下5 5種。種。switchswitch語(yǔ)句在開(kāi)發(fā)應(yīng)用程序語(yǔ)句在開(kāi)發(fā)應(yīng)用程序時(shí)用途廣泛。時(shí)用途廣泛。例例3 3:學(xué)生成績(jī):學(xué)生成績(jī)分等顯示程序。分等顯示程序。第27頁(yè)/共30頁(yè)補(bǔ)充例題:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論