




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
5.1while語句第5章循環(huán)結(jié)構(gòu)設(shè)計思政目標(biāo)
在利用while語句進(jìn)行循環(huán)結(jié)構(gòu)設(shè)計的學(xué)習(xí)過程中,如計算1到100的累加和、累乘等程序示例,學(xué)生需要理解循環(huán)是通過不斷重復(fù)相同或相似的操作來達(dá)成目標(biāo)。這就如同在生活中追求夢想或完成一項(xiàng)長期任務(wù),需要持續(xù)不斷地付出努力,一步一個腳印地前進(jìn)。引導(dǎo)學(xué)生認(rèn)識到只有具備持之以恒的精神,才能在面對復(fù)雜問題或長期挑戰(zhàn)時不輕易放棄,堅持不懈地積累知識和經(jīng)驗(yàn),最終實(shí)現(xiàn)自己的目標(biāo),培養(yǎng)堅韌不拔的品質(zhì)。
通過分析while循環(huán)中循環(huán)條件的設(shè)置、循環(huán)變量的變化以及循環(huán)體的執(zhí)行過程,如在顯示1到10的平方、計算階乘等例子中,讓學(xué)生理解事物發(fā)展是一個有規(guī)律且漸進(jìn)的過程。在編程中,準(zhǔn)確把握這些規(guī)律才能正確控制循環(huán)的執(zhí)行,得到預(yù)期結(jié)果。這啟發(fā)學(xué)生在學(xué)習(xí)和生活中要善于觀察、思考事物發(fā)展的內(nèi)在規(guī)律,積極探索未知領(lǐng)域,不斷提升自己對世界的認(rèn)知水平,以科學(xué)的思維方式去發(fā)現(xiàn)問題、解決問題,培養(yǎng)勇于探索和創(chuàng)新的精神。5.1while語句循環(huán)型程序設(shè)計概述C語言可實(shí)現(xiàn)循環(huán)的語句:用goto和if構(gòu)成循環(huán)while語句do~while語句for語句goto語句及用goto構(gòu)成循環(huán)goto語句一般格式:
goto語句標(biāo)號;
….…..標(biāo)號:語句;功能:無條件轉(zhuǎn)移語句說明:不能用整數(shù)作標(biāo)號只能出現(xiàn)在goto所在函數(shù)內(nèi),且唯一只能加在可執(zhí)行語句前面限制使用goto語句例用if和goto語句構(gòu)成循環(huán),求/#include<stdio.h>main(){inti,sum=0;i=1;loop:if(i<=100){sum+=i; i++; gotoloop;}printf("%d",sum);}sum=0+1sum==1+2=3sum=3+3=6sum=6+4……sum=4950+100=5050循環(huán)初值循環(huán)終值循環(huán)變量增值循環(huán)條件循環(huán)體
例從鍵盤輸入一組數(shù)據(jù),以0結(jié)束輸入,求數(shù)據(jù)和。#include<stdio.h>main(){ intnumber,sum=0;read_loop:
scanf("%d",&number); if(!number)gotoprint_sum; sum+=number;
gotoread_loop;print_sum:printf("Thetotalsumis%d\n",sum);}while語句一般形式:while(表達(dá)式)
循環(huán)體語句;執(zhí)行流程:expr循環(huán)體假(0)真(非0)while特點(diǎn):先判斷表達(dá)式,后執(zhí)行循環(huán)體說明:循環(huán)體有可能一次也不執(zhí)行循環(huán)體可為任意類型語句下列情況,退出while循環(huán)條件表達(dá)式不成立(為零)循環(huán)體內(nèi)遇break,return,goto無限循環(huán):while(1)
循環(huán)體;例1用while循環(huán)求
#include<stdio.h>main(){inti,sum=0;i=1;while(i<=100){sum=sum+i;i++;}printf("%d",sum);}循環(huán)初值循環(huán)終值循環(huán)變量增值循環(huán)條件循環(huán)體
例2顯示1~10的平方#include<stdio.h>main(){inti=1;while(i<=10){printf("%d*%d=%d\n",i,i,i*i);i++;}}運(yùn)行結(jié)果:1*1=12*2=43*3=94*4=165*5=256*6=367*7=498*8=649*9=8110*10=100main(){inti,s;i=0;s=0;while(i<=100){s=s+i;i=i+2;}printf("1+2+3+…+100的偶數(shù)之和為:%d\n",s);}例3編寫程序,求S=1+2+3+…+100的偶數(shù)之和。main(){inti,s;i=1;s=0;while(i<=100){s=s+i;i=i+2;}printf("1+2+3+…+100的奇數(shù)之和為:%d\n",s);}例4編寫程序,求S=1+2+3+…+100的奇數(shù)之和。main(){inti,p;i=1;p=1;while(i<=10){p=p*i;i=i+1;}printf("10!=1*2*3*…*10=%d\n",p);}例5編寫程序,求10!=1*2*3*…*10的值。main(){intscore,i,s;i=1;s=0;while(i<=10){scanf("%d",&score);s=s+score;i=i+1;}printf("10個學(xué)生的成績總和為:%d,平均成績?yōu)椋?f\n",s,s/10.0);}例6編寫程序,輸入10個同學(xué)的成績,計算平均成績。main(){ints,i,p;s=0;i=1;p=1;while(i<=10){p=p*i;s=s+p;i=i+1;}printf("1!+2!+3!+……+10!=%d\n",s);}例7編寫程序,求s=1!+2!+3!+……+10!main(){inti,p;doubles;s=0.0;i=1;p=1;while(i<=10){p=p*i;s=s+1.0/p;i=i+1;}printf("1/1!+1/2!+1/3!+……+1/10!=%lf\n",s);}例8編寫程序,求s=1/1!+1/2!+1/3!+……+1/10!5.2do-while語句第5章循環(huán)結(jié)構(gòu)設(shè)計思政目標(biāo)
Do-while語句先執(zhí)行后判斷的機(jī)制,教導(dǎo)學(xué)生在學(xué)習(xí)與生活中要勇于嘗試、積極行動,不能因過度擔(dān)憂結(jié)果而裹足不前,通過實(shí)踐積累經(jīng)驗(yàn),提升自我。
如同do-while循環(huán)持續(xù)運(yùn)作直至條件不滿足,引導(dǎo)學(xué)生在面對困難和長期任務(wù)時,保持堅毅,不輕易放棄,持續(xù)努力以達(dá)成目標(biāo),培養(yǎng)堅韌不拔的品質(zhì)。5.2do-while語句do~while語句一般形式:do
循環(huán)體語句;
while(表達(dá)式);執(zhí)行流程:do循環(huán)體expr假(0)真(非0)while特點(diǎn):先執(zhí)行循環(huán)體,后判斷表達(dá)式說明:至少執(zhí)行一次循環(huán)體do~while可轉(zhuǎn)化成while結(jié)構(gòu)expr循環(huán)體假(0)真(非0)循環(huán)體While循環(huán)例1用do~while循環(huán)求
#include<stdio.h>main(){inti,sum=0;i=1;do{sum+=i; i++;}while(i<=100);printf("%d",sum);}
main(){inti,s;i=0;s=0;do{s=s+i;i=i+2;}while(i<=100);printf("1+2+3+…+100的偶數(shù)之和為:%d\n",s);}例2編寫程序,求S=1+2+3+…+100的偶數(shù)之和。main(){inti,s;i=1;s=0;do{s=s+i;i=i+2;}while(i<=100);printf("1+2+3+…+100的奇數(shù)之和為:%d\n",s);}例3編寫程序,求S=1+2+3+…+100的奇數(shù)之和。main(){inti,p;i=1;p=1;do{p=p*i;i=i+1;}while(i<=10);printf("10!=1*2*3*…*10=%d\n",p);}例4編寫程序,求10!=1*2*3*…*10的值。main(){intscore,i,s;i=1;s=0;do{scanf("%d",&score);s=s+score;i=i+1;}while(i<=10);printf("10個學(xué)生的成績總和為:%d,平均成績?yōu)椋?f\n",s,s/10.0);}例5編寫程序,輸入10個同學(xué)的成績,計算平均成績。main(){ints,i,p;s=0;i=1;p=1;do{p=p*i;s=s+p;i=i+1;}while(i<=10);printf("1!+2!+3!+……+10!=%d\n",s);}例6編寫程序,求s=1!+2!+3!+……+10!main(){inti,p;doubles;s=0.0;i=1;p=1;do{p=p*i;s=s+1.0/p;i=i+1;}while(i<=10);printf("1/1!+1/2!+1/3!+……+1/10!=%lf\n",s);}例7編寫程序,求s=1/1!+1/2!+1/3!+……+1/10!例while和do~while比較#include<stdio.h>main(){inti,sum=0;scanf("%d",&i);do{sum+=i; i++;}while(i<=10);printf("%d",sum);}main(){inti,sum=0;scanf("%d",&i);while(i<=10){sum+=i; i++;}printf("%d",sum);}5.3for語句第5章循環(huán)結(jié)構(gòu)設(shè)計思政目標(biāo)
邏輯思維培養(yǎng):通過學(xué)習(xí)for語句的各種應(yīng)用示例,如計算累加和、累乘積、判斷素數(shù)等,引導(dǎo)學(xué)生理解程序設(shè)計中循環(huán)結(jié)構(gòu)的邏輯,學(xué)會如何有條理地組織代碼來解決復(fù)雜問題。這有助于訓(xùn)練學(xué)生在面對實(shí)際問題時,能夠進(jìn)行系統(tǒng)分析、逐步推導(dǎo)解決方案的邏輯思維能力。
創(chuàng)新意識激發(fā):鼓勵學(xué)生在理解for語句基本應(yīng)用的基礎(chǔ)上,嘗試用不同的方法來實(shí)現(xiàn)相同的功能,如課件中求S=1+2+3+…+100的值展示了多種編寫方法。這促使學(xué)生擺脫固定思維模式,積極探索多種可能性,從而激發(fā)他們的創(chuàng)新意識,培養(yǎng)其在學(xué)習(xí)和生活中敢于創(chuàng)新、勇于嘗試新方法的精神。5.3for語句for語句一般形式:for([expr1];[expr2];[expr3])
循環(huán)體語句;執(zhí)行流程:expr2循環(huán)體假(0)真(非0)forexpr1expr3for語句一般應(yīng)用形式:for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值){
循環(huán)體語句;}說明:for語句中expr1,expr2,expr3類型任意,都可省略,但分號;不可省無限循環(huán):for(;;)for語句可以轉(zhuǎn)換成while結(jié)構(gòu)expr1;while(expr2){
循環(huán)體語句;
expr3;}例用for循環(huán)求1+2+……+100
#include<stdio.h>main(){inti,sum=0;for(i=1;i<=100;i++)sum+=i;printf("%d",sum);}例1編寫程序,求S=1+2+3+…+100的值。main(){inti,s;for(s=0,i=1;i<=100;i++){s=s+i;}printf("s=1+2+3+…+100=%d\n",s);}main(){inti,s;for(s=0,i=0;i<=100;i++,i++){s=s+i;}printf("1+2+3+…+100的偶數(shù)之和為:%d\n",s);}例2編寫程序,求S=1+2+3+…+100的偶數(shù)之和。main(){inti,s;for(s=0,i=1;i<=100;i++,i++){s=s+i;}printf("1+2+3+…+100的奇數(shù)之和為:%d\n",s);}例3編寫程序,求S=1+2+3+…+100的奇數(shù)之和。main(){inti,p;for(i=1,p=1;i<=10;i++){p=p*i;}printf("10!=1*2*3*…*10=%d\n",p);}例4編寫程序,求10!=1*2*3*…*10的值。main(){intscore,i,s;s=0;for(i=1;i<=10;i++){scanf("%d",&score);s=s+score;}printf("10個學(xué)生的成績總和為:%d,平均成績?yōu)椋?f\n",s,s/10.0);}例5編寫程序,輸入10個同學(xué)的成績,計算平均成績。main(){ints,i,p;s=0;p=1;for(i=1;i<=10;i++){p=p*i;s=s+p;}printf("1!+2!+3!+……+10!=%d\n",s);}例6編寫程序,求s=1!+2!+3!+……+10!main(){inti,p;doubles;s=0.0;p=1;for(i=1;i<=10;i++){p=p*i;s=s+1.0/p;}printf("1/1!+1/2!+1/3!+……+1/10!=%lf\n",s);}例7編寫程序,求s=1/1!+1/2!+1/3!+……+1/10!main(){inti,p;doubles;s=0.0;p=1;for(i=1;i<=10;i++){p=p*i;s=s+1.0/p;}printf("1/1!+1/2!+1/3!+……+1/10!=%lf\n",s);}例8編程實(shí)現(xiàn),輸出1~1000之間能同時被3、5、7整除的數(shù)。main(){inti,m,flag;scanf("%d",&m);flag=1;for(i=2;i<=m-1;i++)if(m%i==0){flag=0;break;}if(flag!=0)printf("%d是素數(shù)。\n",m);elseprintf("%d不是素數(shù)。\n",m);}例9輸入一個正整數(shù),判斷是否為素數(shù)。main(){inti,s;s=0;i=1;for(;i<=100;i++){s=s+i;}printf("s=1+2+3+…+100=%d\n",s);}編寫程序,求S=1+2+3+…+100的值。方法一:省略e1for([e1];[e2];[e3])e4;main(){inti,s;for(s=0,i=1;;i++){if(i>100)break;s=s+i;}printf("s=1+2+3+…+100=%d\n",s);}編寫程序,求S=1+2+3+…+100的值。方法二:省略e2for([e1];[e2];[e3])e4;main(){inti,s;for(s=0,i=1;i<=100;){s=s+i;i++;}printf("s=1+2+3+…+100=%d\n",s);}編寫程序,求S=1+2+3+…+100的值。方法三:省略e3for([e1];[e2];[e3])e4;main(){inti,s;for(s=0,i=1;i<=100;s=s+i,i++);printf("s=1+2+3+…+100=%d\n",s);}編寫程序,求S=1+2+3+…+100的值。方法四:省略e4for([e1];[e2];[e3])e4;5.4循環(huán)嵌套第5章循環(huán)結(jié)構(gòu)設(shè)計思政目標(biāo)
耐心和細(xì)心培養(yǎng):循環(huán)嵌套的編程結(jié)構(gòu)相對復(fù)雜,如在實(shí)現(xiàn)九九乘法表的輸出過程中,需要精確地控制內(nèi)外層循環(huán)的變量變化、輸出格式等多個細(xì)節(jié)。學(xué)生在編寫和調(diào)試這類程序時,必須保持耐心,仔細(xì)檢查每一個循環(huán)條件、每一行代碼的邏輯,從而逐漸養(yǎng)成耐心和細(xì)心處理問題的習(xí)慣。
規(guī)則意識強(qiáng)化:循環(huán)嵌套有著嚴(yán)格的語法規(guī)則和執(zhí)行流程,例如禁止從外層跳入內(nèi)層、跳入同層的另一循環(huán)或向上跳轉(zhuǎn)等規(guī)則。學(xué)生在編程過程中必須嚴(yán)格遵循這些規(guī)則,否則程序?qū)o法正確運(yùn)行。這有助于強(qiáng)化學(xué)生的規(guī)則意識,使其明白在任何領(lǐng)域都需要遵循相應(yīng)的規(guī)則和規(guī)范,才能確保系統(tǒng)的正常運(yùn)轉(zhuǎn)和目標(biāo)的順利實(shí)現(xiàn),進(jìn)而引導(dǎo)學(xué)生在社會生活中自覺遵守法律法規(guī)和道德規(guī)范。5.4循環(huán)嵌套循環(huán)的嵌套三種循環(huán)可互相嵌套,層數(shù)不限外層循環(huán)可包含兩個以上內(nèi)循環(huán),但不能相互交叉嵌套循環(huán)的執(zhí)行流程(1)while(){……while(){……}…...}(2)do{……do{……}while();…...}while();(3)while(){……do{……}while();…….}(4)for(;;){……do{……}while();……while(){……}…...}內(nèi)循環(huán)外循環(huán)內(nèi)循環(huán)嵌套循環(huán)的跳轉(zhuǎn)禁止:從外層跳入內(nèi)層跳入同層的另一循環(huán)向上跳轉(zhuǎn)例循環(huán)嵌套,輸出九九表1234567891234567892468101214161836912151821242791827364554637281……………..ij#include<stdio.h>main(){inti,j;for(i=1;i<10;i++)printf("%4d",i);printf("\n---------------------------------------\n");for(i=1;i<10;i++)for(j=1;j<10;j++) printf((j==9)?"%4d\n":"%4d",i*j);}
123456 789------------------------------------------------------------------------------------------------------------11*1=11*2=21*3=31*4=41*5=51*6=61*7=71*8=81*9=922*1=22*2=42*3=62*4=82*5=102*6=122*7=142*8=162*9=1833*1=33*2=63*3=93*4=123*5=153*6=183*7=213*8=243*9=2744*1=44*2=84*3=124*4=164*5=204*6=244*7=284*8=324*9=3655*1=55*2=105*3=155*4=205*5=255*6=305*7=355*8=405*9=4566*1=66*2=126*3=186*4=246*5=306*6=366*7=426*8=486*9=5477*1=77*2=147*3=217*4=287*5=357*6=427*7=497*8=567*9=6388*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=648*9=7299*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81例循環(huán)嵌套,輸出九九表ij#include<stdio.h>main(){inti,j,k;for(i=1;i<10;i++)printf("\t%d",i);printf("\n------------------------------------------------------------------------------\n");for(i=1;i<=9;i++){ printf("%d",i); for(j=1;j<=9;j++) {k=i*j; printf("\t%d*%d=%d",i,j,k);} printf("\n");}}例循環(huán)嵌套,輸出九九表
123456789-----------------------------------------------------------------------------------------------------------11*1=122*1=22*2=433*1=33*2=63*3=944*1=44*2=84*3=124*4=1655*1=55*2=105*3=155*4=205*5=2566*1=66*2=126*3=186*4=246*5=306*6=3677*1=77*2=147*3=217*4=287*5=357*6=427*7=4988*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=6499*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81ij#include<stdio.h>main(){inti,j,k;for(i=1;i<10;i++)printf("\t%d",i);printf("\n------------------------------------------------------------------------------\n");for(i=1;i<=9;i++){ printf("%d",i); for(j=1;j<=i;j++) {k=i*j; printf("\t%d*%d=%d",i,j,k);} printf("\n");}}i<10printf假(0)真(非0)i=1j++j=1j<10真(非0)假(0)i++for(i=1;i<10;i++)
for(j=1;j<10;j++)
printf((j==9)?"%4d\n":"%4d",i*j);外循環(huán)內(nèi)循環(huán)5.5輔助控制語句第5章循環(huán)結(jié)構(gòu)設(shè)計思政目標(biāo)
目標(biāo)一:培養(yǎng)規(guī)則意識理解break和continue在循環(huán)與switch中的規(guī)則,讓學(xué)生明白編程需遵循規(guī)范,類比生活,從而培養(yǎng)其規(guī)則意識,做到依規(guī)行事。目標(biāo)二:提升問題解決能力借助break和continue優(yōu)化程序邏輯,如在相關(guān)例題中的應(yīng)用,使學(xué)生學(xué)會依問題需求靈活運(yùn)用語句,增強(qiáng)解決問題能力與思維靈活性。5.5輔助控制語句
5.5
輔助控制語句break語句功能:在循環(huán)語句和switch語句中,終止并跳出循環(huán)體或開關(guān)體說明:break只能終止并跳出最近一層的結(jié)構(gòu)break不能用于循環(huán)語句和switch語句之外的任何其它語句之中expr……break;……假(0)真(非0)whiledo……break;…...expr假(0)真(非0)whileexpr2……break;…...假(0)真(非0)forexpr1expr3switchexpr語句組1break;語句組2break;語句組nbreak;語句組break;…...const1const2constndefaultcase例1
break舉例:輸出圓面積,面積大于100時停止#definePI3.14159main(){intr;floatarea;for(r=1;r<=10;r++){area=PI*r*r;if(area>100) break;printf("r=%d,area=%.2f\n",r,area);}}例2
break舉例:小寫字母轉(zhuǎn)換成大寫字母,直至輸入非字母字符#include<stdio.h>main(){inti,j;charc;while(1){c=getchar(); if(c>='a'&&c<='z') putchar(c-'a'+'A'); else break;}}continue語句功能:結(jié)束本次循環(huán),跳過循環(huán)體中尚未執(zhí)行的語句,進(jìn)行下一次是否執(zhí)行循環(huán)體的判斷僅用于循環(huán)語句中expr……continue;……假(0)真(非0)while真(非0)do……continue;…...expr假(0)whileexpr2……continue;…...假(0)真(非0)forexpr1expr3例3求輸入的十個整數(shù)中正數(shù)的個數(shù)及其平均值#include<stdio.h>main(){inti,num=0,a;floatsum=0;for(i=0;i<10;i++){scanf("%d",&a); if(a<=0)continue; num++; sum+=a;}printf("%dplusinteger'ssum:%6.0f\n",num,sum);printf("Meanvalue:%6.2f\n",sum/num);}5.6程序舉例第5章循環(huán)結(jié)構(gòu)設(shè)計思政目標(biāo)
目標(biāo)一:培養(yǎng)學(xué)生的科學(xué)探索精神借助如計算圓周率、探索斐波那契數(shù)列規(guī)律等編程實(shí)例,激發(fā)學(xué)生對科學(xué)知識的好奇心和探索欲,促使他們深入思考數(shù)學(xué)原理與編程實(shí)現(xiàn)之間的聯(lián)系,在不斷嘗試和優(yōu)化程序的過程中,培養(yǎng)嚴(yán)謹(jǐn)、勇于探索未知的科學(xué)精神,為未來在各領(lǐng)域的學(xué)習(xí)和研究奠定思想基礎(chǔ)。目標(biāo)二:塑造學(xué)生堅韌不拔的意志品質(zhì)在編寫和調(diào)試如判斷素數(shù)、尋找特定范圍內(nèi)素數(shù)以及密碼翻譯等程序時,學(xué)生必然會遇到各種邏輯錯誤和運(yùn)行問題。通過引導(dǎo)學(xué)生積極面對這些困難,堅持不懈地分析問題、修改代碼,培養(yǎng)他們在面對挫折時不氣餒、勇于克服困難的堅韌意志,使其明白只有經(jīng)過不斷努力和調(diào)試才能達(dá)成目標(biāo),進(jìn)而在學(xué)習(xí)和生活中保持積極向上、勇往直前的態(tài)度。5.5輔助控制語句<>5.6
程序舉例
C語言程序設(shè)計
第五章循環(huán)控制t=1,pi=0,n=1.0,s=1當(dāng)|t|1e-6pi=pi+tn=n+2s=-st=s/npi=pi*4輸出pi分子:1,-1,1,-1…分母:1,3,5,7,...#include<stdio.h>#include<math.h>voidmain(){ints;floatn,t,pi;t=1;pi=0;n=1.0;s=1;while((fabs(t))>=1e-6){pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;printf("pi=%10.6f\n",pi);}運(yùn)行結(jié)果:
pi=3.141594<>
C語言程序設(shè)計
第五章循環(huán)控制例2求Fibonacci數(shù)列:1、1、2、3、5、8……前40個數(shù)。Fibonacci數(shù)列可以用一個有趣的古典數(shù)學(xué)問題來描述:有一對兔子,出生三個月后每個月都生一對兔子。小兔子長到三個月后每個月又生一對兔子。假設(shè)所有的兔子都不死,問每個月的兔子總數(shù)是多少對?月數(shù)小兔中兔老兔總數(shù)1111111111123450200002352……………<>
C語言程序設(shè)計
第五章循環(huán)控制f1=1,f2=1fori=1to20輸出f1,f2f1=f1+f2f2=f2+f1#include<stdio.h>#include<conio.h>voidmain(){longintf1,f2;inti;f1=1;f2=1;for(i=1;i<=20;i++){printf("%12ld%12ld",f1,f2);if(i%2==0)printf("\n");f1=f1+f2;f2=f2+f1;}
}1534233159710946750255142293524578241578171855377258417711121393832040570288739088169213896104181286571964181346269922746563245986321144987676546368317811217830914930352102334155<>
C語言程序設(shè)計
第五章循環(huán)控制f1=1,f2=1fori=1to20輸出f1,f2f1=f1+f2f2=f2+f1#include<stdio.h>#include<conio.h>voidmain(){longintf1,f2;inti;f1=1;f2=1;printf("%12ld%12ld",f1,f2);for(i=3;i<=40;i++){if(i%4==0)printf("\n");f3=f1+f2;printf("%12ld",f3);f1=f2;f2=f3;}
}1534233159710946750255142293524578241578171855377258417711121393832040570288739088169213896104181286571964181346269922746563245986321144987676546368317811217830914930352102334155<>
C語言程序設(shè)計
第五章循環(huán)控制例3判斷m是否素數(shù)。#include<stdio.h>#include<math.h>voidmain(){intm,i,k;scanf("%d",&m);k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>k)printf("%disaprimenumber\n",m);elseprintf("%disnotaprimenumber\n",m);}讀入mk=i=2當(dāng)i
km被i整除真假用break結(jié)束循環(huán)i=i+1i
k+1真假輸出”是素數(shù)”輸出”不是素數(shù)”19
19isaprimenumber<>
C語言程序設(shè)計第五章循環(huán)控制例4求100~200間的全部素數(shù)。
由于不是求一個數(shù)是否素數(shù),因此需要使用雙循環(huán)嵌套。外層第一個循環(huán),用于在100~200間提取一個數(shù),然后內(nèi)層第二個循環(huán)進(jìn)行判斷。#include<stdio.h>#include<math.h>voidmain(){intm,k,i,n=0;for(m=101;m<=200;m=m+2){k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>=k+1){printf("%d",m);n=n+1;}if(n%10==0)printf("\n");}printf("\n");}運(yùn)行結(jié)果:101103107109113127131137139149157163167173179181191193197199<>
C語言程序設(shè)計
第五章循環(huán)控制例5譯密碼。按一定規(guī)律將電文變成密碼:將字母A變?yōu)镋、將字母a變?yōu)閑,即變成其后的第四個字母,W將變成A。字母按上述規(guī)律轉(zhuǎn)換,非字母字符不變。輸入一行字符,輸出相應(yīng)密碼。分析:由于字符和整數(shù)之間可以通用,所以‘A’->’E’對應(yīng)‘A’->’A’+4可以定義一個字符型變量c,c接受輸入,并c->c+4。特殊之處是‘W’-’Z’和‘w’-’z’之間時,它們需要對應(yīng)為‘A’-’D’和‘a(chǎn)’-’d’,怎么辦?一種是用書上的辦法,再減回去,即用c->c-26來解決。ABCDEFGHIJKLMNOPQRSTUVWXYZ<>
C語言程序設(shè)計
第五章循環(huán)控制#include<stdio.h>voidmain(){charc;while((c=getchar())!='\n'){if((c>='a'&&c<='z')||(c>='A'&&c<='Z')){c=c+4; if(c>'Z'&&c<='Z'+4||c>'z')c=c-26;}printf("%c",c);}printf(“\n");}
Hello,world!
Lipps,asvph!5.7常見錯誤分析第5章循環(huán)結(jié)構(gòu)設(shè)計思政目標(biāo)目標(biāo)一:培養(yǎng)嚴(yán)謹(jǐn)認(rèn)真的治學(xué)態(tài)度強(qiáng)調(diào)編程中如給變量賦初值、括號匹配等細(xì)節(jié)的重要性,類比學(xué)習(xí)和生活中任何事情都需注重細(xì)節(jié),一個小疏忽可能導(dǎo)致嚴(yán)重后果,從而培養(yǎng)學(xué)生嚴(yán)謹(jǐn)認(rèn)真對待每一項(xiàng)任務(wù)的態(tài)度,無論是學(xué)業(yè)上的作業(yè)、考試,還是未來工作中的項(xiàng)目,都要做到一絲不茍。目標(biāo)二:樹立正確面對挫折和堅持真理的價值觀以程序出現(xiàn)死循環(huán)等錯誤為例,說明在面對問題和挫折時,不應(yīng)逃避或放棄,而是要像調(diào)試程序一樣,冷靜分析、找出原因并解決。同時,在解決問題過程中要堅持追求正確的結(jié)果,如同追求真理,不被暫時的困難所迷惑,培養(yǎng)學(xué)生在學(xué)習(xí)和生活中勇于面對困難、堅持不懈追求正確方向的價值觀。5.7常見錯誤分析5.7常見錯誤分析1在求累加或者階乘這樣的問題時,初學(xué)者很容易忘記給變量賦一個合理的初值,例如:#include<stdio.h>intmain(){ inti,s; /*忘記了給變量s賦初值*/ for(i=1;i<=10;i++) { s*=i; } printf("s=%d\n",s); return0;}這是實(shí)現(xiàn)求“s=10!”的代碼,編譯過程中沒有任何報錯信息,但程序運(yùn)行結(jié)果是錯誤的,如圖所示。這是因?yàn)橛脕泶鎯Ψe的變量s沒有賦初值造成的,令s=1,即可輸出正確結(jié)果。5.7常見錯誤分析2由于各種控制結(jié)構(gòu)的嵌套,有些左右花括號相距可能較遠(yuǎn),這就可能會忘掉右側(cè)的花括號而造成花括號不匹配,這種情況在編譯時可能產(chǎn)生許多莫名其妙的錯誤,而且錯誤提示與實(shí)際錯誤無關(guān)。例如,上述程序的for語句中如果漏掉了右括號,在編譯時就會提示如圖所示的信息。當(dāng)各種控制結(jié)構(gòu)的嵌套比較多時,可以是在括號后加上表示層次的注釋,例如:while(){ /*1*/ … while(){ /*2*/ … if(){ /*3*/ … } /*3*/ … } /*2*/ …} /*1*/每次遇到嵌套左括號時就把層次加1,遇到右括號時就把層次減1。如果最后的右括號的層次號不是1,可以肯定有括號丟失。5.7常見錯誤分析3由于某種原因使循環(huán)無休止的運(yùn)行,這就是死循環(huán)。例如,忘記改變循環(huán)變量或者改變的方向不對,都有可能出現(xiàn)死循環(huán)。如下面的代碼:#include<stdio.h>intmain(){ inti=1; while(i<10) { printf("%d\n",i); } return0;}5.7常見錯誤分析由于變量i沒有改變,所以i<10永遠(yuǎn)為真,循環(huán)將一直繼續(xù)下去,持續(xù)輸出“1”。在進(jìn)行循環(huán)結(jié)構(gòu)程序設(shè)計時,一定要注意避免死循環(huán)。本章小結(jié)本章主要介紹了C語言三種基本結(jié)構(gòu)中的循環(huán)結(jié)構(gòu)。通過本章的學(xué)習(xí),讀者應(yīng)重點(diǎn)掌握以下內(nèi)容。掌握while循環(huán)語句、do-while循環(huán)語句以及for循環(huán)語句的使用方法,以及三者之間的異同。掌握循環(huán)嵌套的應(yīng)用。掌握break語句和continue語句的應(yīng)用,了解goto語句的使用方法??梢赃M(jìn)行循環(huán)結(jié)構(gòu)程序設(shè)計。至此,我們學(xué)完了結(jié)構(gòu)化程序設(shè)計中的三種基本結(jié)構(gòu):順序、選擇和循環(huán)結(jié)構(gòu)。讀者應(yīng)該已經(jīng)具備解決簡單問題的能力,接下來,我們將學(xué)習(xí)C語言的核心技術(shù)篇。5.8經(jīng)典題型第5章循環(huán)結(jié)構(gòu)設(shè)計思政目標(biāo)目標(biāo)一:塑造嚴(yán)謹(jǐn)細(xì)致的學(xué)習(xí)態(tài)度分析編程錯誤和解題易錯點(diǎn),如循環(huán)條件、變量賦值等,讓學(xué)生深知細(xì)微之處影響全局,從而在學(xué)習(xí)與生活中對待各類事務(wù)都嚴(yán)謹(jǐn)認(rèn)真、注重細(xì)節(jié),培養(yǎng)良好的學(xué)習(xí)和做事習(xí)慣。目標(biāo)二:培育堅韌不拔的意志品質(zhì)經(jīng)典題解中的復(fù)雜循環(huán)邏輯和易混淆知識點(diǎn),需要學(xué)生耐心思考、反復(fù)鉆研。這有助于鍛煉學(xué)生面對難題時不輕易放棄,持之以恒地探索直至解決問題的意志,增強(qiáng)其在學(xué)習(xí)和未來面對挑戰(zhàn)時的信心與毅力。1.設(shè)i和x都是int類型,則for循環(huán)語句()。for(i=0,x=0;i<=9&&x!=876;i++)scanf(″%d″,&x);A)最多執(zhí)行10次B)最多執(zhí)行9次C)是無限循環(huán)D)循環(huán)體一次也不執(zhí)行答案:A)
2.下述for循環(huán)語句()。inti,k;for(i=0,k=-1;k=1;i++,k++)printf(″***″);A)判斷循環(huán)結(jié)束的條件非法B)是無限循環(huán)C)只循環(huán)一次D)一次也不循環(huán)答案:B)
解析:由于表達(dá)式2是賦值表達(dá)式“k=1”,恒為真。k==1才表示判斷k的值與1是否相等。4.在下述程序中,判斷i>j共執(zhí)行了()次。#include<stdio.h>main(){inti=0,j=10,k=2,s=0;for(;;){i+=k;
if(i>j)
{printf(″%d″,s)
break;
}s+=i;}}A)4B)7C)5D)6答案:D)
for循環(huán)里面的三個表達(dá)式缺省不寫表示無限次循環(huán),分號必須寫上。確定循環(huán)所包含的語句5.以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inti;
for(i=1;i<=5;i++)
{if(i%2)putchar(′<′);
else
continue;
putchar(′>′);
}putchar(′#′);}A)<><><>#B)><><><#C)<><>#D)><><#答案:A)
掌握“continue”的用法。
結(jié)束本次循環(huán),跳過循環(huán)體中尚未執(zhí)行的語句,繼續(xù)進(jìn)行下一次是否執(zhí)行循環(huán)體的條件判斷6.下述程序的輸出結(jié)果是()。#include<stdio.h>main(){intk=0,m=0;
inti,j;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
k++;
k-=j;
}m=i+j;
printf(″k=%d,m=%d″,k,m);}A)k=0,m=3B)k=0,m=5C)k=1,m=3D)k=1,m=5答案:B)分析方法:確定外層循環(huán)和內(nèi)層循環(huán)所包含的語句。9.下以程序段的輸出結(jié)果是()。intx=3;do{printf(″%d″,x-=2);}while(!(--x));A)1B)30C)1-2D)死循環(huán)答案:C)
第一次循環(huán)1》執(zhí)行x-=2后x=12》執(zhí)行--x后x=0,所以“!(--x)”的值為1,即為“真”繼續(xù)循環(huán)。第二次循環(huán)(x用第一次循環(huán)后的值)1》執(zhí)行x-=2后x=-22》執(zhí)行--x后x=-3,所以“!(--x)”的值為0,即為“假”終止循環(huán)。12.若x是int型變量,以下程序段的輸出結(jié)果是(D)。for(x=
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人信用貸款借款合同
- 工業(yè)機(jī)器人應(yīng)用推廣服務(wù)協(xié)議
- 工作總結(jié)與進(jìn)度匯報模板
- 優(yōu)惠協(xié)議書年
- 基于AI技術(shù)的智能家居設(shè)計開發(fā)協(xié)議
- 公司股東合作章程協(xié)議
- 應(yīng)對企業(yè)運(yùn)營挑戰(zhàn)的綜合性解決方案
- 離婚協(xié)議戶口遷移協(xié)議書
- 金屬礦產(chǎn)品采購與銷售合同
- 藥師資格證書租賃協(xié)議
- 【數(shù)控加工】數(shù)控銑床教案
- 科室藥事管理記錄本
- GB/T 3860-1995文獻(xiàn)敘詞標(biāo)引規(guī)則
- 2023年Beck自殺意念評估量表
- GB/T 22560-2008鋼鐵件的氣體氮碳共滲
- 統(tǒng)編版四年級道德與法治下冊全冊課件
- 醫(yī)院評審工作臨床科室資料盒目錄(15個盒子)
- 壓力性損傷指南解讀
- 湯姆走丟了 詳細(xì)版課件
- 大學(xué)學(xué)院學(xué)生心理危機(jī)預(yù)防與干預(yù)工作預(yù)案
- 國有土地上房屋征收與補(bǔ)償條例 課件
評論
0/150
提交評論