C語言程序設(shè)計(jì)與應(yīng)用開發(fā)第4章._第1頁
C語言程序設(shè)計(jì)與應(yīng)用開發(fā)第4章._第2頁
免費(fèi)預(yù)覽已結(jié)束,剩余29頁可下載查看

下載本文檔

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

文檔簡介

1、第4章選擇結(jié)構(gòu)程序設(shè)計(jì)A 關(guān)系運(yùn)算符與關(guān)系表達(dá)式邏輯運(yùn)算符與邏輯表達(dá)式A 辻語句 switch語句A 辻語句的嵌套 switch語句的使用賦值運(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)先級的比較:(等于)(不等于)優(yōu)先級相同(低)(高)關(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)算對象:以數(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語句一、if語句的三種形式1. if(表達(dá)式)語句執(zhí)行過程:當(dāng)表達(dá)式的值為“真”(非零)時,執(zhí)行語句,否則,不執(zhí)行語句。如:if ( x y ) z = x;2 if(表達(dá)式)語句1 else語句2執(zhí)行過程:當(dāng)表達(dá)式的值為“真” (非零)時,執(zhí)行語句1,否則,執(zhí)行語句2。如:if (xy) z=x ; elsez=y ;語句1語句23訐(表達(dá)式1)語句1 else i

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

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

5、inclde main()奮通血x; scanf(“d二&x);if (x0)通printf( is positive;); x=x+l;else誦printf (八X is negative.);三、用if語句實(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;目的:簡化if語句。條件運(yùn)算符的優(yōu)先級:算數(shù)運(yùn)算符=關(guān)系運(yùn)算符=邏輯運(yùn)算符(除!)號 賦值運(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)例:把輸入字符中的小寫字符轉(zhuǎn)換成大寫并輸出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語句-般形式:switch(表達(dá)式)case常量表達(dá)式1:語句序列1 break;case常量表達(dá)式2:語句序列2 break;case常量表達(dá)式m語句序列n break;default :語句序列n+1

8、執(zhí)行過程:用break語句處理后的程序段: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寫程序,判斷某一年是否閏年。設(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)行分類,求每類的折扌口,再按公式計(jì)算??傔\(yùn)費(fèi)的計(jì)算公式為:f=p*w*s*(l d)161412折扣的變化點(diǎn)都是 250的倍數(shù).c=s/250代表 250的倍數(shù).沒有折扣%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;、說 25035 人500、casecase2:2:500500IAIASA7504tSA7504tcase3:d=5;break;、 詵 750協(xié)人 1000 詵、case4、詵 1000 於人 1250 詵、c

13、asecase5:5:、詵、詵 12501250 於於:”1009209300B油:若用if語句實(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,有兩個不相等的實(shí)根4b2-4ac0,有兩個共軌復(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í)題給一個不多于 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 語言提供的關(guān)系運(yùn)算符有 6 種: (大于), =大于等于),=(等于),u(不等于)。用關(guān)系運(yùn)算符將兩個表達(dá)式連 接起來,進(jìn)行關(guān)系運(yùn)算的式子稱為關(guān)系表達(dá)式。(2)C 語言提供的邏輯運(yùn)算符有 3 種:&(邏輯與),|(邏輯或),?。ㄟ壿?非) 。用邏輯運(yùn)算符將一個或多個表達(dá)式連接起來, 進(jìn)行邏輯運(yùn)算的式子 稱為邏輯表達(dá)式。(3)if 語句的三種基本形式如下:1單分支 if 語句雙分支

溫馨提示

  • 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

提交評論