C語言程序設(shè)計(jì)(第三版)第五章-譚浩強(qiáng).ppt
《C語言程序設(shè)計(jì)(第三版)第五章-譚浩強(qiáng).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《C語言程序設(shè)計(jì)(第三版)第五章-譚浩強(qiáng).ppt(36頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
,第五章,選擇結(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語句5.4switch語句5.5程序舉例,5.1關(guān)系運(yùn)算符和關(guān)系表達(dá)式,(一).關(guān)系運(yùn)算符及其優(yōu)先次序(大于)=(大于或等于)=(等于)!=(不等于),說明:關(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á)式)接起來的式子,稱關(guān)系表達(dá)式例:ab,a+bb+c,(a=3)(b=5),ab)(bb”的值為“真”,表達(dá)式的值為1。,C語言中沒有專用的邏輯值,1代表真,0代表假,5.2邏輯運(yùn)算符和邏輯表達(dá)式,(一).邏輯運(yùn)算符及其優(yōu)先次序if(ch=a,ch=getchar();if(ch=a,5.3if語句(續(xù)),(2)if(表達(dá)式)語句1else語句2例:if(xy)printf(“%d”,x);elseprintf(“%d”,y);,5.3if語句(續(xù)),(3)if(表達(dá)式1)語句1elseif(表達(dá)式2)語句2elseif(表達(dá)式3)語句3elseif(表達(dá)式m)語句melse語句n,5.3if語句(續(xù)),例:if(number500)cost=0.15;elseif(number300)cost=0.10;elseif(number100)cost=0.075;elseif(number50)cost=0.05;elsecost=0;,5.3if語句(續(xù)),說明:(1).3種形式的if語句中在if后面都有表達(dá)式,一般為邏輯表達(dá)式或關(guān)系表達(dá)式。(2).第二,第三種形式的if語句中,在每個(gè)else前面有一個(gè)分號(hào),整個(gè)語句結(jié)束處有一個(gè)分號(hào)。(3).在if和else后面可以只含有一個(gè)內(nèi)嵌的操作語句,也可以有多個(gè)操作語句,此時(shí)用花括號(hào)將幾個(gè)語句括起來成為一個(gè)復(fù)合語句。,5.3if語句(續(xù)),例5.1輸入兩個(gè)實(shí)數(shù),按代數(shù)值由小到大的順序輸出這兩個(gè)數(shù)。#includevoidmain()floata,b,t;scanf(“%f,%f”,5.3if語句(續(xù)),例5.2輸入三個(gè)數(shù)a,b,c,要求按由小到大的順序輸出。,Ifab將a和b對(duì)換Ifac將a和c對(duì)換Ifbc將b和c對(duì)換,5.3if語句(續(xù)),#includevoidmain()floata,b,c,t;scanf(“%f,%f,%f”,5.3if語句(續(xù)),二.If語句的嵌套在if語句中又包含一個(gè)或多個(gè)if語句稱為if語句的嵌套。形式:If()if()語句1else語句2Elseif()語句3else語句4,內(nèi)嵌if,5.3if語句(續(xù)),匹配規(guī)則:Else總是與它上面的,最近的,同一復(fù)合語句中的,未配對(duì)的if語句配對(duì)。,例:If()if()語句1elseif()語句2else語句3,例:If()if()語句1elseif()語句2else語句3,當(dāng)if和else數(shù)目不同時(shí),可以加花括號(hào)來確定配對(duì)關(guān)系。,5.3if語句(續(xù)),-1(x0)算法1:算法1:輸入x輸入x若x0,則y=1若x=0,則y=0輸出y若x0,則y=1輸出y,5.3if語句(續(xù)),#includevoidmain()intx,y;scanf(“%d”,5.3if語句(續(xù)),上例中的程序段有四個(gè),請(qǐng)判斷哪個(gè)是正確的?程序1:程序2:if(x=0)Y=-1;if(x0)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(x0)y=1;if(x0)y=1;elsey=0;elsey=-1;,正確,正確,-1(x0),5.3if語句(續(xù)),三.條件運(yùn)算符格式:表達(dá)式?表達(dá)式表達(dá)式功能:判斷表達(dá)式1的值,如果成立就執(zhí)行表達(dá)式2,否則就執(zhí)行表達(dá)式3使用場(chǎng)合:若在語句中,當(dāng)被判別的表達(dá)式的值為“真”或“假”時(shí),都執(zhí)行一個(gè)賦值語句且向同一個(gè)變量賦值時(shí),可以用一個(gè)條件運(yùn)算符來處理。,5.3if語句(續(xù)),例:()=;當(dāng)ab時(shí)將a的值賦給max,當(dāng)ab時(shí)將b的值賦給max,可以看到無論ab是否滿足,都是向同一個(gè)變量賦值??梢杂孟旅娴臈l件運(yùn)算符來處理:()?;,5.3if語句(續(xù)),說明:(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語句(續(xù)),例5.4輸入一個(gè)字符,判別它是否大寫字母,如果是,將它轉(zhuǎn)換成小寫字母;如果不是,不轉(zhuǎn)換。然后輸出最后得到的字符。#includevoidmain()charch;scanf(%c,如果字符變量ch的值為大寫字母,則條件表達(dá)式的值為(),即相應(yīng)的小寫字母。如果ch的值不是大寫字母,則條件表達(dá)式的值為,即不進(jìn)行轉(zhuǎn)換。,5.4switch語句,switch語句的格式:(表達(dá)式)常量表達(dá)式:語句常量表達(dá)式:語句常量表達(dá)式:語句:語句,5.4switch語句(續(xù)),例:要求按照考試成績(jī)的等級(jí)輸出百分制分?jǐn)?shù)段,用switch語句實(shí)現(xiàn):()();();();();();,5.4switch語句(續(xù)),說明:后面括弧內(nèi)的“表達(dá)式”,標(biāo)準(zhǔn)允許它為任何類型。(2)當(dāng)表達(dá)式的值與某一個(gè)后面的常量表達(dá)式的值相等時(shí),就執(zhí)行此后面的語句,若所有的中的常量表達(dá)式的值都沒有與表達(dá)式的值匹配的,就執(zhí)行后面的語句。(3)每一個(gè)的常量表達(dá)式的值必須互不相同,否則就會(huì)出現(xiàn)互相矛盾的現(xiàn)象(對(duì)表達(dá)式的同一個(gè)值,有兩種或多種執(zhí)行方案)。,5.4switch語句(續(xù)),(4)各個(gè)和的出現(xiàn)次序不影響執(zhí)行結(jié)果。例如,可以先出現(xiàn)“:”,再出現(xiàn)“:”,然后是“:”。(5)執(zhí)行完一個(gè)后面的語句后,流程控制轉(zhuǎn)移到下一個(gè)繼續(xù)執(zhí)行?!俺A勘磉_(dá)式”只是起語句標(biāo)號(hào)作用,并不是在該處進(jìn)行條件判斷。在執(zhí)行語句時(shí),根據(jù)后面表達(dá)式的值找到匹配的入口標(biāo)號(hào),就從此標(biāo)號(hào)開始執(zhí)行下去,不再進(jìn)行判斷。應(yīng)該在執(zhí)行一個(gè)分支后,可以用一個(gè)語句來終止switch語句的執(zhí)行。(6)多個(gè)可以共用一組執(zhí)行語句。,5.5程序舉例,例55寫程序,判斷某一年是否閏年。,5.5程序舉例(續(xù)),#includevoidmain()intyear,leap;scanf(%d,(?。?;(!);(?。?;,運(yùn)行情況:.,5.5程序舉例(續(xù)),例5.7運(yùn)輸公司對(duì)用戶計(jì)算運(yùn)費(fèi)。路程()越遠(yuǎn),每公里運(yùn)費(fèi)越低。標(biāo)準(zhǔn)如下:沒有折扣折扣折扣折扣折扣折扣設(shè)每公里每噸貨物的基本運(yùn)費(fèi)為,貨物重為,距離為,折扣為,則總運(yùn)費(fèi)的計(jì)算公式為:*(),5.5程序舉例(續(xù)),分析折扣變化的規(guī)律性:折扣的“變化點(diǎn)”都是的倍數(shù)在橫軸上加一種坐標(biāo),c的值為s/250。c代表的倍數(shù)。,無折扣;,折扣;,;,;,;,。,5.5程序舉例(續(xù)),#includevoidmain()intc,s;floatp,w,d,f;scanf(%f,%f,%d,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 語言程序設(shè)計(jì) 第三 第五 譚浩強(qiáng)
鏈接地址:http://www.szxfmmzy.com/p-11495371.html