一教學(xué)對(duì)象計(jì)算機(jī)科學(xué)與技術(shù)系新生第二學(xué)期二教ppt課件_第1頁
一教學(xué)對(duì)象計(jì)算機(jī)科學(xué)與技術(shù)系新生第二學(xué)期二教ppt課件_第2頁
一教學(xué)對(duì)象計(jì)算機(jī)科學(xué)與技術(shù)系新生第二學(xué)期二教ppt課件_第3頁
一教學(xué)對(duì)象計(jì)算機(jī)科學(xué)與技術(shù)系新生第二學(xué)期二教ppt課件_第4頁
一教學(xué)對(duì)象計(jì)算機(jī)科學(xué)與技術(shù)系新生第二學(xué)期二教ppt課件_第5頁
已閱讀5頁,還剩180頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C語言程序設(shè)計(jì)語言程序設(shè)計(jì)一、教學(xué)對(duì)象 計(jì)算機(jī)科學(xué)與技術(shù)系新生(第二學(xué)期 二、教學(xué)目的 程序設(shè)計(jì)的重要性 程序設(shè)計(jì)的根本概念與根本方法 編程解題的思緒與典型方法 數(shù)學(xué)模型簡(jiǎn)介 算法及算法步驟 程序構(gòu)造與相應(yīng)語句 編碼與上機(jī)調(diào)試C語言程序設(shè)計(jì)語言程序設(shè)計(jì) 三、教學(xué)重點(diǎn) 1. 程序設(shè)計(jì)的根本概念,根本方法; 2.在 C言語的環(huán)境下,學(xué)會(huì)如何針對(duì)問題進(jìn)展分析,得出數(shù)學(xué)模型,理出算法并編程實(shí)現(xiàn); 3.有條有理有根有據(jù)的編程實(shí)際; 4.養(yǎng)成良好的編程風(fēng)格與習(xí)慣; 5.重在思想方法的學(xué)習(xí),鼓勵(lì)創(chuàng)新。C語言程序設(shè)計(jì)語言程序設(shè)計(jì)四、指點(diǎn)思想四、指點(diǎn)思想1. 1. 立足改革,以培育高素質(zhì)有發(fā)明精神的人才為這門課

2、立足改革,以培育高素質(zhì)有發(fā)明精神的人才為這門課的教學(xué)目的。的教學(xué)目的。2. 2. 以學(xué)生為中心,采用與現(xiàn)實(shí)生活貼切和具有興趣性的以學(xué)生為中心,采用與現(xiàn)實(shí)生活貼切和具有興趣性的實(shí)例進(jìn)展講解,有利于調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性,引導(dǎo)學(xué)實(shí)例進(jìn)展講解,有利于調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性,引導(dǎo)學(xué)生自動(dòng)學(xué)習(xí)。生自動(dòng)學(xué)習(xí)。 3. 3. 強(qiáng)化實(shí)際,這門課主張程序設(shè)計(jì)是高強(qiáng)度的腦力勞動(dòng),強(qiáng)化實(shí)際,這門課主張程序設(shè)計(jì)是高強(qiáng)度的腦力勞動(dòng),不是聽會(huì)的、也不是看會(huì)的,而是練會(huì)的。引導(dǎo)學(xué)生在不是聽會(huì)的、也不是看會(huì)的,而是練會(huì)的。引導(dǎo)學(xué)生在解題編程的實(shí)際中探求其中帶規(guī)律性的認(rèn)識(shí)。將感性認(rèn)解題編程的實(shí)際中探求其中帶規(guī)律性的認(rèn)識(shí)。將感性認(rèn)識(shí)升

3、華到理性高度。識(shí)升華到理性高度。C語言程序設(shè)計(jì)語言程序設(shè)計(jì)五、學(xué)習(xí)方法五、學(xué)習(xí)方法 1.1.動(dòng)手動(dòng)腦,實(shí)際指點(diǎn)下的實(shí)際動(dòng)手動(dòng)腦,實(shí)際指點(diǎn)下的實(shí)際 有條有理的實(shí)際。有條有理的實(shí)際。 2.2.在編寫大量程序之后,才干感到運(yùn)用自若。在編寫大量程序之后,才干感到運(yùn)用自若。C語言程序設(shè)計(jì)語言程序設(shè)計(jì)六、教學(xué)內(nèi)容安排六、教學(xué)內(nèi)容安排 1. 1. 簡(jiǎn)單簡(jiǎn)單C C程序設(shè)計(jì);程序設(shè)計(jì); 2. 2. 分支構(gòu)造程序設(shè)計(jì);分支構(gòu)造程序設(shè)計(jì); 3. 3. 循環(huán)構(gòu)造程序設(shè)計(jì);循環(huán)構(gòu)造程序設(shè)計(jì); 4. 4. 數(shù)組;數(shù)組; 5. 5. 函數(shù);函數(shù); 6. 6. 遞歸及其實(shí)現(xiàn)方法遞歸及其實(shí)現(xiàn)方法 7. 7. 指針;指針; 8.

4、 8. 構(gòu)造體與鏈表。構(gòu)造體與鏈表。C語言程序設(shè)計(jì)語言程序設(shè)計(jì)1.1 1.1 認(rèn)識(shí)認(rèn)識(shí)C C言語程序言語程序 1.1.程序?qū)嵗绦驅(qū)嵗?include /#include /預(yù)編譯命令預(yù)編譯命令, ,將規(guī)范輸入輸出函數(shù)將規(guī)范輸入輸出函數(shù) / /作為頭文件包擴(kuò)到用戶源文件中作為頭文件包擴(kuò)到用戶源文件中 #include /#include /預(yù)編譯命令預(yù)編譯命令, ,將系統(tǒng)提供的數(shù)學(xué)函數(shù)將系統(tǒng)提供的數(shù)學(xué)函數(shù) / /作為頭文件包擴(kuò)到用戶源文件中作為頭文件包擴(kuò)到用戶源文件中 main( )main( ) / /主函數(shù),名為主函數(shù),名為mainmain, / /函數(shù)體函數(shù)體. .開場(chǎng)開場(chǎng) float

5、a,b,c;float a,b,c; / /聲明部分聲明部分. .定義變量類型定義變量類型 b=30.0;b=30.0; / /執(zhí)行部分執(zhí)行部分. .賦值語句賦值語句 a=sin(ba=sin(b* *3.14159/180); /3.14159/180); /執(zhí)行部分執(zhí)行部分. .賦值語句賦值語句 printf(printf(“%fn%fn,a);,a);/執(zhí)行部分執(zhí)行部分. .輸出語句輸出語句 / /函數(shù)體函數(shù)體. .終了終了第一講第一講 簡(jiǎn)單的簡(jiǎn)單的C C程序設(shè)計(jì)程序設(shè)計(jì)C語言程序設(shè)計(jì)語言程序設(shè)計(jì)1.2 實(shí)例總結(jié)實(shí)例總結(jié) 1.C程序構(gòu)造程序構(gòu)造預(yù)編譯命令預(yù)編譯命令主函數(shù)主函數(shù) main(

6、 ) 函數(shù)體開場(chǎng)函數(shù)體開場(chǎng) 聲明部分聲明部分 執(zhí)行部分執(zhí)行部分 函數(shù)體終了函數(shù)體終了第一講第一講 簡(jiǎn)單的簡(jiǎn)單的C C程序設(shè)計(jì)程序設(shè)計(jì)C語言程序設(shè)計(jì)語言程序設(shè)計(jì)2.2.變量的類型變量的類型 整型:整型:int int 長(zhǎng)整型:長(zhǎng)整型:longlong 浮點(diǎn)型:浮點(diǎn)型:floatfloat 雙精度型:雙精度型:doubledouble 字符型:字符型:charchar 用戶自定義類型用戶自定義類型第一講第一講 簡(jiǎn)單的簡(jiǎn)單的C C程序設(shè)計(jì)程序設(shè)計(jì)C語言程序設(shè)計(jì)語言程序設(shè)計(jì) 3.3.聲明的作用聲明的作用 為變量分配內(nèi)存單元,變量名作為內(nèi)存單元的符為變量分配內(nèi)存單元,變量名作為內(nèi)存單元的符號(hào)地址,這件事

7、是在程序編譯鏈接時(shí)完成的。號(hào)地址,這件事是在程序編譯鏈接時(shí)完成的。 4. 4. 變量變量 其值可以改動(dòng)的量,是內(nèi)存單元的符號(hào)地址。其值可以改動(dòng)的量,是內(nèi)存單元的符號(hào)地址。 經(jīng)過符號(hào)經(jīng)過符號(hào)b b可以找到相應(yīng)的存儲(chǔ)單元地址,假設(shè)為可以找到相應(yīng)的存儲(chǔ)單元地址,假設(shè)為10001000。 語句語句 b=30.0b=30.0; 是將值是將值30.030.0存放在地址為存放在地址為10001000的存儲(chǔ)單元。的存儲(chǔ)單元。第一講第一講 簡(jiǎn)單的簡(jiǎn)單的C C程序設(shè)計(jì)程序設(shè)計(jì)C語言程序設(shè)計(jì)語言程序設(shè)計(jì)5.5.對(duì)變量的賦值對(duì)變量的賦值 賦值符號(hào)賦值符號(hào)“= = b = 30.0; b = 30.0;/ / 讀作將表

8、達(dá)式的值讀作將表達(dá)式的值30.030.0賦給變賦給變量量b b a=sin(b a=sin(b* *3.14159/180);3.14159/180); / / 讀作將表達(dá)式正弦函數(shù)的值賦給變量讀作將表達(dá)式正弦函數(shù)的值賦給變量a a 第一講第一講 簡(jiǎn)單的簡(jiǎn)單的C C程序設(shè)計(jì)程序設(shè)計(jì)C語言程序設(shè)計(jì)語言程序設(shè)計(jì)6.6.變量賦值特點(diǎn)變量賦值特點(diǎn) 1 1先定義,后運(yùn)用先定義,后運(yùn)用 int d,e,f; int d,e,f;定義三個(gè)變量為整數(shù)類型定義三個(gè)變量為整數(shù)類型 如未定義,那么在編譯時(shí)被查出,以為非法如未定義,那么在編譯時(shí)被查出,以為非法 2 2變量未被賦值前,值為未知變量未被賦值前,值為未知

9、3 3對(duì)變量賦值過程是對(duì)變量賦值過程是“覆蓋過程,用新值去交換舊覆蓋過程,用新值去交換舊4 4讀出變量的值,該變量堅(jiān)持不變讀出變量的值,該變量堅(jiān)持不變 5 5參與表達(dá)式運(yùn)算的一切變量都堅(jiān)持原來的值不變參與表達(dá)式運(yùn)算的一切變量都堅(jiān)持原來的值不變第一講第一講 簡(jiǎn)單的簡(jiǎn)單的C C程序設(shè)計(jì)程序設(shè)計(jì)C語言程序設(shè)計(jì)語言程序設(shè)計(jì)變量賦值過程變量賦值過程 d e fd e f未賦值前未賦值前執(zhí)行執(zhí)行d=7d=7執(zhí)行執(zhí)行 e=d e=d 執(zhí)行執(zhí)行 f=d+ef=d+e執(zhí)行執(zhí)行 d=d+1 000d=d+1 000-12349723431607234316077077148714第一講第一講 簡(jiǎn)單的簡(jiǎn)單的C C程

10、序設(shè)計(jì)程序設(shè)計(jì)C語言程序設(shè)計(jì)語言程序設(shè)計(jì)7. 7. 輸出語句輸出語句 printf printf函數(shù)格式輸出函數(shù)函數(shù)格式輸出函數(shù) 普通方式為普通方式為 printf( printf(參數(shù)參數(shù)1 1,參數(shù),參數(shù)2 2,參數(shù),參數(shù)3 3,參數(shù),參數(shù)n n 其中參數(shù)其中參數(shù)11格式控制格式控制 參數(shù)參數(shù)2 2,參數(shù),參數(shù)3 3,參數(shù),參數(shù)nn輸出表列輸出表列 舉例:舉例: float a; float a; int b; int b; a = 85.56; a = 85.56; b = 100; b = 100; printf(%f %d, a, b); printf(%f %d, a, b);第一

11、講第一講 簡(jiǎn)單的簡(jiǎn)單的C C程序設(shè)計(jì)程序設(shè)計(jì)C語言程序設(shè)計(jì)語言程序設(shè)計(jì)格式控制是用雙引號(hào)括起來的字符串,稱格式控制是用雙引號(hào)括起來的字符串,稱“轉(zhuǎn)換控制字符轉(zhuǎn)換控制字符串串%f %f 第一個(gè)輸出表列的格式闡明,以小數(shù)方式輸出單、第一個(gè)輸出表列的格式闡明,以小數(shù)方式輸出單、雙精度實(shí)數(shù),隱含輸出雙精度實(shí)數(shù),隱含輸出6 6位小數(shù)位小數(shù) %d %d 第二個(gè)輸出表列的格式闡明,以帶有符號(hào)的十進(jìn)第二個(gè)輸出表列的格式闡明,以帶有符號(hào)的十進(jìn)制方式輸出整數(shù)正數(shù)不輸出符號(hào)制方式輸出整數(shù)正數(shù)不輸出符號(hào) 顯然,顯然,%f%f是控制實(shí)數(shù)是控制實(shí)數(shù)a a的;的;%d%d是控制整數(shù)是控制整數(shù)b b的的第一講第一講 簡(jiǎn)單的簡(jiǎn)

12、單的C C程序設(shè)計(jì)程序設(shè)計(jì)C語言程序設(shè)計(jì)語言程序設(shè)計(jì)為了醒目,格式控制項(xiàng)中除格式闡明之外可以有為了醒目,格式控制項(xiàng)中除格式闡明之外可以有普通字符普通字符例例: printf(: printf(“a=%f b=%d, a, b); a=%f b=%d, a, b); 輸出結(jié)果為:輸出結(jié)果為: a=85.560000 b=100 a=85.560000 b=100換行符號(hào)換行符號(hào) 例例: printf(: printf(“a=%fnb=%da=%fnb=%d,a,b);,a,b);輸出結(jié)果為:輸出結(jié)果為: a=85.560000 a=85.560000 b=100 b=100域?qū)捄途扔驅(qū)捄途壤?/p>

13、:例:printfprintf%5.3f%5.3f,a a;第一講第一講 簡(jiǎn)單的簡(jiǎn)單的C C程序設(shè)計(jì)程序設(shè)計(jì)C語言程序設(shè)計(jì)語言程序設(shè)計(jì)8. 數(shù)學(xué)函數(shù)數(shù)學(xué)函數(shù) sin(x)x為弧度,為弧度,double x,double sin(x) cos(x) cos(x)exp(x) exlog(x) logexlog10(x) log10 xfabs(x) xfmod(x,y) 整除整除x/y的余數(shù)的余數(shù)floor(x) 求不大于求不大于x的最大整數(shù)的最大整數(shù)pow(x, y) xysqrt(x) x1/2第一講第一講 簡(jiǎn)單的簡(jiǎn)單的C C程序設(shè)計(jì)程序設(shè)計(jì)C語言程序設(shè)計(jì)語言程序設(shè)計(jì)9. 算術(shù)運(yùn)算符算術(shù)運(yùn)算

14、符 加加 減減 *乘乘 / 除除 % 模取余數(shù)模取余數(shù)第一講第一講 簡(jiǎn)單的簡(jiǎn)單的C C程序設(shè)計(jì)程序設(shè)計(jì)C語言程序設(shè)計(jì)語言程序設(shè)計(jì)1.3 1.3 作業(yè)作業(yè)第一講第一講 簡(jiǎn)單的簡(jiǎn)單的C C程序設(shè)計(jì)程序設(shè)計(jì)C語言程序設(shè)計(jì)語言程序設(shè)計(jì) 我們?cè)谌粘I钪薪?jīng)常需求處置具有兩個(gè)分支的問題,例我們?cè)谌粘I钪薪?jīng)常需求處置具有兩個(gè)分支的問題,例如,假設(shè)明天下雨,那么在教室內(nèi)組織活動(dòng),否那么去野游。如,假設(shè)明天下雨,那么在教室內(nèi)組織活動(dòng),否那么去野游。 在在C C言語中,這類問題需求運(yùn)用言語中,這類問題需求運(yùn)用ifif語句處理,而判別操語句處理,而判別操作通常運(yùn)用關(guān)系運(yùn)算符。作通常運(yùn)用關(guān)系運(yùn)算符。關(guān)系運(yùn)算符和關(guān)系

15、表達(dá)式關(guān)系運(yùn)算符和關(guān)系表達(dá)式 大于大于 =大于等于大于等于 = = 小于等于小于等于 =等于等于 !=!=不等于不等于第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)2.1 2.1 掌握掌握ifif語句的運(yùn)用方法語句的運(yùn)用方法【實(shí)例】編寫程序,判別輸入的整數(shù)能否為【實(shí)例】編寫程序,判別輸入的整數(shù)能否為6 6,假設(shè)是,顯示,假設(shè)是,顯示“RightRight!和!和“Great!Great!,否那么顯示,否那么顯示“WrongWrong!和!和“SorrySorry!。!。 1 1編程思緒:編程思緒: 要顯示要顯示“RightRight!和!和“GreatGreat!,應(yīng)執(zhí)行兩條語句!,

16、應(yīng)執(zhí)行兩條語句“printf(printf(RightRight!nn“););和和“printf(printf(GreatGreat!nn“););,要顯示,要顯示“WrongWrong!和!和“SorrySorry!,執(zhí)行兩條語句!,執(zhí)行兩條語句“printf(printf(WrongWrong! n n“););和和“printf(printf(SorrySorry!nn“););。此題需求根據(jù)所輸入的值假設(shè)賦給。此題需求根據(jù)所輸入的值假設(shè)賦給a a能否為能否為6 6來選擇來選擇執(zhí)行相應(yīng)的兩條語句。執(zhí)行相應(yīng)的兩條語句。 在在C C言語中判別言語中判別a a中的值能否為中的值能否為6 6,

17、運(yùn)用,運(yùn)用“if(a=6)if(a=6)方式。方式。 第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)本實(shí)例的流程圖如下圖 開場(chǎng)輸入a值a=6顯示“Right!顯示“Great!顯示“Wrong!顯示“Sorry!終了假真第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)本實(shí)例的N-S流程圖如下圖輸入a的值a=6顯示“Right! 顯示“Great! 顯示“Wrong! 顯示“Sorry! 第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)2 2程序代碼:程序代碼:#include #include main()main() int a=0; int a=0; printf

18、(Input a:); scanf(%d,&a); printf(Input a:); scanf(%d,&a); printf(a=%dn,a); printf(a=%dn,a); if(a=6) if(a=6)/ /* * if if語句開場(chǎng)語句開場(chǎng) * */ / printf(Rightprintf(Right!n);n); printf(Great printf(Great!n);n); else else printf(Wrongprintf(Wrong!n);n); printf(Sorry printf(Sorry!n); /n); /* * if if語句終了語

19、句終了 * */ / 第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)3 3運(yùn)轉(zhuǎn)結(jié)果:運(yùn)轉(zhuǎn)結(jié)果: 第第1 1次運(yùn)轉(zhuǎn)結(jié)果:次運(yùn)轉(zhuǎn)結(jié)果: Input a:6Input a:6 a=6 a=6 Right Right! GreatGreat! 第第2 2次運(yùn)轉(zhuǎn)結(jié)果:次運(yùn)轉(zhuǎn)結(jié)果: Input a:5Input a:5 a=5 a=5 Wrong Wrong! SorrySorry!第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)4 4歸納分析:歸納分析: 1 1程序中的程序中的“a=6a=6是關(guān)系表達(dá)式。是關(guān)系表達(dá)式。用關(guān)系運(yùn)算符把兩個(gè)用關(guān)系運(yùn)算符把兩個(gè)C C言語表達(dá)式銜接起來的表達(dá)式

20、稱為關(guān)系言語表達(dá)式銜接起來的表達(dá)式稱為關(guān)系表達(dá)式。關(guān)系運(yùn)算的判別結(jié)果只需表達(dá)式。關(guān)系運(yùn)算的判別結(jié)果只需“真或真或“假兩種能假兩種能夠,關(guān)系成立時(shí)為夠,關(guān)系成立時(shí)為“真,不成立時(shí)為真,不成立時(shí)為“假。假。關(guān)系表達(dá)式的值只能是關(guān)系表達(dá)式的值只能是1 1或或0 0,當(dāng)關(guān)系運(yùn)算的判別結(jié)果為,當(dāng)關(guān)系運(yùn)算的判別結(jié)果為“真真時(shí),關(guān)系表達(dá)式的值為時(shí),關(guān)系表達(dá)式的值為 1 1,否那么,關(guān)系表達(dá)式的值為,否那么,關(guān)系表達(dá)式的值為0 0。例如,當(dāng)例如,當(dāng)a a的值為的值為6 6時(shí),關(guān)系表達(dá)式時(shí),關(guān)系表達(dá)式“a=6a=6的值為的值為1 1,當(dāng),當(dāng)a a的值為的值為5 5時(shí),關(guān)系表達(dá)式時(shí),關(guān)系表達(dá)式“a=6a=6的值為

21、的值為0 0。第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)2 2程序中的程序中的“if(a=6)if(a=6)是是ifif語句的開場(chǎng)部分。語句的開場(chǎng)部分。 本例題需求根據(jù)本例題需求根據(jù)“a=6a=6能否為能否為“真來選擇執(zhí)行不同的真來選擇執(zhí)行不同的兩個(gè)輸出語句。處置兩個(gè)分支的問題時(shí)常運(yùn)用兩個(gè)輸出語句。處置兩個(gè)分支的問題時(shí)常運(yùn)用ifif語句。語句。ifif語句語句根據(jù)其后面括號(hào)中表達(dá)式的結(jié)果,選擇執(zhí)行某個(gè)分支程序段。根據(jù)其后面括號(hào)中表達(dá)式的結(jié)果,選擇執(zhí)行某個(gè)分支程序段。 if if語句的普通方式如下:語句的普通方式如下: if( if(表達(dá)式表達(dá)式) ) 語句組語句組1 1 else

22、 else 語句組語句組2 2 “ifif和和“elseelse是關(guān)鍵字。當(dāng)表達(dá)式結(jié)果為是關(guān)鍵字。當(dāng)表達(dá)式結(jié)果為“真即不等真即不等于于0 0時(shí),執(zhí)行語句組時(shí),執(zhí)行語句組1 1,表達(dá)式結(jié)果為,表達(dá)式結(jié)果為“假即等于假即等于0 0時(shí),時(shí),執(zhí)行語句組執(zhí)行語句組2 2。在語句組。在語句組1 1和語句組和語句組2 2中只能選擇執(zhí)行一組,而中只能選擇執(zhí)行一組,而后執(zhí)行整個(gè)后執(zhí)行整個(gè)ifif語句后面的語句。語句后面的語句。 第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)3 C言語中允許程序中的if語句不帶else部分。省略else的if語句普通方式如下: if(表達(dá)式) 語句組 此if語句的執(zhí)行過

23、程: 當(dāng)表達(dá)式結(jié)果為“真時(shí),執(zhí)行語句組,表達(dá)式結(jié)果為“假時(shí),不處置。 第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)2.2學(xué)會(huì)運(yùn)用邏輯運(yùn)算符 處置問題時(shí)經(jīng)常需求同時(shí)判別多個(gè)條件。例如,在某學(xué)生數(shù)學(xué)和英語成果中判別能否至少有一門課程是不及格。這時(shí)運(yùn)用邏輯運(yùn)算符。邏輯運(yùn)算符共有三種: & 邏輯與 | 邏輯或 ! 邏輯非這3個(gè)運(yùn)算符按高到低的優(yōu)先級(jí)順序是“!、“&、“| 普通而言,單目運(yùn)算符優(yōu)先級(jí)較高,賦值運(yùn)算符優(yōu)先級(jí)低。 算術(shù)運(yùn)算符優(yōu)先級(jí)較高,關(guān)系和邏輯運(yùn)算符優(yōu)先級(jí)較低。 第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)【實(shí)例】編寫程序,判別某人的體重能否在50公

24、斤至55公斤之間,假設(shè)在此范圍之內(nèi),顯示“Ok,否那么顯示“No。1編程思緒: 先將體重存放在變量w中,要使w的值在50至55范圍內(nèi),應(yīng)同時(shí)滿足“w=50和“w=50 & w=50和“w=50 & w=50 & w=55顯示“Ok顯示“No第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)2 2程序代碼:程序代碼: #include #include main()main() float w=0.0; float w=0.0; printf(Input w:); printf(Input w:); scanf(%f,&w); scanf(%f,&w

25、); printf(w=%.1fn,w); printf(w=%.1fn,w); if(w=50&w=50&w=55) printf(Okn); printf(Okn); else else printf(Non); printf(Non); 第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)3.運(yùn)轉(zhuǎn)結(jié)果:第1次運(yùn)轉(zhuǎn)結(jié)果:Input w:53.5w=53.5Ok第2次運(yùn)轉(zhuǎn)結(jié)果:Input w:60.7w=60.7No第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)4 4歸納分析:歸納分析: 程序中的程序中的“w=50 & w=50 & w0且w0

26、& w0 & w=50 w=50 w=55) / /* * 內(nèi)嵌內(nèi)嵌ifif語句開場(chǎng)語句開場(chǎng) * */ /printf(printf(“Okn);Okn);elseelseprintf(Non);/printf(Non);/* * 內(nèi)嵌內(nèi)嵌ifif語句終了語句終了 * */ / else elseprintf(Data over!n);/printf(Data over!n);/* * 外嵌外嵌ifif語句終了語句終了 * */ / 第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)3 3運(yùn)轉(zhuǎn)結(jié)果:運(yùn)轉(zhuǎn)結(jié)果:第第1 1次運(yùn)轉(zhuǎn)結(jié)果:次運(yùn)轉(zhuǎn)結(jié)果:Input w:53.5Inp

27、ut w:53.5 w=53.5w=53.5OkOk第第2 2次運(yùn)轉(zhuǎn)結(jié)果:次運(yùn)轉(zhuǎn)結(jié)果:Input w:60.7Input w:60.7 w=60.7w=60.7NoNo第第3 3次運(yùn)轉(zhuǎn)結(jié)果:次運(yùn)轉(zhuǎn)結(jié)果:Input w:201.7Input w:201.7 w=201.7w=201.7Data over!Data over!第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)4歸納分析:1本程序在一個(gè)if語句中包含了另一個(gè)if語句。在if語句的語句組1或語句組2中又包含另一個(gè)分支構(gòu)造的if語句稱為嵌套的if語句。2本程序中出現(xiàn)了兩次else。 C語法規(guī)定,在if語句中,假設(shè)多次出現(xiàn)else,

28、那么每一個(gè)else總是與前面最近的if配對(duì),所以本例題中第一個(gè)else與內(nèi)嵌的if配對(duì),第二個(gè)else與最上面的if配對(duì)。程序中由于采用了縮進(jìn)格式,if與else的配對(duì)關(guān)系一目了然。 第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)2.42.4學(xué)會(huì)運(yùn)用學(xué)會(huì)運(yùn)用if-else ifif-else if方式的嵌套方式的嵌套ifif語句語句 【實(shí)例】編寫程序,求下面分段函數(shù)的值,要求【實(shí)例】編寫程序,求下面分段函數(shù)的值,要求x x的值從鍵盤輸?shù)闹祻逆I盤輸入。入。 x+2 (0 x5)y=0 (x0)x2-3 (5x10)10 (x10)第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)

29、1 1編程思緒:編程思緒: 開場(chǎng)開場(chǎng)輸入輸入x值值x0終了終了假假真真真真假假顯示顯示x x和和y y的值的值x5真真假假x10y=x+2y=10y=x2-3y=0第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)2 2程序代碼:程序代碼:#include #include main()main() float x=0,y=0;float x=0,y=0;printf(Input x:);printf(Input x:); scanf(%f,&x); scanf(%f,&x); if(x0) if(x0)y=0;y=0; else else if(x5) y=x+2; i

30、f(x5) y=x+2; else else if(x10) y=x if(x10) y=x* *x-3;x-3; else y=10; else y=10; printf(x=%f,y=%fn,x,y); printf(x=%f,y=%fn,x,y); 第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)2.5 switch語句 在日常生活中經(jīng)常遇到菜單項(xiàng)選擇擇操作,例如,用ATM自動(dòng)取款機(jī)取錢時(shí),從菜單中可以選擇語種、取款額;用自動(dòng)效力系統(tǒng)給手機(jī)充值時(shí),可以選擇查余額還是充值,對(duì)本機(jī)充值還是對(duì)其他號(hào)碼充值等。這些問題普通運(yùn)用switch語句處理。 總之,這些問題都是多分支情況。第二講第

31、二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)【實(shí)例】編寫程序,在如下菜單中選擇一個(gè)運(yùn)算類型,并【實(shí)例】編寫程序,在如下菜單中選擇一個(gè)運(yùn)算類型,并進(jìn)展相應(yīng)的運(yùn)算。如選擇了加法,那么進(jìn)展求和運(yùn)算。進(jìn)展相應(yīng)的運(yùn)算。如選擇了加法,那么進(jìn)展求和運(yùn)算。Please choose Please choose + : addition+ : addition- : subtraction- : subtraction* * : multiplication : multiplication/ : division/ : division第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)1 1程序代碼

32、:程序代碼:#include #include main()main()float a=5.0,b=2.0,c=0.0;float a=5.0,b=2.0,c=0.0;char sym=0;char sym=0;printf(Please choosen);printf(Please choosen);printf(+ : additionn);printf(+ : additionn);printf(- : subtractionn);printf(- : subtractionn);printf(printf(* * : multiplicationn); : multiplication

33、n);printf(/ : divisionn);printf(/ : divisionn);sym=getchar();sym=getchar();printf(%f%c%f=,a,sym,b); printf(%f%c%f=,a,sym,b); / /* * 顯示算式顯示算式 * */ /第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)switch(sym) switch(sym) / /* * 計(jì)算算式計(jì)算算式 * */ / case +: c=a+b; break; case +: c=a+b; break; case -: c=a-b; break; case -: c=a-

34、b; break; case case * *: c=a: c=a* *b; break;b; break; case /: c=a/b; break; case /: c=a/b; break; printf(%fn,c); printf(%fn,c); / /* * 顯示結(jié)果顯示結(jié)果 * */ / 第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)2 2運(yùn)轉(zhuǎn)結(jié)果:運(yùn)轉(zhuǎn)結(jié)果:Please choosePlease choose+ : addition+ : addition- : subtraction- : subtraction* * : multiplication : mult

35、iplication/ : division/ : division/ 5.000000/2.000000=2.500000 5.000000/2.000000=2.500000 第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)3 3歸納分析:歸納分析:switchswitch語句的普通方式為:語句的普通方式為:switch(switch(表達(dá)式表達(dá)式) ) case case 表達(dá)式表達(dá)式1: 1: 語句組語句組1 break;1 break; case case 表達(dá)式表達(dá)式2: 2: 語句組語句組2 break;2 break; case case 表達(dá)式表達(dá)式n: n: 語句組

36、語句組n break;n break; default: default: 語句組語句組n+1 break;n+1 break; 其中其中switchswitch、casecase、defaultdefault和和breakbreak是關(guān)鍵字,一切表達(dá)式均是關(guān)鍵字,一切表達(dá)式均為整型或字符型。在表達(dá)式為整型或字符型。在表達(dá)式1 1、表達(dá)式、表達(dá)式2 2、表達(dá)式、表達(dá)式n n中只能中只能出現(xiàn)常量和運(yùn)算符,而且每個(gè)表達(dá)式的值不能相等。出現(xiàn)常量和運(yùn)算符,而且每個(gè)表達(dá)式的值不能相等。 第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)2.6 2.6 條件運(yùn)算符及其表達(dá)式條件運(yùn)算符及其表達(dá)式 C

37、C言語中條件運(yùn)算符由言語中條件運(yùn)算符由“? ?和和“: :組成,例如組成,例如“ab ? a : ab ? a : b b。條件表達(dá)式的普通方式為:條件表達(dá)式的普通方式為:表達(dá)式表達(dá)式1 1 ?表達(dá)式?表達(dá)式2 2 :表達(dá)式:表達(dá)式3 3當(dāng)表達(dá)式當(dāng)表達(dá)式1 1的值為非的值為非0 0時(shí),以表達(dá)式時(shí),以表達(dá)式2 2的值作為條件表達(dá)式的值,的值作為條件表達(dá)式的值,否那么,以表達(dá)式否那么,以表達(dá)式3 3的值作為條件表達(dá)式的值。例如,當(dāng)?shù)闹底鳛闂l件表達(dá)式的值。例如,當(dāng)abab成立時(shí),條件表達(dá)式成立時(shí),條件表達(dá)式“ab ? a : bab ? a : b的值為的值為a a中的值,中的值,否那么為否那么為b

38、 b中的值。中的值。 運(yùn)用條件表達(dá)式也可以實(shí)現(xiàn)分支構(gòu)造。運(yùn)用條件表達(dá)式也可以實(shí)現(xiàn)分支構(gòu)造。 第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)課堂討論:誰做的好事?課堂討論:誰做的好事? 忻州師院有四位同窗中的一位做了好事,不留名,表揚(yáng)信來忻州師院有四位同窗中的一位做了好事,不留名,表揚(yáng)信來了之后,校長(zhǎng)問這四位是誰做的好事。了之后,校長(zhǎng)問這四位是誰做的好事。 A說:不是我。說:不是我。 B說:說:是是C。 C說:是說:是D。 D說:說:C胡說。胡說。 知三個(gè)人說的是真話,知三個(gè)人說的是真話,一個(gè)人說的是假話。如今要根據(jù)這些信息,找出做了好事的一個(gè)人說的是假話。如今要根據(jù)這些信息,找出做了

39、好事的人。畫出人。畫出N-S流程圖并寫出程序。流程圖并寫出程序。第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)第二講第二講 分支構(gòu)造分支構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì) 循環(huán)構(gòu)造是程序中一種很重要的構(gòu)造。其特點(diǎn)循環(huán)構(gòu)造是程序中一種很重要的構(gòu)造。其特點(diǎn)是,是, 在給定條件成立時(shí),反復(fù)執(zhí)行某程序段,直到在給定條件成立時(shí),反復(fù)執(zhí)行某程序段,直到條件不成立為止。條件不成立為止。 給定的條件稱為循環(huán)條件,反復(fù)給定的條件稱為循環(huán)條件,反復(fù)執(zhí)行的程序段稱為循環(huán)體。執(zhí)行的程序段稱為循環(huán)體。

40、言語提供了三種循環(huán)言語提供了三種循環(huán)語句,可以組成各種不同方式的循環(huán)構(gòu)造語句,可以組成各種不同方式的循環(huán)構(gòu)造, ,它們是它們是: : 語句語句 語句語句 語句語句第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)3.1 3.1 簡(jiǎn)單循環(huán)簡(jiǎn)單循環(huán)【實(shí)例】古典問題:有一對(duì)兔子,從出生后第【實(shí)例】古典問題:有一對(duì)兔子,從出生后第3 3個(gè)月起個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長(zhǎng)到第三個(gè)月后每個(gè)月每個(gè)月都生一對(duì)兔子,小兔子長(zhǎng)到第三個(gè)月后每個(gè)月又生一對(duì)兔子,假設(shè)兔子都不死,問每個(gè)月的兔子總又生一對(duì)兔子,假設(shè)兔子都不死,問每個(gè)月的兔子總數(shù)為多少?數(shù)為多少?1.1.程序分析:兔子的規(guī)律為數(shù)列程序分析:兔子

41、的規(guī)律為數(shù)列1,1,2,3,5,8,13,21.1,1,2,3,5,8,13,21.該數(shù)列的規(guī)律為該數(shù)列的規(guī)律為 a1=1a1=1 a2=1 a2=1 an=an-1+an-2 an=an-1+an-2 這里求前這里求前2020項(xiàng)項(xiàng)第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)i=20a1=1;a2=1; i=3an=a1+a2輸出ani=i+1;a1=a2;a2=an;YendbeginN第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)該標(biāo)題的該標(biāo)題的N-SN-S流程圖流程圖a1=1;a2=1;an=0;i=20an=a1+a2輸出ani=i+1a1=a2a2=an第三講第

42、三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)2.程序源代碼:方法一:for循環(huán)語句#include stdio.hmain( ) long a1,a2,an; int i; a1=a2=1; for(i=3;i=20;i+) an=a1+a2; printf(“a%d=%ld,i,an); a1=a2; a2=an; 可否互換?第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)方法二:while循環(huán)語句#include stdio.hmain( ) long a1,a2,an; int i; a1=a2=1;i=3; whilei=20 an=a1+a2; printf(“a%d=%

43、ld,i,an); a1=a2; a2=an; i+; 第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)方法三:do-while循環(huán)語句#include stdio.hmain( ) long a1,a2,an; int i; a1=a2=1;i=3; do an=a1+a2; printf(“a%d=%ld,i,an); a1=a2; a2=an; i+; whilei=20); 第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)3.3.歸納分析歸納分析1 1forfor語句格式:語句格式: for ( for ( 表達(dá)式表達(dá)式1 ; 1 ; 表達(dá)式表達(dá)式2 ; 2 ; 表達(dá)式

44、表達(dá)式3 ) 3 ) 語句語句 即:即: for (for (循環(huán)變量賦初值循環(huán)變量賦初值 , , 循環(huán)終了條件循環(huán)終了條件 , , 循環(huán)循環(huán)變量增值變量增值 ) ) 語句語句 第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)ForFor語句執(zhí)行過程語句執(zhí)行過程表達(dá)式1 表達(dá)式2 表達(dá)式3 語 句 YN第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)表達(dá)式可以省略,但分號(hào)不能省略表達(dá)式可以省略,但分號(hào)不能省略a) a) 省略表達(dá)式省略表達(dá)式1 1 i=1 i=1 for ( for ( ;i=50 i=50 ;i+ ) sum=sum+2i+ ) sum=sum+2* *i i

45、b) b) 省略表達(dá)式省略表達(dá)式22產(chǎn)生死循環(huán)產(chǎn)生死循環(huán) for ( i=1 for ( i=1; ;i+ ) sum=sum+2i+ ) sum=sum+2* *i ic) c) 省略表達(dá)式省略表達(dá)式3 3 for ( i=1 for ( i=1;i=50 i=50 ;) ) sum=sum+2 sum=sum+2* *i; i+;i; i+;d) d) 省略表達(dá)式省略表達(dá)式1 , 1 , 省略表達(dá)式省略表達(dá)式3 3 i=1 i=1 for ( for ( ;i=50 i=50 ;) ) sum=sum+2 sum=sum+2* *i; i+; i; i+; 第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C

46、語言程序設(shè)計(jì)語言程序設(shè)計(jì)表達(dá)式表達(dá)式1 1,表達(dá)式,表達(dá)式3 3可以是:可以是: a) a) 簡(jiǎn)單的表達(dá)式簡(jiǎn)單的表達(dá)式 b)b)逗號(hào)表達(dá)式逗號(hào)表達(dá)式表達(dá)式表達(dá)式2 2 普通是關(guān)系表達(dá)式或邏輯表達(dá)式普通是關(guān)系表達(dá)式或邏輯表達(dá)式例:例:for ( sum=0 , i=1 ; i=50 ; i+,i+ )for ( sum=0 , i=1 ; i=50 ; i+,i+ ) sum=sum+2 sum=sum+2* *i;i;或:或:for ( sum=0 , i=1 ; i=50 ; i=i+2 )for ( sum=0 , i=1 ; i=50 ; i=i+2 ) sum=sum+2 sum=su

47、m+2* *i i第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)(2) while(2) while語句的普通方式為:語句的普通方式為: while(while(表達(dá)式表達(dá)式) ) 語句;語句; 其中表達(dá)式是循環(huán)條件,語句為循環(huán)體。其中表達(dá)式是循環(huán)條件,語句為循環(huán)體。whilewhile語句的語義是:語句的語義是: 計(jì)算表達(dá)式的值,當(dāng)值為真計(jì)算表達(dá)式的值,當(dāng)值為真( (非非0)0)時(shí),執(zhí)行循環(huán)體語句。時(shí),執(zhí)行循環(huán)體語句。第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)運(yùn)用運(yùn)用whilewhile語句應(yīng)留意以下幾點(diǎn):語句應(yīng)留意以下幾點(diǎn):1.while1.while語句中的表達(dá)式

48、普通是關(guān)系表達(dá)或邏輯表達(dá)式,只語句中的表達(dá)式普通是關(guān)系表達(dá)或邏輯表達(dá)式,只需表達(dá)式的值為真需表達(dá)式的值為真( (非非0)0)即可繼續(xù)循環(huán)。即可繼續(xù)循環(huán)。2.2.循環(huán)體如包括有一個(gè)以上的語句,那么必需用循環(huán)體如包括有一個(gè)以上的語句,那么必需用括起來,括起來, 組成復(fù)合語句。組成復(fù)合語句。3.3.應(yīng)留意循環(huán)條件的選擇以防止死循環(huán)應(yīng)留意循環(huán)條件的選擇以防止死循環(huán), ,普通需求在循環(huán)體普通需求在循環(huán)體中動(dòng)態(tài)改動(dòng)循環(huán)條件的值。中動(dòng)態(tài)改動(dòng)循環(huán)條件的值。第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)(3) do-while(3) do-while語句的普通方式為:語句的普通方式為: dodo語句;

49、語句; while(while(表達(dá)式表達(dá)式) ); 其中語句是循環(huán)體,表達(dá)式是循環(huán)條件。其中語句是循環(huán)體,表達(dá)式是循環(huán)條件。do-whiledo-while語句的語義是:語句的語義是:先執(zhí)行循環(huán)體語句一次,先執(zhí)行循環(huán)體語句一次, 再判別表達(dá)式的值,假設(shè)為真再判別表達(dá)式的值,假設(shè)為真( (非非0)0)那么繼續(xù)循環(huán),否那么終止循環(huán)。那么繼續(xù)循環(huán),否那么終止循環(huán)。do-whiledo-while語句和語句和whilewhile語句的區(qū)別在于語句的區(qū)別在于do-whiledo-while是先執(zhí)行后是先執(zhí)行后判別,因此判別,因此do-whiledo-while至少要執(zhí)行一次循環(huán)體。而至少要執(zhí)行一次循環(huán)

50、體。而whilewhile是先是先判別后執(zhí)行,假設(shè)條件不滿足,那么一次循環(huán)體語句也不判別后執(zhí)行,假設(shè)條件不滿足,那么一次循環(huán)體語句也不執(zhí)行。執(zhí)行。第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)(4)(4)循環(huán)體語句可運(yùn)用循環(huán)體語句可運(yùn)用break break 和和continuecontinue語句語句breakbreak:可以用來從循環(huán)體內(nèi)跳出循環(huán)體提早終了循環(huán):可以用來從循環(huán)體內(nèi)跳出循環(huán)體提早終了循環(huán)continuecontinue:用于跳過循環(huán)體中下面尚未執(zhí)行的語句,接著重:用于跳過循環(huán)體中下面尚未執(zhí)行的語句,接著重新執(zhí)行循環(huán)的判別新執(zhí)行循環(huán)的判別例例: :輸出輸出100100

51、以內(nèi)能被以內(nèi)能被7 7整除的數(shù)。整除的數(shù)。 int n;int n;for(n=7;n=100;n+)for(n=7;n=100;n+) if (n%7!=0)if (n%7!=0)continue;continue;printf(%d ,n);printf(%d ,n); 第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)練習(xí):練習(xí):1.1.有一分?jǐn)?shù)序列:有一分?jǐn)?shù)序列:2/12/1,3/23/2,5/35/3,8/58/5,13/813/8,21/13.21/13.求出這個(gè)數(shù)列的前求出這個(gè)數(shù)列的前2020項(xiàng)之和。項(xiàng)之和。2.2.求求1+2!+3!+.+20!1+2!+3!+.+20!的

52、和。的和。3.3.用牛頓切線法求用牛頓切線法求x-sin(x)=0 x-sin(x)=0在區(qū)間在區(qū)間0 0,之之間的解。間的解。4.4.恣意輸入兩個(gè)數(shù),求這兩個(gè)數(shù)的最大公約數(shù)。恣意輸入兩個(gè)數(shù),求這兩個(gè)數(shù)的最大公約數(shù)。5.5.從鍵盤輸入一個(gè)數(shù)判別其能否為素?cái)?shù)。從鍵盤輸入一個(gè)數(shù)判別其能否為素?cái)?shù)。第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)作業(yè):作業(yè):求求s=a+aa+aaa+aaaa+aa.as=a+aa+aaa+aaaa+aa.a的值,其中的值,其中a a是一個(gè)數(shù)字。例如是一個(gè)數(shù)字。例如2+22+222+2222+22222(2+22+222+2222+22222(此時(shí)共有此時(shí)共有5

53、 5個(gè)數(shù)相加個(gè)數(shù)相加) ),幾個(gè)數(shù)相加,幾個(gè)數(shù)相加由鍵盤輸入控制。由鍵盤輸入控制。一球從一球從100100米高度自在落下,每次落地后反跳回原高度的一半;米高度自在落下,每次落地后反跳回原高度的一半;再落下,求它在第再落下,求它在第1010次落地時(shí),共經(jīng)過多少米?第次落地時(shí),共經(jīng)過多少米?第1010次反次反彈多高?彈多高?求求1+2!+3!+.+20!1+2!+3!+.+20!的和的和猴子吃桃問題:猴子第一天摘下假設(shè)干個(gè)桃子,當(dāng)即吃了一半,猴子吃桃問題:猴子第一天摘下假設(shè)干個(gè)桃子,當(dāng)即吃了一半,還不癮,又多吃了一個(gè)。第二天早上又將剩下的桃子吃掉還不癮,又多吃了一個(gè)。第二天早上又將剩下的桃子吃掉一

54、半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一個(gè)。到第一半零一個(gè)。到第1010天早上想再吃時(shí),見只剩下一個(gè)桃子天早上想再吃時(shí),見只剩下一個(gè)桃子了。求第一天共摘了多少?了。求第一天共摘了多少?第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)3.23.2循環(huán)的嵌套運(yùn)用循環(huán)的嵌套運(yùn)用【實(shí)例】【實(shí)例】 搬磚問題。搬磚問題。3636塊磚,塊磚,3636人搬,男搬人搬,男搬4 4,女搬,女搬3 3,兩,兩個(gè)小孩抬一磚,要求一次全搬完,問男、女、小孩各假設(shè)個(gè)小孩抬一磚,要求一次全搬完,問男、女、小孩各假設(shè)干?干?1.1.分析分析: : 列方

55、程列方程, ,得出問題條件得出問題條件: : w+m+c=36 w+m+c=36 4 4* *m+3m+3* *w+c/2=36w+c/2=36 可以用枚舉的方法,讓變量可以用枚舉的方法,讓變量w w在在09 09 、m m在在012 012 、c c在在036036的偶數(shù)中取值,構(gòu)成滿足上述條件的的偶數(shù)中取值,構(gòu)成滿足上述條件的w w 、m m、c c的組合的組合第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)N-SN-S流程圖流程圖m9w12c=36-m-w且c%2=04*m+3*w+c/2=36輸出m、w、cTrueFalsew=0w=w+1;m=m+1;m=0第三講第三講 循環(huán)

56、構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)2.2.程序程序mainmainint m,w,c;int m,w,c; for(m=0;m9;m+) for(m=0;m9;m+) for(w=0;w12;w+) for(w=0;w12;w+) c=36-w-m; c=36-w-m; if(c%2!=0)continue; if(c%2!=0)continue; if(4 if(4* *m+3m+3* *w+c/2=36)w+c/2=36) printf( printf(“m=%d,w=%d,c=%dm=%d,w=%d,c=%d,m,w,c);,m,w,c); 第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)

57、計(jì)語言程序設(shè)計(jì)練習(xí):練習(xí):1.1.輸出輸出9 9* *9 9口訣??谠E。2.2.判別判別101-200101-200之間有多少個(gè)素?cái)?shù),并輸出一切素之間有多少個(gè)素?cái)?shù),并輸出一切素?cái)?shù)。數(shù)。3.3.打印出一切的打印出一切的“水仙花數(shù),所謂水仙花數(shù),所謂“水仙花數(shù)水仙花數(shù)是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:數(shù)本身。例如:153153是一個(gè)是一個(gè)“水仙花數(shù),由于水仙花數(shù),由于153=1153=1的三次方的三次方5 5的三次方的三次方3 3的三次方。的三次方。第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)作業(yè):作業(yè):1.1.將一個(gè)正整數(shù)分解質(zhì)

58、因數(shù)。例如:輸入將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,90,打印出打印出90=290=2* *3 3* *3 3* *5 5。程序分析:對(duì)程序分析:對(duì)n n進(jìn)展分解質(zhì)因數(shù),應(yīng)先找到一個(gè)最小的進(jìn)展分解質(zhì)因數(shù),應(yīng)先找到一個(gè)最小的質(zhì)數(shù)質(zhì)數(shù)k k,然后按下述步驟完成:,然后按下述步驟完成: (1)(1)假設(shè)這個(gè)質(zhì)數(shù)恰等于假設(shè)這個(gè)質(zhì)數(shù)恰等于n n,那么闡明分解質(zhì)因數(shù)的過,那么闡明分解質(zhì)因數(shù)的過程曾經(jīng)終了,打印出即可。程曾經(jīng)終了,打印出即可。(2)(2)假設(shè)假設(shè)nknk,但,但n n能被能被k k整除,那么應(yīng)打印出整除,那么應(yīng)打印出k k的值,的值,并用并用n n除以除以k k的商的商, ,作為新的正整

59、數(shù)他作為新的正整數(shù)他n,n,反復(fù)執(zhí)行第一步。反復(fù)執(zhí)行第一步。(3)(3)假設(shè)假設(shè)n n不能被不能被k k整除,那么用整除,那么用k+1k+1作為作為k k的值的值, ,反復(fù)執(zhí)反復(fù)執(zhí)行第一步。行第一步。2.2.一個(gè)數(shù)假設(shè)恰好等于它的因子之和,這個(gè)數(shù)就稱為一個(gè)數(shù)假設(shè)恰好等于它的因子之和,這個(gè)數(shù)就稱為“完數(shù)。例如完數(shù)。例如6=16=12 23.3.編程找出編程找出10001000以內(nèi)的一切以內(nèi)的一切完數(shù)。完數(shù)。第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)課堂討論:課堂討論:五位跳水高手將參與十米高臺(tái)跳水決賽,有好事者讓五位跳水高手將參與十米高臺(tái)跳水決賽,有好事者讓五個(gè)人據(jù)實(shí)力預(yù)測(cè)競(jìng)賽結(jié)果

60、。五個(gè)人據(jù)實(shí)力預(yù)測(cè)競(jìng)賽結(jié)果。 A選手說:選手說:B第二,我第三;第二,我第三;B選手說:我第二,選手說:我第二,E第四;第四;C選手說:我第一,選手說:我第一,D第二;第二;D選手說:選手說:C最后,我第三;最后,我第三;E選手說:我第四,選手說:我第四,A第一;第一; 決賽成果公布之后,每位選手的預(yù)測(cè)都只說對(duì)了一半,決賽成果公布之后,每位選手的預(yù)測(cè)都只說對(duì)了一半,即一對(duì)一錯(cuò),請(qǐng)編程解出競(jìng)賽的實(shí)踐名次。即一對(duì)一錯(cuò),請(qǐng)編程解出競(jìng)賽的實(shí)踐名次。第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)第三講第三講 循環(huán)構(gòu)造循環(huán)構(gòu)造C語言程序設(shè)計(jì)語言程序設(shè)計(jì)2 2 思索到每個(gè)人說的話是一對(duì)一錯(cuò),即一真一假,比如思索到每個(gè)人說的話是一對(duì)一錯(cuò),即一真一假,比如A A說說的,假設(shè)的,假設(shè)B=2B=2為真,那么為真,那么A=3A=

溫馨提示

  • 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)論