C語言程序設(shè)計(第三版)第五章-原來_第1頁
C語言程序設(shè)計(第三版)第五章-原來_第2頁
C語言程序設(shè)計(第三版)第五章-原來_第3頁
C語言程序設(shè)計(第三版)第五章-原來_第4頁
C語言程序設(shè)計(第三版)第五章-原來_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、本章要點(diǎn)n 關(guān)系表達(dá)式n 邏輯表達(dá)式n 選擇結(jié)構(gòu)程序設(shè)計5.1 5.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符和關(guān)系表達(dá)式5.2 5.2 邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式5.3 if5.3 if語句語句5.4 switch5.4 switch語句語句5.5 5.5 程序舉例程序舉例( (一一).).關(guān)系運(yùn)算符及其優(yōu)先次序關(guān)系運(yùn)算符及其優(yōu)先次序1.1. ( (小于小于) )2.2. = ( ( (大于大于) )4.4. = (= (大于或等于大于或等于) )5.5. = (= (等于等于) )6.6. != (!= (不等于不等于) )優(yōu)先級相同(高)優(yōu)先級相同(高)優(yōu)先級相同(低)優(yōu)先級

2、相同(低)說明:說明:關(guān)系運(yùn)算符的優(yōu)先級低于算術(shù)運(yùn)算符關(guān)系運(yùn)算符的優(yōu)先級低于算術(shù)運(yùn)算符關(guān)系運(yùn)算符的優(yōu)先級高于賦值運(yùn)算符關(guān)系運(yùn)算符的優(yōu)先級高于賦值運(yùn)算符 例:例: ca+b ab=c a=bc c(a+b) (ab)=c a=(bc)( (二二).).關(guān)系表達(dá)式關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個表達(dá)式(可以是算術(shù)表達(dá)式或用關(guān)系運(yùn)算符將兩個表達(dá)式(可以是算術(shù)表達(dá)式或 關(guān)系表達(dá)式,邏輯表達(dá)式,賦值表達(dá)式,字符表達(dá)式)關(guān)系表達(dá)式,邏輯表達(dá)式,賦值表達(dá)式,字符表達(dá)式) 接起來的式子,稱關(guān)系表達(dá)式接起來的式子,稱關(guān)系表達(dá)式例:例:ab,a+bb+c,(a=3)(b=5),ab)(bb”的值為“真”,表達(dá)式的值為

3、1。C C語言中沒有專用語言中沒有專用的邏輯值,的邏輯值,1 1代表代表真,真,0 0代表假代表假 例:例:a=3,b=2,c=1 關(guān)系表達(dá)式關(guān)系表達(dá)式 ab (ab)=c (b+c)b f=abc(運(yùn)算符運(yùn)算符“”是自左向右結(jié)合,先執(zhí)行是自左向右結(jié)合,先執(zhí)行ab的值為的值為1,再執(zhí)行,再執(zhí)行1c的值為的值為0,0賦值給賦值給f) 表達(dá)式值為真(表達(dá)式值為真(1) 表達(dá)式值為真(表達(dá)式值為真(1) 表達(dá)式值為假(表達(dá)式值為假(0) d=1 f=0 注意:注意: 當(dāng)字符數(shù)據(jù)比較時,是按該字符對應(yīng)的當(dāng)字符數(shù)據(jù)比較時,是按該字符對應(yīng)的ASCII碼值的大小進(jìn)行比較,其實(shí)質(zhì)也碼值的大小進(jìn)行比較,其實(shí)質(zhì)也

4、是數(shù)值比較。是數(shù)值比較。 一般關(guān)系運(yùn)算符要求連接的兩個運(yùn)算對一般關(guān)系運(yùn)算符要求連接的兩個運(yùn)算對象為同類型數(shù)據(jù)。象為同類型數(shù)據(jù)。補(bǔ)充:補(bǔ)充:C C語言只有語言只有9 9中控制語句中控制語句(控制語句用于完成一定的控制功能)(控制語句用于完成一定的控制功能)1.if( ) else (條件語句條件語句)2.for ( ) (循環(huán)語句循環(huán)語句)3.while ( ) (循環(huán)語句循環(huán)語句)4.do while ( ) (循環(huán)語句循環(huán)語句)5.continue (結(jié)束本次循環(huán)語句結(jié)束本次循環(huán)語句)6.break (中止執(zhí)行中止執(zhí)行switch語句或循環(huán)語句語句或循環(huán)語句) 7.switch (多分支選擇

5、語句多分支選擇語句)8.goto (轉(zhuǎn)向語句轉(zhuǎn)向語句)9.return (從函數(shù)返回語句從函數(shù)返回語句)注:注:“( )”表示括號中是一個判斷條件,表示括號中是一個判斷條件,“”表示內(nèi)嵌的表示內(nèi)嵌的語句語句說明:(1).(1).條件運(yùn)算符的執(zhí)行順序:先求解表達(dá)式,若為非(真)條件運(yùn)算符的執(zhí)行順序:先求解表達(dá)式,若為非(真) 則求解表達(dá)式,此時表達(dá)式的值就作為整個條件表達(dá)式則求解表達(dá)式,此時表達(dá)式的值就作為整個條件表達(dá)式 的值。若表達(dá)式的值為(假),則求解表達(dá)式,表達(dá)的值。若表達(dá)式的值為(假),則求解表達(dá)式,表達(dá) 式的值就是整個條件表達(dá)式的值。式的值就是整個條件表達(dá)式的值。 (2).(2).條件

6、運(yùn)算符優(yōu)先級高于賦值運(yùn)算符條件運(yùn)算符優(yōu)先級高于賦值運(yùn)算符 , 如:如:max=(ab?a:b) 低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符。低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符。 如:如:max=(ab)?a:b ; ab?a:b+1(3).(3).條件運(yùn)算符的結(jié)合方向?yàn)闂l件運(yùn)算符的結(jié)合方向?yàn)椤白杂抑磷笞杂抑磷蟆薄?如:如:ab?a: cd?c:dab?a:(cd?c:d)說明:( (4).4).“表達(dá)式表達(dá)式2 2”和和“表達(dá)式表達(dá)式3 3”不僅可以是數(shù)值表達(dá)式,還可以不僅可以是數(shù)值表達(dá)式,還可以 是賦值表達(dá)式或函數(shù)表達(dá)式。是賦值表達(dá)式或函數(shù)表達(dá)式。 如如: (ab)?(a=100):(b=100) ab?print

7、f(“%d”,a):printf(“%d”,b) 相當(dāng)于相當(dāng)于 if (ab) printf(“%d”,a); else printf(“%d”,b);(5).(5).條件表達(dá)式中,表達(dá)式的類型可以與表達(dá)式和表達(dá)條件表達(dá)式中,表達(dá)式的類型可以與表達(dá)式和表達(dá) 式的類型不同。式的類型不同。 如:如:x?a:b (整形變量整形變量x的值若等于的值若等于0,則條件表達(dá)式的值為,則條件表達(dá)式的值為b) 表達(dá)式和表達(dá)式的類型也可以不同,此時條件表達(dá)式表達(dá)式和表達(dá)式的類型也可以不同,此時條件表達(dá)式 的值的類型為二者中較高的類型。的值的類型為二者中較高的類型。 如:如:xy?1:1.5 (若若xy則值為則值為

8、1,由于,由于1.5為為實(shí)型,比整高,因此,將實(shí)型,比整高,因此,將1轉(zhuǎn)換為實(shí)型值轉(zhuǎn)換為實(shí)型值1.0)說明:說明:(1).3(1).3種形式的種形式的ifif語句中在語句中在ifif后面都有表達(dá)式,后面都有表達(dá)式, 一般為邏輯表達(dá)式或關(guān)系表達(dá)式。一般為邏輯表達(dá)式或關(guān)系表達(dá)式。 在執(zhí)行在執(zhí)行ifif語句時先對表達(dá)式求解,若表達(dá)式的值語句時先對表達(dá)式求解,若表達(dá)式的值 為為0 0,按,按“假假”處理;若表達(dá)式的值為非處理;若表達(dá)式的值為非0 0,按,按 “ “真真”處理;執(zhí)行指定的語句。處理;執(zhí)行指定的語句。 表達(dá)式的類型不限于邏輯表達(dá)式,可以是任意的表達(dá)式的類型不限于邏輯表達(dá)式,可以是任意的 數(shù)

9、值類型數(shù)值類型( (包括整型、實(shí)型、字符型、指針型包括整型、實(shí)型、字符型、指針型 數(shù)據(jù)等數(shù)據(jù)等) )。說明:說明:(2).(2).第二,第三種形式的第二,第三種形式的ifif語句中,語句中,elseelse子句不能子句不能 作為語句單獨(dú)使用,它必須是作為語句單獨(dú)使用,它必須是ifif語句的一部分。語句的一部分。(3).(3).在在ifif和和elseelse后面可以只含有一個內(nèi)嵌的操后面可以只含有一個內(nèi)嵌的操 作語句,也可以有多個操作語句,此時用花作語句,也可以有多個操作語句,此時用花 括號將幾個語句括起來成為一個復(fù)合語句。括號將幾個語句括起來成為一個復(fù)合語句。例例5.1 5.1 輸入兩個實(shí)數(shù)

10、,按代數(shù)值由小到大的順序輸出這兩輸入兩個實(shí)數(shù),按代數(shù)值由小到大的順序輸出這兩個數(shù)。個數(shù)。#include#include void main()void main()float float a,b,ta,b,t; ;scanf(“%f,%f”,&a,&bscanf(“%f,%f”,&a,&b););if(aif(ab)b)t=a;t=a; a=b; a=b; b=t; b=t;printf(“%5.2f,%5.2fn”,a,b);printf(“%5.2f,%5.2fn”,a,b); ynabT=aA=bB=t思考:思考:輸入三個數(shù)輸入三個數(shù)a,b,c,要求按由

11、小到大的順序輸出。要求按由小到大的順序輸出。補(bǔ):if語句的嵌套在在ifif語句中又包含一個或多個語句中又包含一個或多個ifif語句稱為語句稱為ifif語句的嵌套。語句的嵌套。一般形式:一般形式:if()if()if() if() 語句語句1 1else else 語句語句2 2elseelseif() if() 語句語句3 3else else 語句語句4 4內(nèi)嵌內(nèi)嵌ifif匹配規(guī)則:匹配規(guī)則:elseelse總是與它上面的、最近的、未配對的總是與它上面的、最近的、未配對的ifif語句配對。語句配對。例:例:if()if()if() if() 語句語句1 1elseelseif() if()

12、語句語句2 2else else 語句語句3 3例:例:if()if()if() if() 語句語句11elseelseif() if() 語句語句2 2else else 語句語句3 3當(dāng)當(dāng)ifif和和elseelse數(shù)目不同時,可以加數(shù)目不同時,可以加花括號花括號來確定配對關(guān)系。來確定配對關(guān)系。 -1 (x0) 算法1: 算法1:輸入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)

13、; 上例中的程序段有四個,請判斷哪個是正確的?上例中的程序段有四個,請判斷哪個是正確的?程序程序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;正確正確 -1 (x0)錯誤錯誤 switchswitch語句語句說明:(1)(1) 當(dāng)表達(dá)式的值與某一個后面的常量表達(dá)式當(dāng)表達(dá)式的值與某一個后面的常量表達(dá)式 的值

14、相等時,就執(zhí)行此后面的語句,若所的值相等時,就執(zhí)行此后面的語句,若所 有的中的常量表達(dá)式的值都沒有與表達(dá)式有的中的常量表達(dá)式的值都沒有與表達(dá)式 的值匹配的,就執(zhí)行后面的語句。的值匹配的,就執(zhí)行后面的語句。(2) (2) 每一個的常量表達(dá)式的值必須互不相同,每一個的常量表達(dá)式的值必須互不相同, 否則就會出現(xiàn)互相矛盾的現(xiàn)象。否則就會出現(xiàn)互相矛盾的現(xiàn)象。(3) (3) 各個和的出現(xiàn)次序不影響各個和的出現(xiàn)次序不影響 執(zhí)行結(jié)果。執(zhí)行結(jié)果。switchswitch語句語句(4) (4) 執(zhí)行完一個后面的語句后,流程控制轉(zhuǎn)移到下一執(zhí)行完一個后面的語句后,流程控制轉(zhuǎn)移到下一 個繼續(xù)執(zhí)行。個繼續(xù)執(zhí)行?!俺A勘磉_(dá)

15、式常量表達(dá)式”只是起語句只是起語句 標(biāo)號作用,并不是在該處進(jìn)行條件判斷。在執(zhí)行標(biāo)號作用,并不是在該處進(jìn)行條件判斷。在執(zhí)行 應(yīng)該在執(zhí)行一個分支后應(yīng)該在執(zhí)行一個分支后, ,可以用一個可以用一個 語句來終止語句來終止switchswitch語句的執(zhí)行。語句的執(zhí)行。 若沒有若沒有breakbreak語句,程序語句,程序 將依次執(zhí)行下面的將依次執(zhí)行下面的casecase后的語句,直到遇到后的語句,直到遇到switchswitch的的 右花括號右花括號“”為止。為止。(5) (5) 在后面,允許有多個執(zhí)行語句,可以不用花括號在后面,允許有多個執(zhí)行語句,可以不用花括號 括起來。括起來。 ( (一一).).邏

16、輯運(yùn)算符及其優(yōu)先次序邏輯運(yùn)算符及其優(yōu)先次序1.1. & (& (邏輯與邏輯與) ) 相當(dāng)于其他語言中的相當(dāng)于其他語言中的ANDAND2.2. | (| (邏輯或邏輯或) ) 相當(dāng)于其他語言中的相當(dāng)于其他語言中的OROR3.3. ! (! (邏輯非邏輯非) ) 相當(dāng)于其他語言中的相當(dāng)于其他語言中的NOTNOT優(yōu)先次序:優(yōu)先次序:!(非非)-&()-|()邏輯運(yùn)算符中的邏輯運(yùn)算符中的“&”和和“|”低于關(guān)系運(yùn)算符,低于關(guān)系運(yùn)算符,“!”高于算高于算 術(shù)運(yùn)算符術(shù)運(yùn)算符例:例:ab& xy a=b | x=y !a | ab (ab)&(xy) (a=b

17、) | (x=y) (!a ) | (ab)邏輯表達(dá)式的運(yùn)算結(jié)果:邏輯表達(dá)式的運(yùn)算結(jié)果: 以以“1”1”代表為真,以代表為真,以“0”0”代表為假。代表為假。在判斷一個量是否為真時,以非在判斷一個量是否為真時,以非0 0代表為真,以代表為真,以0 0代表為假代表為假注:注:1.1.邏輯與運(yùn)算邏輯與運(yùn)算&:僅當(dāng)兩個操作對象都為真時,運(yùn)算結(jié)果:僅當(dāng)兩個操作對象都為真時,運(yùn)算結(jié)果 才為真;只要有一個為假,運(yùn)算結(jié)果就為假。才為真;只要有一個為假,運(yùn)算結(jié)果就為假。2.2.邏輯或運(yùn)算邏輯或運(yùn)算|:僅當(dāng)兩個操作對象都為假時,運(yùn)算結(jié)果:僅當(dāng)兩個操作對象都為假時,運(yùn)算結(jié)果 才為假;只要有一個為真,運(yùn)算結(jié)

18、果就為真。才為假;只要有一個為真,運(yùn)算結(jié)果就為真。3.3.邏輯運(yùn)算符也可以對兩個數(shù)值型數(shù)據(jù)進(jìn)行計算,邏輯運(yùn)算符也可以對兩個數(shù)值型數(shù)據(jù)進(jìn)行計算, 包括整型、實(shí)型、字符型或指針型等數(shù)據(jù)。包括整型、實(shí)型、字符型或指針型等數(shù)據(jù)。例:例:a&ba&b 若若a,ba,b為真,則為真,則a&ba&b為真。為真。 a|ba|b 若若a,ba,b之一為真,則之一為真,則a|ba|b為真。為真。 !a a 若若a a為真,則為真,則!a!a為假。為假。 例:設(shè)例:設(shè)a=4a=4,b=5b=5: !a a & b a | b ! a | b 4&0|2 c &

19、 d任何非零的數(shù)值被認(rèn)作任何非零的數(shù)值被認(rèn)作“真真”值為值為0 值為值為1值為值為1值為值為1值為值為1值為值為1例:例:53&83&84-!0 1&0邏輯值為083邏輯值為1表達(dá)式值為0在邏輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算符都要在邏輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算符都要被執(zhí)行。被執(zhí)行。(1)a&b&c (1)a&b&c 只要只要a a為假,就不必判斷為假,就不必判斷b b和和c c的值。的值。 若若a a為真時,才需要判斷為真時,才需要判斷b b的值,的值,b b若為假,不判斷若為假,不判斷c c。 只有只有a a為真,才需判斷為真,才需判斷b b,只有,只有a a和和b b都為真時,都為真時, 才需要判斷才需要判斷c

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論