C語言第5章 選擇結(jié)構(gòu)的程序設(shè)計(jì).ppt_第1頁
C語言第5章 選擇結(jié)構(gòu)的程序設(shè)計(jì).ppt_第2頁
C語言第5章 選擇結(jié)構(gòu)的程序設(shè)計(jì).ppt_第3頁
C語言第5章 選擇結(jié)構(gòu)的程序設(shè)計(jì).ppt_第4頁
C語言第5章 選擇結(jié)構(gòu)的程序設(shè)計(jì).ppt_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、高級語言程序設(shè)計(jì) (C語言),第五章 選擇結(jié)構(gòu)程序設(shè)計(jì),第五章 選擇結(jié)構(gòu)程序設(shè)計(jì),5.1 if語句 5.2 switch語句 5.3 無條件轉(zhuǎn)向語句,5.1 if語句,1. 簡單的if語句 2. 雙分支if語句 3. 多分支if語句 4. 控制條件的表示 5. if語句的嵌套,1. 簡單的if語句,格式: if ()語句 功能:,表達(dá)式,語句,F,T,程序應(yīng)用舉例,例1 求給定整數(shù)的絕對值。 x x0 |x|= -x x0 設(shè):x整數(shù) yx的絕對值,流程圖:,x0?,y=x,y=-x,T,F,開始,輸出x,y,結(jié)束,輸入x,程序應(yīng)用舉例,例2 求4個(gè)整數(shù)中的偶數(shù)之和。 設(shè):a,b,c,d4個(gè)整

2、數(shù)。 s偶數(shù)之和,作為累加器使用,先要清0。 分析: 偶數(shù)能被2整除,如果設(shè)x為整數(shù),則有x%2=0,余數(shù)為0。,流程圖:,a%2=0?,s=0,s=s+a,T,F,s=s+b,開始,輸出a,b,c,d,s,結(jié)束,輸入a,b,c,d,b%2=0?,T,F,c%2=0?,s=s+c,T,s=s+d,d%2=0?,T,F,I,I,F,程序應(yīng)用舉例,例3 已知a,b,c 3個(gè)整數(shù),將3個(gè)數(shù)按從大到小的順序排列輸出。 設(shè): a,b,c 3個(gè)整數(shù)。,流程圖:,ab?,a與b交換,T,F,a與c交換,開始,輸出a,b,c,結(jié)束,輸入a,b,c,ac?,T,F,bc?,b與c交換,T,F,2.雙分支if語句

3、if_else語句,格式: if () 語句1 else 語句2,2. if_else語句,功能:,表達(dá)式,語句2,T,F,語句1,3. 多分支if語句,格式: if () 語句1 else if () 語句2 else if () 語句3 . else if () 語句n-1 else 語句n,3. 多分支語句,功能:,表達(dá)式1,語句2,T,F,語句1,表達(dá)式2,表達(dá)式n-1,語句n,語句n-1,T,T,F,F,4. 控制條件的表示,控制條件通常用關(guān)系表達(dá)式或邏輯表 達(dá)式構(gòu)造。 在判斷時(shí),表達(dá)式中的非 0為True,0為False。而關(guān)系表達(dá)式或邏輯 表達(dá)式的返回值為1或0,1表示True,

4、 0表示False。,4. 控制條件的表示,在判斷表達(dá)式時(shí): 非0True 0False 而關(guān)系表達(dá)式或邏輯表達(dá)式的返回值: 1True 0False,5. If語句的嵌套,在一個(gè)條件語句中包含有另一個(gè)條件語 句的結(jié)構(gòu),成為條件的嵌套。,條件嵌套應(yīng)用舉例,例1 求分段函數(shù)。(P90) x +1 x0 y = x x=0 x-1 x0。,條件嵌套應(yīng)用舉例,例2 從鍵盤上輸入3個(gè)數(shù),若這3個(gè)數(shù)能構(gòu)成三角形的三邊長,則求這個(gè)三角形的面積,否則打印響應(yīng)的錯誤信息,當(dāng)出現(xiàn)數(shù)據(jù)小于或等于0時(shí),顯示“數(shù)據(jù)無效!”;當(dāng)任意兩邊之和不大于第三邊時(shí),顯示“不能構(gòu)成三角形!” 分析:三個(gè)數(shù)能構(gòu)成三角形的充分必要條件

5、是: (1)三個(gè)數(shù)均大于0。 (2)任意兩邊之和大于第三邊。 設(shè):a,b,c三邊長 p中間變量,p=(a+b+c)/2 s三角形面積,5.2 switch語句,格式: switch() case :語句1 case :語句2 case :語句n default 語句n+1 ,5.2 switch語句,功能: 首先計(jì)算的值,然后依次與 (i=1,2,n)比較,若表達(dá)式的值與相 等,則從處開始執(zhí)行,這里就是執(zhí)行的 入口,直到switch語句結(jié)束。若所有的 (i=1,2,n)的值均不等于表達(dá)式的值,則從default處 開始執(zhí)行。,5.2 switch語句,說明: (1)switch后面的可以是任何

6、表達(dá)式,取其整數(shù)部分與進(jìn)行比較。 (2)中不能出現(xiàn)變量,且類型必須是整型、字符型或枚舉型,各互不相同。 (3)語句I可以是一條語句或多條語句,多條語句不必用 將它們括起來。語句i處也可以沒有語句,程序執(zhí)行時(shí)會自動向下順序執(zhí)行。 (4)default一般出現(xiàn)在所有的case之后,也可以出現(xiàn)在case之前或兩個(gè)case語句之間。Default可以省略。,5.2 switch語句,例1 用switch語句設(shè)計(jì)程序,實(shí)現(xiàn)輸出學(xué)生成績和 等級的功能。 分析:因?yàn)榉謹(jǐn)?shù)x為0100分,則x/10的值為0,1,2, 3,4,5,6,7,8,9,10。,5.2 switch語句,分析結(jié)果: 第一行輸出正確,后面

7、7行輸出是多余的,原因何在? 原因: 根據(jù)switch語句的功能,在執(zhí)行完一個(gè)case后面的語 句后,流程控制轉(zhuǎn)移到下一個(gè)case繼續(xù)指向?!癱ase ”只是起語句標(biāo)號的作用,并不是在該處進(jìn)行 條件判斷。在執(zhí)行switch語句時(shí),計(jì)算機(jī)根據(jù)switch后 面的值找到響應(yīng)的入口標(biāo)號,就從此標(biāo)號開始 一直執(zhí)行下去,不再判斷。 那么,如何終止switch語句的執(zhí)行呢?C語言中提供 的break語句可以做到這一點(diǎn)。,5.2 switch語句,格式: break; 功能: 終止它所在的switch語句的執(zhí)行。,5.3 無條件轉(zhuǎn)向語句,格式: goto ; 功能: 無條件轉(zhuǎn)向語句標(biāo)號所標(biāo)識的語句執(zhí)行。,5

8、.3 無條件轉(zhuǎn)向語句,說明: 1用標(biāo)識符后面跟冒號表示。 例如: goto k; k: 2goto語句與相應(yīng)的必須在同一個(gè)函數(shù)中, 不允許跨兩個(gè)函數(shù)。,5.3 無條件轉(zhuǎn)向語句,例1 輸入三角形3邊的邊長并輸出。若輸入的3邊長不 能滿足構(gòu)成三角形的條件,程序在顯示提示信息后,利用 goto語句自動轉(zhuǎn)到輸入函數(shù)調(diào)用語句,要求用戶重新輸入 3邊長的值,直到輸入的3個(gè)邊長滿足構(gòu)成三角形的條件為 止。 設(shè):x,y,z三角形的3條邊長,5.3 無條件轉(zhuǎn)向語句,例2 改進(jìn)輸出學(xué)生成績和的等級的程序,使之當(dāng)輸入 的成績非法時(shí),要求用戶重新輸入合法的成績。,5.4 應(yīng)用舉例,例1 輸入3個(gè)整數(shù),求最小值。 設(shè):

9、a,b,c3個(gè)整數(shù) min最小值,5.4 應(yīng)用舉例,例2 編寫程序,判斷某一年是否是閏年。 判斷閏年的條件: (1)能被4整除,但不能被100整除的年份都是閏年。如1996,2004年等都是閏年。 (2)能被100整除,又能被400整除的年份是閏年。如1600,2000年都是閏年。 (3)不符合這兩個(gè)條件的年份不是閏年。 設(shè): yezr年份 leap表示是否閏年,如果是,則leap=1,否則leap=0。,流程圖:,year被4整除?,leap=1,T,F,leap=0,開始,輸出“閏年”,結(jié)束,輸入year,year被100整除?,T,F,year被400整除?,T,leap,T,F,F,leap=0,輸出“非閏年”,leap=1,5.4 應(yīng)用舉例,例3 求一元二次方程ax2+bx+c=0的根。(P99) 分析:對于求一元二次方程ax2+bx+c=0, (1)若a=0,則原方程變?yōu)橐辉淮畏匠蘠x+c=0,則,當(dāng)b不等于0時(shí),x=-c/b。 (2)若a0,則方程有2個(gè)根(實(shí)根或復(fù)根) 若b2-4ac0 ,則方程有兩個(gè)實(shí)根: x1,2= ( -bb2-4ac)/(2a) 若b2-4ac

溫馨提示

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

最新文檔

評論

0/150

提交評論