




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上C語(yǔ)言程序設(shè)計(jì)課程教案表授課題目第三章 程序的控制結(jié)構(gòu)(5)循環(huán)結(jié)構(gòu)for課時(shí)安排2授課時(shí)間教學(xué)目的和要求1掌握:循環(huán)結(jié)構(gòu)程序設(shè)計(jì)、for語(yǔ)句2熟悉:continue、break及goto語(yǔ)句教學(xué)內(nèi)容1基本內(nèi)容:(1)三種循環(huán)比較(2)多重循環(huán)(3)循環(huán)中用到的其他語(yǔ)句2重點(diǎn):運(yùn)算符與表達(dá)式、賦值運(yùn)算符與賦值表達(dá)式講課進(jìn)程和時(shí)間分配1、引子(15分鐘) 分析植樹任務(wù),認(rèn)識(shí)循環(huán)結(jié)構(gòu)中的術(shù)語(yǔ): 循環(huán)條件 循環(huán)控制變量 循環(huán)體 改變循環(huán)條件的語(yǔ)句循環(huán)條件(暗含循環(huán)控制變量)植樹任務(wù):學(xué)校組織植樹,要求每個(gè)班100棵. (1)當(dāng)少于100棵循環(huán)體 刨樹坑. 種樹 澆水改變循環(huán)
2、條件的語(yǔ)句 植樹棵樹加一 (2)返回(1)在實(shí)際工作中常常會(huì)遇到有一定規(guī)律的重復(fù)性操作,這就需要用到循環(huán)語(yǔ)句。在C語(yǔ)言中主要有三種循環(huán)語(yǔ)句:while,do- while,for。用goto語(yǔ)句和if語(yǔ)句也能構(gòu)成循環(huán)。2、for語(yǔ)句(50分鐘)(1)格式for(表達(dá)式1;表達(dá)式2;表達(dá)式3)循環(huán)體;(2)for循環(huán)執(zhí)行過程如下1)計(jì)算表達(dá)式1。2)計(jì)算表達(dá)式2,若其值為非0(循環(huán)條件成立),則轉(zhuǎn)(3)執(zhí)行循環(huán)體;若其值為0(循環(huán)條件不成立),則轉(zhuǎn)(5)結(jié)束循環(huán)。3)執(zhí)行循環(huán)體。4)計(jì)算表達(dá)式3,然后轉(zhuǎn)(2)判斷循環(huán)條件是否成立。5)結(jié)束循環(huán),執(zhí)行for循環(huán)之后的語(yǔ)句。 例:求1+2+3+4+1
3、00=?main() int i=1,s=0; while(i<=100) s=s+i; i+; printf(“the sum is:%d”,s);main() int i,s=0; for(i=1;i<=100;i+) s=s+i; printf(“the sum is:%d”,s);【例】Fibonacci數(shù)列問題, 求數(shù)列1,1,2,3,5,8,前40個(gè)數(shù)。提示:用a,b兩個(gè)變量a=1,b=1初始化,然后a=a+b=2,b=b+a=3, a=a+b=5,b=b+a=8,依次類推,生成40個(gè)數(shù)據(jù);數(shù)列后面的數(shù)值超過int的取值范圍,所以定義a,b用長(zhǎng)整型; 因?yàn)槊看未蛴?個(gè)數(shù)
4、,循環(huán)20次,用語(yǔ)句 for(i=1;i<=20;i+)實(shí)現(xiàn); 每行打印4個(gè)數(shù),用語(yǔ)句if(i%2= =0)printf(“n”); 實(shí)現(xiàn)。main() long int a=1,b=1; int i; for(i=1;i<=20;i+) printf(“%12ld %12ld”,a,b); if(i%2= =0) printf(“n”); a=a+b; b=b+a; 說明:for是關(guān)鍵詞,其后有3個(gè)表達(dá)式,各個(gè)表達(dá)式用“;”分隔。上面的格式為規(guī)范性for語(yǔ)句格式. 實(shí)際上3個(gè)表達(dá)式可以是任意的表達(dá)式,通常主要用于for循環(huán)控制for語(yǔ)句中表達(dá)式1,表達(dá)式2,表達(dá)式3都可以省略,甚
5、至三個(gè)表達(dá)式都同時(shí)省略,但是起分隔作用的“;”不能省略。如果省略表達(dá)式1,即不在for語(yǔ)句中給循環(huán)變量賦初值,則應(yīng)該在for語(yǔ)句前給循環(huán)變量賦初值。main() i=1;fact=1; for(; i<=n; i+) fact=fact*i; main() for(i=1,fact=1.0; i<=n; i+) fact=fact*i; 如果省略表達(dá)式2,即不在表達(dá)式2的位置判斷循環(huán)終止條件,循環(huán)無終止地進(jìn)行,也就是認(rèn)為表達(dá)式2始終為“真”。則應(yīng)該在其它位置(如:循環(huán)體)安排檢測(cè)及退出循環(huán)的機(jī)制。(break語(yǔ)句)如果省略表達(dá)式3,即不在此位置進(jìn)行循環(huán)變量的修改,則應(yīng)該其它位置(如
6、:循環(huán)體)安排使循環(huán)趨向于結(jié)束的工作。main() for(i=1,fact=1.0; i<=n; ) fact=fact*i; i+; 表達(dá)式1可以是設(shè)置循環(huán)變量初值的表達(dá)式(常用),也可以是與循環(huán)變量無關(guān)的其它表達(dá)式;表達(dá)式1,表達(dá)式3可以是簡(jiǎn)單表達(dá)式,也可以是逗號(hào)表達(dá)式。for(i=1,fact=1.0; ; i+)表達(dá)式2一般為關(guān)系表達(dá)式或邏輯表達(dá)式,也可以是數(shù)值表達(dá)式或字符表達(dá)式,事實(shí)上只要是表達(dá)式就可以。建議:不要把與循環(huán)控制無關(guān)的內(nèi)容放在for語(yǔ)句的三個(gè)表達(dá)式中,這是程序設(shè)計(jì)的良好風(fēng)格。注意:規(guī)范性for循環(huán)通常用于循環(huán)次數(shù)給定的程序。 下列程序段的運(yùn)行結(jié)果是 。 for(
7、i=1;i<=5;) printf(“%d”,i); i+;A)12345 B)1234 C)15 D)無限循環(huán)若i為整形變量,則以下循環(huán)語(yǔ)句的循環(huán)次數(shù)是_。for(i=2;i=0;)printf(“%d”,i-);A) 無限次 B) 0次 C) 1次 D) 2次學(xué)生練習(xí):顯示110內(nèi)的偶數(shù)。3、循環(huán)中用到的其他語(yǔ)句(30分鐘)(1)break語(yǔ)句break語(yǔ)句的一般形式為:break;執(zhí)行過程是:終止對(duì)switch語(yǔ)句或循環(huán)語(yǔ)句的執(zhí)行(跳出這兩種語(yǔ)句結(jié)構(gòu)),而轉(zhuǎn)移到其后的語(yǔ)句處執(zhí)行。 【例5.5】求圓的面積。 #define PI 3. main() int r; float s; f
8、or(r=1;r<=10;r+) s=PI*r*r; if(s>100)break; printf(s=%f,s); 計(jì)算r=1到r=10的圓面積,直到 s>100為止。說明: 1)break語(yǔ)句僅能用于開關(guān)語(yǔ)句switch,循環(huán)語(yǔ)句while、do-while和for。 2)在多重循環(huán)的情況下,使用break語(yǔ)句時(shí),僅退出包含break語(yǔ)句所在的那層循環(huán)體。練習(xí):下面程序的輸出結(jié)果是_。 main() int i; for(i=1;i<=100;i+) if(i*i>=150)&&(i*i<=200) break; printf(“%dn”
9、,i*i); A) 144 B) 255 C) 169 D) 121寫出程序的運(yùn)行結(jié)果:main() int i,s=0; for(i=1; i<=10; i+) s=s+2; if(s>5) break; printf(“%d”,s); 總結(jié)說明:break語(yǔ)句只用于循環(huán)語(yǔ)句或switch語(yǔ)句中。在循環(huán)語(yǔ)句中,break常常和if語(yǔ)句一起使用,表示當(dāng)條件滿足時(shí),立即終止循環(huán)。注意break不是跳出if語(yǔ)句,而是循環(huán)結(jié)構(gòu)。循環(huán)語(yǔ)句可以嵌套使用,break語(yǔ)句只能跳出(終止)其所在的循環(huán),而不能一下子跳出多層循環(huán)。要實(shí)現(xiàn)跳出多層循環(huán)可以設(shè)置一個(gè)標(biāo)志變量,控制逐層跳出。2)contin
10、ue語(yǔ)句(翻譯為“繼續(xù)”(循環(huán)continue語(yǔ)句的一般形式是:continue;功能:結(jié)束本次循環(huán)。即跳過本層循環(huán)體中余下尚未執(zhí)行的語(yǔ)句,接著再一次進(jìn)行循環(huán)條件的判定?!纠?.6】求100-150 之間和400-450之間能被9整除的數(shù)。提示:一個(gè)數(shù)與9取余等于0,則說明該數(shù)能被9整除。我們用一個(gè)循環(huán)語(yǔ)句初值=100,終值用450 ,步長(zhǎng)=1進(jìn)行循環(huán),151到399之間的數(shù)據(jù)用continue;語(yǔ)句跳過不進(jìn)行判斷。main() int n;for(n=100;n<=450;n+) if(n>150&&n<400) continue; if(n%9=0) pr
11、intf(“%6d”,n); 運(yùn)行:108 117 126 135 144 405 414 423 432 441 450注意:執(zhí)行continue語(yǔ)句并沒有使整個(gè)循環(huán)終止。注意與break語(yǔ)句進(jìn)行比較。在while和do-while循環(huán)中,continue語(yǔ)句使流程直接跳到循環(huán)控制條件的測(cè)試部分,然后決定循環(huán)是否繼續(xù)執(zhí)行。在for循環(huán)中,遇到continue后,跳過循環(huán)體中余下的語(yǔ)句,而去對(duì)for語(yǔ)句中的表達(dá)式3求值,然后進(jìn)行表達(dá)式2的條件測(cè)試,最后決定for循環(huán)是否執(zhí)行。 練習(xí):以下程序的運(yùn)行結(jié)果是 。 main() int i,j,x=0; for(i=0;i<2;i+) x+;
12、for(j=0;j<=3;j+) if(j%2) continue; x+; x+; printf(“%dn”,x); A、4B、8 C、6D、12總結(jié)break,continue主要區(qū)別:continue語(yǔ)句只終止本次循環(huán),而不是終止整個(gè)循環(huán)結(jié)構(gòu)的執(zhí)行;break語(yǔ)句是終止循環(huán),不再進(jìn)行條件判斷。 3)goto 語(yǔ)句格式: goto 語(yǔ)句標(biāo)號(hào);功能:goto語(yǔ)句為無條件轉(zhuǎn)向語(yǔ)句,程序執(zhí)行到goto語(yǔ)句時(shí),無條件地轉(zhuǎn)到語(yǔ)句標(biāo)號(hào)所指定的語(yǔ)句并執(zhí)行。 說明:語(yǔ)句標(biāo)號(hào)必須用標(biāo)識(shí)符表示,不能用整數(shù)作為標(biāo)號(hào)。goto語(yǔ)句與if語(yǔ)句一起使用,在滿足某一條件時(shí),程序跳到標(biāo)號(hào)處執(zhí)行。4、程序設(shè)計(jì)舉例編寫
13、循環(huán)程序的要點(diǎn):(1) 定義循環(huán)控制變量的初始值;(2) 每執(zhí)行一次循環(huán),改變循環(huán)變量的增量(或減量);(3) 用數(shù)據(jù)代入測(cè)試控制循環(huán)的終值條件(即是否按自己預(yù)定的次數(shù)進(jìn)行循環(huán))。 【例5.8】輸入一個(gè)整數(shù),將其各位數(shù)字逆序輸出。分析:一個(gè)數(shù)i,用K=i%10,K的值為取最低位數(shù)并打印出來,再用i=i/10去掉最低位,若i0,然后重復(fù)以上過程,直到i=0就可以將整數(shù)i逆序全部輸出。驗(yàn)證數(shù)字: i=123第1次:K=i%10 (k=3) i=i/10 (i=12) 0第2次:K=i%10 (k=2) i=i/10 (i= 1) 0第3次:K=i%10 (k=1) i=i/10 (i= 0) =0
14、程序代碼:#include "stdio.h"void main() long i, k; printf("Please input an integer:n"); scanf("%ld",&i); do k=i%10; /*取最低位后打印*/ printf ("%ld",k); i=i/10; /* 去掉最低位 */ while(i!=0); printf ("n");運(yùn)行:Please input an integer: 【例5.9】蝸牛爬井問題:一只蝸牛從井底爬到井口,每天白天蝸牛
15、要睡覺,晚上才出來活動(dòng),一個(gè)晚上蝸??梢韵蛏吓?尺,但是白天睡覺的時(shí)候會(huì)往下滑2尺,若井深10尺,問蝸牛幾天可以爬出來 ? 提示:可定義三個(gè)變量,分別表示已經(jīng)爬的高度、用的天數(shù)、白天和晚上的標(biāo)記,每過一個(gè)晚上或者白天都給天數(shù)加1,最后將天數(shù)加1除以2得到的結(jié)果輸出即是所用的天數(shù)。本例用到while循環(huán)語(yǔ)句和ifelse分支語(yǔ)句。程序代碼:#include <stdio.h>main() int h, day, flag; h=day=0; flag=1; while(h<10)if (flag= =1) h=h+3; day=day+1; flag=0; else h=h-2; day=day+1; flag=1;day=(day+1)/2;printf(“%d”,day);【例5.10】打印九九乘法表。提示:用二重循環(huán)語(yǔ)句,外循環(huán)用i循環(huán)變量控制打印的行數(shù),內(nèi)循環(huán)用j循環(huán)變量控制每行打印的個(gè)數(shù)。程序代碼:main() int
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物材料界面相互作用-全面剖析
- 新媒體時(shí)代的文化傳播邊界與擴(kuò)展-全面剖析
- 疫苗基礎(chǔ)培訓(xùn)課件
- 立體聲場(chǎng)技術(shù)改進(jìn)-全面剖析
- 腦炎后遺癥康復(fù)策略探討-全面剖析
- 智能化生產(chǎn)線集成-全面剖析
- 內(nèi)核結(jié)構(gòu)演化分析-全面剖析
- SDN與云計(jì)算融合技術(shù)-第1篇-全面剖析
- 營(yíng)銷策略效果評(píng)估-全面剖析
- 內(nèi)容C-全面剖析
- 道路縱斷面設(shè)計(jì)
- 1.3.1 三角函數(shù)的周期性課件
- 智能感知系統(tǒng)布局
- 綜合能力測(cè)試真題及答案
- 幼兒園中班創(chuàng)意美術(shù)《我運(yùn)動(dòng)了》課件
- 自動(dòng)焊錫機(jī)烙鐵頭更換記錄表
- 廣東省省級(jí)政務(wù)信息化服務(wù)預(yù)算編制標(biāo)準(zhǔn)(運(yùn)維服務(wù)分冊(cè))
- 汽車維修公務(wù)車輛定點(diǎn)維修車輛保養(yǎng)投標(biāo)方案
- 歌曲Wonderful U:美妙的你.中英互譯
- 部編教材教讀課教學(xué)課例例說課件
- 冀教2011版四年級(jí)英語(yǔ)下冊(cè)《Lesson23MyFavouriteSchoolWork》評(píng)課稿
評(píng)論
0/150
提交評(píng)論