




已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章 選擇結(jié)構(gòu)程序設(shè)計(jì)教學(xué)重點(diǎn):表達(dá)式,選擇型程序設(shè)計(jì)語(yǔ)句教學(xué)難點(diǎn):邏輯表達(dá)式教學(xué)時(shí)數(shù):學(xué)時(shí)教學(xué)內(nèi)容:關(guān)系運(yùn)算符和關(guān)系表達(dá)式,邏輯運(yùn)算符和邏輯表達(dá)式,if語(yǔ)句,switch語(yǔ)句,程序舉例教學(xué)方式:課堂講授教學(xué)要求:(1) 熟練掌握關(guān)系、邏輯表達(dá)式的用法;(2) 熟練掌握選擇型程序設(shè)計(jì)語(yǔ)句的用法。5.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式1.關(guān)系運(yùn)算符及其優(yōu)先次序 (小于) (大于)= (大于或等于)= (等于)!= (不等于)說(shuō)明:關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符關(guān)系運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符2.關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(可以是算術(shù)表達(dá)式或關(guān)系表達(dá)式,邏輯表達(dá)式,賦值表達(dá)式,字符表達(dá)式)接起來(lái)的式子,稱(chēng)關(guān)系表達(dá)式例:ab,a+bb+c,(a=3)(b=5),ab)(bb”的值為“真”,表達(dá)式的值為1。C語(yǔ)言中沒(méi)有專(zhuān)用的邏輯值,1代表真,0代表假5.2 邏輯運(yùn)算符和邏輯表達(dá)式1.邏輯運(yùn)算符及其優(yōu)先次序(1)& (邏輯與) 相當(dāng)于其他語(yǔ)言中的AND(2)| (邏輯或) 相當(dāng)于其他語(yǔ)言中的OR(3)! (邏輯非) 相當(dāng)于其他語(yǔ)言中的NOT例:a&b 若a,b為真,則a&b為真。 a|b 若a,b之一為真,則a|b為真。 !a 若a為真,則!a為假。優(yōu)先次序:!(非)-&()-|()邏輯運(yùn)算符中的“&”和“|”低于關(guān)系運(yùn)算符,“!”高于算 術(shù)運(yùn)算符2.邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來(lái)的式子就 是邏輯表達(dá)式。邏輯表達(dá)式的值應(yīng)該是一個(gè)邏輯量“真”或“假”。例:設(shè)a=4,b=5:!a的值為0 a&b的值為1a|b的值為1 !a|b的值為14&0|2的值為1任何非零的數(shù)值被認(rèn)作“真”例:53&84-!0 4-1 值為3 1&0 邏輯值為083 邏輯值為1 在邏輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算符都要被執(zhí)行。(1)a&b&c 只有a為真時(shí),才需要判斷b的值,只有a和b都為真時(shí),才需要判斷c的值。(2)a|b|c 只要a為真,就不必判斷b和c的值,只有a為假,才判斷b。a和b都為假才判斷c例:(m=ab)&(n=cd)當(dāng)a=1,b=2,c=3,d=4,m和n的原值為1時(shí),由于“ab”的值為0,因此m=0,而“n=cd”不被執(zhí)行,因此n的值不是0而仍保持原值1。用邏輯表達(dá)式來(lái)表示閏年的條件 能被4整除,但不能被100整除。 能被100整除,又能被400整除。 (year%4=0&year%100!=0)|year%400=0值為真(1)是閏年,否則為非閏年。5.3 if語(yǔ)句1.if語(yǔ)句的三種基本形式(1)if (表達(dá)式) 語(yǔ)句例: if(xy) printf(“%d”,x); (2)if(表達(dá)式) 語(yǔ)句1 else 語(yǔ)句2例: if (xy) printf(“%d”,x); else printf(“%d”,y); (3)if(表達(dá)式1)語(yǔ)句1 else if(表達(dá)式2)語(yǔ)句2 else if(表達(dá)式3)語(yǔ)句3 else if(表達(dá)式m)語(yǔ)句m else 語(yǔ)句n例: if (number500)cost=0.15; else if(number300)cost=0.10; else if(number100)cost=0.075; else if(number50)cost=0.05; else cost=0;說(shuō)明:(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)在if和else后面可以只含有一個(gè)內(nèi)嵌的操 作語(yǔ)句,也可以由多個(gè)操作語(yǔ)句,此時(shí)用花 括號(hào)將幾個(gè)語(yǔ)句括起來(lái)成為一個(gè)復(fù)合語(yǔ)句。例5.1 輸入兩個(gè)實(shí)數(shù),按代數(shù)值由小到大的順序輸出這兩個(gè)數(shù)。#includevoid main()float a,b,t;scanf(%f,%f,&a,&b);if(ab)t=a;a=b;b=t;printf(%5.2f,%5.2fn,a,b);例5.2 輸入三個(gè)數(shù)a,b,c,要求按由小到大的順序輸出。If ab 將a和b對(duì)換If ac 將a和c對(duì)換If bc 將b和c對(duì)換#include void main ( ) float a,b,c,t; scanf(%f,%f,%f,&a,&b,&c); if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t;if(bc) t=b;b=c;c=t; printf(%5.2f,%5.2f,%5.2fn,a,b,c); 2.if語(yǔ)句的嵌套在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句稱(chēng)為if語(yǔ)句的嵌套。形式:if()if() 語(yǔ)句1else 語(yǔ)句2elseif() 語(yǔ)句3else 語(yǔ)句4內(nèi)嵌if匹配規(guī)則:else總是與它上面的,最近的,統(tǒng)一復(fù)合語(yǔ)句中的,未配對(duì)的if語(yǔ)句配對(duì)。例:if()if() 語(yǔ)句1elseif() 語(yǔ)句2else 語(yǔ)句3例:if()if() 語(yǔ)句1elseif() 語(yǔ)句2else 語(yǔ)句3當(dāng)if和else數(shù)目不同時(shí),可以加花括號(hào)來(lái)確定配對(duì)關(guān)系。例 5.3 有一個(gè)函數(shù) y= 0 (x=0),編一程序,輸入一個(gè)x值,輸出y值。 輸入x 輸入x若x0,則y=-1 若x0,則y=1 若x=0,則y=0輸出y 若x0,則y=1 輸出y#includevoid main() int x,y; scanf(“%d”,&x); 程序段 printf(“x=%d,y=%dn”,x,y); 上例中的程序段有四個(gè),請(qǐng)判斷哪個(gè)是正確的?程序1: 程序2: if(x=0) Y=-1; if(x0) y=1;else else y=0; if(x=0) y=0; else y=-1; else y=1;程序3: 程序4: Y=-1; y=0; if(x!=0) if(x=0) if(x0) y=1; if(x0) y=1; else y=0; Else y=-1;3.條件運(yùn)算符格式: 表達(dá)式?表達(dá)式表達(dá)式 功能: 判斷表達(dá)式1的值,如果成立就執(zhí)行表 達(dá)式2,否則就執(zhí)行表達(dá)式3使用場(chǎng)合:若在語(yǔ)句中,當(dāng)被判別的表達(dá)式的 值為“真”或“假” 時(shí),都執(zhí)行一個(gè)賦值語(yǔ) 句且向同一個(gè)變量賦值時(shí),可以用一個(gè) 條件運(yùn)算符來(lái)處理。 例: () =; ;當(dāng)ab時(shí)將a的值賦給max,當(dāng)ab時(shí)將b的值賦給max,可以看到無(wú)論ab是否滿(mǎn)足,都是向同一個(gè)變量賦值。 可以用下面的條件運(yùn)算符來(lái)處理: ()?;說(shuō)明:(1)條件運(yùn)算符的執(zhí)行順序:先求解表達(dá)式,若為非(真)則求解表達(dá)式,此時(shí)表達(dá)式的值就作為整個(gè)條件表達(dá)式的值。若表達(dá)式的值為(假),則求解表達(dá)式,表達(dá)式的值就是整個(gè)條件表達(dá)式的值。 (2)條件運(yùn)算符優(yōu)先級(jí)高于賦值運(yùn)算符 ,低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符。 (3)條件運(yùn)算符的結(jié)合方向?yàn)椤白杂抑磷蟆薄?(4)“表達(dá)式2”和“表達(dá)式3”不僅可以是數(shù)值表達(dá)式,還可以是賦值表達(dá)式或函數(shù)表達(dá)式。(5)條件表達(dá)式中,表達(dá)式的類(lèi)型可以與表達(dá)式和表達(dá)式的類(lèi)型不同。 例5.4輸入一個(gè)字符,判別它是否大寫(xiě)字母,如果是,將它轉(zhuǎn)換成小寫(xiě)字母;如果不是,不轉(zhuǎn)換。然后輸出最后得到的字符。 #include void main ( ) char ch; scanf(%c,& ch); ch=(ch=A& ch=Z)?(ch+32):ch; printf(%cn,ch); 如果字符變量ch的值為大寫(xiě)字母,則條件表達(dá)式的值為(),即相應(yīng)的小寫(xiě)字母。如果ch的值不是大寫(xiě)字母,則條件表達(dá)式的值為,即不進(jìn)行轉(zhuǎn)換。 switch語(yǔ)句的格式:switch (表達(dá)式) case常量表達(dá)式:語(yǔ)句 case常量表達(dá)式:語(yǔ)句 case常量表達(dá)式:語(yǔ)句 default :語(yǔ)句 例:要求按照考試成績(jī)的等級(jí)輸出百分制分?jǐn)?shù)段,用switch語(yǔ)句實(shí)現(xiàn):switch(grade) case printf(); case printf (); case printf (); case printf (); default( printf ); 說(shuō)明:(1) switch后面括弧內(nèi)的“表達(dá)式”, 標(biāo)準(zhǔn)允許它為任何類(lèi)型。(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)象(對(duì)表達(dá)式的同一個(gè)值,有兩種或多種執(zhí)行方案)。5.4 switch語(yǔ)句 (4) 各個(gè)case和default的出現(xiàn)次序不影響執(zhí)行結(jié) 果。例如,可以先出現(xiàn)“default:”,再出現(xiàn) “case :”,然后是“case:”。(5) 執(zhí)行完一個(gè)case后面的語(yǔ)句后,流程控制轉(zhuǎn)移到下一 個(gè)case繼續(xù)執(zhí)行?!癱ase常量表達(dá)式”只是起語(yǔ)句標(biāo)號(hào)作用,并不是在條件判斷。在執(zhí)行 switch語(yǔ)句時(shí),根據(jù)switch后面表達(dá)式的值 找到匹配的入口標(biāo)號(hào),就從此標(biāo)號(hào)開(kāi)始執(zhí)行下去,不再進(jìn)行判斷。應(yīng)該在執(zhí)行一個(gè)case分支后,可以用一個(gè)break語(yǔ)句來(lái)終止switch語(yǔ)句的執(zhí)行。 (6) 多個(gè)可以共用一組執(zhí)行語(yǔ)句。 5.5 程序舉例例55 寫(xiě)程序,判斷某一年是否閏年。用下圖來(lái)表示判斷閏年的算法。#include void main()int year, leap; scanf(%d,&year); if (year%4=0)if (year%100=0) if (year%400=0) leap=1; else leap=0; else leap=1; else leap=0; if (leap) printf(%d is ,year); else printf(%d is not ,year); printf(a leap year.n);(?。?; (?。?; (?。?;運(yùn)行情況: . . 例56 求方程的解?;镜乃惴ǎ?,不是二次方程。 ,有兩個(gè)相等實(shí)根。 ,有兩個(gè)不等實(shí)根。 ,有兩個(gè)共軛復(fù)根。#include #include void main ( ) float a,b,c,disc,x1,x2,realpart,imagpart; scanf(%f,%f,%f,&a,&b,&c); printf(the equation ); if(fabs(a)=1e-6)printf(is not a quadraticn); else disc=b*b-4*a*c; if(fabs(disc)1e-6)x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); printf(has distinct real roots:%8.4f and %8.4fn,x1,x2); elserealpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf(has complex rootsn); printf(%8.4f+%8.4fin,realpart,imagpart); printf(%8.4f-%8.4fin,realpart,imagpart); 例5.7 運(yùn)輸公司對(duì)用戶(hù)計(jì)算運(yùn)費(fèi)。路程()越遠(yuǎn),每公里運(yùn)費(fèi)越低。標(biāo)準(zhǔn)如下: 沒(méi)有折扣 折扣 折扣 折扣 折扣 折扣設(shè)每公里每噸貨物的基本運(yùn)費(fèi)為,貨物重為,距離為,折扣為,則總運(yùn)費(fèi)的計(jì)算公式為:*()分析折扣變化的規(guī)律性:折扣的“變化點(diǎn)”都是的倍數(shù) 在橫軸上加一種坐標(biāo),c的值為s/250。c代表250的倍數(shù)。 ,無(wú)折扣;,折扣;,;,;,; ,。 #include void main ( ) int c,s;float p,w,d,f;scanf(%f,%f,%d,&p,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年地區(qū)事業(yè)單位招聘面試真題試卷:社會(huì)學(xué)與社會(huì)政策
- 2025年P(guān)ETS一級(jí)試卷:英語(yǔ)詞匯記憶技巧與方法
- 2025年耐高溫超輕硅酸鈣隔熱保濕材料項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告
- 現(xiàn)任高管在職證明及職責(zé)描述(5篇)
- 2025年安全工程師考試模擬試卷:安全生產(chǎn)管理實(shí)務(wù)案例分析
- 2025年環(huán)保袋項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告
- 農(nóng)民生物技術(shù)利用推廣合作協(xié)議
- 2025年全球石油市場(chǎng)供需分析及價(jià)格波動(dòng)對(duì)全球地緣政治影響報(bào)告
- 2025年定制木門(mén)項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模板
- 農(nóng)業(yè)生物技術(shù)助力種業(yè)高效生產(chǎn):2025年創(chuàng)新技術(shù)與應(yīng)用策略報(bào)告
- 全國(guó)二卷2025年高考數(shù)學(xué)真題含解析
- 2025年上海市中考語(yǔ)文試卷真題(含答案及解析)
- 護(hù)理急診急救培訓(xùn)課件
- 2025年衛(wèi)生系統(tǒng)招聘考試(公共基礎(chǔ)知識(shí))新版真題卷(附詳細(xì)解析)
- GB/T 8097-2025收獲機(jī)械聯(lián)合收割機(jī)測(cè)試程序和性能評(píng)價(jià)
- 2024年司法局司法輔助崗招聘考試筆試試題(含答案)
- 2025邯鄲武安市選聘農(nóng)村黨務(wù)(村務(wù))工作者180名筆試備考試題及答案詳解一套
- 重慶市普通高中2025屆高一下化學(xué)期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)試題含解析
- 2025年人力資源管理師考試試卷及答案
- 北方華創(chuàng)招聘筆試題庫(kù)2025
- 2025鄭州航空工業(yè)管理學(xué)院輔導(dǎo)員考試試題及答案
評(píng)論
0/150
提交評(píng)論