




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
教學(xué)要點(diǎn)與重點(diǎn)教學(xué)要點(diǎn):本章主要介紹選擇結(jié)構(gòu)程序設(shè)計的作用和意義。教學(xué)重點(diǎn):掌握選擇結(jié)構(gòu)分支條件的設(shè)計與應(yīng)用。第四章選擇結(jié)構(gòu)程序設(shè)計
選擇結(jié)構(gòu)是程序的3種基本結(jié)構(gòu)之一。在C語言中,通常使用if語句或switch語句來實(shí)現(xiàn)選擇結(jié)構(gòu)程序設(shè)計。4.1if語句C語言提供了三種格式的if語句。它們分別是:單分支if語句、雙分支if語句和多分支if語句。4.1.1單分支if語句基本格式為:if(表達(dá)式)語句;說明:①“表達(dá)式”一般為關(guān)系表達(dá)式或邏輯表達(dá)式,但也可以是其它表達(dá)式,如賦值表達(dá)式等,甚至也可以是一個變量。例如:“if(a=8)語句;”、“if(b)語句;”都是允許的,只要表達(dá)式的值為非0,即為“真”。通常把關(guān)系表達(dá)式或邏輯表達(dá)式的值為真時,稱為條件滿足。②語句是“條件”滿足時,處理方法的描述,可以是若干個語句。
單分支if語句執(zhí)行流程:首先判斷表達(dá)式的值是否為真,若表達(dá)式的值為真(非0),則執(zhí)行其后的語句;否則不執(zhí)行該語句。語句的控制流程如圖4-1所示。圖4-1單分支if語句執(zhí)行流程實(shí)例:【例4.1】輸入兩個整數(shù)a和b,如果a小于b,則把整數(shù)a打印出來?!纠?.2】文字大小寫轉(zhuǎn)換。輸入一個字符,判別它的大小寫狀態(tài),如果是小寫,則將它轉(zhuǎn)換成大寫字母,然后輸出轉(zhuǎn)換后的字符。4.1.1單分支if語句4.1.2雙分支if語句雙分支if語句為if-else形式,基本格式為:
if(表達(dá)式)
語句塊1;
else
語句塊2;說明:①“表達(dá)式”一般為關(guān)系表達(dá)式或邏輯表達(dá)式。通常把關(guān)系表達(dá)式或邏輯表達(dá)式的值為真時,稱為條件滿足;值為假時,稱為條件不滿足。反之亦然。②語句塊1、語句塊2分別是“條件”滿足或不滿足時,處理方法的描述,可以是若干個語句。
雙分支if語句的控制流程:雙分支if語句在程序的執(zhí)行過程中,首先判斷“條件”,其值為真(非0)時,執(zhí)行語句塊1;為假(0)時執(zhí)行語句塊2。執(zhí)行完語句塊1或語句塊2之后,接下來執(zhí)行if后面的語句。語句的控制流程如圖4-2所示。圖4-2雙分支if語句執(zhí)行流程【例4.3】從鍵盤輸入一個整數(shù),判斷這個數(shù)的是否大于0。4.1.2雙分支if語句4.1.3多分支if語句基本格式為:if(表達(dá)式1)語句塊1;elseif(表達(dá)式2)語句塊2;;
……elseif(表達(dá)式m)語句塊n;else語句塊n+1;說明:①多分支if語句依次判斷表達(dá)式的值,當(dāng)某個表達(dá)式的值為真(非0)時,則執(zhí)行其下面的語句,然后跳到整個if語句之外繼續(xù)執(zhí)行程序。②如果所有的表達(dá)式均為假,則執(zhí)行語句n+1;如果所列出的條件都不滿足,又沒有else子句,則跳到整個if語句之外繼續(xù)執(zhí)行程序,不執(zhí)行任何多分支if語句內(nèi)的語句。
多分支if語句的控制流程:多分支if語句在程序的執(zhí)行過程中,首先判斷條件“表達(dá)式1”,其值為真(非0)時,執(zhí)行語句塊1;為假(0)時進(jìn)一判斷條件“表達(dá)式2”,其值為真執(zhí)行語句塊2,依次類推,到達(dá)判斷條件“表達(dá)式n”,其值為真時,執(zhí)行語句塊n,為假時,執(zhí)行語句塊n+1。接下來執(zhí)行if后面的語句。語句的控制流程如圖4-3所示。圖4-3多分支if語句執(zhí)行流程4.1.4if語句的嵌套當(dāng)if語句中的語句又是if語句時,這種情況就稱為if語句的嵌套。if語句的嵌套的基本格式為:if(表達(dá)式) if(表達(dá)式)語句塊1; else語句塊2;else f(表達(dá)式)語句塊3; else語句塊4;如果嵌套的if語句是if-else形式,將會出現(xiàn)多個if和else的情況,要特別注意if和else的配對問題。例如:if(表達(dá)式)if(表達(dá)式)語句塊1;elseif(表達(dá)式)語句塊2;else語句塊3;說明:在這段程序中,有三個if,兩個else,其中的每個else和if的配對關(guān)系是什么?從程序的書寫格式來看,是希望第一個出現(xiàn)的else能和第一個出現(xiàn)的if配對,但實(shí)際上這個else是與第二個if配對的。
4.1.4if語句的嵌套C語言規(guī)定:else總是與它前面最近的一個沒有配對的if配對。如何實(shí)現(xiàn)上個實(shí)例中第一個else和第一個if配對呢?可以利用加花括號{}的方法來改變原來的配對關(guān)系。例如:
if(表達(dá)式) {if(表達(dá)式)語句塊1;} else if(表達(dá)式)語句塊2; else語句塊3;
這樣,{}就限定了內(nèi)嵌if語句的范圍,就實(shí)現(xiàn)了第一個出現(xiàn)的else和第一個出現(xiàn)的if配對?!纠?.5】寫出下面程序的運(yùn)行結(jié)果【例4.6】輸入兩個整數(shù)x,y,z,輸出其中最大的數(shù)。
4.1.5條件運(yùn)算符和條件表達(dá)式(1)條件運(yùn)算符條件運(yùn)算符是C語言中一個特殊的運(yùn)算符,由“?”和“:”組合而成。條件運(yùn)算符是三目運(yùn)算符,要求有3個操作對象,并且三個操作對象都是表達(dá)式。在條件語句中,若只執(zhí)行單個賦值語句,常使用條件運(yùn)算來表示。這樣既會使程序簡潔,又可以提高了運(yùn)行效率。例如:
if(x>y)max=x;elsemax=y;
用條件運(yùn)算可以表示為:
max=(x>y)?x:y;
執(zhí)行時,先計算(x>y)的值為真還是假,若為真,則表達(dá)式取值為x;否則取值為y。(2)條件表達(dá)式其一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3
條件運(yùn)算的求值規(guī)則為:計算表達(dá)式1的值,若表達(dá)式1的值為真,則以表達(dá)式2的值作為整個條件表達(dá)式的值,否則以表達(dá)式3的值作為整個條件表達(dá)式的值。例如:max=(x>y)?x:y;①優(yōu)先級條件運(yùn)算符的運(yùn)算優(yōu)先級低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符,高于賦值符。因此,表達(dá)式max=(x>y)?x:y可以去掉括號,寫為max=x>y?x:y,執(zhí)行時意義是相同的。②結(jié)合性條件運(yùn)算符的結(jié)合方向是自右至左。例如:x>y?m:z>m?z:d等價于x>y?x:(z>m?z:m)③條件表達(dá)式中,表達(dá)式1通常為關(guān)系或邏輯表達(dá)式,表達(dá)式2、3的類型可以是數(shù)值表達(dá)式、賦值表達(dá)式、函數(shù)表達(dá)式或條件表達(dá)式。4.1.5條件運(yùn)算符和條件表達(dá)式4.2switch語句當(dāng)對一個表達(dá)式的不同取值情況作不同處理時,用多分支if語句的程序結(jié)構(gòu)顯得較為雜亂,而用switch語句將使程序的結(jié)構(gòu)更清晰,C語言提供了專門用于解決多分支選擇問題的switch語句,用來實(shí)現(xiàn)多種情況選擇的程序設(shè)計。4.2.1switch語句基本格式為:
switch(表達(dá)式) { case常量表達(dá)式1:語句塊1; case常量表達(dá)式2:語句塊2; …… case常量表達(dá)式n:語句塊n; default:語句塊n+1; }4.2switch語句說明:①“表達(dá)式”一般為整型變量或者字符型變量,case后面的只能是常量表達(dá)式。②switch語句的執(zhí)行過程是:先求“表達(dá)式”的值,并逐個與其后的常量表達(dá)式值相比較。當(dāng)表達(dá)式的值與某個常量表達(dá)式的值相等時,即執(zhí)行其后的語句,然后不再進(jìn)行判斷,繼續(xù)執(zhí)行后面所有case后的語句塊,在case后,允許有多個語句,可以不用{}括起來。如表達(dá)式的值與所有case后的常量表達(dá)式均不相同時,則執(zhí)行default后的語句。③case與其后面的常量表達(dá)式合稱為case語句標(biāo)號,每個case后的各常量表達(dá)式的值必須互不相同,否則會導(dǎo)致錯誤。④在關(guān)鍵字case和常量表達(dá)式之間一定要有空格,switch后面的括號不能省略。各個case和default的出現(xiàn)次序不影響執(zhí)行結(jié)果。⑤多個case可以共用一組執(zhí)行語句。例如:case'A':case'B': case'C':printf(">60\n");break;4.2.2switch語句的嵌套
switch語句也可以嵌套,但一般較少使用。在switch語句中,“case常量表達(dá)式”只起語句標(biāo)號的作用,并不進(jìn)行條件判斷。當(dāng)執(zhí)行switch語句后,程序會根據(jù)case后面表達(dá)式的值找到匹配的入口標(biāo)號,并從此處開始執(zhí)行,不再進(jìn)行判斷。為了避免這種情況,C語言提供了break語句,專門用于跳出switch語句,break語句只有關(guān)鍵字break,沒有參數(shù)。break語句不但可以用在switch語句中終止switch語句的執(zhí)行,也可以用在循環(huán)中終止循環(huán),要格外注意break在這里的作用。
switch語句實(shí)例:
【例4.7】生肖程序設(shè)計,用戶輸入出生年份,根據(jù)輸入的年份來確定用戶的屬相,把結(jié)果打印出來。
【例4.8】設(shè)計程序,實(shí)現(xiàn)季節(jié)判斷,用戶輸入1、2、3月是春季,4、
5、6月是夏季,7、8、9月是秋季,10、11、12是冬季。
【例4-9】輸入平年的一個月份,輸出這個月的天數(shù)。4.2switch語句4.3選擇結(jié)構(gòu)程序設(shè)計舉例【例4.10】設(shè)計C語言程序,由鍵盤輸入任意3個數(shù),計算以這3個數(shù)為邊長的三角形的面積。算法分析如下:設(shè)3個邊為a,b,c,(1)查看輸入的3個數(shù)能否組成三角形(2)計算三角形的面積【例4.12】某市規(guī)定如下用水收費(fèi)標(biāo)準(zhǔn):每戶一月用水不超過6立方米時,水費(fèi)按“基準(zhǔn)費(fèi)”收,每立方米2.4元;超過6立方米時,未超過部分按“基準(zhǔn)費(fèi)”收,超過部分按“調(diào)水價”收,每立方米6元。根據(jù)用戶用水量,求用戶的水費(fèi)?!纠?.13】一個數(shù)如果恰好等于除它本身外的因子和,那么這個數(shù)就稱為“完數(shù)”,編寫程序,求1000之內(nèi)的完數(shù)。【例4.11】求一元二次方程的根。按照公式:s=(a+b+c)*0.5area=sqrt(s*(s-a)*(s-b)*(s-c))(面積公式)任務(wù)4.4.1計算個人所得稅?!締栴}描述】
輸入個人工資計算個人所得稅。根據(jù)新的個
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 收養(yǎng)家庭育兒指導(dǎo)服務(wù)平臺構(gòu)建路徑考核試卷
- 木片尺寸精度與自動化檢測考核試卷
- 煤炭產(chǎn)業(yè)政策建議與展望考核試卷
- 攝影攝像器材租賃服務(wù)要點(diǎn)考核試卷
- 搪瓷制品的質(zhì)量保證體系與認(rèn)證考核試卷
- 活動背景板租賃業(yè)務(wù)操作要領(lǐng)考核試卷
- 灌溉與農(nóng)業(yè)生態(tài)環(huán)境保護(hù)規(guī)劃考核試卷
- 日用品生產(chǎn)設(shè)備操作安全防護(hù)設(shè)備的選擇與應(yīng)用考核試卷
- 農(nóng)村合股經(jīng)營合同標(biāo)準(zhǔn)文本
- 海洋測繪軟件考核試卷
- 2025屆四川省成都市高三二診生物試題(原卷版+解析版)
- 2025年度粵醫(yī)云、國培衛(wèi)健全科醫(yī)學(xué)臨床醫(yī)學(xué)2月題目及答案
- 校園消費(fèi)進(jìn)行時青春權(quán)益不掉隊(duì)-3·15消費(fèi)者權(quán)益日教育宣傳主題班會課件
- 大學(xué)生舞蹈創(chuàng)新創(chuàng)業(yè)計劃書
- 英語-安徽省滁州市2025年(屆)高三下學(xué)期第一次教學(xué)質(zhì)量監(jiān)測(滁州一模)試題和答案
- 人教版六年級下學(xué)期數(shù)學(xué)第四單元《比例》典型題型專項(xiàng)練習(xí)(含答案)
- 污水處理設(shè)施運(yùn)維服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 發(fā)票紅沖申請書
- DL5190.5-2019電力建設(shè)施工技術(shù)規(guī)范第5部分:管道及系統(tǒng)
- 國開電大軟件工程形考作業(yè)3參考答案
- 通用電子嘉賓禮薄
評論
0/150
提交評論