免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章 選擇結(jié)構(gòu)程序設(shè)計(jì)選擇結(jié)構(gòu)的作用是,根據(jù)所指定的條件是否滿足,決定從給定的兩組操作選擇其一。在C語(yǔ)言中選擇結(jié)構(gòu)是用if語(yǔ)句實(shí)現(xiàn)的。5.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式1.關(guān)系運(yùn)算符實(shí)際上是比較運(yùn)算符。2.C的關(guān)系運(yùn)算符有: (小于) (大于) = (大于或等于) = (等于) != (不等于) 優(yōu)先級(jí)相同 (低)3.關(guān)于優(yōu)先次序: 前4種關(guān)系運(yùn)算符(,)的優(yōu)先級(jí)別相同,后兩種也相同。前4種高于后兩種。例如,“”優(yōu)先于“”。而“”與“a+b 等效于 c(a+b) ab=c 等效于(ab)=c a=bc 等效于a=(bc 等效于a=(bc)4. 關(guān)系表達(dá)式(1)用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(可以是算術(shù)表達(dá)式或關(guān)系表達(dá)式、邏輯表達(dá)式、賦值表達(dá)式、字符表達(dá)式)連接起來(lái)的式子,稱為關(guān)系表達(dá)式。例如:ab, a+bb+c,(a= =3)(b= =5), ab)(b=0”的值為“真”。(3)在C中都用數(shù)值1代表“真”,用0代表“假”。如果有以下賦值表達(dá)式:假定 a=3,b=2,c=1d=ab 則d得到的值為1f=abc f得到的值為0(4)關(guān)系運(yùn)算符的運(yùn)算方向?yàn)椋河勺笙蛴?.2 邏輯運(yùn)算符和邏輯表達(dá)式1.用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來(lái)的式子就是邏輯表達(dá)式。2.C提供3種邏輯運(yùn)算符: & 邏輯與 | 邏輯或 ! 邏輯非邏輯運(yùn)算舉例如下: a & b 若a,b為真,則a & b為真。 a|b 若a,b之一為真,則a|b為真。 !a 若a為真,則!a為假。2.優(yōu)先次序:(1) !(非) &(與) |(或),即“!”為三者中最高的。(2) 邏輯運(yùn)算符中的“&”和“|”低于關(guān)系運(yùn)算符,“!”高于算術(shù)運(yùn)算符。例如: (ab) & (xy) 可寫(xiě)成 ab & xy (a=b) | (x=y) 可寫(xiě)成 a=b | x=y (!a) | (ab) 可寫(xiě)成 !a | ab3. 邏輯表達(dá)式 將兩個(gè)關(guān)系表達(dá)式用邏輯運(yùn)算符連接起來(lái)就成為一個(gè)邏輯表達(dá)式,邏輯表達(dá)式的值是一個(gè)邏輯量“真”或“假”。采取的標(biāo)準(zhǔn)是: 如果其值是0就認(rèn)為是“假”,如果其值是非0就認(rèn)為是“真”。例如:(1) 若a=4,則!a的值為0。因?yàn)閍的值為非0,被認(rèn)作“真”,對(duì)它進(jìn)行“非”運(yùn)算,得“假”,“假”以0代表。(2) 若a=4,b=5,則a & b的值為1。因?yàn)閍和b均為非0,被認(rèn)為是“真” 。(3) a,b值同前,a-b|a+b的值為1。因?yàn)閍-b和a+b的值都為非零值。(4) a,b值同前,!a | b的值為1。(5) 4 & 0 | 2 的值為1。4. 對(duì)&運(yùn)算符來(lái)說(shuō),只有前面的表達(dá)式為真,才繼續(xù)進(jìn)行右面的運(yùn)算,例如:a&b&c。對(duì)| |運(yùn)算符來(lái)說(shuō)只有前面的表達(dá)式為假,才繼續(xù)進(jìn)行右面的運(yùn)算,例如:a|b|c。5. 3 if語(yǔ)句1.if語(yǔ)句是用來(lái)判斷所給定的條件是否滿足,根據(jù)判斷的結(jié)果(真或假)決定執(zhí)行給出的兩種操作之一。2.if語(yǔ)句的3種形式(1)if (條件表達(dá)式 ) 語(yǔ)句; if (xy) printf(“%d”,x); if(條件表達(dá)式) 復(fù)合語(yǔ)句; 例如:求x的絕對(duì)值#includevoid main( )int x, absx;printf(please input x=);scanf(%d,&x);absx=x;if(x0)absx=-x;printf(x=%dt|x|=%dn,x,absx);(2)if ( 條件 )語(yǔ)句1;else語(yǔ)句2;例如:求x的絕對(duì)值#includevoid main( )int x, absx;printf(please input x=);scanf(%d,&x);if(x=0)absx=x; else absx=-x;printf(x=%dt|x|=%dn,x,absx);(3)在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句,形式為: if(表達(dá)式1) 語(yǔ)句1; elseif (表達(dá)式2) 語(yǔ)句2;else if(表達(dá)式3) 語(yǔ)句3;else 語(yǔ)句n+1;語(yǔ)句2,n可以是復(fù)合語(yǔ)句,每層的if與else配對(duì),或者用來(lái)確定層次關(guān)系。表達(dá)式1語(yǔ)句1表達(dá)式2語(yǔ)句2表達(dá)式3語(yǔ)句3表達(dá)式4語(yǔ)句5語(yǔ)句4即:注意:(1)3種形式的if語(yǔ)句中在if后面都有表達(dá)式,一般為邏輯表達(dá)式或關(guān)系表達(dá)式。 (2)第二、第三種形式的if語(yǔ)句中,在每個(gè)else前面有一個(gè)分號(hào),整個(gè)語(yǔ)句結(jié)束處有一個(gè)分號(hào)。 (3)else語(yǔ)句不能單獨(dú)使用,它必須是if語(yǔ)句的一部分,與if配對(duì)使用。3.If語(yǔ)句的嵌套 在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句的嵌套。 If() If()語(yǔ)句1 else語(yǔ)句2Else If()語(yǔ)句3 Else 語(yǔ)句4 (1)if與else的配對(duì)原則:else總是與它上面最近的且尚未配對(duì)的if配對(duì)。 (2)如果if與else的數(shù)目不一樣,為實(shí)現(xiàn)程序設(shè)計(jì)者的企圖,可以加花括號(hào)來(lái)確定配對(duì)關(guān)系。3. 條件運(yùn)算符: ? : 條件運(yùn)算符是C語(yǔ)言中唯一一個(gè)三目運(yùn)算符。4. 條件表達(dá)式的一般形式: 表達(dá)式1?表達(dá)式2:表達(dá)式3例如: (ab) ? c=a:c=b c=(ab)?a:b 說(shuō)明:(1)條件運(yùn)算符的執(zhí)行順序:先求解表達(dá)式1,若為非0(真)則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值。若為表達(dá)式1的值為0(假)則求解表達(dá)式3,此時(shí)表達(dá)式3的值就作為整個(gè)條件表達(dá)式的值。(2) 條件運(yùn)算符優(yōu)先于賦值運(yùn)算符,低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符。(3)條件運(yùn)算符的結(jié)合方向?yàn)椤白杂抑磷蟆薄=Y(jié)合方向?yàn)椤白杂抑磷蟆盿b?a:cd?c:d 等價(jià)于 ab?a:(cd?c:d)例如:#includevoid main() char ch; scanf(%c,&ch); ch=(ch=A&ch=Z)?(ch+32):ch; printf(%cn,ch);5.4 switch語(yǔ)句1.switch語(yǔ)句直接處理多分支選擇。2.switch語(yǔ)句的一般形式:switch(表達(dá)式)case 常量表達(dá)式1: 語(yǔ)句1case 常量表達(dá)式2: 語(yǔ)句2default: 語(yǔ)句n+1說(shuō)明:(1) switch后面括號(hào)內(nèi)的“表達(dá)式”,可以為任何類型。(2) 當(dāng)表達(dá)式的值與某一個(gè)case后面的常量表達(dá)式的值相等時(shí),就執(zhí)行case后面的語(yǔ)句,若所有的case中的常量表達(dá)式的值都沒(méi)有與表達(dá)式的值匹配的,就執(zhí)行default后面的語(yǔ)句。(3) 每一個(gè)case常量表達(dá)式的值必須互不相同;否則就會(huì)出現(xiàn)相互矛盾的現(xiàn)象。(4) 每個(gè)case和default的出現(xiàn)次序不影響執(zhí)行結(jié)果。(5) 執(zhí)行完一個(gè)case后面的語(yǔ)句后,流程控制轉(zhuǎn)移到下一個(gè)case繼續(xù)執(zhí)行。例如:根據(jù)學(xué)生成績(jī)等級(jí)打印出分?jǐn)?shù)段#includevoid 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(“60n“); break;default: printf(“errorn“); #includevoid main() char grade; scanf(“%c”,&grade); switch(grade) case A: case B:case C:printf(“PASSn“); break;case D:printf(“FAILn“); break; default: printf(“errorn“); 5.5 程序舉例運(yùn)輸公司對(duì)用戶計(jì)算運(yùn)費(fèi)。路程(s)越遠(yuǎn),每公里運(yùn)費(fèi)越低。標(biāo)準(zhǔn)如下: s250km 沒(méi)有折扣 250s500 2折扣 500s1000 5折扣 1000s2000 8折扣 2000s3000 10折扣 3000s 15折扣設(shè)每公里每噸貨物的基本運(yùn)費(fèi)為p(price的縮寫(xiě)),貨物重為w(wright的縮寫(xiě)),距離為,折扣為d(discount的縮寫(xiě)),則總運(yùn)費(fèi)f(freight的縮寫(xiě))的計(jì)算公式為 f = p * w * s * (1 - d)程序如下: #include void main( )int c,s; float p,w,d,f; printf(please enter p,w,s:);scanf(“%f,%f,%d”,&p,&w,&s); if(s=3000) c=12; else c=s/250; switch (c) case 0:d=0;break; case 1:d=2;break; case 2: case 3:d=5;break; case 4:case 5: case 6: case 7:d=8;break; case 8: case 9: case 10: case 11:d=10;break; case 12:d=15;break
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年醫(yī)學(xué)整形美容服務(wù)協(xié)議
- 2025年員工福利和解合同
- 2025年在線教育運(yùn)營(yíng)合同
- 2025年公司融資投資人增資協(xié)議
- 2025年代理合作簽約協(xié)議
- 二零二五年度嬰幼兒奶粉產(chǎn)品追溯系統(tǒng)建設(shè)合作協(xié)議3篇
- 2025年項(xiàng)目建議書(shū)編制委托人工智能+大數(shù)據(jù)合同模板2篇
- 2025年度健康養(yǎng)生產(chǎn)品居間營(yíng)銷合同模板4篇
- 跟著2025年新番走:《動(dòng)漫欣賞》課件帶你領(lǐng)略動(dòng)漫魅力2篇
- 2025年度智能牧場(chǎng)羊代放牧與物聯(lián)網(wǎng)服務(wù)合同
- 反騷擾政策程序
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制課件第十一章運(yùn)動(dòng)技能的練習(xí)
- 射頻在疼痛治療中的應(yīng)用
- 四年級(jí)數(shù)學(xué)豎式計(jì)算100道文檔
- “新零售”模式下生鮮電商的營(yíng)銷策略研究-以盒馬鮮生為例
- 項(xiàng)痹病辨證施護(hù)
- 職業(yè)安全健康工作總結(jié)(2篇)
- 懷化市數(shù)字經(jīng)濟(jì)產(chǎn)業(yè)發(fā)展概況及未來(lái)投資可行性研究報(bào)告
- 07FD02 防空地下室電氣設(shè)備安裝
- 教師高中化學(xué)大單元教學(xué)培訓(xùn)心得體會(huì)
- 彈簧分離問(wèn)題經(jīng)典題目
評(píng)論
0/150
提交評(píng)論