版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1思考:求1~10的累加和?#include<stdio.h>voidmain(){intsum;
sum=1+2+3+4+5+6+7+8+9+10;
printf(“sum=%5d\n”,sum);}2思考:求1~20的累加和?【換一種思路】首先設(shè)置一個累加器sum,其初值為0,利用sum=sum+n來計(jì)算(n依次取1、2、……、20);只要解決以下3個問題即可:
(1)將n的初值置為1;
(2)每執(zhí)行1次“sum=sum+n;”后,n增1;
(3)當(dāng)n增到21時,停止計(jì)算。此時,sum的值就是1~20的累加和。3第六章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)4一、goto語句二、while語句三、do-while語句四、for語句五、幾種循環(huán)的比較六、break、continue語句主要內(nèi)容5格式goto語句標(biāo)號;#include<stdio.h>voidmain(){intn=1,sum=0;
loop:sum=sum+n;n++;if(n<=100)goto
loop;printf(“sum=%d\n”,sum);}
舉例使用goto語句與if語句配合構(gòu)成循環(huán)結(jié)構(gòu),實(shí)現(xiàn)1~100的累加和。作用:使程序轉(zhuǎn)向標(biāo)號所在的語句行執(zhí)行。標(biāo)號的命名規(guī)則遵循標(biāo)識符命名規(guī)則。一、goto語句(轉(zhuǎn)向語句)6(1)與if語句一起構(gòu)成循環(huán)結(jié)構(gòu)。(2)不符合結(jié)構(gòu)化程序設(shè)計(jì)原則,一般不用。說明一、goto語句循環(huán)結(jié)構(gòu)注意以下幾個問題何時進(jìn)入循環(huán)(循環(huán)條件)循環(huán)體是什么?如何結(jié)束循環(huán)(循環(huán)體中應(yīng)有使循環(huán)條件趨近于0的語句)8格式while(表達(dá)式)循環(huán)體語句含義當(dāng)表達(dá)式為真(非0值)時,執(zhí)行while語句中的內(nèi)嵌語句。執(zhí)行過程表達(dá)式循環(huán)體語句假
真循環(huán)體語句當(dāng)表達(dá)式值為真N-S圖表示二、while語句9說明1、循環(huán)體如果包含一個以上的語句,必須使用復(fù)合語句形式。2、在循環(huán)體中,必須有使循環(huán)條件趨向于不滿足(假)的語句。3、先判斷表達(dá)式,后執(zhí)行語句。二、while語句?10sum=55i=1sum=0當(dāng)i<=10sum=sum+i;i++;輸出sum#include<stdio.h>voidmain(){inti,sum;i=1;sum=0;
while(i<=10){sum=sum+i;i++;}printf(“sum=%5d\n”,sum);}1求1~50的累加和.2求1~100的奇數(shù)和.3求1~100的偶數(shù)和.舉例:求1~10的累加和(while語句)11#include<stdio.h>voidmain(){inti,sum;i=1;sum=0;
while(i<=10){sum=sum+i;i++;}printf(“sum=%5d\n”,sum);}思考1、如果去掉循環(huán)體中的大括號,執(zhí)行過程將會怎樣變化?2、在循環(huán)體中,使循環(huán)條件趨向于不滿足(假)的語句是哪條?舉例:求1~10的累加和(while語句)12利用while語句,計(jì)算1+1/2+1/4+…+1/50.#include<stdio.h>voidmain(){
floatsum=1;int
i=2;
while(i<=50){sum=sum+1.0/i;
i=i+2;}printf("thesum=%f",sum);}#include<stdio.h>voidmain(){
floatsum=1;inti=1;
while(2*i<=50){sum=sum+1.0/(2*i);
i=i+1;}printf("thesum=%f",sum);}while語句舉例【編程】求若干個學(xué)生平均成績,以輸入負(fù)數(shù)成績?yōu)榻Y(jié)束
【算法分析】1.定義變量score存儲學(xué)生成績,定義s=0存儲累加的成績,定義n=0統(tǒng)計(jì)錄入的成績數(shù)目。
2.輸入第一個學(xué)生的score3.若score>=0,執(zhí)行第4步,否則執(zhí)行第7步
4.s=s+score;5.n++;
6.錄入下一個score,并返回第3步
7.如果n>0,輸出s/n;否則輸出沒有學(xué)生成績main(){intn=0;floats=0,score;scanf(“%f”,&score);while(score>=0){s=s+score;n++;scanf(“%f”,&score);}if(n>0)printf(“\n%f”,s/n);elseprintf(“nostudentscore!”);}【參考答案】15格式do
循環(huán)體語句while(表達(dá)式);含義執(zhí)行do-while語句中的內(nèi)嵌語句,直到表達(dá)式為假(0)才跳出循環(huán)。
循環(huán)體語句至少被執(zhí)行一次。三、do-while語句注意:分號不能丟16說明1、循環(huán)體如果包含一個以上的語句,必使用復(fù)合語句形式。2、在循環(huán)體中,必須有使循環(huán)條件趨向于不滿足(假)的語句。3、先執(zhí)行循環(huán)體語句,后判斷表達(dá)式的值。執(zhí)行過程表達(dá)式循環(huán)體語句假真循環(huán)體語句當(dāng)表達(dá)式值為真N-S圖表示至少執(zhí)行一次三、do-while語句17#include<stdio.h>voidmain(){inti,sum;i=1;sum=0;
do{sum=sum+i;i++;}while(i<=10);printf(“sum=%5d\n”,sum);}i=1sum=0當(dāng)i<=10(直到i>10)輸出sumsum=sum+i;i++;舉例:求1~10的累加和(do-while語句)18#include<stdio.h>voidmain(){inti,sum;i=1;sum=0;
do{sum=sum+i;i++;}while(i<=10);printf("sum=%5d\n",sum);}思考1、如果去掉循環(huán)體中的大括號,執(zhí)行過程將會怎樣變化?2、在循環(huán)體中,使循環(huán)條件趨向于不滿足(假)的語句是哪條?求1~10的累加和(do-while語句)19利用do-while語句,計(jì)算1+1/2+1/4+…+1/50.#include<stdio.h>voidmain(){floatsum=1;inti=2;do{sum=sum+1.0/i;i=i+2;}while(i<=50);printf("thesum=%f",sum);}main(){intn=0;floats=0,score;do{scanf(“%f”,&score);s=s+score;n++;}while(score>=0);if(n>1)printf(“\n%f”,(s-score)/(n-1));elseprintf(“nostudentscore!”);}【編程】用do-while語句編寫統(tǒng)計(jì)學(xué)生平均成績由于do-while語句至少要被執(zhí)行一次,特別要注意n和s的取值問題!【編程】:任意輸入一個自然數(shù),把它反序輸出。(如:原數(shù)為123,輸出321)。【分析】此題不確定循環(huán)執(zhí)行的次數(shù),也不涉及一個規(guī)律變化的變量,一般用while或do-while來編寫。又由于第一次就要判斷輸入的是否是自然數(shù),通常用while來實(shí)現(xiàn)。算法步驟如下:1.定義整型變量a用于存儲輸入的自然數(shù),定義t初值為0用于存放a的反序數(shù),定義i用于依次存放求出的a的每一位的數(shù)值。2.輸入一個自然數(shù)賦值給變量a3.若a>0,執(zhí)行第4步,否則執(zhí)行第7步4.i=a%10;5.t=t*10+i;6.a=a/10,并返回第3步7.輸出t#include<stdio.h>main(){longa,i,t=0;scanf(“%ld”,&a);while(a>0){i=a%10;t=t*10+i;a=a/10;}printf(“\n%ld”,t);}【參考答案】【編程】:任意輸入一個自然數(shù),把它反序輸出。23while和do-while循環(huán)比較24#include<stdio.h>voidmain(){inti,sum=0;scanf(“%d”,&i);
while(i<=10){sum=sum+i;i++;}printf(“sum=%d\n”,sum);}#include<stdio.h>voidmain(){inti,sum=0;scanf(“%d”,&i);
do{sum=sum+i;i++;}while(i<=10);printf(“sum=%d\n”,sum);}
輸入:11sum=0輸出:sum=11什么情況下兩者結(jié)果相同?輸入:1sum=55輸出:sum=55
輸入:10sum=10輸出:sum=10輸入:2sum=54輸出:sum=54
?25while和do-while循環(huán)的比較兩者具有相同的循環(huán)體時:當(dāng)while后面的表達(dá)式的第一個值為“真”時,兩種循環(huán)得到的結(jié)果保持一致,否則不一致。26格式for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值)語句執(zhí)行過程(1)先求解表達(dá)式1;(2)求解表達(dá)式2,若其值為真,則執(zhí)行循環(huán)體語句,然后執(zhí)行第(3)步;若為假,則結(jié)束循環(huán),轉(zhuǎn)到第(5)步;(3)求解表達(dá)式3;(4)轉(zhuǎn)向步驟(2);(5)循環(huán)結(jié)束,執(zhí)行for語句下面的一個語句。表達(dá)式2循環(huán)體語句假
真求解表達(dá)式1求解表達(dá)式3四、for語句27sum=55sum=0fori=1to10sum=sum+i輸出sum#include<stdio.h>voidmain(){inti,sum;sum=0;
for(i=1;i<=10;i++)sum=sum+i;printf(“sum=%5d\n”,sum);}1求1~80的累加和.2求1~100的奇數(shù)和.3求1~100的偶數(shù)和.舉例:求1~10的累加和(
for語句)28for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句說明三個表達(dá)式可以省略。表達(dá)式2循環(huán)體語句假
真求解表達(dá)式3表達(dá)式1省略循環(huán)體語句求解表達(dá)式1求解表達(dá)式3表達(dá)式2省略表達(dá)式2循環(huán)體語句假
真求解表達(dá)式1表達(dá)式3省略四、for語句29說明1i=1;for(;i<=10;i++)sum=sum+i;2for(i=1;;i++)sum=sum+i;3for(i=1;i<=10;){sum=sum+i;i++;}for(i=1;i<=10;i++)sum=sum+i;表達(dá)式1、2可以省略,但其后的分號不可以省略。沒有循環(huán)結(jié)束條件,構(gòu)成了死循環(huán)for(i=1;i<=10;i++)sum=sum+i;四、for語句30建議:for語句中只放與循環(huán)控制變量有關(guān)的語句。說明5for(;;)sum=sum+i;6表達(dá)式1和表達(dá)式3可以是與循環(huán)變量無關(guān)的表達(dá)式。4for(;i<=10;){sum=sum+i;
i++;}7表達(dá)式2一般是關(guān)系表達(dá)式,也可以是數(shù)值或字符表達(dá)式。while(i<=10){sum=sum+i;i++;}表達(dá)式1和表達(dá)式3可以同時省略,等同于while語句。for(sum=0,i=1;i<=100;i++)sum=sum+i;例while(1)sum=sum+i;四、for語句31說明1、三種循環(huán)語句在處理循環(huán)問題時,一般可以相互替代。2、
對于循環(huán)次數(shù)固定的問題,用for語句實(shí)現(xiàn)比較簡單。3、
對于循環(huán)次數(shù)不確定的問題,可用while語句或do-while語句實(shí)現(xiàn)。4、while語句:先判斷,后執(zhí)行。
do-while語句:先執(zhí)行,后判斷。五、幾種循環(huán)語句的比較32結(jié)束整個循環(huán)轉(zhuǎn)向執(zhí)行該循環(huán)結(jié)構(gòu)后面的語句結(jié)束本次循環(huán)繼續(xù)進(jìn)行下一次循環(huán)的條件判別六、break\continue語句格式while(表達(dá)式1){…if(表達(dá)式2)break;
…}while(表達(dá)式1){…if(表達(dá)式2)conitue;
…}33舉例#include<stdio.h>voidmain(){inti,sum=0;for(i=1;i<=10;i++){if(i>5)break;sum=sum+i;}printf(“sum=%5d\n”,sum);#include<stdio.h>voidmain(){inti,sum=0;for(i=1;i<=10;i++){if(i<=5)continue;sum=sum+i;}printf(“sum=%5d\n”,sum);六、break\continue語句sum=15sum=40【編程】判斷n是否為素數(shù)
#include<stdio.h>main(){inti,n;scanf("%d",&n);for(i=2;i<n;i++) if(n%i==0)break;if(i>=n)printf("%dis\n",n);else printf("%disnot\n",n);}1、下列敘述中正確的是A)break語句只能用于switch語句B)在switch語句中必須使用defaultC)break語句必須與switch語句中的case配對使用D.)在switch語句中,不一定使用break語句。2、以下敘述中正確的是A)break語句只能用于switch語句體中B)continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)C.)break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)。D)在循環(huán)體內(nèi)使用break語句和continue語句的作用相同3、有以下程序main(){intk=5;while(--k)printf("%d",k-=3);printf("\n");}執(zhí)行后的輸出結(jié)果是A.)1.B)2C)4D)死循環(huán)2006-92006-92007-44、有以下程序main(){inti;for(i=1;i<=40;i++){if(i++%5==0)if(++i%8==0)printf("%d",i);}printf("\n");}執(zhí)行后的輸出結(jié)果是5B)24C.)32.
D)405、有以下程序main(){intk=5,n=0;do{switch(k){case1:case3:n+=1;k--;break;default:n=0;k--;case2:case4:n+=2;k--;break;}printf("%d",n);}while(k>0&&n<5);}程序運(yùn)行后的輸出結(jié)果是A.)235.B)0235C)02356D)23562006-96、當(dāng)執(zhí)行以下程序時,輸入1234567890<回車>,則其中while循環(huán)體將執(zhí)行________次。#include<stdio.h>main(){charch;while((ch=getchar())=='0')printf("#");}2007-407、若變量已正確定義,有以下程序段i=0;doprintf("%d,",i);
while(i++);printf("%d\n",i);其輸出結(jié)果是
A)0,0B.)0,1.C)1,1D)程序進(jìn)入無限循環(huán)8、有以下程序
#include<stdio.h>
main()
{int
y=9;
for(;y>0;y--)
if(y%3==0)
printf("%d",--y);
}程序的運(yùn)行結(jié)果是
A)741
B)963
C.)852.
D)8754212007-92007-99、以下程序的輸出結(jié)果是()#include<stdio.h>main(){
intn=12345,
d;
while(n!=0){d=n%10;printf("%d",d);n/=10;}
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國切削機(jī)油項(xiàng)目投資可行性研究報告
- 為出版物出膜行業(yè)深度研究報告
- 2024至2030年中國瑞信藥品批發(fā)/零售管理系統(tǒng)行業(yè)投資前景及策略咨詢研究報告
- 2024年旋轉(zhuǎn)式食物陳列保溫柜項(xiàng)目可行性研究報告
- 2024年假發(fā)膠頭項(xiàng)目可行性研究報告
- 2024至2030年中國大型環(huán)保全自動超聲波清洗系統(tǒng)行業(yè)投資前景及策略咨詢研究報告
- 2024至2030年罩光防塵乳膠漆項(xiàng)目投資價值分析報告
- 2024至2030年中國單片鋁制噴霧罐涂料行業(yè)投資前景及策略咨詢研究報告
- 2024至2030年中國冰烏龍茶行業(yè)投資前景及策略咨詢研究報告
- 2024至2030年分離式無損傷軸承起拔器項(xiàng)目投資價值分析報告
- 廣東省深圳市2024年九年級中考提分訓(xùn)練《六選五》專題練習(xí)
- 2024年永州職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案解析
- 注射相關(guān)感染預(yù)防與控制(全文)
- SMP-10-003-00 藥品上市后風(fēng)險管理規(guī)程
- 升壓站土建施工合同2024年
- NB-T31030-2012陸地和海上風(fēng)電場工程地質(zhì)勘察規(guī)范
- 感悟考古智慧樹知到期末考試答案章節(jié)答案2024年北京大學(xué)
- 溝通的藝術(shù)智慧樹知到期末考試答案章節(jié)答案2024年湖南師范大學(xué)
- JJF 1171-2024溫濕度巡回檢測儀校準(zhǔn)規(guī)范
- DB32-T 4757-2024 連棟塑料薄膜溫室建造技術(shù)規(guī)范
- 建筑信息模型技術(shù)員理論知識考試題庫
評論
0/150
提交評論