2022年《C語言程序設(shè)計(jì)》教案第三章程序的控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)while和dowhile_第1頁
2022年《C語言程序設(shè)計(jì)》教案第三章程序的控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)while和dowhile_第2頁
2022年《C語言程序設(shè)計(jì)》教案第三章程序的控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)while和dowhile_第3頁
2022年《C語言程序設(shè)計(jì)》教案第三章程序的控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)while和dowhile_第4頁
2022年《C語言程序設(shè)計(jì)》教案第三章程序的控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)while和dowhile_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、學(xué)習(xí)必備歡迎下載c 語言程序設(shè)計(jì)課程教案表授課題目第三章程序的控制結(jié)構(gòu) (6) 循環(huán)結(jié)構(gòu)while和 do-while 課時(shí)安排2 授課時(shí)間教學(xué)目的和要求1掌握: while 語句、 do-while 語句2熟悉:三種循環(huán)語句教學(xué)內(nèi)容1基本內(nèi)容: (1)while 語句( 2)do-while 語句( 3) for 語句2重點(diǎn):三種循環(huán)語句講課進(jìn)程和時(shí)間分配1、問題引入:回顧if 語句和 for 語句。 (15 分鐘)2、while 語句( 35 分鐘)(1)while 語句?格式: while ( 條件表達(dá)式)語句序列;執(zhí)行過程:先計(jì)算 while 后面的表達(dá)式的值,如果其值為“ 真” 則執(zhí)

2、行循環(huán)體,在執(zhí)行完循環(huán)體后,再次計(jì)算while 后面的表達(dá)式的值,如果其值為“ 真” 則繼續(xù)執(zhí)行循環(huán)體,如果表達(dá)式的值為假,退出此循環(huán)結(jié)構(gòu)。說明: 1)循環(huán)體可以是一條簡單的語句,也可以由多個(gè)語句組成。若是2 個(gè)語句以上必須用 括起來,形成復(fù)合語句。2)在循環(huán)體中應(yīng)有使循環(huán)趨向于結(jié)束的語句,即設(shè)置改變循環(huán)條件的語句。3)while 語句又稱 “ 當(dāng)型 ” 循環(huán)結(jié)構(gòu)。 其特點(diǎn)是先判斷表達(dá)式的值,然后執(zhí)行循環(huán)體中的語句。如果表達(dá)式的值一開始為假(值為0) ,則直接執(zhí)行循環(huán)體下面的語句。思考;如何求1+2+3+4+ 100=?算法 1:直接寫出算式(用變量 sum 存放和 ) sum=1+2+3+4

3、+5+ +100考慮 :1+2+3+100 可以改寫為:(1+2)+3)+ +100) ,sum=0; sum=sum+1; sum=sum+2; sum=sum+3; sum=sum+100; 規(guī)律 :每一步都是兩個(gè)數(shù)相加,加數(shù)總是對(duì)上一步加數(shù)增加1 后參與本次加法運(yùn)算,被加數(shù)總是上一步加法運(yùn)算的和??梢钥紤]用一個(gè)變量i 存放加數(shù) ,一個(gè)變量sum 存放上一步的和。那么每一步都可以寫成:sum+i 根據(jù)規(guī)律上述式子可以改成: sum=sum+i, i=i+1 sum=sum+i, i=i+1 sum=sum+i, i=i+1 規(guī)律 :若 i 小于或等于100 重復(fù)執(zhí)行該算式循環(huán)條件循環(huán)體精品

4、學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 1 頁,共 7 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 1 頁,共 7 頁 - - - - - - - - -學(xué)習(xí)必備歡迎下載算法 2: 分析 :設(shè)想用 sum 作為累加器 ,初值為 0,利用 sum+=i(i 依次取值為1、2。 。100) 此分析需要解決的3 個(gè)問題:1) sum=0,i=1; 2)每執(zhí)行一次sum+=i 后, i 增 1( i=i+1 ); 3)判斷如果i 小于或等于100,重新執(zhí)行步驟(2),否

5、則停止計(jì)算main()int i ,s=0; i=1; while(i=100 )/*i=100 為循環(huán)條件 */ s=s+i; i+; /*改變 i 的值 */ printf ( s=%d, s); 運(yùn)行結(jié)果 :s=5050 說明:循環(huán)結(jié)構(gòu)的三個(gè)術(shù)語:1、循環(huán)條件:循環(huán)結(jié)構(gòu)中的條件表達(dá)式如while (i=100) 其中, i100 就是循環(huán)條件。2、循環(huán)體: 在每個(gè)循環(huán)周期均要執(zhí)行一次的語句序列。如 while 下用 括起來的語句序列。3、循環(huán)控制變量:能夠決定控制條件是真是假的量。如while(i 100)中的變量i 要寫出一個(gè)正確的循環(huán)結(jié)構(gòu),對(duì)控制變量要做三方面的工作:1、對(duì)循環(huán)控制變

6、量賦初值。2、將循環(huán)控制變量寫入正確的控制條件。3、對(duì)循環(huán)控制變量值的更新。使用 while 語句需要注意以下幾點(diǎn): while 語句的特點(diǎn)是先計(jì)算表達(dá)式的值,然后根據(jù)表達(dá)式的值決定是否執(zhí)行循環(huán)體中的語句。因此,如果表達(dá)式的值一開始就為“ 假 ” ,那么循環(huán)體一次也不執(zhí)行。當(dāng)循環(huán)體為多個(gè)語句組成,必須用 括起來,形成復(fù)合語句。在循環(huán)體中應(yīng)有使循環(huán)趨于結(jié)束的語句,以避免“ 死循環(huán) ” 的發(fā)生。下列情況,退出while 循環(huán)條件表達(dá)式不成立(為零)循環(huán)體內(nèi)遇break,goto 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 2 頁,共 7 頁 - -

7、- - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 2 頁,共 7 頁 - - - - - - - - -學(xué)習(xí)必備歡迎下載無限循環(huán) : while(1) 循環(huán)體 ; 例:分析程序的運(yùn)行結(jié)果#include main ( ) int i=1,sum=0; while ( i=100 ) printf( “ i=%d,sum=%dn ” ,i,sum += i); printf( “ sum=%dn” ,sum); 結(jié)果:程序?qū)⒉煌5拇蛴 癷=1,sum=.”。無法正常終止的程序,稱為“ 死循環(huán) ” 。結(jié)論:在 while 語句循環(huán)

8、體中,一定要有能夠?qū)ρh(huán)控制條件產(chǎn)生影響的語句。避免出現(xiàn)“死循環(huán)”現(xiàn)象。例 顯示 110 的平方#include main() int i=1; while(i=10) printf(%d*%d=%dn,i,i,i*i); i+; 運(yùn)行結(jié)果:1*1=1 2*2=4 3*3=9 4*4=16 5*5=25 6*6=36 7*7=49 8*8=64 9*9=81 10*10=100 練習(xí):對(duì)下列程序段敘述正確的是 。int k=0; while(k=0) k=k-1; a) while 循環(huán)執(zhí)行10 次b) 無限循環(huán)c) 循環(huán)體一次也不被執(zhí)行d) 循環(huán)體被執(zhí)行一次下面程序的運(yùn)行結(jié)果是_。main(

9、) int s=0,i=1; 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 3 頁,共 7 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 3 頁,共 7 頁 - - - - - - - - -學(xué)習(xí)必備歡迎下載while(s=10) s=s+i*i; i+; printf(“ %d ”,-i); a) 4 b) 3 c) 5 d) 6 對(duì)以下程序段,描述正確的是_。int x=0,s=0; while(!x!=0) s+=+x; printf(“ %d ” ,s);a

10、) 運(yùn)行程序段后輸出0 b) 運(yùn)行程序段后輸出1 c) 程序段中的控制表達(dá)式是非法的d) 程序段循環(huán)無數(shù)次下面程序段的運(yùn)行結(jié)果是 。int n=0; while(n+7) a- ; printf(“ %d ” ,a);a) 10 9 8 b) 9 8 7 c) 10 9 8 7 d) 9 8 7 6 3、do while語句( 20 分鐘)do while 語句的一般形式:格式:do 語句 while (表達(dá)式);功能 :先執(zhí)行語句 ,后判斷表達(dá)式的值。執(zhí)行過程 :先執(zhí)行一次指定的語句,然后判斷表達(dá)式的值,當(dāng)表達(dá)式的值為非零(“ 真” )時(shí),返回重新執(zhí)行該語句,如此反復(fù),直到表達(dá)式的值等于0

11、為止,此時(shí)循環(huán)結(jié)束。結(jié)構(gòu)流程圖如圖 5-3 所示。精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 4 頁,共 7 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 4 頁,共 7 頁 - - - - - - - - -學(xué)習(xí)必備歡迎下載說明: 1)循環(huán)體如果包含一個(gè)以上的語句,應(yīng)該用花括弧括起來,以復(fù)合語句形式出現(xiàn);2)do while 語句與 while 語句都是循環(huán)語句,但有區(qū)別,do while 語句先執(zhí)行一次循環(huán)體,然后再回去判斷條件是否成立,比while 語句多執(zhí)

12、行一次。該語句用來實(shí)現(xiàn)“ 直到型 ”循環(huán)結(jié)構(gòu)。例:計(jì)算 1+2+100=?main() int i=1,sum=0; do sum=sum+i; i+; while(i=100); printf(“ the sum is:%d” ,sum); 例:求正整數(shù)5 的階乘(即求 5!) 。main() float fact=1.0; int i=1; do fact=fact*i; i+; while( i=5) printf(“ the 5 ! is :%f”, fact); 說明: do-while 循環(huán),總是先執(zhí)行一次循環(huán)體,然后再求表達(dá)式的值,因此,無論表達(dá)式是否為 “ 真” ,循環(huán)體至少執(zhí)

13、行一次。do-while 循環(huán)與 while 循環(huán)十分相似, 它們的主要區(qū)別是:while 循環(huán)先判斷循環(huán)條件再執(zhí)行循環(huán)體,循環(huán)體可能一次也不執(zhí)行。do-while 循環(huán)先執(zhí)行循環(huán)體,再判斷循環(huán)條件,循環(huán)體至少執(zhí)行一次。其它:復(fù)合語句 ,避免死循環(huán)要求同while 循環(huán)。練習(xí):以下程序段的執(zhí)行結(jié)果是( ) main() int y=4; doy-; while(-y); printf(“ %dn” ,y -); a)-1 b) 1 c) 2 d) 0 以下程序段的執(zhí)行結(jié)果是( ) main() int a=1;b=10; do 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - -

14、 - - - - - 第 5 頁,共 7 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 5 頁,共 7 頁 - - - - - - - - -學(xué)習(xí)必備歡迎下載b-=a; a+; while(b-0); printf(“ %d,%dn” ,a,b); a) 3,11 b) 2,8 c) 1,-1 d) 4,9 以下說法正確的是( ) x=1; do x=x*x; while(!x); a)無限循環(huán)b) 循環(huán)執(zhí)行兩次c) 循環(huán)執(zhí)行一次d) 有語法錯(cuò)誤4、總結(jié)( 10 分鐘)學(xué)過的三種循環(huán)語句?循環(huán)結(jié)構(gòu)的基本組成部分

15、(小結(jié))?循環(huán)變量、條件(狀態(tài))的初始化?循環(huán)變量、條件(狀態(tài))檢查,以確認(rèn)是否進(jìn)行循環(huán)?循環(huán)變量、條件(狀態(tài))的修改,使循環(huán)趨于結(jié)束(循環(huán)體中 ) ?循環(huán)體處理的其它工作。2、三種循環(huán)的比較?循環(huán)變量初始化:while 和 do-while 循環(huán),循環(huán)變量初始化應(yīng)該在while 和 do-while語句之前完成;而for 循環(huán),循環(huán)變量的初始化可以在表達(dá)式1 中完成。?循環(huán)條件: while 和 do-while 循環(huán)只在while 后面指定循環(huán)條件;而for 循環(huán)可以在表達(dá)式 2 中指定。?循環(huán)變量修改使循環(huán)趨向結(jié)束:while 和 do-while 循環(huán)要在循環(huán)體內(nèi)包含使循環(huán)趨于結(jié)束的操

16、作; for 循環(huán)可以在表達(dá)式3 中完成。?for 循環(huán)可以省略循環(huán)體,將部分操作放到表達(dá)式2, 表達(dá)式 3 中,for 語句功能強(qiáng)大。?while 和 for 循環(huán)先測試表達(dá)式,后執(zhí)行循環(huán)體,而do-while 是先執(zhí)行循環(huán)體,再判斷表達(dá)式。(所以while,for 循環(huán)是典型的當(dāng)型循環(huán),而do-while 循環(huán)可以看作是直到型循環(huán))。?三種基本循環(huán)結(jié)構(gòu)一般可以相互替代,不能說哪種更加優(yōu)越。具體使用哪一種結(jié)構(gòu)依賴于程序的可讀性和程序設(shè)計(jì)者個(gè)人程序設(shè)計(jì)的風(fēng)格(偏好)?對(duì)計(jì)數(shù)型的循環(huán)或確切知道循環(huán)次數(shù)的循環(huán),用for 比較合適,對(duì)其它不確定循環(huán)次數(shù)的循環(huán) ,許多程序設(shè)計(jì)者喜好用while/do-

17、while 循環(huán)5、多重循環(huán)(10 分鐘)?一個(gè)循環(huán)結(jié)構(gòu)程序的循環(huán)體包含另一個(gè)循環(huán)。形如:for( ) for( ) 例 5.12】求出 1-100 間的全部素?cái)?shù)。提示:素?cái)?shù)(質(zhì)數(shù))是除了1 和它本身以外,不能夠被其它數(shù)除盡的數(shù),例3,5,7,11 while( ) while() while( ) for( ) 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 6 頁,共 7 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 6 頁,共 7 頁 - - - - - - - - -學(xué)習(xí)必備歡迎下載等;判斷一個(gè)素?cái)?shù):數(shù)m 用 2m-1 除,若都除不盡,則m 是素?cái)?shù)。程序代碼 : main() int m,n=0,i,k; for(m=1;m=100;m=m+2) if(n%10= =0) printf(n);/*每行打印10 個(gè)數(shù)*/ for(i=2;i=m) /* 若是素?cái)?shù)應(yīng)i=m */ ? printf

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論