




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C C語言程序設計語言程序設計北京建筑工程學院北京建筑工程學院Beijing Architecture and Civil Engineering Institute2022-7-2The C Programming Language2教學內容v第一章 C語言概述v第二章 數據類型v第三章 順序結構v第四章 選擇結構v第五章第五章 循環結構循環結構v第六章 數組v第七章 函數調用v第八章 指針v第九章 結構體與共用體v第十章 文件操作v補充章節 位運算v補充章節 預編譯 2022-7-2The C Programming Language3內容提綱v循環的概念循環的引入循環的概念v循環的實現w
2、hile語句、do while語句、for語句基本的輸入和輸出v循環的嵌套循環嵌套break語句和continue語句v循環結構程序舉例2022-7-2The C Programming Language4循環的引入求100個學生的平均成績,需要輸入成百上千個輸入語句。什么是循環?什么是循環?為什么要使用循環?為什么要使用循環?1001nyn2022-7-2The C Programming Language5 循環的概念 v在許多問題中需要用到循環控制。循環結構是結構化程序設計的基本結構之一,它和順序結構、選擇結構共同作為各種復雜程序的基本構造單元。v循環分為兩種:無休止循環和有終止循環構成
3、有效循環的條件:循環體和循環結束條件2022-7-2The C Programming Language6內容提綱v循環的概念循環的引入循環的概念v循環的實現while語句、do while語句、for語句基本的輸入和輸出v循環的嵌套循環嵌套break語句和continue語句v循環結構程序舉例2022-7-2The C Programming Language7循環的實現方法v在語言中,可用以下語句實現循環:用語句和if語句構成循環用語句用語句用語句2022-7-2The C Programming Language8goto語句v格式:語句; . 語句標號;2022-7-2The C Pr
4、ogramming Language92022-7-2The C Programming Language10goto語句v功能:無條件轉移語句v說明:不能不能用整數作標號,只能用標識符只能出現在goto所在函數內,且唯一唯一語句標號只能加在可執行語句前面不提倡使用goto語句2022-7-2The C Programming Language11While語句v一般形式:while (表達式) 語句當表達式為非非0值時,執行while語句中的內嵌內嵌語句執行過程:先先判斷表達式,后后執行語句。特點:適用于事先不知道事先不知道循環次數的操作2022-7-2The C Programming L
5、anguage12While語句示例v例5.1(作過修改)求1+2+3+4+小于某數N的最大值,N由用戶指定。例如:小于10,n最大值為4。(1)循環體如果包含一個以上的語句,應該用花括弧括起來,以復合語句形式出現.(2)在循環體中應有使循環趨向于結束的語句。2022-7-2The C Programming Language13While 語句的特點v特點:表達式,循環體v說明:循環體有可能一次也不執行循環體可為任意類型語句下列情況,退出while循環條件表達式(為零)循環體內遇無限循環: 在循環中應有使循環趨向結束的語句while(1) 循環體;2022-7-2The C Programm
6、ing Language14例5.1 1+2+100(未修改)2022-7-2The C Programming Language15人口增長v例:我國有13億人口,按人口年增長0.8%計算,多少年后我國人口超過26億。v分析:解此問題兩種方法,可根據公式:26=13*(1+0.008)n直接利用標準對數函數求得;也可利用循環求得2022-7-2The C Programming Language16最大公約數與最小公倍數用輾轉相除法和輾轉相減法求兩自然數m,n的最大公約數和最小公倍數。2022-7-2The C Programming Language17輾轉相減法 m=m-n mn n=n
7、-m nm m、n為公約數 m=nWhile( m != n) m n If(m n) 14 6 m = m n 8 6 else 2 6 n = n m 2 4 2 2輾轉相除法m、n為公約數 m=nIf(mn) temp = m; m = n; n = temp;r=m % n;While (r != 0) m=n; n=r; r= m % n;printf( 最大公約數最大公約數=, n); M n r14 6 26 2 02022-7-2The C Programming Language18do-while循環v特點:循環體,循環條件。v一般形式: do 循環體語句while (表達
8、式);v執行過程:2022-7-2The C Programming Language19do-while示例1001nn2022-7-2The C Programming Language20While與do-while的比較2022-7-2The C Programming Language21圓周率v例5.4 用/41-1/3+1/5-1/7+公式求的近似值,直到某一項的絕對值小于為止。2022-7-2The C Programming Language22For語句循環vC語言中的for語句使用最為靈活,可以用于循環次數的情況,可以用于循環次數不確定而只給出循環結束條件的情況,它可以w
9、hile語句。v一般形式: for(表達式1;表達式2;表達式3) 語句2022-7-2The C Programming Language23v執行過程2022-7-2The C Programming Language24vfor語句最簡單的形式:for(循環變量賦初值;循環條件;循環變量增值) v例如:for(i=1;i=100;i+) sum=sum+i;v相當于:i=1;while(i=100) sum=sum+i;i+; 用for語句簡單、方便。2022-7-2The C Programming Language25For語句說明for語句中語句中expr1, expr2 ,exp
10、r3 類型任意,都可類型任意,都可省略,但省略,但;不可??;不可省無限循環無限循環: for( )2022-7-2The C Programming Language26表達式1可以是設置循環變量初值,也可以是和循環變量無關的其它其它表達式表達式一般是關系表達式或邏輯表達式,也可以是數值表達式或者字符表達式2022-7-2The C Programming Language27思考題v思考: v1. 求12+22+32+42+1002v2. 求13+33+53+n3v3. 求1-3+5-7+(-1)n+1(2n-1)4. 求求1n21) 1(5131111n-+-+-+11115. 求求) 1
11、n(n+34+23+122022-7-2The C Programming Language281n21513111-2. 求求 3. 求求: 1k2k21k2k2765654343212+-思考題v思考: v1. 求 13 5 7(共N項)。2022-7-2The C Programming Language29思考題v思考: 輸出1、3、5、7、9、N。輸出1到500之間所有能被3整除的數,一行顯示10個數。輸出1到指定N之間所有能被3和7同時整除的數。2022-7-2The C Programming Language30示例v例5.5 打印斐波那契(Fibonacci)數列的前40項v
12、斐波那契數列: 有一對兔子,從出生后第3個月起每個月都生一對兔子,兔子長到3個月后又生一對兔子。假設所有兔子都不死,問每個月兔子總數為多少? 見 0,1,1,2,3,5,8,13,v分析:即從第三項起每一項是其前兩項之和2022-7-2The C Programming Language31字符統計v從鍵盤任意輸入30個字符,每次一個,分別統計字符“A”、“B”、“C”的個數(不區分大小寫)。如果中途連續輸入三個字符Q,則結束輸入。v分析:初值:1;終值:30;步長為1中途退出 break;2022-7-2The C Programming Language32基本輸入v第一類:輸入不說明有多
13、少個Input Block,以EOF為結束標志。v本類的解決方案是:while(scanf(%d %d,&a, &b) != EOF) . 2022-7-2The C Programming Language33說明vScanf函數返回值就是正確讀出的變量個數,如:scanf( “%d %d”, &a, &b ); 如果只有一個整數輸入,返回值是1,如果有兩個整數輸入,返回值是2,如果一個都沒有,則返回值是-1。vEOF是一個預定義的常量,等于-1。2022-7-2The C Programming Language34基本輸入v第二類:輸入一開始就會說有N個I
14、nput Block,下面接著是N個Input Block。v本類的解決方案是:scanf(%d,&n); for( i=0 ; in ; i+ ) / while(n-) . 2022-7-2The C Programming Language35基本輸入v第三類:輸入不說明有多少個Input Block,但以某個特殊輸入為結束標志。v本類的解決方案是:while(scanf(%d,&n) & n!=0 ) . 2022-7-2The C Programming Language36基本輸入v第四類:以上幾種情況的綜合 1093 1094 10921和2的綜合2和3的
15、綜合2和2的綜合2022-7-2The C Programming Language37基本輸入v第五類:暫不講2022-7-2The C Programming Language38基本輸出v第一類:同輸入第一類一個Input Block對應一個Output Block,Output Block之間沒有空行。v本類的解決方案是: . printf(%dn,ans); 2022-7-2The C Programming Language39基本輸出v第二類:一個Input Block對應一個Output Block,每個Output Block都有空行。v本類輸出的解決方案是:while(sc
16、anf(%d %d,&a, &b) != EOF)printf(%dnn,a+b);2022-7-2The C Programming Language40基本輸出v第三類:一個Input Block對應一個Output Block,Output Block有空行,最后一行沒有空行。v本類輸出解決方案:for (k=0;kcount;k+) while () printf( %dn,result); if (k!=count-1) printf(n); 2022-7-2The C Programming Language41內容提綱v循環的概念循環的引入循環的概念v循環的實現w
17、hile語句、do while語句、for語句基本的輸入和輸出v循環的嵌套循環嵌套break語句和continue語句v循環結構程序舉例2022-7-2The C Programming Language42循環的嵌套v說明:三種循環可互相嵌套,層數不限外層循環可包含兩個以上內循環,但不能相互交叉嵌套循環的執行流程2022-7-2The C Programming Language43循環的嵌套2022-7-2The C Programming Language44循環嵌套示例v乘法九九表2022-7-2The C Programming Language45循環嵌套示例v求1+(1+2)+(
18、1+2+3)+(1+2+3+n),n由用戶輸入。v分析:外循環循環n次,內循環循環i次內循環設置一個累加變量,注意每次內循環完成需要置空外循環設置一個累加變量,記錄總和。2022-7-2The C Programming Language46輔助控制語句v功能:在循環語句和switch語句中,終止并跳出循環體或開關體v說明:break只能終止并跳出最近一層的結構break不能用于循環語句和switch語句之外的任何其它語句之中2022-7-2The C Programming Language47輔助控制語句v功能:結束本次循環,跳過循環體中尚未執行的語句,進行下一次是否執行循環體的判斷僅用于
19、循環語句中2022-7-2The C Programming Language48 幾種循環的比較v四種循環可以互相替代,不提倡使用gotovwhile和do-while,只有當while條件第一次就不成立的時候,結果不相同,其它情況一般都相同;在循環體內都應包含使循環趨向結束趨向結束的語句。vfor循環在第一個表達式中完成賦初值的工作;條件判斷在第二個表達式;第三個表達式中包括使循環趨向結束趨向結束的語句。v循環中可以用break跳出循環,用continue結束本次循環。goto語句不可以使用。2022-7-2The C Programming Language49內容提綱v循環的概念循環的
20、引入循環的概念v循環的實現while語句、do while語句、for語句基本的輸入和輸出v循環的嵌套循環嵌套break語句和continue語句v循環結構程序舉例2022-7-2The C Programming Language50遞推法v遞推法又稱為迭代法。是循環經常考的一種題型。v其基本思想是將一個復雜的計算過程轉化成為簡單過程的多次重復。每次重復都從舊值的基礎上推出新值,并有新值代替舊值。2022-7-2The C Programming Language51蟠桃會v孫悟空在大鬧蟠桃園的時候,第一天吃掉了所有桃子總數一半多一個,第二天又將剩下的桃子吃掉一半多一個,以后每天吃掉前一天剩
21、下的一半多一個,到第n天準備吃的時候只剩下一個桃子。這下可把神仙們心疼壞了,請幫忙計算一下,第一天開始吃的時候桃子一共有多少個桃子?v分析:這是一個“遞推”問題,先從最后一天推出倒數第二天的桃子,再從倒數第二天的桃子推出倒數第三天的桃子。設第n天的桃子為xn,那么它是前一天的桃子數的xn-1 的一半減1,即xn=0.5xn-1-1或xn-1 =( xn +1)22022-7-2The C Programming Language52窮舉法v窮舉法又稱枚舉法。即將可能出現的各種情況一一測試,判斷是否滿足條件,一般采用循環來實現。2022-7-2The C Programming Language
22、53百錢買百雞v公雞5個錢一只,母雞三個錢一只、小雞一個錢三只,要用100個錢買100只雞,問公雞、母雞、和小雞各買幾只?(百元買百雞)v分析:設公雞、母雞、小雞分別買x、y、z只,則數學模型為:x+y+z=1005x+3y+z/3=1002022-7-2The C Programming Language54猜字問題v雨水淋濕了算術書的一道題,8個數字只能看清3個,第一個數字雖然看不清,但可看出不是1。編程求其余數字是什么? *(3)2 = 89v分析:設分別用A、B、C、D、E五個變量表示自左到右五個未知的數字。其中A的取值范圍為2-9,其余取值范圍為0-9。條件表達式即為給定算式2022
23、-7-2The C Programming Language55棋迷俱樂部v張三、李四、王五三個棋迷,定期去文化宮下棋。張三每五天來一次,李四每六天來一次,王五每九天來一次。問每過多少天他們才能一起在文化宮下棋?v分析:設結果為x ,其取值范圍為0。因上限為無限大,計數值不能預先確定,故用while循環結構更合適。 2022-7-2The C Programming Language56素數判斷v分析:素數是一個大于2,且不能被1和本身以外的整數整除的整數。 v方法:一般來說,將數N被2N之間的整數除,除盡不是素數;除不盡是素數;實際上可以將數N被2sqr(N)間全部整數除。2022-7-2The C Programming Language
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CSMT-YB 004-2023燃氣渦輪流量計維護和維修技術規范
- T/CSIQ 3002-2015藝術品鑒證質量溯源驗證規程陶瓷類
- T/CQAP 3001-2020濕熱滅菌無菌產品參數放行要求
- T/CNFMA B003-2018林火防撲機械以汽油機為動力的便攜式化學泡沫滅火機
- T/CNFAGS 1-2021煤制合成氨、尿素行業清潔生產水平分級標準(大氣污染物)
- T/CNAEC 0203-2023液化天然氣接收站工程項目可行性研究報告編制指南
- T/CMA-RQ 119-2023燃氣表用電機控制閥
- T/CIQA 46-2022紅花種植與采集技術規范
- T/CIE 150-2022現場可編程門陣列(FPGA)芯片時序可靠性測試規范
- T/CIE 132-2022磁控濺射設備薄膜精度測試方法
- 燈謎文化智慧樹知到期末考試答案章節答案2024年西安交通大學
- 做管裝愛裝的好戰士(高級課件)
- 新生兒早期基本保健(EENC)指南要點解讀課件
- 建筑工程中級職稱論文范文精選6篇
- 35kV電纜載流量計算公式
- 【醫院管理】課題研究型醫院品管圈概念與實操課件
- 國父孫中山課件
- 2022版輸變電工程標準工藝(土建分冊)培訓課件- 第5章
- 安全主題班會 《防洪防汛知識講解》教學課件
- GB∕T 1727-2021 漆膜一般制備法
- 初中生休學申請書
評論
0/150
提交評論