




已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章 選擇結(jié)構(gòu)程序設(shè)計(jì) 本章要點(diǎn) 關(guān)系表達(dá)式邏輯表達(dá)式選擇結(jié)構(gòu)程序設(shè)計(jì) 主要內(nèi)容 5 1關(guān)系運(yùn)算符和關(guān)系表達(dá)式5 2邏輯運(yùn)算符和邏輯表達(dá)式5 3if語(yǔ)句5 4switch語(yǔ)句5 5程序舉例 5 1關(guān)系運(yùn)算符和關(guān)系表達(dá)式 一 關(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)算符 5 1關(guān)系運(yùn)算符和關(guān)系表達(dá)式 續(xù) 二 關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式 可以是算術(shù)表達(dá)式或關(guān)系表達(dá)式 邏輯表達(dá)式 賦值表達(dá)式 字符表達(dá)式 接起來(lái)的式子 稱關(guān)系表達(dá)式例 a b a b b c a 3 b 5 a b bb 的值為 真 表達(dá)式的值為1 C語(yǔ)言中沒(méi)有專用的邏輯值 1代表真 0代表假 5 2邏輯運(yùn)算符和邏輯表達(dá)式 一 邏輯運(yùn)算符及其優(yōu)先次序 邏輯與 相當(dāng)于其他語(yǔ)言中的AND 邏輯或 相當(dāng)于其他語(yǔ)言中的OR 邏輯非 相當(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)算符 5 2邏輯運(yùn)算符和邏輯表達(dá)式 續(xù) 二 邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來(lái)的式子就是邏輯表達(dá)式邏輯表達(dá)式的值應(yīng)該是一個(gè)邏輯量 真 或 假 例 設(shè)a 4 b 5 a的值為0a b的值為1a b的值為1 a b的值為14 0 2的值為1 任何非零的數(shù)值被認(rèn)作 真 5 2邏輯運(yùn)算符和邏輯表達(dá)式 續(xù) 例 5 3 8 4 0自左向右運(yùn)算 1 0邏輯值為0 8 3邏輯值為0 4 1值為3 0邏輯值為1 5 3邏輯值為1 表達(dá)式值為0 5 2邏輯運(yùn)算符和邏輯表達(dá)式 續(xù) 在邏輯表達(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 a b n c d 當(dāng)a 1 b 2 c 3 d 4 m和n的原值為1時(shí) 由于 a b 的值為0 因此m 0 而 n c d 不被執(zhí)行 因此n的值不是0而仍保持原值1 5 2邏輯運(yùn)算符和邏輯表達(dá)式 續(xù) 答 year 4 0 year 100 0 year 400 0案值為真 1 是閏年 否則為非閏年 5 3if語(yǔ)句 一 If語(yǔ)句的三種基本形式 1 if 表達(dá)式 語(yǔ)句例 if x y printf d x 5 3if語(yǔ)句 續(xù) 2 if 表達(dá)式 語(yǔ)句1else語(yǔ)句2例 if x y printf d x elseprintf d y 5 3if語(yǔ)句 續(xù) 3 if 表達(dá)式1 語(yǔ)句1elseif 表達(dá)式2 語(yǔ)句2elseif 表達(dá)式3 語(yǔ)句3 elseif 表達(dá)式m 語(yǔ)句melse語(yǔ)句n 5 3if語(yǔ)句 續(xù) 例 if number 500 cost 0 15 elseif number 300 cost 0 10 elseif number 100 cost 0 075 elseif number 50 cost 0 05 elsecost 0 5 3if語(yǔ)句 續(xù) 說(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 3if語(yǔ)句 續(xù) 例5 1輸入兩個(gè)實(shí)數(shù) 按代數(shù)值由小到大的順序輸出這兩個(gè)數(shù) includevoidmain floata b t scanf f f 5 3if語(yǔ)句 續(xù) 例5 2輸入三個(gè)數(shù)a b c 要求按由小到大的順序輸出 Ifa b將a和b對(duì)換Ifa c將a和c對(duì)換Ifb c將b和c對(duì)換 5 3if語(yǔ)句 續(xù) includevoidmain floata b c t scanf f f f 5 3if語(yǔ)句 續(xù) 二 If語(yǔ)句的嵌套在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句稱為if語(yǔ)句的嵌套 形式 if if 語(yǔ)句1else語(yǔ)句2elseif 語(yǔ)句3else語(yǔ)句4 內(nèi)嵌if 5 3if語(yǔ)句 續(xù) 匹配規(guī)則 else總是與它上面的 最近的 統(tǒng)一復(fù)合語(yǔ)句中的 未配對(duì)的if語(yǔ)句配對(duì) 例 if if 語(yǔ)句1elseif 語(yǔ)句2else語(yǔ)句3 例 if if 語(yǔ)句1 elseif 語(yǔ)句2else語(yǔ)句3 當(dāng)if和else數(shù)目不同時(shí) 可以加花括號(hào)來(lái)確定配對(duì)關(guān)系 5 3if語(yǔ)句 續(xù) 1 x0 算法1 算法2 輸入x輸入x若x0 則y 1若x 0 則y 0輸出y若x 0 則y 1輸出y 5 3if語(yǔ)句 續(xù) includevoidmain intx y scanf d 5 3if語(yǔ)句 續(xù) 上例中的程序段有四個(gè) 請(qǐng)判斷哪個(gè)是正確的 程序1 程序2 if x 0 y 1 if x 0 y 1 elseelsey 0 if x 0 y 0 elsey 1 elsey 1 程序3 程序4 y 1 y 0 if x 0 if x 0 if x 0 y 1 if x 0 y 1 elsey 0 elsey 1 正確 正確 錯(cuò)誤 錯(cuò)誤 5 3if語(yǔ)句 續(xù) 三 條件運(yùn)算符格式 表達(dá)式 表達(dá)式 表達(dá)式 功能 判斷表達(dá)式1的值 如果成立就執(zhí)行表達(dá)式2 否則就執(zhí)行表達(dá)式3使用場(chǎng)合 若在if語(yǔ)句中 當(dāng)被判別的表達(dá)式的值為 真 或 假 時(shí) 都執(zhí)行一個(gè)賦值語(yǔ)句且向同一個(gè)變量賦值時(shí) 可以用一個(gè)條件運(yùn)算符來(lái)處理 5 3if語(yǔ)句 續(xù) 例 if a b max a elsemax b 當(dāng)a b時(shí)將a的值賦給max 當(dāng)a b時(shí)將b的值賦給max 可以看到無(wú)論a b是否滿足 都是向同一個(gè)變量賦值 可以用下面的條件運(yùn)算符來(lái)處理 max 5 3if語(yǔ)句 續(xù) 說(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á)式 的類型可以與表達(dá)式 和表達(dá)式 的類型不同 5 3if語(yǔ)句 續(xù) 例5 4輸入一個(gè)字符 判別它是否大寫(xiě)字母 如果是 將它轉(zhuǎn)換成小寫(xiě)字母 如果不是 不轉(zhuǎn)換 然后輸出最后得到的字符 includevoidmain charch scanf c 如果字符變量ch的值為大寫(xiě)字母 則條件表達(dá)式的值為 即相應(yīng)的小寫(xiě)字母 如果ch的值不是大寫(xiě)字母 則條件表達(dá)式的值為 即不進(jìn)行轉(zhuǎn)換 5 4switch語(yǔ)句 switch語(yǔ)句的格式 switch 表達(dá)式 case常量表達(dá)式 語(yǔ)句 case常量表達(dá)式 語(yǔ)句 case常量表達(dá)式 語(yǔ)句 default 語(yǔ)句 5 4switch語(yǔ)句 續(xù) 例 要求按照考試成績(jī)的等級(jí)輸出百分制分?jǐn)?shù)段 用switch語(yǔ)句實(shí)現(xiàn) Switch grade case A printf case B printf case C printf case D printf default printf 5 4switch語(yǔ)句 續(xù) 說(shuō)明 switch后面括弧內(nèi)的 表達(dá)式 標(biāo)準(zhǔn)允許它為任何類型 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 4switch語(yǔ)句 續(xù) 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í)行 case常量表達(dá)式 只是起語(yǔ)句標(biāo)號(hào)作用 并不是在該處進(jìn)行條件判斷 在執(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è)case可以共用一組執(zhí)行語(yǔ)句 5 5程序舉例 例5 5寫(xiě)程序 判斷某一年是否閏年 用下圖來(lái)表示判斷閏年的算法 5 5程序舉例 續(xù) includevoidmain intyear leap scanf d if year 4 0 leap 0 elseif year 100 0 leap 1 elseif year 400 0 leap 0 elselep 1 運(yùn)行情況 isnotaleapyear isaleapyear 5 5程序舉例 續(xù) 例5 6求ax2 bx c 0方程的解 基本的算法 不是二次方程 b2 4ac 有兩個(gè)相等實(shí)根 b2 4ac 有兩個(gè)不等實(shí)根 b2 4ac 有兩個(gè)共軛復(fù)根 5 5程序舉例 續(xù) include includevoidmain floata b c disc x1 x2 realpart imagpart scanf f f f 5 5程序舉例 續(xù) elseif disc 1e 6 x1 b sqrt disc 2 a x2 b sqrt disc 2 a printf hasdistinctrealroots 8 4fand 8 4f n x1 x2 else realpart b 2 a imagpart sqrt disc 2 a printf hascomplexroots n printf 8 4f 8 4fi n realpart imagpart printf 8 4f 8 4fi n realpart imagpart 5 5程序舉例 續(xù) 例5
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘭州資源環(huán)境職業(yè)技術(shù)大學(xué)《熱力學(xué)與統(tǒng)計(jì)物理》2023-2024學(xué)年第二學(xué)期期末試卷
- 傳統(tǒng)國(guó)庫(kù)管理制度
- 住宅物業(yè)管理制度
- 吉林大學(xué)《數(shù)字邏輯》2023-2024學(xué)年第二學(xué)期期末試卷
- 佛山租賃管理制度
- 作業(yè)安全管理制度
- 廊坊師范學(xué)院《導(dǎo)游基礎(chǔ)及業(yè)務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 石家莊鐵路職業(yè)技術(shù)學(xué)院《生物醫(yī)學(xué)建模與科學(xué)計(jì)算》2023-2024學(xué)年第二學(xué)期期末試卷
- 使用氣瓶管理制度
- 廈門(mén)軟件職業(yè)技術(shù)學(xué)院《機(jī)能學(xué)實(shí)驗(yàn)Ⅰ》2023-2024學(xué)年第二學(xué)期期末試卷
- 貿(mào)易咨詢服務(wù)合同協(xié)議
- 施工現(xiàn)場(chǎng)常見(jiàn)的安全隱患排查及試題與答案
- GA/T 2161-2024法庭科學(xué)非法集資類案件資金數(shù)據(jù)分析規(guī)程
- 食管癌病例分析 手術(shù)、化療與放療方案優(yōu)化
- 2025年我國(guó)工程機(jī)械出口東南亞市場(chǎng)現(xiàn)狀分析
- 濟(jì)鋼人文考試試題及答案
- 安裝費(fèi)合同協(xié)議
- 瑜伽教培理論試題及答案
- 人工智能在化學(xué)領(lǐng)域的應(yīng)用與未來(lái)發(fā)展展望
- 慢性病管理小組的工作職責(zé)與目標(biāo)
- 《SLT 105-2025水工金屬結(jié)構(gòu)防腐蝕技術(shù)規(guī)范》知識(shí)培訓(xùn)
評(píng)論
0/150
提交評(píng)論