C語(yǔ)言程序設(shè)計(jì)與應(yīng)用開(kāi)發(fā)第4章._第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)與應(yīng)用開(kāi)發(fā)第4章._第2頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第4章選擇結(jié)構(gòu)程序設(shè)計(jì)A 關(guān)系運(yùn)算符與關(guān)系表達(dá)式邏輯運(yùn)算符與邏輯表達(dá)式A 辻語(yǔ)句 switch語(yǔ)句A 辻語(yǔ)句的嵌套 switch語(yǔ)句的使用賦值運(yùn)算符(低)例如:c=da+b等效于:c=(d(a+b)4. 1關(guān)系運(yùn)算符和關(guān)系表達(dá)式一、關(guān)系運(yùn)算符及其優(yōu)先次序6種關(guān)系運(yùn)算符:V (小于)笑=(大于或等于)丿結(jié)合性:自左向右4. 1關(guān)系運(yùn)算符和關(guān)系表達(dá)式 一、關(guān)系運(yùn)算符及其優(yōu)先次序與其它運(yùn)算符優(yōu)先級(jí)的比較:(等于)(不等于)優(yōu)先級(jí)相同(低)(高)關(guān)系運(yùn)算符二、關(guān)系表達(dá)式1.什么是關(guān)系表達(dá)式?如(ab)(b、xy、s+fd2.關(guān)系表達(dá)式的值“假”ob(a-b) = = 1 b+cb)&(bvc八

2、!allab2.邏輯表達(dá)式的值運(yùn)算對(duì)象:以數(shù)值非0為真、0為假運(yùn)算結(jié)果:邏輯值(只有假為0、真為1兩種取值)如:53& 2 II 8a+b&ab等效于:c=(d(a+b)&(ab)關(guān)系運(yùn)算符4. 3 i f語(yǔ)句一、if語(yǔ)句的三種形式1. if(表達(dá)式)語(yǔ)句執(zhí)行過(guò)程:當(dāng)表達(dá)式的值為“真”(非零)時(shí),執(zhí)行語(yǔ)句,否則,不執(zhí)行語(yǔ)句。如:if ( x y ) z = x;2 if(表達(dá)式)語(yǔ)句1 else語(yǔ)句2執(zhí)行過(guò)程:當(dāng)表達(dá)式的值為“真” (非零)時(shí),執(zhí)行語(yǔ)句1,否則,執(zhí)行語(yǔ)句2。如:if (xy) z=x ; elsez=y ;語(yǔ)句1語(yǔ)句23訐(表達(dá)式1)語(yǔ)句1 else i

3、f(表達(dá)式2)語(yǔ)句2 else if(表達(dá)式3)語(yǔ)句3如:if (grade=85) level= A; else if (grade=70) level= ;else if (grade=60) level= C; else level= D;if語(yǔ)句說(shuō)明:(1) if后面的表達(dá)式一般為邏輯表達(dá)式或關(guān)系表 達(dá)式,也可以是任意數(shù)值類(lèi)型表達(dá)式。該語(yǔ)句是合法的:if(3) printff4ok!);if語(yǔ)句中的“語(yǔ)句”為一個(gè)簡(jiǎn)單語(yǔ)句或復(fù)合語(yǔ)句 女口:下面else if(表達(dá)式m)語(yǔ)句else語(yǔ)句nif (x=0)pnx+elseprintfVX is negative.*);sitive?);pr

4、intf(X is positive;*);x+;elseprintfi(X is negative/);假假if (x=0)程序段是否有錯(cuò)?iXn6) iP(n12)printfCt6n6) if(n12)printf(“6vnvl2,);寫(xiě)ntf(“n0)if(條件1)if(y0)if(條件2)語(yǔ)句1printf(HxO,yOn);elseelse語(yǔ)句2JprintfCx0, y0)if(條件3)語(yǔ)句沖printf(ctxOn);elseelse語(yǔ)句4Jprintf(cx=0, yv=(F);說(shuō)明:個(gè)else應(yīng)與其之前距離最近且沒(méi)有與其它else配對(duì)的if配對(duì)。printfCcn=6);#

5、inclde main()奮通血x; scanf(“d二&x);if (x0)通printf( is positive;); x=x+l;else誦printf (八X is negative.);三、用if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)舉例r-1 ; X0main()int x,y;scanf(n%dH,&x);if(xb) t=a;a=b;b=l;if(ac)t=a;a=c;c=t;(if(bc) t=b;b=c;c=t;printfC%52f,%5.2f,%5 2fa條件表達(dá)式的一般形式:如:max= (ab) ? a : b;若a=3, b=2,貝!J max=?四、條件運(yùn)算符和條件

6、表達(dá)式表達(dá)式1?表達(dá)式2 :表達(dá)式3如:(ab) ? a : b等效于:訐(ab) max=a;else max=b;目的:簡(jiǎn)化if語(yǔ)句。條件運(yùn)算符的優(yōu)先級(jí):算數(shù)運(yùn)算符=關(guān)系運(yùn)算符=邏輯運(yùn)算符(除!)號(hào) 賦值運(yùn)算符v=條件運(yùn)算符2如:x = a+bc & cd ? a+b : d等效于:x = (a+b)c) & (cd) ? (a+b) : d)條件運(yùn)算符的結(jié)合方向:自右至左 女口:ab ? a : cd ?c : d等效于:ab ? a : (cd ? c : d)例:把輸入字符中的小寫(xiě)字符轉(zhuǎn)換成大寫(xiě)并輸出O#include main()char ch;scanf(n%cn

7、,&ch);ch=(ch=a!&chv=z)? ch-32: ch; pTintf(%c,:ch);輸入數(shù)據(jù): 輸出結(jié)果:main()int a,b,c,t,max; scanf(n%d%d%dn,&a,&b,&c); t=(ab) ?a : b ;max=(tc) ? t : c ; printf(nmax=%dnn,max);4. 4 switch語(yǔ)句-般形式:switch(表達(dá)式)case常量表達(dá)式1:語(yǔ)句序列1 break;case常量表達(dá)式2:語(yǔ)句序列2 break;case常量表達(dá)式m語(yǔ)句序列n break;default :語(yǔ)句序列n+1

8、執(zhí)行過(guò)程:用break語(yǔ)句處理后的程序段:switch(grade)case6A9: printf(85100 ”); break;case: printf(u70-84 ”); break; case:printf(u60-69 ”);break; case D,:printf(v60 ); break; default:printfCerror”);若grea( (l=6A9,輸出結(jié)果又是什么?完整程序:main()char grade;printf(uInput grade(A,B,C,D):,);scanf(u%c9,&grade);switch(grade)caseA9: p

9、rintf(85100 ”);break;case B: printf(7084 ); break; case:printfj6069 break; case D9:printf(u60 ”); break; default :printf(uerror !”);流程圖為:4.5選擇結(jié)構(gòu)程序舉例例1寫(xiě)程序,判斷某一年是否閏年。設(shè):leap代表閏年信息,leap=l閏年,leap=O非閏年main()int year, leap=O;scanf(%cT:&year); /*輸入年份值 */if (year%4=二6&year% 100!=0)ll(year%400= =0)lea

10、p= 1;else leap=0;if(leap= =1) printf(C4%d is leap year);else printf(ww%d is not leap二year); main()int year, leap=0;scanf(%cT;&year);/* 輸入年份值 */if(year%4 != 0)leap=0;else if(year% 100 != 0)leap= 1;else if(year%400 != 0)leap=0;else leap= 1;if(leap= =1) prints%(! is leap year); else printf(%d is no

11、tleap , year);例 已知基本運(yùn)費(fèi)、貨重,以及路程(s)和折扣的關(guān) 系標(biāo)準(zhǔn)如下:sv25()km250s500500s10001000s20002000s30003000s編程序,計(jì)算運(yùn)費(fèi)。設(shè)基本運(yùn)費(fèi)P、貨物重量w、距離s和折扣do則總運(yùn)費(fèi)的弈算公式為:f=p*w*s*(l-d)算法:先按距離的250倍數(shù)進(jìn)行分類(lèi),求每類(lèi)的折扌口,再按公式計(jì)算??傔\(yùn)費(fèi)的計(jì)算公式為:f=p*w*s*(l d)161412折扣的變化點(diǎn)都是 250的倍數(shù).c=s/250代表 250的倍數(shù).沒(méi)有折扣%2折扣5%折扣8%折扣10%折扣15%折扣就遜涉:main(main() )亠inffloaffloaf? ?

12、WyWyd d9 9f f; ;scanfugfscanfugf9 9EfEf9 9&?&?&京京&s)&s);50H3OOO)50H3OOO)CHICHI2;2;ekeekeCHCHs一250;250;d d250250 淞Jswffch(swffch(c c) )亠case0duojbreak二*SA250Jcase1“dH2jbreak;、說(shuō) 25035 人500、casecase2:2:500500IAIASA7504tSA7504tcase3:d=5;break;、 詵 750協(xié)人 1000 詵、case4、詵 1000 於人 1250 詵、c

13、asecase5:5:、詵、詵 12501250 於於:”1009209300B油:若用if語(yǔ)句實(shí)現(xiàn)上述功能,程序?yàn)椋簃ain() int s;float p, w, d , f ;scanf(w%f,f,&p,&w,&s);if(s=3000) d=15;else if (s=2000&s=1000&s=500&s=250&s 特殊條件的處理3b2-4ac0,有兩個(gè)不相等的實(shí)根4b2-4ac0,有兩個(gè)共軌復(fù)根5如何判斷實(shí)數(shù)為零(或大于零,或小于零)#includemain()else if( discle-6) float a,b,c,

14、d,disc,x 1 ,x2,realpart,imapart; x 1 =(-b+sqrt(disc)/(2*a);scanfC%f,%f,%F,&a,&b,&c);x2=(-b-sqrt(disc)/(2*a);pnntfl(66The equation J;if(fabs(a)= le-6)elseprintfis not a quadratic); real part=-b/(2 * a);elseimagpart=sqrt(-disc)/(2 *a);disc=b*b-4*a*c;printf(Cwhas complex roots:n );if(fabs(d

15、isc)=le-6)打印虛根;printfChas two equal roots: %7.4fn-b/(2*a);習(xí)題給一個(gè)不多于 5位的正整數(shù),要求:求出它是幾位數(shù);分 別打印出每一位數(shù)字;按逆序打印出各位數(shù)字,例如原數(shù)為 321,應(yīng)輸出123。#include main() long int num;int n 1 ,n2,n3,n4,n5,bits;scanf(%l(f;&num); if(num9999) bits=5 else if(num999) bits=4; elseif(num99) bits=3; elseif(num9) b讓s=2; elsebits= 1;p

16、rintfCbits=%dnbits);n5=num/10000;n4= (int)(num-n5* 10000)/1000; n3=(int)(num- n5* 10000-n4* 1000)/100; n2=(int)(num- n5* 10000- n4*1000- n3*100)/10; nl=(int) ( num-n5* 10000-n4* 1000-n3* 100- n2*10 ); switch(bits) .case 5:printfEvery bit is:%d,%d,%d,%d,%dn n5,n4,n3,n2,nl); printf(Reverse is:%d,%d,%d

17、,%d,%drf:nl,n2,n3,n4, n5);breakcase 4: printfCEvery bit is: %d.%d,%d,%dn n4,n3,n2,nl);printf( Reverse is: %d,%d,%d,%dn:nl,n2,n3,n4);break:case 3: printfiEvery bit is: %d,%d,%drf:n3,n2,nl);printfCReverse is: %d,%d,%dn, nl?n2?n3); break;case 2: printfCEvery bit is: %d,%dif n2,nl); printfCReverseis:%d,%drf;nl,n2); break;easel: printfC Bit is: %drT, nl);printff Reverse is: %dn? nl);4.7小結(jié)(1)c 語(yǔ)言提供的關(guān)系運(yùn)算符有 6 種: (大于), =大于等于),=(等于),u(不等于)。用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連 接起來(lái),進(jìn)行關(guān)系運(yùn)算的式子稱(chēng)為關(guān)系表達(dá)式。(2)C 語(yǔ)言提供的邏輯運(yùn)算符有 3 種:&(邏輯與),|(邏輯或),?。ㄟ壿?非) 。用邏輯運(yùn)算符將一個(gè)或多個(gè)表達(dá)式連接起來(lái), 進(jìn)行邏輯運(yùn)算的式子 稱(chēng)為邏輯表達(dá)式。(3)if 語(yǔ)句的三種基本形式如下:1單分支 if 語(yǔ)句雙分支

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論