項目3選擇結構程序設計——讓計算機_第1頁
項目3選擇結構程序設計——讓計算機_第2頁
項目3選擇結構程序設計——讓計算機_第3頁
項目3選擇結構程序設計——讓計算機_第4頁
項目3選擇結構程序設計——讓計算機_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、項目項目3 選擇結構程序設計選擇結構程序設計讓計算讓計算機有智能判斷力機有智能判斷力Page 2項目項目3 選擇結構程序設計選擇結構程序設計讓計算機有智能判斷力讓計算機有智能判斷力【知識目標知識目標】l了解選擇結構程序的概念。了解選擇結構程序的概念。l掌握三種形式的掌握三種形式的if語句和語句和switch語句的格式及語句的格式及功能。功能。l掌握關系運算符與關系表達式、邏輯運算符掌握關系運算符與關系表達式、邏輯運算符與邏輯表達式、條件運算符與條件表達式的使與邏輯表達式、條件運算符與條件表達式的使用方法。用方法。Page 3項目項目3 選擇結構程序設計選擇結構程序設計讓計算機有智能判斷力讓計算

2、機有智能判斷力【能力目標能力目標】l理解各個任務中的實例程序。理解各個任務中的實例程序。l會正確地選用會正確地選用if語句或語句或switch語句去解決遇到語句去解決遇到的實際問題。的實際問題。l能靈活地使用各種表達式去設置條件,具有能靈活地使用各種表達式去設置條件,具有編寫簡單選擇結構程序的能力。編寫簡單選擇結構程序的能力。Page 4任務任務3.1 雙分支選擇語句:智雙分支選擇語句:智能體重測量儀能體重測量儀任務提出任務提出通過分析智能體重測量儀程序,逐步掌握雙分支通過分析智能體重測量儀程序,逐步掌握雙分支if語句的基本格式及執(zhí)行流程,學會使用關系表語句的基本格式及執(zhí)行流程,學會使用關系表

3、達式正確地表示達式正確地表示if語句中的條件。理解任務給出語句中的條件。理解任務給出的相關實例程序,能做到舉一反三,觸類旁通。的相關實例程序,能做到舉一反三,觸類旁通。Page 5任務任務3.1 雙分支選擇語句:智雙分支選擇語句:智能體重測量儀能體重測量儀工作任務工作任務編寫一個智能體重測量儀程序:要求從鍵盤輸入編寫一個智能體重測量儀程序:要求從鍵盤輸入身高和體重后,能夠計算出體重指數(shù)。體重指數(shù)身高和體重后,能夠計算出體重指數(shù)。體重指數(shù)=體重體重(kg)/(身高身高)*2,并要求實現(xiàn)這樣的判斷:,并要求實現(xiàn)這樣的判斷:如果體重指數(shù)如果體重指數(shù)25,屬于正常;否則屬于過胖。,屬于正常;否則屬于過

4、胖。Page 6任務分析任務分析本項任務是一個典型的雙分支選擇事件,可以先通本項任務是一個典型的雙分支選擇事件,可以先通過輸入輸出函數(shù)接受身高與體重的輸入及提示文字過輸入輸出函數(shù)接受身高與體重的輸入及提示文字的顯示,然后按照公式計算出體重指數(shù),最后用的顯示,然后按照公式計算出體重指數(shù),最后用if語語句實現(xiàn)條件的判斷與兩種結果的處理。句實現(xiàn)條件的判斷與兩種結果的處理。變量:身高、體重、體重指數(shù)。變量:身高、體重、體重指數(shù)。體重指數(shù)計算公式:體重指數(shù)體重指數(shù)計算公式:體重指數(shù)=體重體重(kg)/(身高身高)*2。算法實現(xiàn):用算法實現(xiàn):用if語句給出條件,判斷體重指數(shù)是否小語句給出條件,判斷體重指數(shù)

5、是否小于于25,如果條件成立顯示正常,否則顯示過胖。,如果條件成立顯示正常,否則顯示過胖。變量定義:變量定義:float weight,height,index;分別代表體重、分別代表體重、身高、體重指數(shù)。身高、體重指數(shù)。任務任務3.1 雙分支選擇語句:智雙分支選擇語句:智能體重測量儀能體重測量儀Page 7任務任務3.1 雙分支選擇語句:智雙分支選擇語句:智能體重測量儀能體重測量儀任務實現(xiàn)任務實現(xiàn)智能體重測量儀程序具體代碼如下所示。智能體重測量儀程序具體代碼如下所示。#include void main() float weight,height,index; printf(n 請輸入你的體

6、重請輸入你的體重(千克千克):); scanf(%f,&weight); /*輸入體重輸入體重*/ printf(n 請輸入你的身高請輸入你的身高(米米):); scanf(%f,&height); /*輸入身高輸入身高*/ index=weight/(height*height); /*計算體重指數(shù)計算體重指數(shù)*/Page 8任務任務3.1 雙分支選擇語句:智雙分支選擇語句:智能體重測量儀能體重測量儀任務實現(xiàn)任務實現(xiàn)智能體重測量儀程序具體代碼如下所示。智能體重測量儀程序具體代碼如下所示。printf(n The index of your weight is: %f, ind

7、ex); if(index25) /*if條件判斷條件判斷*/ printf(n You are right!);/*分支一分支一*/ else printf (n You are fat!); /*分支二分支二*/Page 9任務任務3.1 雙分支選擇語句:智雙分支選擇語句:智能體重測量儀能體重測量儀任務實現(xiàn)任務實現(xiàn)程序運行后如圖程序運行后如圖3-1所示。所示。圖圖3-1 智能體重測量儀程序運行結果智能體重測量儀程序運行結果Page 10任務任務3.1 雙分支選擇語句:智雙分支選擇語句:智能體重測量儀能體重測量儀歸納總結歸納總結選擇結構又稱為分支結構或者選取結構,其執(zhí)選擇結構又稱為分支結構或

8、者選取結構,其執(zhí)行過程是依據(jù)一定的條件選擇執(zhí)行路徑,而不行過程是依據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴格按照語句出現(xiàn)的先后順序執(zhí)行的。所謂是嚴格按照語句出現(xiàn)的先后順序執(zhí)行的。所謂分支結構,是指程序在運行過程中根據(jù)條件有分支結構,是指程序在運行過程中根據(jù)條件有選擇性地執(zhí)行一些語句,故又稱為選擇結構。選擇性地執(zhí)行一些語句,故又稱為選擇結構。選擇結構屬于程序的三種基本結構之一。選擇結構屬于程序的三種基本結構之一。C語語言提供了言提供了“if語句語句”和和“switch語句語句”兩種分支兩種分支結構控制語句。上述程序?qū)儆谶x擇結構程序,結構控制語句。上述程序?qū)儆谶x擇結構程序,根據(jù)體重指數(shù)值進行判斷,顯示正

9、常或過胖,根據(jù)體重指數(shù)值進行判斷,顯示正?;蜻^胖,具有兩個分支,可以用雙分支具有兩個分支,可以用雙分支If語句處理,同語句處理,同時還需注意正確地使用關系表達式表示條件。時還需注意正確地使用關系表達式表示條件。Page 11任務任務3.1 雙分支選擇語句:智雙分支選擇語句:智能體重測量儀能體重測量儀3.1.1 雙分支雙分支if語句語句實現(xiàn)分支結構最常用的方法是采用實現(xiàn)分支結構最常用的方法是采用if語句,如智能體語句,如智能體重測量儀程序中的語句:重測量儀程序中的語句:if(index25) printf(n You are right!);else printf (n You are fat!

10、);Page 12任務任務3.1 雙分支選擇語句:智雙分支選擇語句:智能體重測量儀能體重測量儀3.1.1 雙分支雙分支if語句語句if語句用于判定所給定的條件是否滿足,程序根據(jù)判定語句用于判定所給定的條件是否滿足,程序根據(jù)判定的結果決定所執(zhí)行的操作。雙分支的結果決定所執(zhí)行的操作。雙分支If語句的基本形式:語句的基本形式:if(表達式表達式) 語句語句1;else 語句語句2;Page 13任務任務3.1 雙分支選擇語句:智雙分支選擇語句:智能體重測量儀能體重測量儀3.1.1 雙分支雙分支if語句語句執(zhí)行過程為:先計算執(zhí)行過程為:先計算“表達式表達式”的值,如果的值,如果“表達式表達式”的值為真

11、,則執(zhí)行語句的值為真,則執(zhí)行語句1,否則執(zhí)行語句,否則執(zhí)行語句2,其執(zhí)行過,其執(zhí)行過程如圖程如圖3-2所示。所示。圖圖3-2 雙分支雙分支if語句的執(zhí)行流程圖語句的執(zhí)行流程圖Page 14任務任務3.1 雙分支選擇語句:智雙分支選擇語句:智能體重測量儀能體重測量儀3.1.2 關系運算符關系運算符在在C語言中有以下關系運算符:語言中有以下關系運算符: 小于小于 大于大于=大于或等于大于或等于= 等于等于!= 不等于不等于Page 15任務任務3.1 雙分支選擇語句:智雙分支選擇語句:智能體重測量儀能體重測量儀3.1.3 關系表達式關系表達式關系表達式的一般形式為:關系表達式的一般形式為:表達式表

12、達式 關系運算符關系運算符 表達式表達式(1) 當關系成立時,表達式的值為邏輯真,用當關系成立時,表達式的值為邏輯真,用1(非非0)表示。表示。(2) 當關系不成立時,表達式的值為邏輯假,用當關系不成立時,表達式的值為邏輯假,用0來來表示。表示。這里的這里的0和和1在程序中被看作是整型量。在程序中被看作是整型量。Page 16任務任務3.2 單分支選擇語句:身單分支選擇語句:身高預測高預測任務提出任務提出通過分析身高預測程序,逐步掌握單分支通過分析身高預測程序,逐步掌握單分支if語句語句的基本形式及執(zhí)行流程,并且學會在的基本形式及執(zhí)行流程,并且學會在if語句中靈語句中靈活地使用條件表達式。理解

13、任務給出的相關實例活地使用條件表達式。理解任務給出的相關實例程序,能夠舉一反三、觸類旁通。程序,能夠舉一反三、觸類旁通。Page 17任務任務3.2 單分支選擇語句:身單分支選擇語句:身高預測高預測工作任務工作任務編寫一個具有身高預測功能的程序,預測依據(jù):影編寫一個具有身高預測功能的程序,預測依據(jù):影響小孩成人后身高的因素有遺傳、飲食習慣和體育響小孩成人后身高的因素有遺傳、飲食習慣和體育鍛煉情況等,另外小孩成人后的身高與其父母的身鍛煉情況等,另外小孩成人后的身高與其父母的身高和自身的性別密切相關。設高和自身的性別密切相關。設faHeight為其父身高,為其父身高,moHeight為其母身高,身

14、高預測公式為:男性成為其母身高,身高預測公式為:男性成人時身高人時身高=(faHeight+moHeight)*0.54(cm);女性;女性成人時身高成人時身高=(faHeight*0.923+moHeight)/2(cm),此外,如果喜愛體育鍛煉,那么可增加身高此外,如果喜愛體育鍛煉,那么可增加身高2%;如果有良好的衛(wèi)生飲食習慣,那么可增加身高如果有良好的衛(wèi)生飲食習慣,那么可增加身高1.5%。Page 18任務任務3.2 單分支選擇語句:身單分支選擇語句:身高預測高預測任務分析任務分析由于小孩成人后的身高除了與父母身高有關外,還由于小孩成人后的身高除了與父母身高有關外,還與其性別、是否喜愛體

15、育鍛煉、是否有良好的衛(wèi)生與其性別、是否喜愛體育鍛煉、是否有良好的衛(wèi)生飲食習慣有關,性別分男女,可構成雙分支選擇,飲食習慣有關,性別分男女,可構成雙分支選擇,而后兩項則屬于單分支選擇,所以此例需要綜合使而后兩項則屬于單分支選擇,所以此例需要綜合使用單分支與雙分支用單分支與雙分支if語句實現(xiàn)其中的選擇處理。語句實現(xiàn)其中的選擇處理。變量:父親身高、母親身高、孩子身高等。變量:父親身高、母親身高、孩子身高等。男性成人身高公式:男性成人身高公式:(faHeight+moHeight)*0.54(cm)。女性成人身高公式:女性成人身高公式:(faHeight*0.923+moHeight)/2(cm)。算

16、法實現(xiàn):用關系表達式寫出算法實現(xiàn):用關系表達式寫出if語句的條件,性別是語句的條件,性別是男否?愛好體育否?有好的飲食習慣否?根據(jù)條件男否?愛好體育否?有好的飲食習慣否?根據(jù)條件的真假分別執(zhí)行相關的分支程序。的真假分別執(zhí)行相關的分支程序。Page 19任務任務3.2 單分支選擇語句:身單分支選擇語句:身高預測高預測任務實現(xiàn)任務實現(xiàn)身高預測程序代碼如下所示。身高預測程序代碼如下所示。#include void main() char sex; /*孩子性別孩子性別*/ char sports; /*是否喜歡體育運動是否喜歡體育運動*/ char diet; /*是否有良好的飲食習慣是否有良好的飲

17、食習慣*/ float myHeight; /*孩子身高孩子身高*/ float faHeight; /*父親身高父親身高*/ float moHeight; /*母親身高母親身高*/Page 20任務任務3.2 單分支選擇語句:身單分支選擇語句:身高預測高預測任務實現(xiàn)任務實現(xiàn)身高預測程序代碼如下所示。身高預測程序代碼如下所示。 printf(你是男孩你是男孩(M) 還是女孩還是女孩(F)?); scanf(%1s, &sex); /*輸入父親身高輸入父親身高*/ printf(你輸入你爸爸的身高你輸入你爸爸的身高(cm):); scanf(%f, &faHeight); pr

18、intf(你輸入你媽媽的身高你輸入你媽媽的身高(cm):); scanf(%f, &moHeight); /*輸入母親身高輸入母親身高*/ printf(你是否喜歡體育鍛煉你是否喜歡體育鍛煉(Y/N)?); scanf(%1s, &sports); /*輸入是否喜歡體輸入是否喜歡體育鍛煉?育鍛煉?*/ printf(是否有良好的飲食習慣等條件是否有良好的飲食習慣等條件(Y/N)?);Page 21任務任務3.2 單分支選擇語句:身單分支選擇語句:身高預測高預測任務實現(xiàn)任務實現(xiàn)身高預測程序代碼如下所示。身高預測程序代碼如下所示。 scanf(%1s, &diet); /*

19、輸入是否有良好輸入是否有良好的飲食習慣?的飲食習慣?*/ if(sex=M) myHeight=(faHeight+moHeight)*0.54; /*計算男性成人時的身高計算男性成人時的身高*/ else myHeight=(faHeight*0.923+moHeight)/2.0;/*計計算女性成人時的身高算女性成人時的身高*/ if(sports=Y)Page 22任務任務3.2 單分支選擇語句:身單分支選擇語句:身高預測高預測任務實現(xiàn)任務實現(xiàn)身高預測程序代碼如下所示。身高預測程序代碼如下所示。 myHeight=myHeight*(1+0.02); /*喜歡體育鍛煉增加身高喜歡體育鍛煉

20、增加身高2%*/ if(diet=Y) myHeight=myHeight*(1+0.015);/*有良好的衛(wèi)生飲有良好的衛(wèi)生飲食習慣增加身高食習慣增加身高1.5%*/ printf(你的預測的身高是你的預測的身高是 %f(cm)n, myHeight);/*輸出預測的身高輸出預測的身高*/Page 23任務任務3.2 單分支選擇語句:身單分支選擇語句:身高預測高預測任務實現(xiàn)任務實現(xiàn)程序運行后按提示輸入相應信息如圖程序運行后按提示輸入相應信息如圖3-5所示。所示。圖圖3-5 程序運行結果程序運行結果Page 24任務任務3.2 單分支選擇語句:身單分支選擇語句:身高預測高預測3.2.1 單分支

21、單分支if語句語句程序中的程序中的“if(sports=Y) myHeight=myHeight*(1+0.02);”為單分支為單分支if語句。語句。if語語句用于判定所給定的條件是否滿足,程序根據(jù)判定的句用于判定所給定的條件是否滿足,程序根據(jù)判定的結果決定是否執(zhí)行相關的操作。單分支結果決定是否執(zhí)行相關的操作。單分支If語句基本形式:語句基本形式:if(表達式表達式) 語句語句Page 25任務任務3.2 單分支選擇語句:身單分支選擇語句:身高預測高預測3.2.1 單分支單分支if語句語句執(zhí)行過程為:首先計算執(zhí)行過程為:首先計算“表達式表達式”的值,當?shù)闹担敗氨磉_式表達式”的值為真時,執(zhí)行的

22、值為真時,執(zhí)行“語句語句”。其執(zhí)行過程如圖。其執(zhí)行過程如圖3-6所示。所示。圖圖3-6 單分支單分支if語句的執(zhí)行流程語句的執(zhí)行流程Page 26任務任務3.2 單分支選擇語句:身單分支選擇語句:身高預測高預測3.2.2 條件運算符與條件表達式條件運算符與條件表達式條件運算符為和條件運算符為和:,它是一個三目運算符,即有三個參,它是一個三目運算符,即有三個參與運算的量。與運算的量。由條件運算符組成條件表達式的一般形式為:由條件運算符組成條件表達式的一般形式為:表達式表達式1?表達式表達式2:表達式表達式3Page 27任務任務3.3 邏輯運算符:電梯控制邏輯運算符:電梯控制任務提出任務提出通過

23、分析電梯控制程序,進一步加深對單分支通過分析電梯控制程序,進一步加深對單分支if語句的理解,掌握邏輯運算符及表達式在語句的理解,掌握邏輯運算符及表達式在if語句語句中的使用。理解任務給出的相關實例程序,并能中的使用。理解任務給出的相關實例程序,并能夠舉一反三、觸類旁通。夠舉一反三、觸類旁通。Page 28任務任務3.3 邏輯運算符:電梯控制邏輯運算符:電梯控制工作任務工作任務本項任務是為電梯廠商編寫一個電梯控制程序,本項任務是為電梯廠商編寫一個電梯控制程序,要求程序可實現(xiàn)如下功能:輸入樓層數(shù),如果樓要求程序可實現(xiàn)如下功能:輸入樓層數(shù),如果樓層是層是13,顯示提示,顯示提示“請走樓梯!請走樓梯!

24、”;如果樓;如果樓層是層是420,顯示提示,顯示提示“請進電梯!請進電梯!”;如果輸;如果輸入的是入的是120之外的數(shù)據(jù),顯示提示之外的數(shù)據(jù),顯示提示“本樓只有本樓只有120層,輸入數(shù)據(jù)錯誤,請重新輸入!層,輸入數(shù)據(jù)錯誤,請重新輸入!”。Page 29任務任務3.3 邏輯運算符:電梯控制邏輯運算符:電梯控制任務分析任務分析電梯控制程序需要對所輸入的樓層數(shù)進行判斷,電梯控制程序需要對所輸入的樓層數(shù)進行判斷,然后決定顯示何種提示,它具有單分支結構的特然后決定顯示何種提示,它具有單分支結構的特點,可以用點,可以用if單分支語句來編程,其中的條件由單分支語句來編程,其中的條件由于每種條件的取值有多個,

25、需要用邏輯表達式來于每種條件的取值有多個,需要用邏輯表達式來設置條件。設置條件。Page 30任務任務3.3 邏輯運算符:電梯控制邏輯運算符:電梯控制任務實現(xiàn)任務實現(xiàn)電梯控制程序具體代碼如下所示。電梯控制程序具體代碼如下所示。#include void main() int x; printf(請輸入你所到的樓層數(shù)請輸入你所到的樓層數(shù):); scanf(%d,&x); if(x20) printf(n本樓只有本樓只有120層,輸入數(shù)據(jù)錯誤,請層,輸入數(shù)據(jù)錯誤,請重新輸入重新輸入!);Page 31任務任務3.3 邏輯運算符:電梯控制邏輯運算符:電梯控制任務實現(xiàn)任務實現(xiàn)電梯控制程序具體代

26、碼如下所示。電梯控制程序具體代碼如下所示。 if(x=1&x3&x=20) printf(n請進電梯請進電梯!);Page 32任務任務3.3 邏輯運算符:電梯控制邏輯運算符:電梯控制任務實現(xiàn)任務實現(xiàn)程序運行后三種不同輸入其不同結果如圖程序運行后三種不同輸入其不同結果如圖3-9圖圖3-11所示。所示。(1) 輸入層樓輸入層樓25:圖圖3-9 輸入輸入25程序運行結果程序運行結果Page 33任務任務3.3 邏輯運算符:電梯控制邏輯運算符:電梯控制任務實現(xiàn)任務實現(xiàn)程序運行后三種不同輸入其不同結果如圖程序運行后三種不同輸入其不同結果如圖3-9圖圖3-11所示。所示。(2) 輸入層樓

27、輸入層樓2:圖圖3-10 輸入輸入2程序運行結果程序運行結果Page 34任務任務3.3 邏輯運算符:電梯控制邏輯運算符:電梯控制任務實現(xiàn)任務實現(xiàn)程序運行后三種不同輸入其不同結果如圖程序運行后三種不同輸入其不同結果如圖3-9圖圖3-11所示。所示。(3) 輸入層樓輸入層樓5:圖圖3-11 輸入輸入5程序運行結果程序運行結果Page 35任務任務3.3 邏輯運算符:電梯控制邏輯運算符:電梯控制3.3.1 邏輯運算符邏輯運算符!(邏輯非邏輯非)|(邏輯或邏輯或)&(邏輯與邏輯與)Page 36任務任務3.3 邏輯運算符:電梯控制邏輯運算符:電梯控制3.3.1 邏輯運算符邏輯運算符圖圖3-1

28、2 邏輯運算符在所有運算符中的優(yōu)先級邏輯運算符在所有運算符中的優(yōu)先級Page 37任務任務3.3 邏輯運算符:電梯控制邏輯運算符:電梯控制3.3.2 邏輯表達式邏輯表達式表表3-1 邏輯運算法則邏輯運算法則ab!aa&ba|b非非0非非0011非非000010非非010100100說明說明0變變1,非,非0變變0只有兩者均為非只有兩者均為非0時才時才為為1只有兩者均為只有兩者均為0時才時才為為0Page 38任務任務3.4 多分支選擇語句多分支選擇語句ifelse:智能體重測量儀智能體重測量儀任務提出任務提出通過分析智能體重測量儀程序,逐步掌握多分支通過分析智能體重測量儀程序,逐步掌握

29、多分支if語句的基本形式及執(zhí)行流程,理解任務給出的語句的基本形式及執(zhí)行流程,理解任務給出的相關實例程序,學會使用相關實例程序,學會使用if 語句嵌套去解決常見語句嵌套去解決常見的問題。的問題。Page 39任務任務3.4 多分支選擇語句多分支選擇語句ifelse:智能體重測量儀智能體重測量儀工作任務工作任務編寫一個體重測量儀程序:要求從鍵盤輸入身高編寫一個體重測量儀程序:要求從鍵盤輸入身高和體重后,計算出體重指數(shù)并根據(jù)體重指數(shù)顯示和體重后,計算出體重指數(shù)并根據(jù)體重指數(shù)顯示此人體重狀態(tài)。此人體重狀態(tài)。體重指數(shù)體重指數(shù)=體重體重(kg)/(身高身高)2。要求實現(xiàn)如下的判斷。要求實現(xiàn)如下的判斷。偏瘦

30、:體重指數(shù)偏瘦:體重指數(shù)18。正常:正常:18體重指數(shù)體重指數(shù)25。微胖:微胖:25體重指數(shù)體重指數(shù)30。較胖:較胖:30體重指數(shù)體重指數(shù)35。肥胖:肥胖:35體重指數(shù)體重指數(shù)40。很胖:體重指數(shù)很胖:體重指數(shù)40。Page 40任務任務3.4 多分支選擇語句多分支選擇語句ifelse:智能體重測量儀智能體重測量儀任務分析任務分析由于智能體重測量儀需要將計算出的可能體重指由于智能體重測量儀需要將計算出的可能體重指數(shù)劃分為六個等級,這六個等級對應有六個條件,數(shù)劃分為六個等級,這六個等級對應有六個條件,且相鄰條件間又有一定的聯(lián)系,可以使用具有多且相鄰條件間又有一定的聯(lián)系,可以使用具有多分支選擇特點

31、的分支選擇特點的if語句來編寫此程序。語句來編寫此程序。Page 41任務任務3.4 多分支選擇語句多分支選擇語句ifelse:智能體重測量儀智能體重測量儀任務實現(xiàn)任務實現(xiàn)智能體重測量儀程序具體代碼如下。智能體重測量儀程序具體代碼如下。#include void main() float weight,height,index; printf(n 請輸入你的體重請輸入你的體重(kg):); scanf(%f, &weight); /*輸入體重值輸入體重值*/ printf(n 請輸入你的身高請輸入你的身高(m):); scanf(%f, &height); /*輸入身高值輸入身

32、高值*/ index=weight/(height*height); /*計算體重指數(shù)計算體重指數(shù)*/Page 42任務任務3.4 多分支選擇語句多分支選擇語句ifelse:智能體重測量儀智能體重測量儀任務實現(xiàn)任務實現(xiàn)智能體重測量儀程序具體代碼如下。智能體重測量儀程序具體代碼如下。printf(你的體重系數(shù)是你的體重系數(shù)是: %f, index); /*輸出體重輸出體重指數(shù)值指數(shù)值*/ if(index18) printf(偏瘦偏瘦!n); else if(index25)printf(標準標準!n); else if(index30) printf(微胖微胖!n); /*體體重指數(shù)介于重指數(shù)

33、介于25與與30之間之間*/ else if(index35) printf(較胖較胖!n); else if(index40) printf(肥胖肥胖!n); else printf(很胖很胖!n);Page 43任務任務3.4 多分支選擇語句多分支選擇語句ifelse:智能體重測量儀智能體重測量儀任務實現(xiàn)任務實現(xiàn)程序運行后如圖程序運行后如圖3-14所示。所示。圖圖3-14 智能體重測量儀程序運行結果智能體重測量儀程序運行結果Page 44任務任務3.4 多分支選擇語句多分支選擇語句ifelse:智能體重測量儀智能體重測量儀3.4.1 多分支多分支if 語句語句智能體重測量儀程序中使用了下列

34、語句:智能體重測量儀程序中使用了下列語句:if(index18) printf(偏瘦偏瘦!n);else if(index25) printf(標準標準!n);else if(index30) printf(微胖微胖!n);else if(index35) printf(較胖較胖!n);else if(index40) printf(肥胖肥胖!n);else printf(很胖很胖!n);Page 45任務任務3.4 多分支選擇語句多分支選擇語句ifelse:智能體重測量儀智能體重測量儀3.4.1 多分支多分支if 語句語句多分支多分支if語句的基本形式為:語句的基本形式為:if(表達式表達式

35、1) 語句語句1;else if(表達式表達式2) 語句語句2;else if(表達式表達式3) 語句語句3;else if(表達式表達式m) 語句語句m;else 語句語句n;Page 46任務任務3.4 多分支選擇語句多分支選擇語句ifelse:智能體重測量儀智能體重測量儀3.4.1 多分支多分支if 語句語句圖圖3-15 多分支多分支if語句執(zhí)行流程語句執(zhí)行流程Page 47任務任務3.4 多分支選擇語句多分支選擇語句ifelse:智能體重測量儀智能體重測量儀3.4.2 if語句的嵌套語句的嵌套在在C語言中,除了使用上述多分支語言中,除了使用上述多分支if語句外,還可以采用語句外,還可以

36、采用if語句的嵌套來處理多分支情況。語句的嵌套來處理多分支情況。(1) if(表達式表達式) if(表達式表達式) 語句語句1; else 語句語句2; else if(表達式表達式) 語句語句3; else 語句語句4;Page 48任務任務3.4 多分支選擇語句多分支選擇語句ifelse:智能體重測量儀智能體重測量儀3.4.2 if語句的嵌套語句的嵌套在在C語言中,除了使用上述多分支語言中,除了使用上述多分支if語句外,還可以采用語句外,還可以采用if語句的嵌套來處理多分支情況。語句的嵌套來處理多分支情況。(2) if(表達式表達式)if(表達式表達式) 語句語句1; else 語句語句2

37、; else 語句語句3;Page 49任務任務3.4 多分支選擇語句多分支選擇語句ifelse:智能體重測量儀智能體重測量儀3.4.2 if語句的嵌套語句的嵌套在在C語言中,除了使用上述多分支語言中,除了使用上述多分支if語句外,還可以采用語句外,還可以采用if語句的嵌套來處理多分支情況。語句的嵌套來處理多分支情況。(3) if(表達式表達式)語句語句1;else if(表達式表達式) 語句語句2; else 語句語句3;Page 50任務任務3.5 switch語句:模擬自動語句:模擬自動飲料機飲料機任務提出任務提出通過分析模擬自動飲料機程序,逐步掌握通過分析模擬自動飲料機程序,逐步掌握s

38、witch語句基本形式及執(zhí)行過程。當語句基本形式及執(zhí)行過程。當switch語語句中存在若干分支需要執(zhí)行相同操作時,會使多句中存在若干分支需要執(zhí)行相同操作時,會使多個個case分支共用一組語句,簡化程序的內(nèi)容,分支共用一組語句,簡化程序的內(nèi)容,提高編程效率。理解任務給出的相關實例程序,提高編程效率。理解任務給出的相關實例程序,能夠舉一反三、觸類旁通。能夠舉一反三、觸類旁通。Page 51任務任務3.5 switch語句:模擬自動語句:模擬自動飲料機飲料機工作任務工作任務編寫一個程序用于模擬自動飲料機,先在屏幕中編寫一個程序用于模擬自動飲料機,先在屏幕中顯示以下提示信息:顯示以下提示信息:=自動飲

39、料機自動飲料機 =1可口可樂可口可樂2雪碧雪碧3芬達芬達4百事可樂百事可樂5非??蓸贩浅?蓸樊斴斎肟晒┻x擇的合法數(shù)字后,即可輸出可獲得當輸入可供選擇的合法數(shù)字后,即可輸出可獲得的相應飲料名稱。的相應飲料名稱。Page 52任務任務3.5 switch語句:模擬自動語句:模擬自動飲料機飲料機任務分析任務分析前面介紹的前面介紹的if語句當要表示兩種以上條件的選擇語句當要表示兩種以上條件的選擇時,則要用時,則要用if語句的第三種形式或者語句的第三種形式或者if語句的嵌語句的嵌套形式,當嵌套的套形式,當嵌套的if語句比較多時,程序冗長且語句比較多時,程序冗長且可讀性降低。在可讀性降低。在C語言中,可直

40、接用語言中,可直接用switch語句語句來實現(xiàn)多種情況的選擇結構。模擬自動飲料機程來實現(xiàn)多種情況的選擇結構。模擬自動飲料機程序可能的輸入情況有序可能的輸入情況有6種,用種,用switch語句處理起語句處理起來非常方便。來非常方便。Page 53任務任務3.5 switch語句:模擬自動語句:模擬自動飲料機飲料機任務實現(xiàn)任務實現(xiàn)模擬自動飲料機程序代碼如下所示。模擬自動飲料機程序代碼如下所示。#include stdio.hvoid main() int button; printf(=自動飲料機自動飲料機 =n); printf(1.可口可樂可口可樂n); printf(2.雪碧雪碧n); pr

41、intf(3.芬達芬達n); printf(4.百事可樂百事可樂n); printf(5.非??蓸贩浅?蓸穘);Page 54任務任務3.5 switch語句:模擬自動語句:模擬自動飲料機飲料機任務實現(xiàn)任務實現(xiàn)模擬自動飲料機程序代碼如下所示。模擬自動飲料機程序代碼如下所示。 printf(請按請按1-5鍵選擇飲料鍵選擇飲料:n); scanf(%d,&button); /*輸入選擇輸入選擇*/ switch(button) /*對輸入進行判斷對輸入進行判斷*/ case 1:printf(n你獲得一聽可口可樂你獲得一聽可口可樂n);break; case 2:printf(n你獲得一聽

42、雪碧你獲得一聽雪碧n);break; case 3:printf(n你獲得一聽芬達你獲得一聽芬達n);break; case 4:printf(n你獲得一聽百事可樂你獲得一聽百事可樂n);break;Page 55任務任務3.5 switch語句:模擬自動語句:模擬自動飲料機飲料機任務實現(xiàn)任務實現(xiàn)模擬自動飲料機程序代碼如下所示。模擬自動飲料機程序代碼如下所示。 case 5:printf(n你獲得一聽非??蓸纺惬@得一聽非??蓸穘);break; default:printf(n非法操作非法操作!n);break; Page 56任務任務3.5 switch語句:模擬自動語句:模擬自動飲料機飲料

43、機任務實現(xiàn)任務實現(xiàn)程序運行后如圖程序運行后如圖3-18所示。所示。圖圖3-18 自動飲料機程序運行結果自動飲料機程序運行結果Page 57任務任務3.5 switch語句:模擬自動語句:模擬自動飲料機飲料機3.5.1 switch開關語句開關語句自動飲料機程序中片段自動飲料機程序中片段switch(button) case 1:printf(n你獲得一聽可口可樂你獲得一聽可口可樂n);break; case 2:printf(n你獲得一聽雪碧你獲得一聽雪碧n);break; case 3:printf(n你獲得一聽芬達你獲得一聽芬達n);break; case 4:printf(n你獲得一聽百

44、事可樂你獲得一聽百事可樂n);break; case 5:printf(n你獲得一聽非??蓸纺惬@得一聽非常可樂n);break; default:printf(n非法操作非法操作!n);break;Page 58任務任務3.5 switch語句:模擬自動語句:模擬自動飲料機飲料機3.5.1 switch開關語句開關語句switch語句的一般形式為:語句的一般形式為:switch(表達式表達式) case常量表達式常量表達式1: 語句語句1; case常量表達式常量表達式2: 語句語句2; case常量表達式常量表達式n: 語句語句n; default : 語句語句n+1;Page 59任務任務

45、3.5 switch語句:模擬自動語句:模擬自動飲料機飲料機3.5.2 處理多個不同分支相同操作的處理多個不同分支相同操作的switch語句語句【練習練習3-9】從鍵盤上輸入一個百分制成績從鍵盤上輸入一個百分制成績score,按,按下列原則輸出其等級:下列原則輸出其等級:score90,等級為,等級為A;80score90,等級為,等級為B;70score80,等級為,等級為C;60score70,等級為,等級為D;score60,等級為,等級為E。程序具體代碼如下所示。程序具體代碼如下所示。#includemain() int score, grade; printf(“Input a sc

46、ore(0100): ”); scanf(“%d”, &score);Page 60任務任務3.5 switch語句:模擬自動語句:模擬自動飲料機飲料機3.5.2 處理多個不同分支相同操作的處理多個不同分支相同操作的switch語句語句grade = score/10; /*將成績整除將成績整除10,轉化成,轉化成switch語句中的語句中的case標號標號*/ switch (grade) case 10: case 9: printf(“grade=An”); break; case 8: printf(grade=Bn); break; case 7: printf(grade=

47、Cn); break; case 6: printf(grade=Dn); break; case 5: case 4: case 3: case 2:Page 61任務任務3.5 switch語句:模擬自動語句:模擬自動飲料機飲料機3.5.2 處理多個不同分支相同操作的處理多個不同分支相同操作的switch語句語句 case 1: case 0: printf(“grade=En”); break; default: printf(“The score is out of range!n”); Page 62任務任務3.5 switch語句:模擬自動語句:模擬自動飲料機飲料機3.5.2 處理

48、多個不同分支相同操作的處理多個不同分支相同操作的switch語句語句程序運行后如圖程序運行后如圖3-21所示。所示。圖圖3-21 練習練習3-9程序運行結果程序運行結果Page 63任務任務3.6 實例分析:簡單的計算實例分析:簡單的計算器程序器程序任務提出任務提出通過分析簡單的計算器程序,進一步掌握通過分析簡單的計算器程序,進一步掌握switch語句的格式及執(zhí)行流程,領會語句的格式及執(zhí)行流程,領會break語句語句跳出跳出switch語句的方法,理解任務給出的相關語句的方法,理解任務給出的相關實例程序,初步樹立選擇結構程序設計的基本思實例程序,初步樹立選擇結構程序設計的基本思路,能獨立地編寫

49、出一些簡單的選擇結構程序。路,能獨立地編寫出一些簡單的選擇結構程序。Page 64任務任務3.6 實例分析:簡單的計算實例分析:簡單的計算器程序器程序工作任務工作任務編寫一個簡單的計算器程序,當用戶通過鍵盤輸編寫一個簡單的計算器程序,當用戶通過鍵盤輸入兩個操作數(shù)和一個四則運算符后,程序會輸出入兩個操作數(shù)和一個四則運算符后,程序會輸出計算的結果。計算的結果。Page 65任務任務3.6 實例分析:簡單的計算實例分析:簡單的計算器程序器程序任務分析任務分析本例程序可以使用本例程序可以使用switch語句對運算符進行判語句對運算符進行判斷,根據(jù)不同運算符輸出不同的運算值。同時還斷,根據(jù)不同運算符輸出

50、不同的運算值。同時還要考慮到:如果輸入的運算符是除法,則除數(shù)不要考慮到:如果輸入的運算符是除法,則除數(shù)不能為零。所以在此能為零。所以在此switch分支語句中需要使用分支語句中需要使用雙分支雙分支if語句進行選擇控制,綜合運用多種分支語句進行選擇控制,綜合運用多種分支語句才能順利解決這一問題。語句才能順利解決這一問題。Page 66任務任務3.6 實例分析:簡單的計算實例分析:簡單的計算器程序器程序任務實現(xiàn)任務實現(xiàn)簡單的計算器程序具體代碼如下所示。簡單的計算器程序具體代碼如下所示。#include #include void main() float data1, data2; /*定義兩個操

51、作符定義兩個操作符*/ char op; /*定義運算符定義運算符*/ printf(Please enter the expression:n); scanf(%f%1s%f, &data1, &op, &data2); /*輸入運算表達式輸入運算表達式*/Page 67任務任務3.6 實例分析:簡單的計算實例分析:簡單的計算器程序器程序任務實現(xiàn)任務實現(xiàn)簡單的計算器程序具體代碼如下所示。簡單的計算器程序具體代碼如下所示。switch (op) /*根據(jù)輸入的運算符確定要根據(jù)輸入的運算符確定要執(zhí)行的運算執(zhí)行的運算*/ case +:printf(%f+%f=%fn, d

52、ata1, data2, data1+data2); break; case -:printf(%f-%f=%fn, data1, data2, data1-data2); break; case *:printf(%f*%f=%fn, data1, data2, data1*data2); break;Page 68任務任務3.6 實例分析:簡單的計算實例分析:簡單的計算器程序器程序任務實現(xiàn)任務實現(xiàn)簡單的計算器程序具體代碼如下所示。簡單的計算器程序具體代碼如下所示。 case /:if (fabs(data2) = 1e-7)/*與實數(shù)與實數(shù)0比較比較*/ printf(Division b

53、y zero!n); else printf(%f/%f=%fn, data1, data2, data1/data2); break; default:printf(Unknown operator!n); Page 69任務任務3.6 實例分析:簡單的計算實例分析:簡單的計算器程序器程序任務實現(xiàn)任務實現(xiàn)程序運行后如圖程序運行后如圖3-22所示。所示。圖圖3-22 簡單計算器程序運行結果簡單計算器程序運行結果Page 70任務任務3.6 實例分析:簡單的計算實例分析:簡單的計算器程序器程序3.6.1 程序中分支語句應用程序中分支語句應用簡單計算器程序中片段簡單計算器程序中片段case /:i

54、f (fabs(data2) =5 or a=5|a=5 &a=5|ay|xz); printf(%dn,t);習習 題題一、選擇題一、選擇題3下列程序執(zhí)行后的輸出結果是下列程序執(zhí)行后的輸出結果是( )。AG BH CE DJmain() int x=d; printf(%cn,A+(x-a+1); 習習 題題一、選擇題一、選擇題4有如下程序段有如下程序段執(zhí)行該程序段后,執(zhí)行該程序段后,x的值為的值為( )。AtureBfalse C0 D1int a=14,b=15,x;char c=A;x=(a&b)&(cB);習習 題題一、選擇題一、選擇題5若變量若變量c為為char類型,能正確判斷出類型,能正確判斷出c為大寫字母的表達式是為大寫字母的表達式是( )。AA=c=A)|(c=Z)C(A=c)D(c=A)&(c=Z)6運行程序:運行程序:則輸出結果是則輸出結果是( )。A0 B1 C1.5D結果不確定結果不確定main) int x=1.5; char z=a; printf(%dn,(x2)&(zz);習習 題題一、選擇題一、選擇題7若若a為為int類型,且其值為類型,且其值為5,則執(zhí)行表達式,則執(zhí)行表達式a+=a-=a*a后,后,a的值是的值是( )。A-5 B-40 C-15D不確定不確定8設設x、y、t均為

溫馨提示

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

評論

0/150

提交評論