版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語言程序設(shè)計(jì)第3章選擇結(jié)構(gòu)程序設(shè)計(jì)脈絡(luò)導(dǎo)圖C語言程序設(shè)計(jì)技能目標(biāo)C語言程序設(shè)計(jì)(1)掌握結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)。(2)掌握不同形式的if語句的格式,掌握其實(shí)現(xiàn)選擇結(jié)構(gòu)的方法。(3)掌握使用switch語句的格式及應(yīng)用方法。(4)掌握避免使用選擇結(jié)構(gòu)時(shí)常見的錯(cuò)誤,能熟練編寫選擇結(jié)構(gòu)程序。素質(zhì)目標(biāo)C語言程序設(shè)計(jì)(1)通過算法流程圖的講解,學(xué)會(huì)做一個(gè)凡事有條理的人,懂得按照事情的計(jì)劃和順序來做,學(xué)會(huì)統(tǒng)籌管理和節(jié)約時(shí)間,提高學(xué)習(xí)和辦事的效率。(2)通過多種選擇結(jié)構(gòu)的編程練習(xí),使同學(xué)們掌握選擇結(jié)構(gòu)的概念及多種語句的使用,培養(yǎng)同學(xué)們將知識(shí)應(yīng)用于解決實(shí)際問題的意識(shí)。(3)通過對(duì)易犯錯(cuò)誤進(jìn)行整理和案例分析,培養(yǎng)同學(xué)們良好的編程習(xí)慣,樹立問題意識(shí),提升是我的靈活性,從而提升自主同學(xué)們的學(xué)習(xí)能力。3.1選擇結(jié)構(gòu)if語句C語言程序設(shè)計(jì)if在英文中的含義是“如果”,也就意味著判斷。C語言用if語句可以構(gòu)成分支結(jié)構(gòu)。它根據(jù)給定的條件進(jìn)行判斷,以決定執(zhí)行某個(gè)分支程序段。if語句一般格式如下:if(表達(dá)式) 語句其中:表達(dá)式一般為邏輯表達(dá)式或關(guān)系表達(dá)式。語句可以是一條簡(jiǎn)單的語句或多條語句,當(dāng)為多條語時(shí),需要用“{}”將這些語句括起來,構(gòu)成復(fù)合語句。if語句的執(zhí)行過程是:當(dāng)表達(dá)式的值為真(非0)時(shí),執(zhí)行語句,否則直接執(zhí)行if語句下面的語句。if語句形式C語言程序設(shè)計(jì)【例3-1】編程實(shí)現(xiàn),輸入兩個(gè)整數(shù),輸出這兩個(gè)數(shù)中較大的數(shù)。運(yùn)行結(jié)果語句編寫請(qǐng)輸入兩個(gè)整數(shù):533兩數(shù)中較大的數(shù)為:33
3.1選擇結(jié)構(gòu)if語句intmain(){ inta,b,max; printf("請(qǐng)輸入兩個(gè)整數(shù):"); scanf("%d%d",&a,&b); max=a; /*假設(shè)a是較大的并賦值給max*/ if(a<b) /*若a比b小,將b賦給max*/ max=b; printf("兩數(shù)中較大的數(shù)為:%d\n",max); return0; }程序說明:定義三個(gè)變量a、變量b和變量max,用來存放輸入的兩個(gè)整數(shù)和較大數(shù)。從鍵盤輸入兩個(gè)整數(shù),首先假設(shè)a是較大數(shù),將a的值賦給max,然后使用if語句進(jìn)行條件判斷,如果a小于b,則b為較大數(shù),即將b的值賦給max。3.1選擇結(jié)構(gòu)if語句C語言程序設(shè)計(jì)名師點(diǎn)睛(1)if后面的表達(dá)式必須用“()”括起來。(2)if后面的表達(dá)式可以是關(guān)系表達(dá)式、邏輯表達(dá)式、算術(shù)表達(dá)式等。(3)表達(dá)式中一定要區(qū)分賦值運(yùn)算符“=”和關(guān)系運(yùn)算符“==”。例如,if(x==33)判斷x的值是否等于33,而if(x=33)則是把33賦值給x,所以表達(dá)式的值為33(非0),即為真。3.1選擇結(jié)構(gòu)if語句C語言程序設(shè)計(jì)if語句只允許在條件為真時(shí)指定要執(zhí)行的語句,而if-else語句還可以在條件為假時(shí)指定要執(zhí)行的語句。if-else語句的一般格式如下:if(表達(dá)式)
語句1else
語句2if-else語句的執(zhí)行過程是:當(dāng)表達(dá)式為真(非0)時(shí),執(zhí)行語句1,否則執(zhí)行語句2。if-esle語句形式3.1選擇結(jié)構(gòu)if語句C語言程序設(shè)計(jì)名師點(diǎn)睛(1)“語句1”和“語句2”是“內(nèi)嵌語句”,它們是if-else語句中的一部分。每個(gè)內(nèi)嵌語句的末尾都應(yīng)該有分號(hào)。(2)else子句不能作為語句單獨(dú)使用,它必須是if語句的一部分,與if配對(duì)使用。(3)“語句1”和“語句2”可以是一個(gè)簡(jiǎn)單的語句,也可以是一個(gè)包括多個(gè)語句的復(fù)合語句。(4)內(nèi)嵌語句也可以是一個(gè)if語句,這就形成了if嵌套。C語言程序設(shè)計(jì)【例3-2】?jī)焊琛凹t綠燈,大眼睛,一閃一閃要看清。紅燈停,綠燈行,黃燈牢記準(zhǔn)備停。”根據(jù)輸入信號(hào)燈s的值,輸出車輛通行情況。運(yùn)行結(jié)果語句編寫請(qǐng)輸入信號(hào)燈的值:-3請(qǐng)及時(shí)停車!
3.1選擇結(jié)構(gòu)if語句intmain(){ ints; /*定義整型變量s表示交通信號(hào)燈*/ printf("請(qǐng)輸入信號(hào)燈的值:"); scanf("%d",&s); if(s==1) /*s==1,表示綠燈亮*/ printf("請(qǐng)車輛有序通行!\n"); else /*s輸入其他值,表示紅燈亮*/ printf("請(qǐng)及時(shí)停車!\n"); return0; }程序說明:根據(jù)輸入信號(hào)燈的值,輸出車輛通行情況。使用if-else語句進(jìn)行條件判斷,如果輸入信號(hào)燈s的值等于1,條件成立,輸出車輛有序通行。輸入其他值else的條件成立,輸出請(qǐng)及時(shí)停車!C語言程序設(shè)計(jì)【例3-3】編程實(shí)現(xiàn),輸入兩個(gè)整數(shù),輸出這兩個(gè)數(shù)中較大的數(shù)(用if-else語句實(shí)現(xiàn))。運(yùn)行結(jié)果語句編寫請(qǐng)輸入兩個(gè)整數(shù):533max=33
3.1選擇結(jié)構(gòu)if語句intmain(){ inta,b; printf("請(qǐng)輸入兩個(gè)整數(shù):"); scanf("%d%d",&a,&b); if(a>b) /*若a大于b,輸出a*/ printf("max=%d\n",a); else /*否則輸出b*/ printf("max=%d\n",b); return0; }程序說明:使用if-else語句進(jìn)行條件判斷,如果a大于b,則a為較大數(shù),if條件成立,輸出a的值,否則b為較大數(shù),else條件成立,輸出b的值。3.1選擇結(jié)構(gòu)if語句C語言程序設(shè)計(jì)if-else-if語句,其一般形式如下:if(表達(dá)式1) 語句1elseif(表達(dá)式2) 語句2elseif(表達(dá)式3) 語句3…elseif(表達(dá)式n) 語句nelse 語句n+1if-else-if語句形式C語言程序設(shè)計(jì)【例3-4】在【例3-2】的基礎(chǔ)上,完善信號(hào)燈有紅綠黃三種情況下,車輛的通行情況。運(yùn)行結(jié)果語句編寫請(qǐng)輸入信號(hào)燈s的值:-3黃燈亮,請(qǐng)準(zhǔn)備停車。
3.1選擇結(jié)構(gòu)if語句intmain(){ ints; /*定義整型變量s表示交通信號(hào)燈*/ printf("請(qǐng)輸入信號(hào)燈s的值:"); scanf("%d",&s); if(s==1) /*s==1,表示綠燈亮*/ printf("請(qǐng)車輛有序通行!\n"); elseif(s==0)/*s==0,表示紅燈亮*/ printf("請(qǐng)及時(shí)停車!\n"); else/*s輸入其他值,表示黃燈亮*/ printf("黃燈亮,請(qǐng)準(zhǔn)備停車。\n"); return0; }程序說明:假設(shè)s==1,表示綠燈亮,s==0,表示紅燈亮,其他值表示黃燈亮。當(dāng)輸入s的值為1時(shí),if語句條件成立,輸出請(qǐng)車輛有序通行!當(dāng)輸入s的值為0時(shí),elseif語句條件成立,輸出請(qǐng)及時(shí)停車!當(dāng)輸入其他值時(shí),輸出黃燈亮,請(qǐng)準(zhǔn)備停車。C語言程序設(shè)計(jì)【例3-5】學(xué)生成績(jī)可分為百分制和五級(jí)制,根據(jù)輸入的百分制成績(jī)score,轉(zhuǎn)換成相應(yīng)的五級(jí)制成績(jī)后輸出。運(yùn)行結(jié)果語句編寫請(qǐng)輸入學(xué)生成績(jī):95優(yōu)秀
3.1選擇結(jié)構(gòu)if語句intmain(){ intscore; printf("請(qǐng)輸入學(xué)生成績(jī):"); scanf("%d",&score); if(score>100||score<0) printf("您輸入的成績(jī)不正確!\n"); elseif(score>=90) printf("優(yōu)秀\n"); elseif(score>=80) printf("良好\n"); elseif(score>=70) printf("中等\n"); elseif(score>=60) printf("及格\n"); else printf("不及格\n"); return0; }程序說明:根據(jù)對(duì)一系列互斥條件的判斷來選擇執(zhí)行哪條語句。每個(gè)else本身都隱含了一個(gè)條件,如第1個(gè)else實(shí)質(zhì)上表示條件score>=0&&score<=100成立,此隱含條件與對(duì)應(yīng)的if所給出的條件完全相反。3.1選擇結(jié)構(gòu)if語句C語言程序設(shè)計(jì)(1)在if子句中嵌套具有else子句if語句。if(表達(dá)式1) if(表達(dá)式2) 語句1 else 語句2else 語句3當(dāng)表達(dá)1的值為非0時(shí),執(zhí)行內(nèi)嵌的if-else語句;當(dāng)表達(dá)式1的值為0時(shí),執(zhí)行語句3。if語句的嵌套(2)在if子句中嵌套不含else子句的if語句。if(表達(dá)式1) { if(表達(dá)式2) 語句1 }else
語句2用“{}”把內(nèi)層if語句括起來,在語法上成為一條獨(dú)立的語句,使得else與外層的if配對(duì)。3.1選擇結(jié)構(gòu)if語句C語言程序設(shè)計(jì)(3)在else子句中嵌套具有else子句的if語句。if(表達(dá)式1) 語句1elseif(表達(dá)式2) 語句2else 語句3第2個(gè)if語句作為第1個(gè)if表達(dá)式1不成立時(shí)的執(zhí)行語句。當(dāng)表達(dá)式2成立時(shí)執(zhí)行語句2,不成立時(shí)執(zhí)行語句3。if語句的嵌套(4)在else子句中嵌套不含else子句的if語句。if(表達(dá)式1) 語句1elseif(表達(dá)式2) 語句2第2個(gè)if語句作為第1個(gè)if表達(dá)式1不成立時(shí)的執(zhí)行語句。當(dāng)表達(dá)式2成立時(shí)執(zhí)行語句2,不成立時(shí)什么都不執(zhí)行。C語言程序設(shè)計(jì)【例3-6】編寫程序,實(shí)現(xiàn)輸入三個(gè)整數(shù),輸出最大值。運(yùn)行結(jié)果語句編寫請(qǐng)輸入三個(gè)整數(shù):833-15max=33
3.1選擇結(jié)構(gòu)if語句intmain(){ inta,b,c,max; printf("請(qǐng)輸入三個(gè)整數(shù):\n"); scanf("%d%d%d",&a,&b,&c); if(a>b) if(a>c) max=a; else max=c; else if(b>c) max=b; else max=c; printf("max=%d\n",max); return0; }程序說明:先比較a和b的大小,如果a大于b,就將a與c進(jìn)行比較,如果a也大于c,那么最大值就為a;否則,最大值為c。如果a小于b,就將b與c進(jìn)行比較,如果b大于c,那么最大值就為b;否則,最大值為c。3.1選擇結(jié)構(gòu)if語句C語言程序設(shè)計(jì)if語句在出現(xiàn)嵌套形式時(shí),初學(xué)者往往會(huì)弄錯(cuò)if與else的配對(duì)關(guān)系,特別時(shí)當(dāng)if與else的數(shù)量不對(duì)等時(shí)。因此,必須掌握if與else的配對(duì)規(guī)則。C語言規(guī)定else與其上面最接近它,還未與其他else語句配對(duì)的if語句配對(duì)。if與else的配對(duì)規(guī)則3.2選擇結(jié)構(gòu)switch語句C語言程序設(shè)計(jì)switch語句一般形式如下:switch(表達(dá)式){ case常量表達(dá)式1: 語句1;
case常量表達(dá)式2: 語句2;
… … ... case常量表達(dá)式n: 語句n;
default: 語句n+1;}switch語句的一般形式switch語句的執(zhí)行過程是:先計(jì)算switch后面表達(dá)式的值,與某個(gè)case后面常量表達(dá)式的值相等時(shí),就執(zhí)行此case后面的所有語句,直到遇到break語句或switch的結(jié)束“}”才結(jié)束。如果case后無break語句,則不再進(jìn)行判斷,繼續(xù)執(zhí)行隨后所有的case后面的語句。如果沒有找到與此值相匹配的常量表達(dá)式,則執(zhí)行default后的語句m;若無default子句,則執(zhí)行switch語句后面的其他語句。3.2選擇結(jié)構(gòu)switch語句C語言程序設(shè)計(jì)名師點(diǎn)睛(1)switch后的表達(dá)式和case后的常量表達(dá)式可以是整型、字符型、枚舉型,但是不能是實(shí)型。(2)同一個(gè)switch語句中,各case后的常量表達(dá)式的值必須互不相同,否則會(huì)出現(xiàn)多種執(zhí)行方案。(3)case后的語句可以是一條語句,也可以是多條語句,此時(shí)多條語句不必用大括號(hào)“{}”括起來。同一個(gè)switch語句中,各case后的常量表達(dá)式的值必須互不相同,否則會(huì)出現(xiàn)多種執(zhí)行方案。(4)default可以省略,省略時(shí)如果沒有與switch表達(dá)式相匹配的case常量,則不執(zhí)行任何語句,程序轉(zhuǎn)到switch語句后的下一條語句執(zhí)行。(5)各case和default子句的先后順序可以改變,不影響執(zhí)行結(jié)果。(6)如果多種情況都執(zhí)行相同的程序塊,則對(duì)應(yīng)的多個(gè)case可以執(zhí)行同一語句。C語言程序設(shè)計(jì)【例3-7】從鍵盤上輸入1~15之間的數(shù)字,顯示對(duì)應(yīng)初一到正月十五要吃的美食。運(yùn)行結(jié)果語句編寫今天初幾?。?6年過完了,擼起袖子加油干!
3.2選擇結(jié)構(gòu)switch語句程序說明:定義整型變量date,使用switch語句判斷整型變量date的值,利用case語句檢驗(yàn)date值的不同情況;如果date的值不是case中所檢驗(yàn)列出的情況,則輸出“年過完了,擼起袖子加油干!”。switch(date) { case1:printf("吃餃子\n");break; case2:printf("吃面條\n");break; case3:printf("吃合子\n");break; case4:printf("烙餅炒雞蛋\n");break; case5: case6:printf("捏面團(tuán)\n");break; case7: case8:printf("吃炒年糕\n");break; case9: case10:printf("吃白米飯\n");break; case11: case12:printf("吃八寶粥\n");break; case13: case14:printf("煮湯丸\n");break; case15:printf("吃元宵\n");break;
default:printf("年過完了,擼起袖子加油干!\n");break;}C語言程序設(shè)計(jì)【例3-8】編程實(shí)現(xiàn),從鍵盤上輸入年份,輸出對(duì)應(yīng)的生肖。運(yùn)行結(jié)果語句編寫請(qǐng)輸入年份:2022公元2022年是:虎年
3.2選擇結(jié)構(gòu)switch語句程序說明:現(xiàn)已知公元1年是雞年,雞在生肖中的序號(hào)是10與公元1年相差9,因此先將年份加上9再對(duì)12取余,得到的余數(shù)就正好是這一年在生肖周期中的順序號(hào),余數(shù)為0時(shí)順序號(hào)為12。switch((year+9)%12){ case0:printf("豬年\n");break; case1:printf("鼠年\n");break; case2:printf("牛年\n");break; case3:printf("虎年\n");break; case4:printf("兔年\n");break; case5:printf("龍年\n");break; case6:printf("蛇年\n");break; case7:printf("馬年\n");break; case8:printf("羊年\n");break; case9:printf("猴年\n");break; case10:printf("雞年\n");break; case11:printf("狗年\n");break; default:printf("輸入錯(cuò)誤!\n");break; }3.3常見錯(cuò)誤分析C語言程序設(shè)計(jì)誤把“=”作為“等于”運(yùn)算符intmain(){ inta; scanf("%d",&a); if(a=1) /*誤把“=”作為“等于”運(yùn)算符*/ printf("成功!\n"); else printf("失??!\n"); return0;}3.3常見錯(cuò)誤分析C語言程序設(shè)計(jì)忘記必要的邏輯運(yùn)算符intmain(){ intx; scanf("%d",&x); if(3<x<6) /*忘記必要的邏輯運(yùn)算符*/ printf("成功!\n"); else printf("失?。n"); return0;}3.3常見錯(cuò)誤分析C語言程序設(shè)計(jì)用復(fù)合語句時(shí)漏掉大括號(hào)intmain(){ inta,b,t; scanf
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴陽職業(yè)技術(shù)學(xué)院《房地產(chǎn)項(xiàng)目投資與融資》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年天津建筑安全員-C證考試(專職安全員)題庫附答案
- 2025河南省安全員-C證考試(專職安全員)題庫附答案
- 貴陽康養(yǎng)職業(yè)大學(xué)《社會(huì)危機(jī)管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣州中醫(yī)藥大學(xué)《普通化學(xué)及實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025山西建筑安全員考試題庫
- 廣州醫(yī)科大學(xué)《體育產(chǎn)業(yè)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣州現(xiàn)代信息工程職業(yè)技術(shù)學(xué)院《汽車拖拉機(jī)構(gòu)造學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025云南省安全員-C證考試題庫
- 2025江西省安全員A證考試題庫
- TSEESA 010-2022 零碳園區(qū)創(chuàng)建與評(píng)價(jià)技術(shù)規(guī)范
- GB/T 3683-2011橡膠軟管及軟管組合件油基或水基流體適用的鋼絲編織增強(qiáng)液壓型規(guī)范
- GB/T 3003-2017耐火纖維及制品
- GB/T 18920-2020城市污水再生利用城市雜用水水質(zhì)
- GB/T 13203-2021摩托車輪胎性能試驗(yàn)方法
- GB 17267-1998液化石油氣瓶充裝站安全技術(shù)條件
- 上期開特下期必開特規(guī)律
- GA/T 744-2013汽車車窗玻璃遮陽膜
- 客戶投訴處理流程
- 空氣調(diào)節(jié)試卷答案
- 《教師口語教程》
評(píng)論
0/150
提交評(píng)論