第5章 循環(huán)結(jié)構(gòu)程序設(shè)計.ppt_第1頁
第5章 循環(huán)結(jié)構(gòu)程序設(shè)計.ppt_第2頁
第5章 循環(huán)結(jié)構(gòu)程序設(shè)計.ppt_第3頁
第5章 循環(huán)結(jié)構(gòu)程序設(shè)計.ppt_第4頁
第5章 循環(huán)結(jié)構(gòu)程序設(shè)計.ppt_第5頁
已閱讀5頁,還剩98頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第5章循環(huán)結(jié)構(gòu)的編程,5.1為什么需要循環(huán)控制,5.2使用while語句的循環(huán),5.3使用do - while語句的循環(huán),5.4使用for語句的循環(huán),5.5循環(huán)的嵌套,5.6幾個循環(huán)的比較,5.7改變循環(huán)執(zhí)行的狀態(tài),5.8循環(huán)程序的例子,5.1為什么需要循環(huán)控制,在日常生活中或在程序處理的問題中,我們經(jīng)常會遇到需要反復(fù)處理的問題。我們應(yīng)該把全班50個學(xué)生的分數(shù)輸入電腦,計算全班50個學(xué)生的平均分數(shù),找出30個整數(shù)的和。老師應(yīng)該檢查30名學(xué)生的分數(shù)是否合格。1.while語句的一般形式如下:while (expression)語句、循環(huán)體一般是一個復(fù)合語句,需要添加或不添加,執(zhí)行到第一個語句;結(jié)

2、尾,有三種形式的循環(huán)。1.while語句的一般形式如下:while語句、執(zhí)行循環(huán)語句時為“真”,不執(zhí)行時為“假”,循環(huán)條件表達式,while循環(huán)的特點是:先判斷條件表達式,再執(zhí)行循環(huán)語句;2.用do - while語句實現(xiàn)循環(huán)do -。do - while語句的特點是:首先無條件執(zhí)行循環(huán),然后判斷循環(huán)條件是否有效。3.for語句不僅可以在確定循環(huán)數(shù)時使用,而且可以在循環(huán)數(shù)不確定且只給出循環(huán)結(jié)束條件時使用。for語句可以完全替換while語句。for語句的一般形式是for(表達式1;表達式2;表達式3)語句,設(shè)置初始條件并只執(zhí)行一次。您可以為零、一個或多個變量設(shè)置初始值,for語句的一般形式是f

3、or(表達式1;表達式2;表達式3)語句,循環(huán)條件表達式,用于確定是否繼續(xù)循環(huán)。每次在執(zhí)行循環(huán)體之前執(zhí)行此表達式,以決定是否繼續(xù)執(zhí)行循環(huán)。for語句的一般形式是for(表達式1;表達式2;表達式3),作為循環(huán)調(diào)節(jié)器,例如,增加循環(huán)變量的值,這是在循環(huán)體被執(zhí)行之后執(zhí)行的。for語句的執(zhí)行過程:(1)首先求解表達式1 (2)求解表達式2,如果其值為真,則執(zhí)行循環(huán)體,然后執(zhí)行以下步驟(3)。如果為假,則結(jié)束循環(huán),轉(zhuǎn)到步驟(5) (3)求解表達式3 (4),并返回到上述步驟(2)繼續(xù)執(zhí)行(5)循環(huán)結(jié)束,并執(zhí)行for語句下面的語句。循環(huán)的三個元素:循環(huán)變量給定初始值,循環(huán)結(jié)束條件,在示例5.1中,找到1

4、 2 3 100,即問題解決思路:這是一個累加問題。需要將100個數(shù)字一個接一個地相加,相加操作需要重復(fù)100次。如果最后一個數(shù)是前一個數(shù)加1,那么下一個數(shù)可以通過將1加1到I、#include int main() int i=1,sum=0得到;而(I=100)sum=sum I;I .printf(sum=%dn,sum);返回0;復(fù)合語句,不能小于,#include int main() int i=1,sum=0;而(I=100)sum=sum I;I .printf(sum=%dn,sum);返回0;不能丟失,否則循環(huán)永遠不會結(jié)束。5.3使用do - while語句實現(xiàn)循環(huán)。示例5

5、.2使用dowhile語句查找:1 2 3 100,即#include int main() int i=1,sum=0;do sum=sum I;I .而(I=100);printf(sum=%dn,sum);返回0;示例5.3 while和do - while循環(huán)的比較。,int i,sum=0;printf(“I=?”);scanf(%d ,int i,sum=0;printf(“I=?”);scanf(“% d”),當while之后的表達式的第一個值為“真”時,兩個循環(huán)得到相同的結(jié)果;否則,情況就不同了。5.4使用for語句實現(xiàn)循環(huán),for(I=1;i=100I)sum=sum I;相

6、當于i=1。而(I=100)sum=sum I;I .使用for語句更簡單、更方便。5.4使用for語句實現(xiàn)循環(huán),for(表達式1;表達式2;表達式3)語句,可以省略一個或兩個或三個表達式、5.4使用for語句實現(xiàn)循環(huán),for(sum=0;i=100I)sum=sum I;與循環(huán)變量無關(guān),并且是合法的。5.4使用for語句實現(xiàn)循環(huán),for(sum=0,I=1;i=100I)sum=sum I;逗號表達式是合法的,對于(i=0,j=100I=j;I,j-)k=I j;5.4使用for語句實現(xiàn)循環(huán),for(I=0;(c=getchar()!=n。I=c);合法,為(;(c=getchar()!=n

7、。)printf(%c,c);1.如果I和k是int變量,那么對于(i=0,k=-1;k=1;k)printf(* * * * * * n);以下關(guān)于語句執(zhí)行的陳述是正確的:a)循環(huán)體被執(zhí)行兩次b)循環(huán)體被執(zhí)行一次c)循環(huán)體不被執(zhí)行一次D)形成一個無限循環(huán),D,2,包括main() char b,c;int I;b=a;c=A;對于(I=0;i6;I)如果(I % 2)put char(I b);else put char(I c);printf(n);程序運行后的輸出結(jié)果是a)abcdef b)abcdef c)abcdef d)abcdef,b,3。有以下程序段#包括main()和getc

8、har()!=n);下列說法是正確的:a)這份聲明將無限期分發(fā);B) getchar()不能出現(xiàn)在while語句的條件表達式中;c)當執(zhí)行這個while語句時,程序只能通過按回車鍵繼續(xù)執(zhí)行;d)當執(zhí)行這個while語句時,程序可以通過按任意鍵繼續(xù)執(zhí)行;C,4。有以下程序#包括main() int x=1,y=0如果(!x)y;否則如果(x=0)如果(x)y=2;否則y=3;printf(%dn,y);程序運行后,輸出結(jié)果是a) 3 b) 2 c) 1 d) 0,d,5。下列程序包括main()int a=1,b=2;而(a6)b=a;a=2;b=10printf(d,dn ,a,b);程序運行

9、后的輸出結(jié)果是a) 5,11b) 7,1c) 7,11d) 6,1,b,6。有以下程序#包括void main()int y=10;而(y-);printf(y=%dn,y);程序執(zhí)行后的輸出結(jié)果是A)y=0B)y=-1C)y=1D),同時形成一個無限循環(huán),B,7。有以下程序#包括void main() int x,y;Scanf (-,程序運行時輸入:1234567。程序運行結(jié)果為。,15,8,用下面的程序#include main() int c=0,k;對于(k=1;k3;k)開關(guān)(k)默認:c=k;案例2: c;打破;案例4: c=2;打破;printf(“% dn”,c);程序運行后

10、,輸出結(jié)果是A)3 B)5 C)7 D)9,a9。有以下程序#包括main() int n=2,k=0;而(k程序運行后,輸出結(jié)果是a) 0 2 b) 1 3 c) 5 7 d) 1 2,d,10。有以下定義語句。編譯時,會出現(xiàn)編譯錯誤:A)字符a=ab)char a=n;c)char a=aa;D)char a=x2d。C,11,有以下程序#包括main() char c1,C2;C1=A8-4;C2=A8-5;printf(%c,%dn ,c1,C2);眾所周知,字母A的ASCII碼是65,程序運行后的輸出結(jié)果是A)E,68 B)D,69 C)E,D)沒有固定值,A,12。以下程序運行后的

11、輸出結(jié)果是 #include main() int a=1,b=7;do b=b/2;a=b;而(B1);printf(“% dn”,a);5,13,有以下程序#包括main() int f,f1,f2,I;f1=0;F2=1;printf(“% d % d”,f1,F(xiàn)2);對于(I=3;I=5;I)f=f1 F2;printf(“% d”,f);f1=f2F2=f;printf( n );程序運行后,輸出結(jié)果為,0 1123,14。假設(shè)變量已被正確定義,下列不能計算一行中輸入字符數(shù)(不包括回車)的程序段是A)n=0;而(ch=getchar()!=n)n;b)n=0;while(getcha

12、r()!=n)n;c)對于(n=0;getchar()!=n。n);d)n=0;for(ch=getchar();ch!=n。n);D,15。當下列程序運行時,如果輸入labcedf2df輸出為 #includemain()chara=0,ch;而(ch=getchar()!=n)if(a%2!=0,1 abcedf2df,16。下列不構(gòu)成無限循環(huán)的語句或語句組是A)n=0;b)n=0;do n;而(n=0);而(1)n;c)n=10;d)對于(n=0,I=1;I)n=I;而(n);n-;a,5.5循環(huán)的嵌套,一個循環(huán)包含另一個完整的循環(huán)結(jié)構(gòu),而被稱為循環(huán)的嵌套嵌入循環(huán)也可以嵌套循環(huán),即多層循

13、環(huán),三個循環(huán)(while循環(huán),dowhile循環(huán)和for循環(huán))可以相互嵌套,5.5循環(huán)的嵌套,示例:編寫程序輸出以下圖形:1111111111222223333333333333444455555555555555555555555555555555555555555555555555555555555555555555555對于(I=1;I=9;I)對于(j=1;j=9;j ) printf(%d,I);printf(n);返回0;111111111 2222222222 33333333 44444444 55555555 6666667777777888888889999999,#inc

14、lude int main() int i,j;對于(I=1;I=9;I)對于(j=1;j=9;j ) printf(%d,I);printf(n);返回0;1 22 333 4444 55555 666666 777777 8888888 99999999、#包括int main() int i,j;對于(I=1;I=9;I)對于(j=1;j ) printf(%d,I);printf(n);返回0;j=I,1 22 333 4444 55555 66666 777777 888888999999,1。下列程序中的變量已正確定義(I=0;i4;I,I)為(k=1;k3;k);printf(

15、* );程序段的輸出結(jié)果是a)* * * * * * * * b)* * * * c)* * d)*、d、2。有以下程序#包括main() int i,j;對于(I=3;I=1;i -)表示(j=1;j=2;j ) printf(%d,I j);printf(n);程序運行結(jié)果為()。45 34 23,3。以下程序的輸出結(jié)果是。#包括main() int i,j,sum對于(I=3;I=1;I-)sum=0;對于(j=1;j=i。j)總和=I * j;printf(%dn,sum);幾種循環(huán)的比較(1)通常,三種循環(huán)可以相互替換(2)在while和do - while循環(huán)中,循環(huán)體應(yīng)該包含使循環(huán)結(jié)束的語句。(3)當使用while和do-while循環(huán)時,循環(huán)變量的初始化應(yīng)該在while和do-while語句之前完成。for語句可以初始化表達式1中的循環(huán)變量。5.7改變循環(huán)執(zhí)行的狀態(tài)5.7.1用中斷語句提前結(jié)束循環(huán)5.7.2用繼續(xù)語句提前結(jié)束循環(huán)5.7.3中斷語句和繼續(xù)語句之間的差異5.7.1用中斷語句提前結(jié)束循環(huán),中斷語句可用于跳出循環(huán)體,即提前結(jié)束循環(huán)。然后執(zhí)行循環(huán)下面的語句,5.7.1用break語句提前結(jié)束循環(huán),5.4在

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論