C語言教學(xué)之選擇結(jié)構(gòu)程序設(shè)計(jì)市公開課金獎(jiǎng)市賽課一等獎(jiǎng)?wù)n件_第1頁
C語言教學(xué)之選擇結(jié)構(gòu)程序設(shè)計(jì)市公開課金獎(jiǎng)市賽課一等獎(jiǎng)?wù)n件_第2頁
C語言教學(xué)之選擇結(jié)構(gòu)程序設(shè)計(jì)市公開課金獎(jiǎng)市賽課一等獎(jiǎng)?wù)n件_第3頁
C語言教學(xué)之選擇結(jié)構(gòu)程序設(shè)計(jì)市公開課金獎(jiǎng)市賽課一等獎(jiǎng)?wù)n件_第4頁
C語言教學(xué)之選擇結(jié)構(gòu)程序設(shè)計(jì)市公開課金獎(jiǎng)市賽課一等獎(jiǎng)?wù)n件_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、聰明出于勤奮,天才在于積累 華羅庚1第1頁5.1關(guān)系運(yùn)算符和關(guān)系表示式5.2邏輯運(yùn)算符和邏輯表示式5.3if語句5.4switch語句5.5程序舉例習(xí)題第5章 選擇結(jié)構(gòu)程序設(shè)計(jì)2第2頁本章綱領(lǐng)選擇結(jié)構(gòu)程序設(shè)計(jì)(4課時(shí))教學(xué)內(nèi)容:關(guān)系運(yùn)算符和關(guān)系表示式邏輯運(yùn)算符及邏輯表示式if語句及條件運(yùn)算符switch語句選擇結(jié)構(gòu)C程序編寫3第3頁基本要求:掌握關(guān)系運(yùn)算符與關(guān)系表示式;掌握邏輯運(yùn)算符與邏輯表示式;掌握if語句幾個(gè)形式;掌握if語句嵌套應(yīng)用;掌握條件運(yùn)算符應(yīng)用;掌握switch-case語句應(yīng)用。重點(diǎn):if語句;選擇結(jié)構(gòu)C程序編寫難點(diǎn):選擇結(jié)構(gòu)C程序編寫4第4頁5.1 關(guān)系運(yùn)算符和關(guān)系表示式 關(guān)

2、系運(yùn)算:實(shí)際上是“比較運(yùn)算”。將兩個(gè)值進(jìn)行比較,判斷其比較結(jié)果是否符合給定條件。誰會(huì)贏?判斷題35 ( )5第5頁5.1.1 關(guān)系運(yùn)算符及其優(yōu)先次序 (小于) = (小于或等于) (大于) = (大于或等于) = = (等于) != (不等于)1.C語言提供關(guān)系運(yùn)算符種類:高優(yōu)先級(jí)相同低優(yōu)先級(jí)相同6第6頁從左向右2.關(guān)系運(yùn)算符優(yōu)先次序:3.關(guān)系運(yùn)算符結(jié)合性:關(guān)系運(yùn)算符算術(shù)運(yùn)算符賦值運(yùn)算符低高比如:ca+b 等效于c(a+b) a=bc等效于a=(bc)a=bc等效于a=(bc)7第7頁5.1.2 關(guān)系表示式用關(guān)系運(yùn)算符將兩個(gè)表示式連接起來式子。表示式能夠是:1.算術(shù)表示式2.關(guān)系表示式3.邏輯

3、表示式4.賦值表示式5.字符表示式比如:ab,abbc,(a=3)(b=5),ab,(ab)(bc)只有兩種:真和假,在C語言里分別用1和0 來表示。用1和0來表示原因在于:c語言沒有邏輯型數(shù)據(jù),以1代表“真”,以“0”代表“假”。2.關(guān)系表示式結(jié)果:1.關(guān)系表示式:8第8頁例題: 假設(shè)a=3,b=2,c=1 以下這些表示式結(jié)果是什么?比如:ab,abbc,(a=3)(b=5),ab,(ab)(bc)ab 3&890) printf(“優(yōu)異”);else if(x80) printf(“良”);else if(x70) printf(“中”); else if(x60) printf(“及格”

4、); else printf(“不及格);表示式1真語句1假語句2表示式2真假語句3表示式3真假語句420第20頁說明:(1)三種形式if語句中“表示式”,普通為邏輯表示式或關(guān)系表示式。表示式類型能夠是任意數(shù)值類型(包含整型、實(shí)型、字符型、指針型數(shù)據(jù)) (2) 第二、第三種形式if語句中,在每個(gè)else前面有一分號(hào),整個(gè)語句結(jié)束處有一分號(hào)if (x0)printf (%f,x);else printf(%f,-x);if(a=b & x=y)printf(“a=b,x=y”);if(3) printf(“k”); if(a)printf(“%d,a);21第21頁(3)在if和else后面能夠

5、只含一個(gè)內(nèi)嵌操作語句,也能夠有多個(gè)操作語句,此時(shí)用花括號(hào)“”將幾個(gè)語句括起來成為一個(gè)復(fù)合語句。if(abc & bca & cab) s=0.5*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“area=%6.2f”,area); else printf(“it is not a trilateral”);22第22頁例5.1輸入兩個(gè)實(shí)數(shù),按代數(shù)值由小到大次序輸出這兩個(gè)數(shù)。main() float a,b,t; scanf(“%f,%f“,&a,&b); if(ab) t=a;a=b;b=t; printf(“%5.2f,%5.2f“,a,b);

6、 3.6,-3.2(回車)-3.20, 3.60 開始ab?交換a和b輸出a和bYN結(jié)束23第23頁132醬油(a)醋(b)醬油(a)醋(b)空瓶(t)t=a;醬油空a=b;醋b=t;空醬油空媽媽告訴我,要把醬油和醋交換一下24第24頁5.3.2 if語句嵌套if( ) if( )語句1 else語句2 else if( )語句3 else語句4在if語句中又包含一個(gè)或多個(gè)if語句稱為if語句嵌套。普通形式以下:if() if()語句1else if()語句2 else 語句3else總是與它上面最近if配對25第25頁例5.3有一函數(shù):編一程序,輸入一個(gè)x值,輸出y值。若 x 0 y = 1

7、輸出y開始輸入xx0 x=0y=0y=-1y=1輸入x結(jié)束YNYN圖5.726第26頁程序1:main() int x,y; scanf(“%d,&x); if(x0y=1y=0YNYNy=-128第28頁5.3.3 條件運(yùn)算符例:若有以下if語句:if(ab)max=a; elsemax=b;能夠用下面條件運(yùn)算符來處理: max=(ab)?ab;若if語句中,在表示式為“真”和“假”時(shí),都只執(zhí)行一個(gè)賦值語句且給同一個(gè)變量賦值時(shí),能夠用簡單條件運(yùn)算符來處理。29第29頁 表示式1 ?表示式2表示式31.條件表示式普通形式:c語言中唯一一個(gè)三目運(yùn)算符2.條件運(yùn)算符執(zhí)行次序:先求解表示式1,(1)

8、若表示式1值為非0(真)則求解表示式2,此時(shí)表示式2值就作為整個(gè)條件表示式值。(2)若表示式1值為0(假),則求解表示式3,表示式3值就是整個(gè)條件表示式值。表示式1條件表示式取表示式2值條件表示式取表示式3值真假圖5.1130第30頁關(guān)系運(yùn)算符算術(shù)運(yùn)算符賦值運(yùn)算符低高&!(非)假如有ab?ab1相當(dāng)于ab?a(b1)3.條件運(yùn)算符優(yōu)先級(jí)|條件運(yùn)算符31第31頁4.條件運(yùn)算符結(jié)合方向“自右至左”假如有以下條件表示式:ab?acd?cd相當(dāng)于ab?a(cd?cd)假如a=1,b=2,c=3,d=4,則條件表示式值等于多少?432第32頁5.說明:如 x? abx是整型變量,若x=0,則條件表示式值

9、為b。如 xy?115假如x=A & ch=Z)?(ch+32)ch; printf(“%c,ch) A(回車) a35第35頁5.4 switch 語 句switch語句是多分支選擇語句。用來實(shí)現(xiàn)如圖所表示多分支選擇結(jié)構(gòu)。表示式語句A語句B語句M語句Np=p1p=p2p=pnp=pmswitch結(jié)構(gòu)只能對等式進(jìn)行測試。36第36頁1.普通形式:switch(表示式) case常量表示式1:語句1 case常量表示式2:語句2 case常量表示式n:語句n default :語句n1 是整型、字符型或枚舉類型表示式,case后面常量表示式類型必須與之匹配。每一個(gè)case常量表示式值必須互不相同

10、,不然就會(huì)出現(xiàn)相互矛盾現(xiàn)象37第37頁比如,要求按照考試成績等級(jí)打印出百分制分?jǐn)?shù)段switch(grade) caseAprintf(85100n); caseBprintf(7084n); caseCprintf(6069n); caseDprintf(60n); defaultprintf(errorn); 38第38頁main()char grade;scanf(%c,&grade);switch(grade) case A:printf(85100n); case B:printf(7084n); case C:printf(6069n); case D:printf(60n); de

11、fault:printf(errorn); 完整程序:A(回車)851007084606960errorB(回車)7084606960error不會(huì)吧?39第39頁main()char grade;scanf(%c,&grade);switch(grade) case A:printf(“85100n”);break; case B:printf(“7084n”); break; case C:printf(“6069n”); break; case D:printf(“0輸出兩個(gè)實(shí)根x1,x2輸出兩個(gè)復(fù)根p+qip-qi復(fù)根實(shí)部和虛部分別為:真假45第45頁#include main()fl

12、oat a,b,c,d,disc,x1,x2,realpart,imagpart; scanf(f,f,f,&a,&b,&c); printf(The equation); if(fabs(a)=le-6) printf(is not a quadratic); elsedisc=b*b-4*a*c; if(fabs(disc)=le-6) printf(has two equal roots:%8.4n,-b(2*a); 程序以下:a=0 判斷b2-4ac=0 判斷fabs()是求實(shí)數(shù)絕對值函數(shù)46第46頁else if(discle-6)x1=(-bsqrt(disc)(2*a); x2=

13、(-b-sqrt(disc)(2*a); printf(has distinct real roots:%8.4f and %8.4fn,x1,x2); else realpart=-b(2*a); imagpart=sqrt(-disc)(2*a); printf(has comPlex rootsn); printf(%8.4f+%8.4fin,realpart,imagpart); printf(%8.4f-%8.4fin,realpart,imagpart); 10-60-10-6=00=3000) c=12; elsec=s250; switch(c) case 0d=0;break; case 1d=2;break; case 2 程序以下:51第51頁 case 3d=5;break; case 4 case 5 case 6 case 7d=8;break; case 8 case 9 case 10 case 11d=10;break; case12d

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論