![《C語(yǔ)言程序設(shè)計(jì)》課件4第5章_第1頁(yè)](http://file4.renrendoc.com/view14/M0B/20/2A/wKhkGWd_anmAStiUAAOSHfCbGko677.jpg)
![《C語(yǔ)言程序設(shè)計(jì)》課件4第5章_第2頁(yè)](http://file4.renrendoc.com/view14/M0B/20/2A/wKhkGWd_anmAStiUAAOSHfCbGko6772.jpg)
![《C語(yǔ)言程序設(shè)計(jì)》課件4第5章_第3頁(yè)](http://file4.renrendoc.com/view14/M0B/20/2A/wKhkGWd_anmAStiUAAOSHfCbGko6773.jpg)
![《C語(yǔ)言程序設(shè)計(jì)》課件4第5章_第4頁(yè)](http://file4.renrendoc.com/view14/M0B/20/2A/wKhkGWd_anmAStiUAAOSHfCbGko6774.jpg)
![《C語(yǔ)言程序設(shè)計(jì)》課件4第5章_第5頁(yè)](http://file4.renrendoc.com/view14/M0B/20/2A/wKhkGWd_anmAStiUAAOSHfCbGko6775.jpg)
版權(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ì)5.1引例5.2if語(yǔ)句5.3??:?運(yùn)算符實(shí)現(xiàn)分支結(jié)構(gòu)5.4switch語(yǔ)句5.5案例學(xué)習(xí)
5.1引例
【例5-1】輸入兩個(gè)數(shù),輸出其中較大的數(shù)。程序流程如圖5.1所示。圖5.1例5-1算法流程例5-1的源程序如下:圖5.2例5-1運(yùn)行結(jié)果
【例5-2】輸入三角形的三條邊長(zhǎng),求三角形面積。圖5.3例5-2運(yùn)行結(jié)果
5.2if語(yǔ)句
5.2.1單分支if語(yǔ)句
語(yǔ)句格式:
if(表達(dá)式)語(yǔ)句
注意:if后面的語(yǔ)句若為多條語(yǔ)句構(gòu)成時(shí),必須寫(xiě)成復(fù)合語(yǔ)句形式(即將語(yǔ)句用花括號(hào)括起來(lái))。
單分支if語(yǔ)句的執(zhí)行過(guò)程如圖5.4所示。圖5.4單分支選擇結(jié)構(gòu)
【例5-3】輸入兩個(gè)整數(shù),按照由小到大的順序輸出這兩個(gè)數(shù)。圖5.5例5-3運(yùn)行結(jié)果5.2.2雙分支if語(yǔ)句
語(yǔ)句格式:
if(表達(dá)式)語(yǔ)句1else語(yǔ)句2
雙分支if語(yǔ)句的執(zhí)行過(guò)程如圖5.6所示。圖5.6雙分支選擇結(jié)構(gòu)
【例5-4】從鍵盤(pán)上輸入一個(gè)正整數(shù),判斷其奇偶性。圖5.7例5-4運(yùn)行結(jié)果5.2.3多分支if語(yǔ)句
語(yǔ)句格式:
if(表達(dá)式1)語(yǔ)句1
elseif(表達(dá)式2)語(yǔ)句2
elseif(表達(dá)式3)語(yǔ)句3
elseif(表達(dá)式m)語(yǔ)句m
else語(yǔ)句n
多分支if語(yǔ)句的執(zhí)行過(guò)程如圖5.8所示。圖5.8多分支選擇結(jié)構(gòu)
【例5-5】有一個(gè)函數(shù)定義如下,編一程序,輸入一個(gè)x值,輸出y值。
算法流程圖如圖5.9所示。圖5.9例5-5流程圖根據(jù)流程圖編程如下:圖5.10例5-5運(yùn)行結(jié)果5.2.4if語(yǔ)句的嵌套
在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句稱(chēng)為if語(yǔ)句的嵌套。一般形式如下:
【例5-6】將例5-5的階梯函數(shù)采用if語(yǔ)句的嵌套格式編程。
方法一:方法二:
5.3??:?運(yùn)算符實(shí)現(xiàn)分支結(jié)構(gòu)
在例4-1中,有以下if語(yǔ)句:
當(dāng)被判別的表達(dá)式的值為“真”或“假”時(shí),都執(zhí)行一個(gè)賦值語(yǔ)句且向同一個(gè)變量賦值時(shí),可以用一個(gè)條件運(yùn)算符來(lái)處理:
【例5-7】從鍵盤(pán)上輸入一個(gè)字符,如果它是大寫(xiě)字母,則把它轉(zhuǎn)換成小寫(xiě)字母輸出;否則,直接輸出。圖5.11例5-7運(yùn)行結(jié)果
5.4switch語(yǔ)句
【例5-8】從鍵盤(pán)上輸入一個(gè)百分制成績(jī)score,按下列原則輸出其等級(jí):
score≥90,等級(jí)為A;
80≤score<90,等級(jí)為B;
70≤score<80,等級(jí)為C;
60≤score<70,等級(jí)為D;
score<60,等級(jí)為E;
score<0或score>100,等級(jí)為F。分析題意,此題加上錯(cuò)誤輸入,共有六個(gè)分支,如果采用多分支選擇結(jié)構(gòu)if語(yǔ)句,則程序如下:上面的程序冗長(zhǎng)而且分支較多,可讀性降低,不便于理解。C語(yǔ)言提供了switch語(yǔ)句直接處理多分支選擇,程序如下:圖5.12例5-8運(yùn)行結(jié)果
1.switch語(yǔ)句的一般形式
2.執(zhí)行過(guò)程
(1)當(dāng)switch后面表達(dá)式的值與某個(gè)case后面的常量表達(dá)式的值相同時(shí),就執(zhí)行該case后面的語(yǔ)句(組);當(dāng)執(zhí)行到break語(yǔ)句時(shí),跳出switch語(yǔ)句,轉(zhuǎn)向執(zhí)行switch語(yǔ)句的下一條,如圖5.13所示。
(2)如果沒(méi)有任何一個(gè)case后面的常量表達(dá)式的值與表達(dá)式的值匹配,則執(zhí)行default后面的語(yǔ)句(組);然后,再執(zhí)行switch語(yǔ)句的下一條。圖5.13含有break語(yǔ)句的switch語(yǔ)句的執(zhí)行過(guò)程
3.說(shuō)明
(1)?switch后面的表達(dá)式,可以是int、char和枚舉型中的一種。
(2)每個(gè)case后面常量表達(dá)式的值必須各不相同,否則會(huì)出現(xiàn)相互矛盾的現(xiàn)象(即對(duì)表達(dá)式的同一個(gè)值,有兩種或兩種以上的執(zhí)行方案)。
(3)?case后面的常量表達(dá)式僅起語(yǔ)句標(biāo)號(hào)的作用,并不進(jìn)行條件判斷。系統(tǒng)一旦找到入口標(biāo)號(hào),就從此標(biāo)號(hào)開(kāi)始執(zhí)行,不再進(jìn)行標(biāo)號(hào)判斷,執(zhí)行過(guò)程如圖5.14所示,所以必須加上break語(yǔ)句,以便結(jié)束switch語(yǔ)句。圖5.14不含有break語(yǔ)句的switch語(yǔ)句的執(zhí)行過(guò)程注意:如果去掉例5-8程序中的所有break語(yǔ)句,程序段代碼如下:圖5.15去掉例5-8程序中的所有break語(yǔ)句,且輸入的成績(jī)?yōu)?5時(shí)的運(yùn)行結(jié)果
(4)多個(gè)case子句,可共用同一語(yǔ)句(組)。
例如,在例5-8中有“case10:?”和“case9:?”共用語(yǔ)句“printf(”grade=A\n“);break;”,“case5:”~“case0:?”共用語(yǔ)句“printf(”grade=E\n“);break;”。
(5)用switch語(yǔ)句實(shí)現(xiàn)的多分支結(jié)構(gòu)程序,完全可以用if語(yǔ)句或if語(yǔ)句的嵌套來(lái)實(shí)現(xiàn)。
5.5案例學(xué)習(xí)
【例5-9】判斷由鍵盤(pán)上輸入的整數(shù)是正數(shù)、負(fù)數(shù)還是零。圖5.16例5-9運(yùn)行結(jié)果
【例5-10】從鍵盤(pán)上輸入三個(gè)整數(shù),求其中最大值和最小值。圖5.17例5-10運(yùn)行結(jié)果
【例5-11】輸入任意三個(gè)整數(shù)a、b、c,按從小到大的順序輸出。
算法流程圖如圖5.18所示。圖5.18例5-11流程圖根據(jù)流程圖寫(xiě)出程序:圖5.19例5-11運(yùn)行結(jié)果
【例5-12】已知某公司員工的底薪為500元,某月所接工程的利潤(rùn)profit(整數(shù))與利潤(rùn)提成的關(guān)系如下(計(jì)量單位:元),編程計(jì)算員工工資。算法設(shè)計(jì)要點(diǎn):為使用switch語(yǔ)句,必須將利潤(rùn)profit與提成的關(guān)系,轉(zhuǎn)換成某些整數(shù)與提成的關(guān)系。分析本題可知,提成的變化點(diǎn)都是1000的整數(shù)倍(1000,2000,5000,…),如果將利潤(rùn)profit整除1000,則:程序代碼如下:圖5.20例5-12運(yùn)行結(jié)果
【例5-13】求一元二次方程ax2?+?bx?+?c?=?0的解(a≠0)。
算法分析:
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 制作宣傳海報(bào)合同范本
- 2014網(wǎng)簽合同范本
- 勞務(wù)合同范例重寫(xiě)
- 2025年度客運(yùn)站旅客信息服務(wù)系統(tǒng)升級(jí)合同
- 保證合同范例 博客
- 農(nóng)村保姆協(xié)議合同范本
- 深化教育改革與人才培養(yǎng)質(zhì)量提升并行
- 分公司 保證合同范例
- 村計(jì)生專(zhuān)干申請(qǐng)書(shū)
- otc藥品銷(xiāo)售合同范本
- 2025年寬帶研究分析報(bào)告
- 建筑與市政工程第三方質(zhì)量安全巡查方案
- 二零二五版財(cái)務(wù)顧問(wèn)保密與工作內(nèi)容協(xié)議3篇
- 2025-2030年中國(guó)干混砂漿行業(yè)運(yùn)行狀況及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2025江蘇鹽城市交通投資建設(shè)控股集團(tuán)限公司招聘19人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024托管班二人合伙的協(xié)議書(shū)
- 《輸電線路金具識(shí)別》課件
- 基于PLC的豬場(chǎng)智能液態(tài)飼喂系統(tǒng)的設(shè)計(jì)與研究
- 企業(yè)內(nèi)部管理流程優(yōu)化方案
- 2023-2024學(xué)年浙江省金華市武義縣七年級(jí)(上)期末英語(yǔ)試卷
- 任務(wù)型閱讀 -2024年浙江中考英語(yǔ)試題專(zhuān)項(xiàng)復(fù)習(xí)(解析版)
評(píng)論
0/150
提交評(píng)論