C語言第章選擇結(jié)構(gòu)程序設(shè)計3_第1頁
C語言第章選擇結(jié)構(gòu)程序設(shè)計3_第2頁
C語言第章選擇結(jié)構(gòu)程序設(shè)計3_第3頁
C語言第章選擇結(jié)構(gòu)程序設(shè)計3_第4頁
C語言第章選擇結(jié)構(gòu)程序設(shè)計3_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章選擇結(jié)構(gòu)程序設(shè)計掌握關(guān)系運算符的用法能夠計算關(guān)系表達(dá)式的值掌握邏輯運算符的用法能夠計算邏輯表達(dá)式的值掌握if語句的三種常用格式掌握多分支語句能夠編寫較復(fù)雜的程序關(guān)系運算符和表達(dá)式關(guān)系運算符種類:<<===>=>!=結(jié)合方向:自左向右優(yōu)先級別:<<=>>===!=優(yōu)先級6(高)優(yōu)先級7(低)例c>a+b//c>(a+b)a>b!=c//(a>b)!=ca==b<c//a==(b<c)a=b>c//a=(b>c)關(guān)系表達(dá)式的值:是邏輯值“真”或“假”,用1和0表示例inta=3,b=2,c=1,d,f;a>b(a>b)==cb+c<ad=a>bf=a>b>c//表達(dá)式值1//表達(dá)式值1//表達(dá)式值0//d=1//f=0關(guān)系運算注意:例若a=0;b=0.5;x=0.3;則a<=x<=b的值為

0例5>2>7>8在C中是允許的,值為0例inti=1,j=7,a;a=i+(j%4!=0);則a=2例‘a(chǎn)’>0結(jié)果為‘A’>100結(jié)果為10例注意區(qū)分“=”與“==”inta=0,b=1;if(a=b)printf(“aequaltob”);elseprintf(“anotequaltob”);例應(yīng)避免對實數(shù)作相等或不等的判斷如1.0/3.0*3.0==1.0結(jié)果為可改寫為:fabs(1.0/3.0*3.0-1.0)<1e-60ab!a!ba&&ba||b真假真假假假真真邏輯運算符和表達(dá)式邏輯運算符種類:!&&||邏輯運算真值表C語言中,運算量:0表示“假”,非0表示“真”,運算結(jié)果:0表示“假”,1表示“真”,真假假假假假真真假假真真真假真真!(2)&&(11)||(12)高低例a<=x&&x<=ba>b&&x>ya==b||x==y!a||a>b優(yōu)先級:結(jié)合方向:!:從右向左&&:從左向右||:從左向右//(a<=x)&&(x<=b)

//(a>b)&&(x>y)//(a==b)||(x==y)//(!a)||(a>b)例a=4;b=5;!aa&&ba||b!a||b4&&0||25>3&&2||8<4-!0‘c’&&‘d’值為1值為0值為1值為1值為1值為1//(5>3)&&2||(8<(4-(!0)))值為1短路特性:邏輯表達(dá)式求解時,并非所有的邏輯運算符都被執(zhí)行,只是在必須執(zhí)行下一個邏輯運算符才能求出表達(dá)式的解時,才執(zhí)行該運算符例a&&b&&c//只在a為真時,才判別b的值;只在a、b都為真時,才判別c的值例a||b||c//只在a為假時,才判別b的值;只在a、b都為假時,才判別c的值例a=1;b=2;c=3;d=4;m=1;n=1;(m=a>b)&&(n=c>d)//結(jié)果m=0,n=1條件運算符與表達(dá)式一般形式:expr1?expr2:expr3執(zhí)行過程功能:相當(dāng)于條件語句,但不能取代一般if語句例if(a>b)printf(“%d”,a);elseprintf(“%d”,b);printf(“%d”,a>b?a:b);例求a+|b|printf(“a+|b|=%d\n”,b>0?a+b:a-b);expr1取expr2值取expr3值非0=0例(a==b)?’Y’:’N’(x%2==1)?1:0(x>=0)?x:-x(c>=‘a(chǎn)’&&c<=‘z’)?c-’a’+’A’:c條件運算符可嵌套

如x>0?1:(x<0?-1:0)優(yōu)先級:13結(jié)合方向:自右向左

如a>b?a:c>d?c:da>b?a:(c>d?c:d)expr1、expr2、expr3類型可不同,表達(dá)式值取較高的類型例x?‘a(chǎn)’:‘b’//x=0,表達(dá)式值為‘b’;x?0,表達(dá)式值為‘a(chǎn)’x>y?1:1.5//x>y,值為1.0;x<y,值為1.5選擇型程序設(shè)計if語句(條件選擇語句)if語句的三種形式形式一:格式:if(expression)statement執(zhí)行過程:exprstatement非0=0例:if(x>y)printf(“%d”,x);exprstatement1statement2非0=0形式二:格式:if(expression)statement1elsestatement2執(zhí)行過程:例:if(x>y)max=x;elsemax=y;形式三:格式:if(expr1)statement1elseif(expr2)statement2elseif(expr3)statement3…...[elsestatementn]expr1statemnt1非0=0expr2expr3statemntnstatemnt3statemnt2非0非0=0=0執(zhí)行過程:

例:if(salary>1000)index=0.4;elseif(salary>800)index=0.3;elseif(salary>600)index=0.2;elseif(salary>400)index=0.1;elseindex=0;如:if(a==b&&x==y)printf(“a=b,x=y”);if(3)printf(“OK”);if(‘a(chǎn)’)printf(“%d”,’a’);說明:if后面的表達(dá)式類型任意語句可以是復(fù)合語句if(x)if(x!=0)if(!x)if(x==0)例考慮下面程序的輸出結(jié)果:#include<stdio.h>main(){intx,y;scanf(“%d,%d”,&x,&y);if(x>y)x=y;y=x;elsex++;y++;printf(“%d,%d\n”,x,y);}CompileError!#include<stdio.h>voidmain(){intx,y;printf("Enteraninteger:");scanf("%d",&x);y=x;

if(y<0)y=-y;printf("\ninteger:%d--->absolutevalue:%d\n",x,y);}例求一個數(shù)的絕對值運行:Enteraninteger:-12integer:-12--->absolutevalue:12#include<stdio.h>voidmain(){inta,b;printf("Enterintegera:");scanf("%d",&a);printf("Enterintegerb:");scanf("%d",&b);

if(a==b)printf("a==b\n");elseprintf("a!=b\n");}例輸入兩個數(shù)并判斷兩數(shù)相等否運行:Enterintegera:12

Enterintegerb:12a==b運行:Enterintegera:12

Enterintegerb:9a!=b#include<stdio.h>voidmain(){charc;printf("Enteracharacter:");c=getchar();if(c<0x20)printf("Thecharacterisacontrolcharacter\n");elseif(c>='0'&&c<='9')printf("Thecharacterisadigit\n");elseif(c>='A'&&c<='Z')printf("Thecharacterisacapitalletter\n");elseif(c>='a'&&c<='z')printf("Thecharacterisalowerletter\n");elseprintf("Thecharacterisothercharacter\n");}例判斷輸入字符種類運行:Enteracharacter:Thecharacterisacontrolcharacter運行:Enteracharacter:8Thecharacterisadigit運行:Enteracharacter:DThecharacterisacapitalletter運行:Enteracharacter:hThecharacterisalowerletter運行:Enteracharacter:F1Thecharacterisothercharacter將3個整償數(shù)按韻從小乓到大棄的順斧序排葉列#i喬nc裝lu園de令<st粉di篩o.跪h>vo折id泰m甘ai摧n(興){in典ta,痰b,烈c,紀(jì)t;sc敵an殊f(駕"%大a%b霸%c"四,&恥a,鏡&b唐,&蠶c);if獸(a>b少){t=毛a;a=臉b;b=蒙t;}if彩(a>c接){t=爬a;a=鍬c;c=壞t;}if商(b>c桑){t=任b;b=掘c;c=倡t;}pr飾in宮tf歲("籮%d潔,%支d,夢%d釋\n舉",硬a,與b,母c);}找到最小數(shù)思考伐:如剩何對3個浮乘點數(shù)獵排序炮?if語句膽嵌套:if(expr1)if(expr2)statement1elsestatement2elseif(expr3)statement3elsestatement4內(nèi)嵌if內(nèi)嵌ifif(expr1)if(expr2)statement1elsestatement2內(nèi)嵌ifif(expr1)if(expr2)statement1elsestatement3

內(nèi)嵌ifif(expr1)statement1elseif(expr3)statement3elsestatement4內(nèi)嵌if例魄輸入喪兩數(shù)貞并判杯斷其糖大小悔關(guān)系#i盟nc寒lu升de顫<st岔di戒o.鍋h>ma淚in憶(){in鄙tx,澆y;pr西in男tf昆("切En笛te諒rin累te土ge銹r綁x,量y:郵")雁;sc跟an倡f(起"%饑d,量%d兩",沖&x于,&常y);if債(x宏!=濤y)if端(x撿>y虜)pr略in段tf浴("將X>Y敗\n辛")蜻;el秀sepr費in丸tf敘("脂X<Y宅\n得")生;el債sepr蹦in洗tf懇("夠X==懂Y\勒n"頓);}運行使:En袍te貼r擦i范nt瞇eg滔er遮x,臺y:污12喘,2德3X<削YEn順te仍r封i敲nt少eg姑er賣x,精y:脹12械,6X>植YEn側(cè)te派r桌i粘nt勉eg伏er烏x,釋y:火12都,1哄2X=碼=Yif拴~怪el育se配對筋原則室:缺省至{肉}時朋,el艱se總是獎和它岔上面腿離它姓最近暗的未百配對骨的if配對if(……)if(……)if(……)else…...else…...else…...例:if系(亂a=悄=b常)if買(b榮==平c)pr桌in旗tf路(“件a==掀b=踏=c沈”)磚;el偽sepr損in家tf榨(“少a!=渣b”慕);修改兆:if撿(惕a=柔=b柴){級i灶f(慈b=擋=c鋼)pr械in蹦tf蹲(“筆a==堤b=隙=c丘”)竿;}el鞭sepr榨in竭tf添(“笨a!=驢b”素);實現(xiàn)if搖~布e最ls姐e正確霉配對藥方法催:加市{翻}例員考竊慮下演面程醒序輸恐出結(jié)稠果:ma辣in孝(){in綠tx=秘10扭0,委a=犬10銳,b卸=2割0;in析tv1趣=5訂,v由2=會0;if疏(a呼<b色)if蝦(b寇!=哀15家)if遵(!恒v1紅)x=垂1;el魯seif寶(v意2)層x=寒10骨;x=邁-1臟;pr來in愈tf溜(“瞎%d亦”,肅x);}結(jié)果畏:-1sw查it罷ch語句(開關(guān)幸分支與語句)一般限形式染:sw互it皺ch駐(表達(dá)撐式){這c美as博e撲E1勺:語句蕉組1;br忌ea界k;ca蒼se傍E音2:語句役組2;br仗ea焦k;……幼.ca涌se雅En練:語句咱組n;br攔ea昏k;[d庭ef撒au錢lt貞:語句草組;br吹ea齊k;首]}執(zhí)行浴過程戒:switch表達(dá)式語句組1語句組2語句組n語句組…...E1E2Endefaultcase

說明與:E1掛,E平2,伯…E貍n是常量縮慧表達(dá)添式,且雨值必灑須互抱不相亮同語句紋標(biāo)號蓄作用惹,必筍須用br承ea鄰k跳出ca垮se后可聾包含撿多個纏可執(zhí)頸行語旁句,破且不扶必加趟{(lán)妙}sw森it苗ch可嵌案套多個ca箏se可共渾用一弦組執(zhí)降行語筍句如:……ca這se白‘軟A’溉:ca梨se風(fēng)‘刑B’絹:ca菠se竹‘片C’號:pr帖in凝tf垃(“陜sc段or竄e>6援0\總n”飽);br虎ea朝k;……描..例sw蹤蝶it雪ch境(s懸co砍re輸){仿ca仰se濤5:pr臘in皆tf簡(“至Ve較rygo啦od限!”艱);ca絨se冠4:pr弱in寒tf叉(“失Go聞od!”浴);ca肢se優(yōu)3:pr弦in甘tf你(“望Pa耕ss!”廳);ca期se舍2:pr根in抄tf背(“逆Fa瓣il!”敏);de森fa圍ul漿t升:pr幼in認(rèn)tf纖(“茂da泄taer揭ro鬼r!煮”)命;}運行嫂結(jié)果翠:sc仙or仁e為5品時,昂輸出名:Ve納ry挑g坑oo最d!猾G澤oo墓d!敢P推as歡s!秋F難ai煮l!交d什at賀a煩er顏ro速r!例vo夠id脹m跟ai泊n(略){in銜tx=鞏1,芹y=攤0,摘a=群0,嗎b=宗0;sw兄it臂ch羅(x將){滴c馳as置e殿1榜:sw語it逢ch貓(y昂){丈ca餡se全0津:編a+架+;泡br啟ea驚k;ca板se穴1泉:網(wǎng)b+凈+;澇br德ea楊k;}ca石se字2:吧a+叛+;已b+患+;孝b蒙re書ak炕;ca海se滲3:飛a+您+;波b+嗚+;}pr泡in涂tf鐵(“疤\n思a=%月d,紛b=宵%d壁”,膨a,創(chuàng)b)這;}運行油結(jié)果遵:a=浩2,圈b=態(tài)1#i車nc籠lu猜de惠<st燙di辨o.閥h>ma儉in軋(){in翻tc;pr繪in待tf填("筍En興te宗rm齒or糖n箭o鬼r蒙h稻or富o

溫馨提示

  • 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

提交評論