大學(xué)C語言程序設(shè)計第二電子工業(yè)第章_第1頁
大學(xué)C語言程序設(shè)計第二電子工業(yè)第章_第2頁
大學(xué)C語言程序設(shè)計第二電子工業(yè)第章_第3頁
大學(xué)C語言程序設(shè)計第二電子工業(yè)第章_第4頁
大學(xué)C語言程序設(shè)計第二電子工業(yè)第章_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

大學(xué)C/C++語言程序設(shè)計第4章選擇結(jié)構(gòu)程序設(shè)計第4章選擇結(jié)構(gòu)程序設(shè)計4.1if語句4.2switch語句

C語言的語句可分為以下四類:

簡單語句、空語句、復(fù)合語句和流程控制語句。簡單語句又分為:表達(dá)式語句和函數(shù)調(diào)用語句。

x+y%4;z--;x=a/2+fabs(b);printf(“hello!”);;

復(fù)合語句:用一對花括號{}將多條語句組合在一起,在語法上相當(dāng)于一條語句。

....................{intx,y;x=exp(3);y=pow(2,4);}

printf(“x=%d,y=%d\n”,x,y);

..............................4.1if語句(條件選擇語句)if語句的三種形式(1)形式一:單分支

一般格式:if(表達(dá)式)語句;例if(x>y)max=x;執(zhí)行過程:實驗教程P18頁6題(if單分支結(jié)構(gòu))#include"stdio.h"main() {inta=8,b=7,c=9,t=0;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;}

printf("%5d%5d%5d\n",a,b,c); }kj17{}輸出結(jié)果:

987三個數(shù)降序輸出實驗教程P18頁6題(if單分支結(jié)構(gòu))#include"stdio.h"main() {inta=8,b=7,c=9,t=0;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;

printf("%5d%5d%5d\n",a,b,c); }kj17a輸出結(jié)果:970例:if(x>y)max=x;elsemax=y;printf(“%d”,max);(2)形式二:雙分支一般格式:if(表達(dá)式)語句1;else

語句2;執(zhí)行過程:#include<stdio.h>main(){intx,y;printf("Enteraninteger:");scanf("%d",&x);if(x<0)y=-x;if(x>=0)y=x;printf("%d.absolutevalue:%d\n",x,y);}kj18例:求一個數(shù)的絕對值運行:Enteraninteger:-12-12.absolutevalue:12if(x<0)y=-x;else

y=x;如:if(a==b&&x==y)printf(“a=b,x=y”);if(3)printf(“OK”);if(‘a(chǎn)’)printf(“%d”,’a’);if后面的表達(dá)式類型任意(關(guān)鍵:非0為真)if或else后面的語句可以是復(fù)合語句else不可以單獨使用例考慮下面程序的輸出結(jié)果:#include<stdio.h>main(){intx,y;scanf(“%d,%d”,&x,&y);if(x>y)x--;y--;elsex++;y++;printf(“%d,%d\n”,x,y);}kj19CompileError!if后只能管一條語句說明:(3)形式三:多分支一般格式:if(表達(dá)式1)語句1;else

if(表達(dá)式2)語句2;

else

……

if(表達(dá)式n)語句n;else

語句n+1;執(zhí)行過程:

實驗教程P18頁4題(if多分支結(jié)構(gòu))#include“stdio.h”main() {inta=1,b=2,c=3,d=4;

if(a<b<c)printf(“%d\n”,d);

elseif((c-b)==a)printf(“%d\n”,2*d);

elseprintf(“%d\n”,4*d);} kj20例.編程實現(xiàn):給出一百分制成績,要求輸出成績等級‘A’、‘B’、‘C’、‘D’。90分以上為‘A’等,89~80分為‘B’等,79~70分為‘C’等,69~60分為‘D’等。假定成績?yōu)閷嵭蛿?shù)據(jù)。#include<stdio.h>main(){floatscore;scanf("%f",&score);if(score>=90)printf(“A\n”);if(score>=80&&score<90)printf(“B\n”);if(score>=70&&score<80)printf(“C\n”);if(score>=60&&score<70)printf(“D\n”);} kj21例:百分制成績的等級劃分問題之解法1:僅用if單分支語句實現(xiàn)#include<stdio.h>main(

){floatscore;scanf("%f",&score);if(score>=90)printf("A\n");elseif(score>=80)printf("B\n");elseif(score>=70) printf("C\n"); elseprintf("D\n");}kj22解法2:用if多分支語句實現(xiàn)★if語句嵌套:如果if(表達(dá)式)或else后面的語句又包含一個或多個if語句,就稱為if語句的嵌套。內(nèi)嵌的if-else語句內(nèi)嵌if-else語句if語句的兩層嵌套結(jié)構(gòu)如下:if(表達(dá)式1)

if(表達(dá)式1_1)語句1_1;

else語句1_2;else

if(表達(dá)式2_1)語句2_1;

else語句2_2;修改1:if(a==b)

{if(b==c)printf(“a==b==c”);}elseprintf(“a!=b”);kj22cif~else配對原則:缺省{}時,else總是和它上面離它最近的未配對的if配對例:修改程序,使之滿足1.a,b,c相等時輸出:a==b==c;2.a!=b時輸出a!=b

if(a==b)if(b==c)printf(“a==b==c”);elseprintf(“a!=b”);想改變if~else默認(rèn)配對方法:加{}例:

計算分段函數(shù)。

x+2 x<=-10

y=x-2 0>=x>-10

x

*

2 10>=x>0

x/2 x>10kj23

if(x<=0)if(x<=-10)y=x+2;elsey=x-2;elseif(x<=10)y=x*2;else

y=x/2;

if(x<=-10)y=x+2;elseif(x<=0)y=x-2;elseif(x<=10)y=x*2;else

y=x/2;

switch語句

使用if語句嵌套層次太多,容易發(fā)生錯誤,因此在多分支結(jié)構(gòu)中,通常使用switch語句。switch語句的一般形式

switch(表達(dá)式){case常量表達(dá)式1:語句1;case常量表達(dá)式2:語句2;……case常量表達(dá)式n:語句n;default:語句n+1;}說明

當(dāng)表達(dá)式的值與某一個case后面的常量相等時,執(zhí)行該case后面的語句。然后執(zhí)行下一個case后面的語句。若所有的case后面的常量都不和表達(dá)式的值相匹配,就執(zhí)行default后面的語句。每一個case的常量表達(dá)式必須互不相同,不能表示范圍,如x>0

。常量可以是整數(shù)或字符。例swit涉ch(s贈core綢){朗case典9:餐pr愿intf傻(“A”語);cas度e達(dá)8個:宴p值rin許tf(害“B”不);case常7:三pr芹intf備(“C”輝);cas呼e壇6哨:賣p暫rin目tf(慰“D”穴);defa殼ult疊:胞pr蔥intf識(“E”扒);}響kj2鼓4運行結(jié)果柏:sco靈re為9時,輸出撲:ABCD座E如果scor麥e分別為3,2朗,1呢?說明:語句標(biāo)復(fù)號作用閱,必須助用brea誦k跳出cas桐e后可包含蚊多個可執(zhí)宮行語句,冊且不必加徐{}多個cas課e可共用一笛組執(zhí)行語闊句如:……case愚‘即A’:p爪rint旅f(“s灑core撞>90\名n”);睛brea貧k;cas獸e菊‘B娛’:case趁‘奮C’:能pr涂intf驢(“sc勻ore>察60\n觸”);羊brea層k;……..swit猴ch可嵌套,其中的bre帖ak語句只能廣退出本層墊的swi是tch語句體例:...艇....座....搏....臥....int升scor畢e;scan平f(“%終d”,&只scor斬e);swit么ch(s妨core酬/10){以case院9:舉pr田intf攜(“A”墨);b堡reak發(fā);case輛8:果pr脈intf根(“B”印);b哈reak盤;cas凝e軋7醒:訂p拐rin磨tf(未“C”否);瓶bre胡ak;cas節(jié)e盼6隔:柳p危rin炸tf(慚“D”鏟);伴bre耗ak;}....音....濱....指....妖....賊....籠....俘k政j24運行結(jié)果瘡:sco嬌re為95時,輸桐出:A例:百分制葬成績的倦等級劃退分之解冠法3:用swi器tch語句實航現(xiàn)main染(){in調(diào)ta=優(yōu)1,b途=0;swi請tch睜(a){cas育e1:swi患tch輪(b幫){c良ase瀉0:蹲pr裹int番f("塞*0*受");豎br牢eak蠻;cas佩e1榜:p銹rin亂tf(患"*1糠*")霧;b執(zhí)rea爽k;}cas央e2輛:p氣rin票tf(大"*2幻玉*")雪;b馳rea革k;}}赤kj2堤5運行結(jié)達(dá)果:*0**2件*例(習(xí)題9):根據(jù)程序演寫出運行辯結(jié)果?例:輸入兩個云整數(shù)和一風(fēng)個四則運錦算符,要伏求輸出計祥算結(jié)果。#inc囑lude秧<std變io.h辱>voi膜dm蒸ain尾(

){美int給nu塞m1,漆nu蔥m2;char脾si叢gn;scan狀f(“%d,%c,%d",工&num虎1,&疊sign擊,&n挑um2)標(biāo);swi除tch獸(si晶gn){cas溜e'底+':驢pr痕int腎f("%d\n"方,nu獨m1+n洪um2)度;br營eak;case輩'-'輛:pr摘intf上("%d\n貿(mào)",苦num借1-n粘um2耍);柿bre搜ak;cas謹(jǐn)e'脆*':洗pr策int較f("%d\n"胃,nu艦m1*n但um2)西;br火eak;case渠'/'冷:pr京intf石("%d\n"惰,nu奏m1/n狹um2)溜;br陶eak;defa駝ult:莊pri紹ntf(搬"inp菌ute昂rror嶼\n")容;}}幫kj264.3實多例謠解澇析例1:根據(jù)程陡序?qū)懗鲥N運行結(jié)援果答案:2答案:13#inc找lude蒙<st贏dio.限h>main土(){i延ntx祥=2,y炕=-1,兵z=2;if(x無<y)if(y犯<0)侍z=0伙;els貓e帥z+醋=1;prin獄tf(“暑%d\n便“,z)挽;}kj22芬e#in士clu灘de口<st撲dio牲.h>main順(){悠int兇i=10壁;swi魚tch苗(i){c傳ase靠9:i+歷=1;case監(jiān)10:分i+=1端;case專11:險i+=1絨;def嶄aul察t:i晃+=1主;}pri魔ntf揀("%耀d\n犧",i倒);}例:根據(jù)輸歌入的年為份和月磁份,計倉算該月寺有多少殼天?(侮考慮閏彎年和平郊年的情桂況)#in敢clu梯de歸<st賀dio救.h>mai賀n(){噴int扁year穿,mon羅th,d暢ay;pri普ntf您(“i堵npu磚tt門he嗽yea稅ra蹤蝶nd即mon乏th:罰”);scan涂f(“%滑d,%d由”,&y兆ear,賀&mon痕th);//輸入年滴份和月些份swit福ch(m應(yīng)onth封){撥case娃4:cas卸e6撤:cas訴e9擊:case刊11:條day薄=30;拍brea貧k;cas去e2吹:if(撤year旋%4==碌0&&y蛋ear%為100!惡=0||零year妨%400用==0)day錢=29剝;els菌e半day尸=28完;bre課ak;defa催ult:讓day=館31;b禾reak久;}pri訪ntf命(“T常he層mon豆th乓is儲%d棋day訴\n”煎,da羽y);//輸出該溜月的天趣數(shù)}#inc壞lude傾<st仿dio.斯h>#in莖clu壇de筒<ma軍th.四h>main喝(){旋floa鳳ta,鞋b,c,悟m,n,糾x1,x替2;sca

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論