C語言 第4章 選擇結構.ppt
《C語言 第4章 選擇結構.ppt》由會員分享,可在線閱讀,更多相關《C語言 第4章 選擇結構.ppt(47頁珍藏版)》請在裝配圖網(wǎng)上搜索。
if語句 關系表達式和邏輯表達式 if語句的變形及嵌套 多重選擇語句 switch語句 本章小結 本章內容 第4章選擇結構程序設計 第四章選擇結構程序設計 問題與討論 第四章分支結構程序設計 解決辦法 1 引入新的程序結構 選擇結構 有時也稱判斷結構或分支結構 2 為了和分支結構相配合 同時還要引入邏輯表達式的概念 3 有三種形式可進行分支結構的程序設計 A if結構B 多重選擇結構 switch語句 C 無條件轉移結構 goto語句 第4章選擇結構程序設計 例4 1 輸入兩個正整數(shù) 并按從小到大的順序輸出 voidmain inta b t scanf d d voidmain inta b scanf d d 圖3 2變換a和b的值 if a b t a a b b t if條件 真 復合語句1 else 復合語句2 1 if else為關鍵字 2 如果語句塊超過一條語句 則要用一對大括號將語句塊括起作為復合語句 3 else可省 語法 說明 if語句 計算邏輯表達式的值 真否 復合語句1 復合語句2 執(zhí)行復合語句后的語句 F T if else的執(zhí)行過程 例4 6 編寫程序 求輸入的整數(shù)的絕對值并將其輸出 voidmain intx x1 scanf d 形式 if 表達式 語句塊 例4 7 比較用戶輸入的兩個整數(shù)的大小 若輸入的第1個數(shù)大于第2個數(shù) 則顯示 first second includevoidmain intfirst second printf Entertwonumbers scanf d d 形式 if 表達式 語句塊else語句塊 一 if語句的變形 1 省略else語句語法 if邏輯表達式 真 語句體 2 增加else語句 語法 if邏輯表達式1 真 語句體1 elseif邏輯表達式2 真 語句體2 else 語句體N if語句的變形 形式 if 表達式 語句塊 形式 if 表達式 語句塊elseif語句塊else語句塊 if邏輯表達式 真 語句塊1if邏輯表達式2 真 語句塊2 else 語句塊3 else 語句塊4 注意 else語句與最近的if語句配套 if語句的嵌套 注意 嵌套必須完全包住 不能相互騎跨 在if的嵌套中 else elseif與最近的if相匹 大括號要配對 if邏輯表達式1 語句塊1if邏輯表達式2 語句塊2 else 語句塊3 else 語句塊4 語句塊5 忌諱 大括號不配對 也不對齊 不知誰跟誰配對 例4 9 編寫一程序 進行十進制數(shù) 八進制數(shù)和十六進制數(shù)之間的轉換 04 doc 例 商店售貨 按購買貨物款的多少分別給予不同的優(yōu)惠折扣 編程計算實際應付貨款 1 購貨不足250元 沒有折扣 2 購貨250元 含250元 下同 不足500元 減5 3 購貨500元 不足1000元 減價7 5 4 購貨1000元 不足2000元 減價10 5 購貨2000元及以上 減價15 1 算法分析 設購物款為M 折扣為D 則D可表示為 D 0 M 250 D 0 05 250 M 500 D 0 075 500 M 1000 D 0 1 1000 M 2000 D 0 15 2000 M voidmain 程序代碼 if m 250 t m 1 d 計算應付款printf 實際應付款 f t floatm d t printf 請輸入購物金額 scanf f voidmain floatm d t printf 請輸入購物金額 scanf f if m 250 t m 1 d 應付款printf 實際應付款 f t 形式 if 表達式1 語句1elseif 表達式2 語句2elseif 表達式3 語句3 elseif 表達式m 語句melse語句n 這樣改寫的優(yōu)點 的根 2 數(shù)據(jù)結構 由于問題簡單 只需用到一些單精度實數(shù) 例 求一元二次方程 第4章選擇結構程序設計 3 偽代碼 輸入方程系數(shù)a b c計算判別式d b b 4 a cif判別式大于等于0then 計算兩個實根定位輸出光標打印結果 else 計算實部計算虛部定位輸出光標打印結果 endprogram 第4章選擇結構程序設計 include includevoidmain floata b c d x1 x2 p q printf 輸入方程系數(shù) scanf f f f d b b 4 a c if d 0 x1 b sqrt d 2 a x2 b sqrt d 2 a printf x1 f x2 f n x1 x2 else p b 2 a q sqrt d 2 a printf x1 f i f x2 f i f n p q p q 一 邏輯量的概念 邏輯值 真 假 或T F表示方式 0表示 假 非0表示 真 系統(tǒng)真值 1 二 關系運算符 關系運算符含義例子結果優(yōu)先級 大于4 6 9 大于或等于6 5 小于或等于8 7 等于2 3 6 不等于9 3 12 TTTFFF 相同 高 相同 低 關系表達式和邏輯表達式 用關系運算符將兩個算術表達式或兩個字符串表達式聯(lián)起來的式子 其值為邏輯值 例 includemain inta b a 10 5 6 b 10 5 6 printf d d n a b 輸出結果 0 1 例 includemain inta b a 6 7 7 8 b 7 7 3 printf d d n a b 輸出結果 1 1 三 關系表達式 非 與 或 1 運算符 2 運算法則 T真 F假 值邏輯非邏輯與邏輯或XY XX YX YTTTFFTFF FTT FFT TFT TFF 四 邏輯運算符 用邏輯運算符連接關系表達式的式子稱邏輯表達式 例用邏輯表達式表達下述數(shù)學式 1 080 3 10 x 30 50 x 90 相應的邏輯表達 1 0 x x 10 2 x180 或 x 60 x 80 3 x 10 x 50 x 90 x 10 0 60 80 x 10 50 90 x 30 x x 五 邏輯表達式 2 運算符的優(yōu)先級 1 邏輯運算符的優(yōu)先級 高 低 類型 sizeof 賦值運算符 自右至左 邏輯表達式中的優(yōu)先級 語法 表達式1 表達式2 表達式3 說明 表達式1的值非零 則條件表達式的值為表達式2的值 否則為表達式3的值 執(zhí)行過程 表達式1 表達式的值為表達式3的值 表達式的值為表達式2的值 T F 條件運算符 voidmain inta b scanf d d 在某種情況下 條件運算符可以代替if語句 簡化程序書寫 voidmain inta b scanf d d 改寫后 例 從鍵盤輸入兩個整數(shù) 按大小順序輸出 例 從鍵盤輸入一字符 如果為Y 則打印是 若為N 打印否 其它字符 打印輸入錯誤 includevoidmain chara printf 輸入一個字符 a getchar if a Y a N if a Y printf 是 elseprintf 否 elseprintf 輸入數(shù)據(jù)不合要求 嵌套不能太深 一般以三層為限 嵌套太深 容易出錯 例4 12 用戶從鍵盤輸入3個整數(shù) 找出并輸出其中數(shù)值最大的那一個 如果其中有一個以上的最大數(shù) 兩數(shù)相等的情況 也要表示出來 includevoidmain inta b c printf Enter3numbers scanf d d d includevoidmain intx y z printf Iputx y z scanf d d d 嵌套不能太深 一般以三層為限 嵌套太深 容易出錯 例 從鍵盤輸入三個整數(shù) 判斷其正負情況 includevoidmain intx y z printf Iputx y x scanf d d 利用邏輯表達式將上例改寫 第4章選擇結構程序設計 改寫后的程序結構要清晰得多 例 將輸入的字母轉化為小寫字母 1算法分析 在計算機中 處理英文字母 其實是處理它的ASCII碼值 將大寫字母變成小寫字母 就是將大寫字母的ASCII碼值變?yōu)橄鄳男懽帜傅腁SCII碼值 大寫字母的ASCII值比小寫字母的ASCII值小32 故將相應字母的ASCII值加32就變成了小寫字母 程序設計時 要注意如果輸入的不是大寫的字母 則不用轉換 voidmain charch scanf c 2源程序代碼之一 voidmain charch scanf c 注意 1 條件運算符優(yōu)先于賦值運算符 低于關系運算符2 條件運算符的結合方向為 自右至左 a b a c d c da b a c d c d 此處使用了條件運算符 3源程序代碼之二 等價于 includevoidmain inti printf 輸入數(shù)字1 7 scanf d 例 輸入星期中的某一天 顯示對應的英文 是否有更好的辦法來解決多分支程序結構 語法 switch 表達式 case常量表達式1 語句塊1case常量表達式2 語句塊2 case常量表達式N 語句塊Ndefault 語句塊N 1 switch多重選擇語句 說明 switch后的表達式可以是char byte short orint類型 case后的表達式與switch后的表達式相等時 case后的語句被執(zhí)行 若一個相等的也沒有時 執(zhí)行default后面語句 若沒有default時 則結束switch語句 case后的表達式必須互不相同 否則出錯 case與default出現(xiàn)的順序不影響執(zhí)行結果 執(zhí)行完一個case語句塊后 流程轉到下一個case語句繼續(xù)執(zhí)行 在執(zhí)行過程中碰到break語句 程序退出switch結構 voidmain inti printf 輸入數(shù)字1 7 scanf d 例switch 用switch語句重寫打印星期程序 voidmain inti printf 輸入數(shù)字1 7 scanf d 語法 break 功能 1 退出所在switch語句2 退出所在循環(huán) for while do break語句 格式 continue 功能 忽略continue以下的循環(huán)體 重新回到循環(huán)開始 對continue所在循環(huán)有效 continue語句 例 用switch語句重寫前例的程序 voidmain chara printf 輸入一個字符 a getchar if a Y a N if a Y printf 是 n elseprintf 否 n elseprintf 字符不合要求 n voidmain chara printf 輸入字符 a getchar switch a case Y printf 是 n break case N printf 否 n break default printf 字符不合要求 n 例4 9B 在屏幕上顯示菜單 分析 程序首先在屏幕上將功能顯示出來 用戶根據(jù)需要選擇相應的功能 程序根據(jù)用戶的選擇執(zhí)行相應的程序段 對于這類程序 往往是用戶輸入一個英文字母 然后程序根據(jù)字母來斷別程序該執(zhí)行什么程序段 故一般用switch語句比較方便 2源程序清單 switch a case i printf 調用輸入模塊 break case o printf 調用輸出模塊 break case l printf 調用查找模塊 break case q printf 調用退出模塊 break main intchara printf 請選擇 printf 輸入i printf 輸出o printf 找出最長的單詞l printf 退出q a getchar 執(zhí)行選項時 要調用相應的模塊 程序段 由于現(xiàn)在還沒有相應的程序 暫用一條打印語句代替 以后會用相應程序代替 語法 goto語句標號 有效的C標識符 不能是整數(shù) 功能 改變程序執(zhí)行的順序 無條件轉移到語句標號所指定的語句行 語句標號 語句某一行的名字 一般情況下可省 定義標號例 loop x x 1 無條件轉移語句 goto語句 使用goto例 gotoloop 例4 14 統(tǒng)計某班級中計算機課程中考試成績高于80分的人數(shù) 假設學生人數(shù)為 voidmain inti fs j 0 Loop scanf d 1 分支結構 改變程序的執(zhí)行流程 或有選擇地執(zhí)行程序 2 if else和switch是結構化語句 而goto語句不是 3 塊if語句可以取代所有的分支結構 而多重分支結構不可 4 塊if語句中的條件可以是復雜邏輯表達式 而多重分支中的條件只能是簡單表達式 5 塊if與goto語句結合 可以構造任何復雜的循環(huán) 但用專門的循環(huán)語句更方便 本章小結 易出錯內容 if后的條件不用括號括起來if條件后加上分號關系運算符 和賦值運算符 區(qū)分習慣于數(shù)學的區(qū)間表示 如00 x 5if多層嵌套語句的匹配關系分不清在switch語句中漏掉break語句 作業(yè) 1 編寫程序 輸入一個整數(shù) 輸出它是奇數(shù)還是偶數(shù) 2 輸入3個整數(shù) 要求按照從大到小的順序輸出 3 輸入一個整數(shù) 求其平方根和立方根 考慮負數(shù)情況 4 p1115 65 p1115 8- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- C語言 第4章 選擇結構 語言 選擇 結構
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
鏈接地址:http://m.jqnhouse.com/p-8614609.html