計(jì)算機(jī)應(yīng)用技術(shù)c程序設(shè)計(jì)語(yǔ)言課件_第1頁(yè)
計(jì)算機(jī)應(yīng)用技術(shù)c程序設(shè)計(jì)語(yǔ)言課件_第2頁(yè)
計(jì)算機(jī)應(yīng)用技術(shù)c程序設(shè)計(jì)語(yǔ)言課件_第3頁(yè)
計(jì)算機(jī)應(yīng)用技術(shù)c程序設(shè)計(jì)語(yǔ)言課件_第4頁(yè)
計(jì)算機(jī)應(yīng)用技術(shù)c程序設(shè)計(jì)語(yǔ)言課件_第5頁(yè)
已閱讀5頁(yè),還剩71頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第五章主講人:周恒艷合肥信息技術(shù)職業(yè)學(xué)院第五章具有循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)

循環(huán)是計(jì)算機(jī)解題的一個(gè)重要特征。由于計(jì)算機(jī)運(yùn)算速度快,最適宜做重復(fù)性的工作。當(dāng)我們?cè)谶M(jìn)行程序設(shè)計(jì)時(shí),總是要把復(fù)雜的不易理解的求解過(guò)程轉(zhuǎn)換為容易理解的操作的多次重復(fù),從而降低了問(wèn)題的復(fù)雜度,同時(shí)也減少程序書(shū)寫(xiě)及輸入的工作量5.1循環(huán)語(yǔ)句概述求1~100的累計(jì)和。根據(jù)已有的知識(shí),可以用“1+2+……+100”來(lái)求解,但顯然很繁瑣?,F(xiàn)在換個(gè)思路來(lái)考慮:首先設(shè)置一個(gè)累計(jì)器sum,其初值為0,利用sum+=n來(lái)計(jì)算(n依次取1、2、……、100),只要解決以下3個(gè)問(wèn)題即可:

(1)將n的初值置為1;

(2)每執(zhí)行1次“sum+=n”后,n增1;

(3)當(dāng)n增到101時(shí),停止計(jì)算。此時(shí),sum的值就是1~100的累計(jì)和。

根據(jù)已有的知識(shí),單獨(dú)實(shí)現(xiàn)每一步都不難。但是,由于需要經(jīng)常使用這種重復(fù)計(jì)算結(jié)構(gòu)(稱為循環(huán)結(jié)構(gòu)),C語(yǔ)言提供了3條循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn),以簡(jiǎn)化、并規(guī)范循環(huán)結(jié)構(gòu)程序設(shè)計(jì)。5.1for語(yǔ)句和while語(yǔ)句

在3條循環(huán)語(yǔ)句中,for語(yǔ)句最為靈活,不僅可用于循環(huán)次數(shù)已經(jīng)確定的情況,也可用于循環(huán)次數(shù)雖不確定、但給出了循環(huán)繼續(xù)條件的情況。

[案例5.1]求1~100的累計(jì)和。

/*案例代碼文件名:AL5_1.C*/

/*程序功能:求1~100的累計(jì)和*/

main()

{inti,sum=0; /*將累加器sum初始化為0*/

for(i=1;i<=100;i++)sum+=i; /*實(shí)現(xiàn)累加*/

printf("sum=%d\n",sum);

} [程序演示]程序運(yùn)行情況如下:sum=50501.while語(yǔ)句(1)一般格式

while(循環(huán)繼續(xù)條件)

{循環(huán)體語(yǔ)句組;}(2)執(zhí)行過(guò)程執(zhí)行過(guò)程如圖5-2所示。1)求解“循環(huán)繼續(xù)條件”表達(dá)式。如果其值為非0,轉(zhuǎn)2);否則轉(zhuǎn)3)。2)執(zhí)行循環(huán)體語(yǔ)句組,然后轉(zhuǎn)1)。3)執(zhí)行while語(yǔ)句的下一條。顯然,while循環(huán)是for循環(huán)的一種簡(jiǎn)化形式(缺省“變量賦初值”和“循環(huán)變量增值”表達(dá)式)。

While循環(huán)練習(xí)(D)main(){intx=0,s=0;while(!x!=0)s+=++x;printf(“%d\n”,s);}1邏輯表達(dá)式5.2do-while循環(huán)5.2do-while循環(huán)注意點(diǎn)與while相同。先判斷后做先判斷后做先做后判斷注意:當(dāng)while的條件一開(kāi)始就為假的時(shí)候,則不同。練習(xí)……x=-1;do{x=x*x;}while(!x);……D)有語(yǔ)法錯(cuò)誤C)循環(huán)執(zhí)行一次B)循環(huán)執(zhí)行三次A)是死循環(huán)練習(xí)main(){y=10;do{y--;}while(--y);printf(“%d\n”,y--);}D)0C)8B)1A)-1(D)D)0

1

……s=7;do{s-=2;}while(s==0);printf(“s=%d\n”,s);……1寫(xiě)出下列程序段的運(yùn)行結(jié)果

1

……s=7;do{s-=2;}while(s==0);printf(“s=%d\n”,s);……1寫(xiě)出下列程序段的運(yùn)行結(jié)果s=51.for語(yǔ)句的一般格式

for([變量賦初值];[循環(huán)繼續(xù)條件];[循環(huán)變量增值])

{循環(huán)體語(yǔ)句組;}2.for語(yǔ)句的執(zhí)行過(guò)程執(zhí)行過(guò)程如圖5-1所示。(1)求解“變量賦初值”表達(dá)式。(2)求解“循環(huán)繼續(xù)條件”表達(dá)式。如果其值非0,執(zhí)行(3);否則,轉(zhuǎn)至(4)。(3)執(zhí)行循環(huán)體語(yǔ)句組,并求解“循環(huán)變量增值”表達(dá)式,然后轉(zhuǎn)向(2)。(4)執(zhí)行for語(yǔ)句的下一條語(yǔ)句。3.說(shuō)明(1)“變量賦初值”、“循環(huán)繼續(xù)條件”和“循環(huán)變量增值”部分均可缺省,甚至全部缺省,但其間的分號(hào)不能省略。(2)當(dāng)循環(huán)體語(yǔ)句組僅由一條語(yǔ)句構(gòu)成時(shí),可以不使用復(fù)合語(yǔ)句形式,如上例所示。(3)“循環(huán)變量賦初值”表達(dá)式,既可以是給循環(huán)變量賦初值的賦值表達(dá)式,也可以是與此無(wú)關(guān)的其它表達(dá)式(如逗號(hào)表達(dá)式)。例如,for(sum=0;i<=100;i++)sum+=i;for(sum=0,i=1;i<=100;i++)sum+=i; (4)“循環(huán)繼續(xù)條件”部分是一個(gè)邏輯量,除一般的關(guān)系(或邏輯)表達(dá)式外,也允許是數(shù)值(或字符)表達(dá)式。

For語(yǔ)句的其他形式For語(yǔ)句的其他形式For語(yǔ)句的其他形式For語(yǔ)句的其他形式練習(xí)0main(){x,y;for(x=0,y=0;x+y<=50;x++,y++){printf(“%3d”,x+y);if(x%5==0)printf(“\n”);}}24681012141618202224262830343638404244464850練習(xí)

請(qǐng)編程序?qū)崿F(xiàn)輸出a~z26個(gè)小寫(xiě)的英文字母練習(xí)

請(qǐng)編程序?qū)崿F(xiàn)輸出a~z26個(gè)小寫(xiě)的英文字母

for(ch=’a’;

ch<=‘z’;

printf(“%c,”,ch);}ch++)

main(){charch;

for(ch=’a’;

ch<=‘z’;

printf(“%c,”,ch);}ch++)5.4循環(huán)的嵌套2

……x=y=0;while(x<20)y++,x+=3;printf(“y=%dx=%d\n”,y,x);……

寫(xiě)出下列程序段的運(yùn)行結(jié)果以及循環(huán)體中的語(yǔ)句共執(zhí)行了幾次。y=7x=21(1)y=1,x=3(2)y=2,x=6(3)y=3,x=9……(7)y=7,x=21y=1x=0

循環(huán)體中的語(yǔ)句共執(zhí)行了1次3

……x=y=0;do{y++;x*=x;}while((x>0)&&(y>5));printf(“y=%dx=%d\n”,y,x);……

寫(xiě)出下列程序段的運(yùn)行結(jié)果以及循環(huán)體中的語(yǔ)句共執(zhí)行了幾次。5.6break語(yǔ)句與continue語(yǔ)句為了使循環(huán)控制更加靈活,C語(yǔ)言提供了break語(yǔ)句和continue語(yǔ)句。1.一般格式:break;

continue;2.功能(1)break:強(qiáng)行結(jié)束循環(huán),轉(zhuǎn)向執(zhí)行循環(huán)語(yǔ)句的下一條語(yǔ)句。(2)continue:對(duì)于for循環(huán),跳過(guò)循環(huán)體其余語(yǔ)句,轉(zhuǎn)向循環(huán)變量增量表達(dá)式的計(jì)算;對(duì)于while和do-while循環(huán),跳過(guò)循環(huán)體其余語(yǔ)句,但轉(zhuǎn)向循環(huán)繼續(xù)條件的判定。3.break和continue語(yǔ)句對(duì)循環(huán)控制的影響如圖5-4所示。4.說(shuō)明(1)break能用于循環(huán)語(yǔ)句和switch語(yǔ)句中,continue只能用于循環(huán)語(yǔ)句中。(2)循環(huán)嵌套時(shí),break和continue只影響包含它們的最內(nèi)層循環(huán),與外層循環(huán)無(wú)關(guān)。[Return]

主要是用于switch結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中break語(yǔ)句1main(){inti,s=0;for(i=0;i<100;i++){scanf(“%d\n”,&x);if(x<=0)break;s+=x;}printf(“s=%d\n”,s);}main(){intx=3,y=6,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}printf(“x=%d,y=%d,a=%d\n”,x,y,a);}x=5,y=4,a=15

……a=10;y=0;do{a+=2;y+=a;printf(“a=%dy=%d\n”,a,y);if(y>50)break;}while(a=14);……

寫(xiě)出下列程序段的運(yùn)行結(jié)果?!璦=10;y=0;do{a+=2;y+=a;printf(“a=%dy=%d\n”,a,y);if(y>50)break;}while(a=14);……39a=12y=12a=16y=28a=16y=44a=16y=60寫(xiě)出下列程序段的運(yùn)行結(jié)果

該語(yǔ)句是專用于循環(huán)結(jié)構(gòu)中改變某一次循環(huán)流程的語(yǔ)句。其作用是:使程序流程提前結(jié)束本次循環(huán)從而開(kāi)始下一次循環(huán)。continue語(yǔ)句2main(){intn;for(n=100;n<=200;n++){if(n%3!=0)continue;printf(“%4d\n”,n);}

105108111114117120123……

該語(yǔ)句是專用于循環(huán)結(jié)構(gòu)中改變某一次循環(huán)流程的語(yǔ)句。其作用是:使程序流程提前結(jié)束本次循環(huán)從而開(kāi)始下一次循環(huán)。continue語(yǔ)句2main(){intn;for(n=100;n<=200;n++){if(n%3!=0)continue;printf(“%4d\n”,n);}

105108111114117120123……main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論