2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩42頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、循環(huán)結(jié)構(gòu),李曉玲,Page 2,本章結(jié)構(gòu),循環(huán)結(jié)構(gòu),,,,循環(huán)結(jié)構(gòu)概述,循環(huán)結(jié)構(gòu)的嵌套,for語句,,,while語句,,do…while語句,,,Page 3,本章目標,了解循環(huán)結(jié)構(gòu)、循環(huán)語句重點掌握for語句、 while語句和do…while語句的語法形式、執(zhí)行順序及用法掌握循環(huán)結(jié)構(gòu)的嵌套使用方法,Page 4,循環(huán)結(jié)構(gòu)概述,為什么用循環(huán)結(jié)構(gòu)?循環(huán)的基本步驟是什么?循環(huán)結(jié)構(gòu)的定義?,Page 5,為什么用循環(huán)結(jié)構(gòu)?,在程序

2、設計中經(jīng)常會遇到在某一條件成立時,重復執(zhí)行某些操作。例如,求: sum=1+2+3+4+…+n,Page 6,循環(huán)的基本步驟,(1)給sum賦值0,i賦值1;,(2)令sum=sum+i,i=i+1;,(3)若i<=n,則重復執(zhí)行(2),(4)輸出sum的值,,,,Page 7,循環(huán)結(jié)構(gòu)的定義,循環(huán)結(jié)構(gòu):就是在給定條件成立的情況下,重復執(zhí)行一個程序段;當給定條件不成立時,退出循環(huán),再執(zhí)行循環(huán)下面的程序。循環(huán)語句:實現(xiàn)循環(huán)

3、結(jié)構(gòu)的語句稱為循環(huán)語句。在C中,循環(huán)語句有以下三種:for語句while語句do…while語句,Page 8,for語句(P29),語法形式: for(表達式1;表達式2;表達式3)語句說明:圓括號內(nèi)的三個表達式用分號“;”隔開;表達式1稱為循環(huán)初始化表達式,通常為賦值表達式;表達式2稱為循環(huán)條件表達式,通常為關系或邏輯表達式;表達式3稱為循環(huán)增量表達式,通常為賦值表達式,增量大小通常稱為步長;語句

4、稱為循環(huán)體,可以是單個語句,也可以是多個語句。,for(循環(huán)初始化;循環(huán)條件;循環(huán)增量),Page 9,for語句,表達式1可以省略for( ;表達式2;表達式3)表達式1和3都可以省略for(;表達式2;)如果表達式3省略,則在循環(huán)體內(nèi)應該有改變循環(huán)條件的語句表達式1和3可以是簡單表達式,也可以是逗號表達式for(i=0,j=100;i<=j;i++,j--) k=i+j;,i=1;for(;i<=100;

5、i++)sum=sum+i;,Page 10,for語句,執(zhí)行順序(1)計算表達式1的值;(2)計算表達式2的值,若表達式2的值為true,則轉(zhuǎn)到(3);若為false,則結(jié)束循環(huán)(3)執(zhí)行循環(huán)體語句;(4)計算表達式3的值,返回(2)繼續(xù)執(zhí)行。流程圖,表達式 2,語句,,,false,true,求解表達式1,求解表達式3,,,Page 11,省略表達式1的寫法同時省略表達式1和3時的寫法,for語句,例 求自然數(shù)1~1

6、0之和。#includevoid main(){int i,sum=0;for(i=1;i<=10;i++)sum+=i;printf(“sum=%d\n”,sum);},?,分析:本題需要用累加算法,累加過程是一個循環(huán)過程,可以用for語句實現(xiàn)。,Page 12,for語句書上例子及練習,P30 例2-7P32 例2-8 sum=1-1/3+1/5-1/7+…1/nP33 例2-9 求n!P34

7、練習2-13到2-17復習分支語句和for語句的綜合例題:P46 例3-4P50 例3-6P54 例3-9,Page 13,while語句(當型循環(huán)),語法形式: while(表達式) 語句說明:表達式稱為循環(huán)控制條件表達式,一般為關系表達式或邏輯表達式,必須用一對圓括號“()”括起來。語句稱為循環(huán)體,可以是單個語句,也可以是多個語句。,循環(huán)控制條件,循環(huán)體,Page 14,while語句(

8、當型循環(huán)),執(zhí)行順序判斷表達式(循環(huán)控制條件)的值若表達式的值為true,則執(zhí)行循環(huán)體(語句)若表達式的值為false,則執(zhí)行while語句后的語句流程圖注意:在循環(huán)體中,一般應該包含改變循環(huán)條件表達式的語句。,表達式,語 句,,,false,true,Page 15,while語句(當型循環(huán)),例 求自然數(shù)1~10之和。分析:本題需要用累加算法,累加過程是一個循環(huán)過程,可以用while語句實現(xiàn)。流程圖,Page 16

9、,while語句(當型循環(huán)),例 求自然數(shù)1~10之和的源程序。#includevoid main(){int i=1,sum=0;while(i<=10){sum+=i;i++;}printf(“sum=%d\n”,sum);},運行結(jié)果:sum=55,,Page 17,while語句書上例子及練習,P58 例4-1P61 例4-2P62 練習4-1、4-2、4-3、4-4,Page

10、 18,do…while語句(直到型循環(huán)),語法形式: do 語句 while(表達式);說明:表達式稱為循環(huán)控制條件表達式,一般為關系表達式或邏輯表達式,必須用一對圓括號“()”括起來。語句稱為循環(huán)體,可以是單個語句,也可以是多個語句。do…while語句以分號結(jié)束。,循環(huán)控制條件,循環(huán)體,以分號結(jié)束,Page 19,do…while語句(直到型循環(huán)),執(zhí)行順序先執(zhí)行語句,后判斷表達式的值若表達式

11、的值為true,則繼續(xù)執(zhí)行循環(huán)體(語句)若表達式的值為false,則結(jié)束循環(huán),執(zhí)行do…while語句后的語句流程圖注意:在循環(huán)體中,一般應該包含改變條件表達式的語句。,語 句,,,false,true,表達式,,Page 20,do…while語句(直到型循環(huán)),例 用do…while語句求自然數(shù)1~10之和。分析:本題需要用累加算法,累加過程是一個循環(huán)過程,可以用do…while語句實現(xiàn)。流程圖,Page 21,do…wh

12、ile語句(直到型循環(huán)),例 求自然數(shù)1~10之和的源程序。#includevoid main(){int i=1,sum=0;do{sum+=i;i++;} while(i<=10);printf(“sum=%d\n”,sum);},運行結(jié)果:sum=55,,Page 22,do…while語句書上例子及練習,P62 例4-3P64 練習4-5,Page 23,do…while和whi

13、le語句的區(qū)別,相同點:都是實現(xiàn)循環(huán)結(jié)構(gòu)的語句區(qū)別:while語句先判斷表達式的值,為true時,執(zhí)行循環(huán)體;(先判斷,后執(zhí)行)do…while語句先執(zhí)行循環(huán)體,再判斷表達式的值。(先執(zhí)行,后判斷) 思考題:在什么情況下,while和do…while語句的條件表達式和循環(huán)體相同,而循環(huán)次數(shù)卻不同?,?,Page 24,循環(huán)結(jié)構(gòu)的嵌套,在程序設計中,一個循環(huán)語句的循環(huán)體又包含一個完整的循環(huán)結(jié)構(gòu)時,構(gòu)成多重循環(huán),又

14、稱為循環(huán)語句的嵌套。for() { do { }while(); },for() { do {} }while();,,,Page 25,循環(huán)結(jié)構(gòu)的嵌套,例 寫出右面圖形的源程序。#includevoid main(){int i,j;for(i=1;i<=3;i++){ for(j

15、=1;j<=5;j++) printf(“*”);printf(“\n”);}},***************,Page 26,循環(huán)嵌套書上例子及練習,P68 例4-6P70 練習4-8,Page 27,,本章總結(jié),語法形式,,語法形式,,,,,for語句,,,,while(表達式)語句,do 語句while(表達式);,循環(huán)結(jié)構(gòu),循環(huán)結(jié)構(gòu)概述,while語句,do…while語句,先判

16、斷后執(zhí)行,先執(zhí)行后判斷,就是在給定條件成立的情況下,重復執(zhí)行一個程序段;當給定條件不成立時,退出循環(huán),再執(zhí)行循環(huán)下面的程序。,語法形式,for(表達式1;表達式2;表達式3)語句,最靈活,,循環(huán)結(jié)構(gòu)的嵌套,在程序設計中,一個循環(huán)語句的循環(huán)體又包含一個完整的循環(huán)結(jié)構(gòu)時,構(gòu)成多重循環(huán),Page 28,循環(huán)語句練習,P64 例4-4 判斷素數(shù)P67 練習4-6、4-74.5節(jié) 例4-7到4-11  練習4-9到4-14,Page 29,

17、經(jīng)典例題,求斐波那契數(shù)列(P74 例4-10)中國古典算術問題(P75 例4-11)相關問題:種數(shù)問題、百雞問題求1~599中能被3整除,且至少有一位數(shù)字為5的所有整數(shù)。輸出9*9口訣表求1!+2!+3!+4!+…+10!打印圖形找出1000以內(nèi)的所有完數(shù)。一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為“完數(shù)”。例如6=1+2+3 求水仙花數(shù):是指一個n(>=3)位數(shù)字的數(shù),它等于每個數(shù)字的n次冪之和。輸入兩個正

18、整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。,Page 30,3.求1~599中能被3整除,且至少有一位數(shù)字為5的所有整數(shù)。,判斷a、b、c中是否有5:將1~599中三位整數(shù)i分解成個位、十位、百位,分別存放在變量a、b、c中。然后判斷這三個變量是否含5。將三位整數(shù)i (設i=513)分解成個位、十位、百位的方法是: c=i/100; //百位 b=i%100/10;

19、//十位 a=i%100%10; //個位,Page 31,,#includevoid main(){int i,a,b,c;for(i=1;i<=599;i++){ c=i/100; //百位 b=i%100/10; //十位 a=i%100%10; //個位if(i%3==0 && (a==5||b==5||c==5))print

20、f("%d能被3整除且包含5\n",i);}},Page 32,4.輸出9*9口訣表,#includevoid main(){int i,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++)printf("%d*%d=%2d ",i,j,i*j);printf("\n");}},Page 33,

21、打印下列圖形,#includevoid main(){int i,j;for(i=1;i<=5;i++){for(j=1;j<=i;j++)printf("*");printf("\n");}},Page 34,打印下列圖形,#includevoid main(){int i,j;for(i=1;i=i;j--)printf

22、(" ");for(j=1;j<=i;j++)printf("*");printf("\n");}},Page 35,打印下列圖形,#includevoid main(){int i,j;for(i=1;i=i;j--)printf("*");printf("\n");}},

23、Page 36,打印下列圖形,#includevoid main(){ int i,j,n; printf("請輸入棱形的對角線半長度n:"); scanf("%d",&n); for (i=1;i0;i--) //畫下半個棱形 { for(j=1;j<=40-i;j++) printf(" "); for(j=1;j

24、<=2*i-1;j++) printf("*"); printf("\n"); }},Page 37,打印下列圖形,#include#includevoid main(){int i,j;for(i=-3;i<=3;i++){for(j=0;j<=10+abs(i);j++)printf(" ");for(j

25、=1;j<=2*(4-abs(i))-1;j++)printf("*");printf("\n");}},Page 38,7.找出1000以內(nèi)的所有完數(shù),#includevoid main(){int i,j,s;for(i=1;i<=1000;i++){s=0;for(j=1;j<i;j++)if(i%j==0)s=s+j

26、;if(s==i)printf("%d\n",s);}},Page 39,求100之內(nèi)的素數(shù),只能被1和本身整除的數(shù)判斷一個數(shù)a是否為素數(shù),只需將它除以2~(sqrt(a)取整)即可,如果都不能整除,則a就是素數(shù)。,Page 40,#include#includevoid main(){int a,k,i,n;n=0;for(a=2;ak)//若i>k,則a為素數(shù){

27、printf("%10d",a); //輸出素數(shù)n=n+1; //對素數(shù)進行統(tǒng)計個數(shù)}}printf("\n");},求100之內(nèi)的素數(shù),Page 41,輸入兩個正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。,輾轉(zhuǎn)相除法是利用以下性質(zhì)來確定兩個正整數(shù) a 和 b 的最大公因子的:   1. a ÷ b,令r為所得余數(shù)(0≤r<

28、b)          若 r = 0,算法結(jié)束;b 即為答案。   2. 互換:置 a←b,b←r,并返回第一步。,Page 42,求兩個自然數(shù)m與n的最大公約數(shù)采用輾轉(zhuǎn)相除法設最小公倍數(shù) (Lease common multiple)為lcm=m*n;最大公約數(shù)(Greatest common divisor)為gcd??刹捎萌缦卵h(huán)實現(xiàn):(循

29、環(huán)前l(fā)cm=m*n)r=m%n;m←n;n←r;直到r=0為止,此時最大公約數(shù)為gcd=n,最小公倍數(shù)為lcm=lcm/gcd例如:求m=4與n=6的最大公約數(shù):r=4%6=4; m←6;n←4;r=6%4=2; m←4;n←2;r=4%2=0; 則最大公約數(shù)gcd=n=2最小公倍數(shù)lcm=4*6/2=12,Page 43,#include#includevoid main(){ int m,n,lcm,gcd,r

30、; printf("please input m,n:"); scanf("%d%d",&m,&n); lcm=m*n; //因為循環(huán)后,m和n都會改變,所以現(xiàn)在先把它賦值 while (m%n!=0) //當余數(shù)不等于0時,進行循環(huán) { r=m%n; //r為m除以n得到的余數(shù) m=n; //把除數(shù)n的值賦給被除數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論