




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、4.1 關(guān)系運(yùn)算和邏輯運(yùn)算,4.2 if語(yǔ)句和if語(yǔ)句構(gòu)成的選擇結(jié)構(gòu),4.3 條件表達(dá)式構(gòu)成的選擇結(jié)構(gòu),第四章 選擇結(jié)構(gòu)程序設(shè)計(jì),4.4 switch語(yǔ)句,4.4 goto語(yǔ)句,4.1.1、C語(yǔ)言的邏輯值,關(guān)系表達(dá)式和邏輯表達(dá)式的運(yùn)算結(jié)果會(huì)得到一個(gè)邏輯值。邏輯值只有兩個(gè),分別用“真”和“假”表示,C語(yǔ)言 中沒(méi)有專門(mén)的“邏輯值”,在表示邏輯表達(dá)式或關(guān)系結(jié)果 是,以數(shù)值1代表“真”,0代表“假”,但在判斷一個(gè)量是 否為“真”時(shí),以0代表“假”,以非0(不論正負(fù))代表真。,4.1.2、關(guān)系運(yùn)算符和關(guān)系表達(dá)式,關(guān)系運(yùn)算:比較運(yùn)算,比較兩個(gè)操作數(shù),看是否滿足給定的關(guān)系。,1、關(guān)系運(yùn)算符(6種),:小于
2、,53, 35,=:小于等于,5=3,3=5,與數(shù)學(xué)上()不同,:大于,53,35,=:大于等于,5 =3,3 =5 ,與數(shù)學(xué)上()不同,=:等于,5=3 ,與數(shù)學(xué)上(=)不同,!=:不等于,5!=3 ,與數(shù)學(xué)上()不同,2、關(guān)系表達(dá)式和關(guān)系表達(dá)式的值,用關(guān)系運(yùn)算符將表達(dá)式連接起來(lái)的式子,優(yōu)先級(jí), =,高 低,= !=,結(jié)合方向,自左向右,表達(dá)式的值,關(guān)系成立,即為真,結(jié)果為1;,關(guān)系不成立,即為假,結(jié)果為0;,算術(shù) 運(yùn)算符,高 低,C語(yǔ)言中,真:非0值,假:0值,如:ab,a+bc-d,(a=3)=b,(ab)= =(bc),例如,假設(shè)num1=3,num2=4,num3=5,則: (1)n
3、um1num2的值為?。 (2)(num1num2)!=num3的值為? 。 (3)num1num2num3的值為?。 思考題:任意改變num1或num2的值,會(huì)影響整個(gè)表達(dá)式的值嗎?為什么? (4)(num1num2)+num3的值為? 6.因?yàn)閚um1num2的值=1,1+5=6。 再次強(qiáng)調(diào):C語(yǔ)言用整數(shù)“1”表示“邏輯真”,用整數(shù)“0”表示“邏輯假”。所以,關(guān)系表達(dá)式的值,還可以參與其它種類的運(yùn)算,例如算術(shù)運(yùn)算、邏輯運(yùn)算等。,0,1,1,4.1.3、邏輯運(yùn)算符和邏輯表達(dá)式,1、邏輯運(yùn)算符(3種),?。哼壿嫹牵辉\(yùn)算符,運(yùn)算規(guī)則:取反,!真,假,!假,真, float b=3.5;,!a
4、,0,!b,0,a b=1; c=2; d=a+,d=(a+),運(yùn)算結(jié)果: d=0,a=1,b=1,c=2,(1)a b=1; c=2; d=a+|b+|- -c;,d=(a+)|(b+)|(- -c);,運(yùn)算結(jié)果: d=1,a=1,b=2,c=2,以下的條件如何使用c語(yǔ)言的邏輯和關(guān)系表達(dá)式表述:,1.0x2,2.x大于5且不能夠被7整除,3.y在1到9之間但不能是5,4.ch不是字符q或者k,x0”,則以下選項(xiàng)中值為 0的表達(dá)式是(05.09) a.(!a=1) a=d/10%9; b=a 程序運(yùn)行后的輸出結(jié)果是:2,1,4.已定義“char ch=$;int i=1,j;”,執(zhí)行“j=!c
5、h 6.在C語(yǔ)言中,邏輯“真”等價(jià)于下面哪一項(xiàng) a.整數(shù)1 b.True c.非0數(shù) d.任意常數(shù),1,10 20 0,C,7.有以下程序: main() int a=1,b=2,m=0,n=0,k; k=(n=ba)|(m=ab); printf(“%d,%dn”,k,m); 程序運(yùn)行后的輸出結(jié)果是 a.0,0 b.0,1 c.1,0 d.1,1,C,問(wèn)題提出:,計(jì)算分段函數(shù):,y=,3-x x0,2/x x0,C語(yǔ)言用來(lái)設(shè)計(jì)條件選擇結(jié)構(gòu)程序的選擇語(yǔ)句有兩種: if語(yǔ)句、switch語(yǔ)句。,4.2 if語(yǔ)句,1、單分支選擇if語(yǔ)句,if語(yǔ)句有三種形式:?jiǎn)畏种нx擇if語(yǔ)句、雙分支面具選擇if語(yǔ)
6、句、多分支選擇if語(yǔ)句。,語(yǔ)句形式:,if (表達(dá)式) 語(yǔ)句,語(yǔ)句執(zhí)行流程:,4.2.1 if語(yǔ)句的三種形式,例4-1:從鍵盤(pán)輸入兩個(gè)整數(shù)a和b,如果a大于b則交換兩數(shù),最后輸出兩個(gè)數(shù)。,#include ,輸入a,b,ab,交換a、b,輸出,結(jié)束,真,假,void main() int a,b,t; scanf(%d,%d,if(ab) t=a;a=b;b=t;,printf(a=%d,b=%dn,a,b); ,注意:,(1)if語(yǔ)句自動(dòng)結(jié)合一個(gè)語(yǔ)句,當(dāng)滿足條件需要執(zhí)行多個(gè)語(yǔ)句時(shí),應(yīng)用一對(duì)大括號(hào)將需要執(zhí)行的多個(gè)語(yǔ)句括起,形成一個(gè)復(fù)合語(yǔ)句。,(2)if語(yǔ)句中表達(dá)式形式很靈活,可以是常量、變量、
7、任何類型表達(dá)式、函數(shù)、指針等。只要表達(dá)式的值為非零值,條件就為真,反之條件為假。,2、雙分支選擇if語(yǔ)句,語(yǔ)句形式:,if (表達(dá)式) 語(yǔ)句1 else 語(yǔ)句2,語(yǔ)句執(zhí)行流程:,表達(dá)式,語(yǔ)句1,真(非0),假(0),語(yǔ)句2,例4-2 輸入兩個(gè)整數(shù),輸出其中較大的數(shù)。,#include #include ,void main() int x,y,max; scanf(%d,%d,if(xy) max=x; else max=y;,printf(max=%dn,max); ,輸入x,y,xy,max=x,輸出最大值,結(jié)束,真,假,max=y,注意,if和else語(yǔ)句之間只能有一個(gè)語(yǔ)句,當(dāng)ifels
8、e之間的語(yǔ)句不只一句時(shí),應(yīng)用一對(duì)將語(yǔ)句括起。,if(ab) a+;b+; else a=0;b=10;,if(ab) a+;b+; else a=0;b=10;,3、多分支選擇if語(yǔ)句,語(yǔ)句形式:,if (表達(dá)式1) 語(yǔ)句1 else if (表達(dá)式2) 語(yǔ)句2 else if (表達(dá)式n) 語(yǔ)句n else 語(yǔ)句n+1,else子句可以省略,語(yǔ)句執(zhí)行流程:,表達(dá)式1,語(yǔ)句1,真(非0),假(0),例4-3:計(jì)算分段函數(shù)。,#include ,void main() float x,y; printf(enter x:);scanf( %f ,if (x10) y=3/(x-10); else
9、 printf(“not definen”);,printf(x=%.2f,y=%.2fn,x,y); ,計(jì)算分段函數(shù)程序,語(yǔ)句含義:,語(yǔ)句形式:,當(dāng)if語(yǔ)句中又包含若干個(gè)if語(yǔ)句時(shí),則構(gòu)成了if 語(yǔ)句嵌套的情形。,4.2.2 if語(yǔ)句的嵌套,if ( 表達(dá)式1) if ( 表達(dá)式2) 語(yǔ)句1,if ( 表達(dá)式1) if ( 表達(dá)式2) 語(yǔ)句1 else 語(yǔ)句2,if ( 表達(dá)式1) if ( 表達(dá)式2) 語(yǔ)句1 else 語(yǔ)句2,if ( 表達(dá)式1) if ( 表達(dá)式2) 語(yǔ)句1 else 語(yǔ)句2 else 語(yǔ)句3,if ( 表達(dá)式1) if ( 表達(dá)式2) 語(yǔ)句1 else 語(yǔ)句2 els
10、e if(表達(dá)式3) 語(yǔ)句3 else 語(yǔ)句4,語(yǔ)句執(zhí)行流程:,else與if的配對(duì)原則:,就近一致原則:,else與同一層最接近它,而又沒(méi)有其它else語(yǔ)句與之相匹配的if語(yǔ)句配對(duì)。,建議:對(duì)于嵌套的if語(yǔ)句最好使用“”擴(kuò)起來(lái) 同時(shí)采用代碼縮進(jìn)的形式書(shū)寫(xiě),國(guó)家級(jí)等級(jí)考試練習(xí):,1.設(shè)變量x和y均已正確定義并賦值,以下的if語(yǔ)句中, 在編譯時(shí)將產(chǎn)生錯(cuò)誤信息的是 a.if(x+); b.if(xy,2.在嵌套使用if語(yǔ)句時(shí),C語(yǔ)言規(guī)定else總是 a.和之前與具有相同縮進(jìn)位置的if配對(duì) b.和之前與其最近的if配對(duì) c.和之前與其最近的且不帶else的if配對(duì) d.和之前的第一個(gè)if配對(duì),C,C
11、,3.有以下程序程序: main() int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; else d=3; printf(“%d,%d,%d,%dn”,a,b,c,d); 程序輸出的結(jié)果是 a.0,1,2,0 b.0,0,0,3 c.1,1,2,0 d.編譯有錯(cuò),D,5.有以下程序運(yùn)行后的輸出結(jié)果是 main() int a=3,b=4,c=5,t=99; if(ba ,4599,6.有以下程序 main() int a=3,b=4,c=5,d=2; if(ab) if(bc) printf(“%d”,d+ + 1); else printf(“%d”,+d + 1)
12、; printf(“%dn”,d); 程序運(yùn)行后的結(jié)果是 a.2 b.3 c.43 d.44,A,4.3、條件運(yùn)算符與條件表達(dá)式,有兩個(gè)符號(hào):?、:,它與三個(gè)操作數(shù)組成三元運(yùn)算。,一般形式:, ? :,求值規(guī)則和表達(dá)式的值:,求解 表達(dá)式1,真(非0),求解 表達(dá)式2,假(0),求解 表達(dá)式3,表達(dá)式 的值,優(yōu)先級(jí):,算術(shù)關(guān)系邏輯 條件 賦值,結(jié)合性:,自右至左,例:,int max,a=5;b=3; max=ab?a:b,-a=b+ ? a+ : b+,y = x10 ? x/10 : x0 ? x: -x;,1.有以下計(jì)算公式,y=,(x=0),(x0),若程序前面已在命令行中包括math
13、.h文件,不能夠正確計(jì)算上述公式的程序是 a.if(x=0) y=sqrt(x); b.y=sqrt(x); else y=sqrt(-x); if(x=0) y=sqrt(x); d.y=sqrt(x=0?x:-x); if(x0) y=sqrt(-x);,國(guó)家等級(jí)考試練習(xí),B,2.若有定義“int x,y;”,并已正確給變量賦值,則以下選 項(xiàng)與表達(dá)式“(x-y)?(x+):(y+)”中的條表達(dá)式(x-y)等 價(jià)的是 a.(x-y0) b.(x-y0) d.x-y=0,C,3.設(shè)有條件表達(dá)式“(EXP)?i+:j+”,則以下表達(dá)式中與 “(EXP)”完全等價(jià)的是_ a.(EXP=0) b.(
14、EXP!=0) c.(EXP=1) d.(EXP!=1),B,4.有以下程序段: int k=0,a=1,b=2,c=3; k=ac?c:k; 執(zhí)行該程序后,k的值是 a.3 b.2 c.1 d.0,B,5.若整型變量a,b,c,d中的值依次為1,4,3,2,則條件表 達(dá)式ab?a:cd?c:d的值是 a.1 b.2 c.3 d.4,A,6.以下程序的輸出結(jié)果是 main() int a=5,b=4,c=6,d; printf(“%dn”,d=ab?(ac?a:c):(b); a.5 b.4 c.6 d.不確定,C,形式:,逗號(hào)表達(dá)式1,逗號(hào)表達(dá)式2,逗號(hào)表達(dá)式n,求值規(guī)則:,從左至右依次計(jì)算
15、各表達(dá)式的值,優(yōu)先級(jí),所有運(yùn)算符里最低,結(jié)合性:,自左至右,表達(dá)式的值,最后一個(gè)表達(dá)式的值。,逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式,例:,a b y 逗號(hào)表達(dá)式 y=a=4,b=5,a+b; 4 5 4 9 y=(a=4,b=5,a+b); 4 5 9 9 y=(a=4,b=5),a+b; 4 5 5 9 y=a=(4,b=5),a+b; 5 5 5 10,4.4 switch語(yǔ)句,1、語(yǔ)句形式:,switch (表達(dá)式) case 常量表達(dá)式1: 語(yǔ)句1; case 常量表達(dá)式2: 語(yǔ)句2; case 常量表達(dá)式3: 語(yǔ)句3; . case 常量表達(dá)式n: 語(yǔ)句n; default : 語(yǔ)句n+1; ,根
16、據(jù)表達(dá)式的不同值,選擇不同的程序分支,又稱開(kāi)關(guān)語(yǔ)句。,數(shù)值型 或 字符型,常量表達(dá)式的值必須互不相同,否則執(zhí)行時(shí)將出現(xiàn)矛盾,即同一個(gè)開(kāi)關(guān)值,將對(duì)應(yīng)多種執(zhí)行方案。,2、語(yǔ)句執(zhí)行流程:,指語(yǔ)句的最后一條是否為break,簡(jiǎn)單語(yǔ)句或復(fù)合語(yǔ)句,case語(yǔ)句出 現(xiàn)的次序并 不影響執(zhí)行 結(jié)果。,例4-4:假設(shè)用0、1、2.6分別表示星期日、星期一.星期六?,F(xiàn)輸入一個(gè)數(shù)字,輸出對(duì)應(yīng)的星期幾的英文單詞。如果輸入3,輸出“Wednesday”。,#include stdio.h void main() int n; scanf(%d, ,程序運(yùn)行情況如下: 3 Wednesday Thursday Friday
17、 Saturday error,在“switch”語(yǔ)句中,“case 常量表達(dá)式”只相當(dāng)于一個(gè)語(yǔ)句標(biāo)號(hào),表達(dá)式的值和某標(biāo)號(hào)相等則轉(zhuǎn)向該標(biāo)號(hào)執(zhí)行,但不能在執(zhí)行完該標(biāo)號(hào)的語(yǔ)句后自動(dòng)跳出整個(gè)switch 語(yǔ)句,因此會(huì)繼續(xù)執(zhí)行所有后面語(yǔ)句的情況。,為此,語(yǔ)言提供了一種break語(yǔ)句,其功能是可以跳出它所在的switch語(yǔ)句。,將上面的例4-4修改如下:,#include stdio.h void main() int n; scanf(%d, ,程序運(yùn)行情況如下: 3 Wednesday,3、說(shuō)明,多個(gè)case語(yǔ)句可以共用一組執(zhí)行語(yǔ)句。,switch(grade) case 10: case 9: c
18、ase 8:printf(“A);break; default:printf(“B); ,各case和default子句的先后順序可以變動(dòng),而不會(huì)影響程序執(zhí)行結(jié)果。,default語(yǔ)句可以省略不用。,case和default與其后面的常量表達(dá)式間至少有一個(gè)空格。,switch語(yǔ)句可以嵌套,break語(yǔ)句只跳出它所在的switch語(yǔ)句。,例4-5 企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤(rùn)提成。從鍵盤(pán)輸入當(dāng)月利潤(rùn),求應(yīng)發(fā)放獎(jiǎng)金總數(shù)?,利潤(rùn)x x=10 10x20 20x40 40x60 60x100 100x,(int )x/10,常量 0,1 1,2 2,3,4 4,5,6 6,7,8,9,10 10以上,用這種
19、方法轉(zhuǎn)換后,n出現(xiàn)了在不同區(qū)域有重復(fù)數(shù)字的情況。解決的方法有很多,其中一種是可以采用當(dāng)x為10的整數(shù)倍時(shí),將計(jì)算出的n值減1。,使用switch解題的關(guān)鍵,通過(guò)分析找到表達(dá)式,將問(wèn)題分成幾種情況。,#include stdio.h void main() double x,y; int n; scanf(%lf, ,程序如下:,#include stdio.h void main() float x,y; int a; scanf(%f, ,國(guó)家等級(jí)考試練習(xí),1.以下敘述中正確的是 a.break語(yǔ)句只能用于switch語(yǔ)句 b.在switch語(yǔ)句中必須使用default c.break語(yǔ)句必
20、須與switch語(yǔ)句中的case配對(duì) d.在switch語(yǔ)句中,不一定使用break語(yǔ)句,D,2.若有定義:“float x=1.5;int a=1,b=3,c=2;”則正確 的switch語(yǔ)句是 a.switch(x) c.switch(a+b) case 1.0:printf(“*n”); case 1:printf(“*n”); case 2.0:printf(“*n”); case 2+1:printf(“*n”); b.switch(int)x); d.switch(a+b) case 1:printf(“*n”); case 1:printf(“*n”); case 2:printf(“*n”); case c:printf(“*n”);,C,3.有以下程序的運(yùn)行結(jié)果是 main() int a=2,b=7,c=5; switch(a0) case 1:switch(b0) case 1:printf(“”);break; case 2:printf(“!”);break; case 0:switch(c=5) case 0:printf(“*”);break; case 1:printf(“#”);break; case 2:printf(“$”);break;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 地調(diào)院食堂運(yùn)營(yíng)承包項(xiàng)目合同
- 安防監(jiān)控工程合同書(shū)
- 路基施工方案
- 2025年國(guó)網(wǎng)新疆電力有限公司招聘1300人(第一批)筆試參考題庫(kù)附帶答案詳解
- 2024年液位傳感器項(xiàng)目資金申請(qǐng)報(bào)告代可行性研究報(bào)告
- 2025年數(shù)控超精密車(chē)床項(xiàng)目發(fā)展計(jì)劃
- 2025年上半年宿州埇橋區(qū)事業(yè)單位招考(114人)易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年宜賓南溪區(qū)鄉(xiāng)鎮(zhèn)教育和醫(yī)療衛(wèi)生事業(yè)單位招考(29人)易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽蕪湖市農(nóng)業(yè)農(nóng)村局赴全國(guó)重點(diǎn)院校招聘緊缺專業(yè)應(yīng)屆畢業(yè)生擬聘用人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 汽車(chē)車(chē)載網(wǎng)絡(luò)控制技術(shù) 比亞迪秦EV汽車(chē)車(chē)載網(wǎng)絡(luò)系統(tǒng)故障檢修教案
- 中學(xué)家長(zhǎng)學(xué)校工作方案(10篇)
- 高考地理二輪復(fù)習(xí)【知識(shí)精研】大氣運(yùn)動(dòng)規(guī)律-大氣受熱過(guò)程與氣溫
- 日內(nèi)交易策略(TBQ版)
- 部編版九年級(jí)道德與法治上冊(cè)《第二課創(chuàng)新驅(qū)動(dòng)發(fā)展》同步測(cè)試題(附答案)
- 充電樁投放合同范本
- 2025-2030年地質(zhì)數(shù)據(jù)定制化服務(wù)行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 鐵路信號(hào)基礎(chǔ)(第四版) 課件 第一章 信號(hào)繼電器
- 氯化車(chē)間安全操作規(guī)程(2篇)
- 2024年電力交易員(高級(jí)工)職業(yè)鑒定理論考試題庫(kù)(單選題、多選題、判斷題)
- 江蘇省蘇州市(2024年-2025年小學(xué)六年級(jí)語(yǔ)文)部編版小升初真題(下學(xué)期)試卷及答案
- 2024年四川瀘州古藺縣選調(diào)事業(yè)單位工作人員26人歷年管理單位遴選500模擬題附帶答案詳解
評(píng)論
0/150
提交評(píng)論