C語言程序設計教案_第1頁
C語言程序設計教案_第2頁
C語言程序設計教案_第3頁
C語言程序設計教案_第4頁
C語言程序設計教案_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、課 題第一章 程序設計基本概念教 學目 的1、了解程序設計的基本概念2、了解算法的概念和特性3、了解結構化程序設計和模塊化結構教 材分 析教學重點C程序執(zhí)行過程、三種基本結構流程圖教學難點結構化流程圖教學內容及過程設計一、新課引導語言:人人語言交流;聾啞人手勢語;人機計算機語言。C語言是一種流行的計算機高級語言,C語言適合于編寫系統軟件,也可以編寫應用程序。二、講授新課(一)、程序和程序設計 1、C程序(1)程序:可以連續(xù)執(zhí)行的一條條指令的集合。(2)源程序:由高級語言編寫的程序。(3)目標程序:由二進制代碼表示的程序。(4)編譯程序:具有將源程序翻譯成目標程序的功能的軟件。 圖1.1 C語言

2、編譯程序功能示意圖 注:C程序編譯之后生成一個后綴名為.obj的二進制文件(稱為目標文件),再由連接程序把.obj文件與C語言提供的各種庫函數連接生成一個后綴名為.exe的可執(zhí)行文件。 2、程序設計 簡單的程序設計一般包含以下5個部分:(1) 確定數據結構(2) 確定算法(3) 編碼(4) 在計算機上調試程序(5) 整理并寫出文檔資料(二)、算法 1、算法的概念 算法是指為解決某個特定問題而采取的確定且有限的步驟。 2、算法的特性(1)有窮性 (2)確定性 (3)可行性(4)有零個或多個輸入 (5)有一個或多個輸出教學內容及過程設計3、算法的描述方法偽代碼和流程圖圖1.2 一般流程圖所用的幾種

3、基本圖形(三)、結構化程序設計和模塊化結構 1、結構化程序 結構化程序由三種基本結構組成,分別是順序結構、選擇結構和循環(huán)結構。(1)順序結構:語句按在程序中的先后順序逐條執(zhí)行。語句1語句2語句1語句2 (a)一般流程圖 (b)N-S流程圖 圖1.3 順序結構流程圖(2)選擇結構:根據不同的條件去執(zhí)行不同分支中的判斷表達式語句1語句2不滿足滿足判斷表達式滿足不滿足語句1語句2a)一般流程圖 (b)N-S流程圖 圖1.4 選擇結構流程圖教學內容及過程設計(3)循環(huán)結構:根據各自的條件,使同一組語句重復執(zhí)行多次或零次。判斷表達式循環(huán)體不滿足滿足當判斷表達式滿足循環(huán)體 a)一般流程圖 (b)N-S流程

4、圖 圖1.5 當型循環(huán)流程圖 判斷表達式循環(huán)體不滿足滿足直到判斷表達式滿足循環(huán)體 a)一般流程圖 (b)N-S流程圖 圖1.6 直到型循環(huán)流程圖2、模塊化結構 由一個個功能模塊構成的程序結構稱為模塊化結構。C語言是一種自頂向下、逐步細化、模塊化的程序設計語言。三、課堂小結1、 C語言程序的執(zhí)行過程2、  三種基本結構:順序、選擇、循環(huán)結構 四、布置作業(yè)P6 1.1、1.2、1.3備注課 題第二章 C程序設計的初步知識教 學目 的1、掌握C語言程序的構成與格式2、掌握標識符命名規(guī)范3、掌握整型、實型、字符型數據的常量及變量4、掌握運算符(優(yōu)先級、結合性)與表達式教

5、材分 析教學重點各種基本數據類型的常量和變量、各種運算符的使用教學難點混合表達式中運算符的運算順序、自加自減運算教學內容及過程設計一、復習引導上次課我們已經學習了程序設計的基本概念,現在來學習如何編寫C語言程序以及程序中需用到的幾種基本數據類型、運算符等。二、講授新課(一)、C語言程序的構成與格式例2.1:求矩形的面積。 #include <stdio.h>void main( ) double a , b , area ; a = 1.2; b = 3.6; /*將矩形的兩條邊長分別賦給a和b*/ area = a * b; /*計算矩形的面積并存儲到變量area中*/ prin

6、tf(“a = %f , b = %f , area = %f n”, a , b , area ); 注:1、函數在程序中的位置沒有限制,但程序運行總是從主函數開始直到主函數結束,且僅有一個主函數。2、每條語句以分號(;)結束,一行內可寫一條或多條語句,一條語句也可以寫在一行或多行。3、注釋可以出現在任何地方。4、大小寫敏感。5、由于調用了printf標準庫函數,需包含相應的頭文件stdio.h。(二)、標識符、常量和變量 1、標識符 標識符的命名規(guī)則:可以由字母、數字和下劃線組成,并且第一個字符必須為字符或下劃線。 2、標識符的分類 (1)關鍵字:C語言預先規(guī)定了一批標識符,它們在程序中都

7、代表固定的含義,不能另用他用。 (2)預定義標識符:指C語言預先定義并具有特定含義的標識符,如printf、define等,但C語言允許其重新定義另作他用。 (3)用戶標識符:由用戶根據需要定義的標識符。教學內容及過程設計備注 3、常量 所謂常量是指在程序運行過程中,其值不能被改變的量。在C語言中,可以用一個符號名來代表一個常量,稱為符號常量。例2.2 已知半徑,求圓面積#include <stdio.h> #define PI 3.1416 void main( ) float r,s; r=5; s=PI*r*r; printf(“ns=%f”,s); 注:程序中用#defin

8、e命令行(不是語句)定義PI代表一串字符3.14159,在程序編譯時,凡本程序出現PI的地方均用3.14159來替換。 4、變量 所謂變量是指在程序運行過程中其值可以改變的量。一個本來實質上代表了內存中的某個存儲單元。 注:(1)大小寫敏感(2)不能與保留字重名(3)使用前,必須先定義,指明為何種類型,然后才能在程序中使用(三)、整型數據1、整型常量的表示方法(1)       十進制 如:123,-456,0(2)      八進制數 如:0123,-011 (以

9、0開頭的數)(3)    十六進制數 如:0x123,-0x12,0xABC (以0x開頭的)2、整型變量(1)   整型數據在內存中以二進制形式存放,每一個整型變量在內存中占2個字節(jié)。例:定義整型變量i=10 和j= -10的存放形式。(2)整型變量的分類:基本型int、短整型short、長整型long、無符號型unsigned。 (3) 整型變量的定義與初始化如:int k; /*定義k為整型變量*/ int i,j,k *定義i、j、k為整型變量*/ int i=1,j=0,k=2; (4)整數在內存中的存儲形式 存儲

10、的存儲單位有位、字節(jié)、字正整數在內存中以原碼形式存儲,負整數以補碼形式存儲。教學內容及過程設計 (四)、實型數據 1、實型常量的表示方法(1) 小數形式   如:0.123,.456,0.0,123.,123.0    整數部分和小數部分都可省,但不能同時省(2) 指數形式       如:123e3,123E3代表123×103 注:指數部分為整常數;  尾數部分可以是整常數,也可以是實常數;尾數部分和指數部分均不可省。E10, 100.e15.2, .e5均為不

11、合法的浮點數。2、實型變量(1)實型數據在內存中的存放形式一個實型數據一般在內存中占4個字節(jié)(32位)。實型數據是按照指數形式存儲的。(2)實型變量的分類:單精度float、雙精度double、長雙精度long double (五)、算術表達式 1、基本的算術運算符:+、 、*、/、%  優(yōu)先級: * / % 高于 + 結合性:左結合性注:取余運算時,%兩端的數必須是整型數據。 2、算術表達式:用算術運算符和括號將運算對象(操作數)連接起來的、符合C語法規(guī)則的式子稱為算術表達式。 3、強制類型轉換運算符:(類型名)(表達式) (六)、賦值表達式1、 簡單的賦值運算符:= 除逗號表達式

12、外,優(yōu)先級最低2、 復合賦值運算符: += *= %=等3、 賦值表達式: <變量><賦值運算符>< 表達式/值>一般格式:變量 = 表達式 例如: b=4*2; a=3.5; 結合性: 自右向左4、 嵌套的賦值表達式例:求表達式 a + =a - = a*(a=12) 的值?(答案:264)(七)、自加、自減與逗號表達式1、 自加運算符“+”、自減運算符“-” + 自加運算符,如+i,i+, 使 i 的值加 1 - 自減運算符,如 -i,i-, 使 i 的值減 1注:自加自減運算符的操作數必須是一整型變量,常用于循環(huán)語句中循環(huán)變量的計數。例:以下運算式是不

13、正確的:+6, (a+5)-。 例:設 i、a 為一整型變量, i=4 +i; 結果:i=5教學內容及過程設計 i+; 結果:i=5 -i;結果:i=3 i-;結果:i=3 a=+i; 結果:i=5,a=5a=i+; 結果:i=5,a=4 a=-i; 結果:i=3,a=3 a=i -; 結果:i=3,a=42、 逗號表達式一般形式: 表達式1,表達式2,表達式n求解過程:先求表達式1,再求表達式2,依次求下去,直到求出表達式n,整個逗號表達式的值就是表達式n的值。例: 表達式(i=3,i+,+i,i+)的值為10,i的值為5。 表達式 3+5,6+7的值為13。 表達式 a=3*5,a*4,a

14、+5的值為 20。三、課堂小結1、   C語言程序的構成與格式2、   +、-運算3、  各種運算符的優(yōu)先級 4、表達式值的求解 四、布置作業(yè)P20 2.14、2.15、5.24 備注課 題第三章 順序結構教 學目 的1、掌握C語言常用的輸入/出方式2、學會簡單的順序程序設計教 材分 析教學重點C語言常用的輸入/出方式教學難點格式輸入輸出教學內容及過程設計一、復習引導上一章介紹的常量、變量、運算符、表達式等都是構成程序的基本成分。本章將介紹為編寫簡單程序所必需的一些內容。二、講授新課(一)、賦值語句賦值語句是由賦值表達式加上一個分號構

15、成。如:b=3; a=b+c; i+; a= b=c a= b, b=c; (二)、數據輸出 1、 把數據從計算機內部送到計算機外部設備上的操作稱為“輸出”。從計算機外部設備將數據送入計算機內部的操作稱為“輸入”。注:(1)C語言不提供輸入輸出語句,輸入輸出操作通過函數調用實現。(2)要使用C語言庫函數,應用“#include”將頭文件sdtio.h包括到用戶源程序中。 2、輸出函數printf語法:printf (格式控制, 輸出項1,輸出項2,);      格式控制:是用雙引號括起來的字符串,包含兩種信息:  普通字符和轉義字符

16、(這類字符總是原樣輸出)格式說明:由%和格式控制符組成。如:%d, %f等;(P24)如:printf(“a=%d, b=%d”,a,b); 若a、b的值分別為3和4,則輸出結果為: a=3, b=4。(1) printf函數中常用的格式說明表3.1 格式字符及其功能格式字符說明c輸出一個字符d或i輸出帶符號的十進制整數o按八進制輸出一個整型數據x或X按十六進制輸出一個整型數據u按十進制輸出一個無符號整數f帶小數點形式輸出單精度和雙精度實數e或E按指數形式輸出單精度和雙精度實數s輸出字符串%輸出% 教學內容及過程設計(2)附加成分說明:格式字符說明例子l長度修飾符long a=67789;pr

17、intf(“%ld”, a); m指定寬度printf(“%5d”, 42); / 42m,n指定寬度和小數位數printf(“%6.1f”, 123.55); /123.6-左對齊int a=12;printf(“n a=%-4d4a=%4d”,a.,4*a);#加 0 或 0x 區(qū)分八/十六進制數printf(“%o,%#o,%x,%#x”,10,10,10,10); /12,012,a,0xa0前導0printf(“%05d”, 42); /輸出00042(3) 使用printf函數時的注意事項 1)printf的輸出格式為自由格式,是否在兩個數之間留逗號、空格或回車,完全取決于格式控制

18、,如果不注意,很容易造成數字連在一起,使得輸出結果沒有意義。 2)格式控制中必須含有與輸出項一一對應的輸出格式說明,類型必須匹配。 3)還可以包含合法字符,這些字符原樣輸出。 4)printf函數有返回值,返回值是本次調用輸出字符的個數。 5)輸出數據時的域寬可以改變。(三)、輸入函數scanf 語法:scanf(格式控制,地址表列);格式控制:包含三類符號 空白字符:(空格、Tab或、),輸入時不必一一對應; 普通字符:(非格式轉換說明符、非空白符、非%),輸入時必須一一對應; 格式轉換說明符:注意:scanf函數規(guī)定,組成輸入項表的輸入對象須是地址量;如: scanf(“%d,%d,%d”

19、,&a,&b,&c); scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);第一個輸入語句,正確的輸入數據流為:123,456,789<enter>,處理的結果為:123a,456b,789c同理對第二個輸入語句,正確的輸入數據流應是:a=123,b=456,c=789<enter> 該輸入數據流中除123,456,789被賦給相應變量外,其余都被丟棄教學內容及過程設計 (1)格式說明%c 輸入一個字符 %d 輸入十進制整數 %o 輸入八進制整數 %x 輸入十六進制整數 %u 輸入無符號十進制整數 %f(%l

20、f)、%e(%le) 輸入小數或指數形式的單精度(雙精度)數 %s 輸入字符串注:除%s外,都需要地址符&,對雙精度數,輸入時必須%lf或%le,輸出時%f(%lf)、%e(%le) 都可以。例:int a,b; char c,d;scanf(“%d%d”,&a,&b);/輸入 3 5scanf(“%d, %d”,&a,&b);/輸入3,5scanf(“a=%d,b=%d”,&a,&b);/輸入a=3,b=5scanf(“%3d%3d”,&a,&b);/輸入 123456如何?scanf(“%c%c”,&c,&am

21、p;d);/輸入mn或m n如何?scanf(“%c,%c”,&c,&d);/輸入m,n(四)、復合語句和空語句復合語句:在語法上為一條語句,以 為標志。如:t=a;a=b;b=t;空語句:只有一個“;”的句子,執(zhí)行空語句不產生任何動作。注:隨意加分號會導致邏輯上的錯誤。(五)、程序舉例 例3.1 交換兩個整數并輸出。#include<stdio.h>void main() int x,y,t; printf("Enter x & y : n"); scanf("%d %d",&x,&y); print

22、f("x=%d y=%d n",x,y);t=x; x=y; y=t; printf("x=%d y=%d n",x,y);例3.2 輸入一個double數,保留位小數,第位小數四舍五入,最后輸出。#include<stdio.h>void main() double x; printf("Enter x: "); scanf("%lf",&x); printf("(1) x=%f n",x); x=x*100; x=x+0.5; x=(int)x;x=x/100; prin

23、tf("(2) x=%f n",x);三、課堂小結1、 printf和scanf語句2、 復合語句與空語句 四、布置作業(yè)P34 3.17、3.18、3.19、3.20備注課 題第四章 選擇結構教 學目 的1、掌握實現選擇結構的兩種語句、關系邏輯運算符2、學會編寫選擇結構的程序教 材分 析教學重點關系邏輯運算符、if-else語句、switch語句、條件運算符教學難點嵌套if-else語句中的if與else匹配問題教學內容及過程設計一、復習引導上一次課已經介紹了程序基本結構之一:順序結構,但在大多數情況下都要用到選擇結構。二、講授新課(一)、關系

24、運算和邏輯運算 1、C語言的邏輯值 邏輯值只有兩個:分別用“真”和“假”表示。在C語言中,沒有專門的“邏輯值”,而是用非0表示“真”,用0表示“假”。 2、關系運算符和關系表達式 (1)關系運算符:< <= > >= = = ! =優(yōu)先級:< <= > >= 高于 = = != 注:關系運算符低于算術運算符,高于賦值運算符。 (2)關系表達式:用關系運算符將兩個表達式連接起來的式子。關系表達式求值:關系成立,值為1;關系不成立,值為0。 3、邏輯運算符和邏輯表達式(1)邏輯運算符:&& | !優(yōu)先級:! 高于 &&

25、 高于 | 注:優(yōu)先級從高到低:!、算術運算符、關系運算符、&&、|、賦值運算符 (2)邏輯表達式:由邏輯運算符和運算對象組成的表達式。邏輯表達式的值要么為1要么為0。 (二)、if語句和if語句構成的選擇語句1、不含else子句的if語句(1)語句形式 if(表達式e) 語句s(2)執(zhí)行過程 如果表達式e為真,則執(zhí)行語句s,然后去執(zhí)行if語句后的下一條語句,如果表達式e為假,則不執(zhí)行語句s,直接執(zhí)行if語句后的下一條語句。 例4.1 輸入兩個數,分別放入x和y中,若兩數不相等,則輸出其中的大數;若兩數相等,則輸出字符串x=y和x的值。#include<stdio.h&g

26、t;void main() int x,y; printf(“Enter x&y ; n”) scanf(“%d%d”,&x,&y);printf(“x,y:%d%dn,x,y); if(x>y)printf(“x=%dn”,x); if(y>x)printf(“y=%dn”,y);if(x = = y) printf(“x = = y %d;n”,x);教學內容及過程設計例 4.2 輸入三個整數分別放在變量a、b、c中,然后把輸入的數據按由小到大的順序放在變量a、b、c中,然后輸出a、b、c中的值。#include<stdio.h>void m

27、ain() int a,b,c,t; printf(“ a,b,c:”);scanf(%d%d%d”,&a,&b,&c); printf(“a=%d,b=%d,c=%d”n”,a,b,c); if (a>b) t=a;a=b;b=t;if(a>c) t=a;a=c;c=t;if(b>c) t=b;b=c;c=t;printf(“%d,%d,%dn”,a,b,c); 2、含else子句的if語句(1)語句形式 if(表達式e) 語句1 else 語句2 (2)執(zhí)行過程 如果表達式e為真,則執(zhí)行語句1,然后去執(zhí)行if語句后的下一條語句,如果表達式e為假,則

28、執(zhí)行語句2,然后執(zhí)行if語句后的下一條語句。 例 4.3 輸入兩個數,分別賦給x和y,輸出其中的大數。#include <stdio.h>void main()int x,y; printf(“Enter x&y:”); scanf(“%d%d”,&x,&y);printf(“x,y:%d %dn”,x,y); if(x>y) printf(“max=x=%dn”,x); else printf(“max=y=$dn”,y); printf(“*end*n);例 4.4 輸入一個數,判別它是否能被3整除。若能被3整除,打印YES,不能被3整除,打印NO

29、。#include <stdio.h> void main()int n; printf(“input n:”);scanf(“%d”,&n); if(n%3=0) /*判斷n能否被3整除*/printf(“n=%dYESn”,n); elseprintf(“n=%dNOn”,n);教學內容及過程設計 3、關于if語句的說明: (1)if后面圓括號的表達式可以是任意合法的C語言表達式也可以是任意類型的數據。(2)無論是否有else子句,if子句中如果只有一條語句,則此語句的分號不能省略。 4、嵌套的if語句 (1)在if子句中嵌套具有else子句的if語句 語句形式如下:

30、if(表達式1) if(表達式2) 語句1 else 語句2 else 語句3 (2)在if子句中嵌套不含else子句的if語句 語句形式如下: if(表達式1) if(表達式2) 語句1 else 語句2 (3)在else子句中嵌套if語句 1)內嵌的if語句帶else 2) 內嵌的if語句不帶else if(表達式1) 語句1 if(表達式1) 語句1 else else if(表達式2) 語句2 if(表達式2) 語句2 else 語句3 例 4.5 編寫程序,根據輸入的學生成績給出相應的等級,大于或等于90分以上的等級為A,60分以下的等級為E,其余每10分為一個等級。#include

31、<stdio.h>void main()int g; printf(“Enter g:”);scanf(“%d”,&g);printf(“g=%d:”,g)if(g>=90)printf(“An”); else if (g>=80)printf(“Bn”);else if (g>=70)printf(“Cn”);else if (g>=60)printf(“Dn”)else printf(“En”); 教學內容及過程設計 (三)、條件表達式構成的選擇語句 1、條件表達式的形式如下: 表達式1?表達式2:表達式32、條件表達式的功能 當表達式1的值為非

32、零時,表達式2的值為整個條件表達式的值,當表達式1的值為零時,表達式3的值為整個條件表達式的值。 (四)、switch語句以及switch語句和break語句構成的選擇結構 1、switch語句 (1) switch語句形式如下: switch(表達式) case 常量表達式1: 語句1 case 常量表達式2: 語句2 case 常量表達式n: 語句ndefault : 語句n+1 (2) switch語句的執(zhí)行過程 首先計算表達式的值,然后在switch語句體內尋找與該值吻合的case標號。若有與該值相等的標號,則執(zhí)行該標號后開始的各語句,包括在其后的所有case和default中的語句,

33、直到switch語句體結束;如果沒有與該值相等的標號,并且存在default標號,則從default標號后的語句開始執(zhí)行,直到switch語句體結束;如果沒有與該該值相等的標號,同時又沒有default標號,則跳過switch語句體,去執(zhí)行其之后的語句。 例 4.6 用swith 語句改寫例4.5。#include<stdio.h>void main ( )int g;printf(“Enter a mark:”);scanf(“%d”,&g);printf(“g=%d:”,g);switch(g/10)case 10: case 9:printf(“An”); case

34、8:printf(“Bn”); case 7:printf(“Cn”); case 6:printf(“Dn”); default 5:printf(“En”); 2、在switch語句體中使用break語句 每當執(zhí)行到break語句時,立即跳出switch語句體。 例:修改例4.6的程序,在case語句后面加break。 教學內容及過程設計 (五)、語句標號和goto語句 例如: goto stop; stop: printf(“endn”);三、課堂小結1、 關系邏輯運算2、 if與switch語句 四、布置作業(yè)P49 4.21、4.22、4.25備注課 題第

35、五章 循環(huán)結構教 學目 的1、掌握三種循環(huán)語句的語法結構2、靈活運用循環(huán)語句 教 材分 析教學重點三種循環(huán)語句while、do-while、for教學難點三種循環(huán)語句的區(qū)別教學內容及過程設計一、復習引導問題1:假如全班41人,欲從鍵盤上輸入每人的數學成績,然后計算出平均成績;問題2: 編程計算n!。重復執(zhí)行一組語句是程序設計要求的基本功能之一。在C語言中可以用以下語句來實現循環(huán):(1)while (2)do-while (3)for 二、講授新課(一)、while語句和用while語句構成的循環(huán)結構   語法:while (exp) 循環(huán)體語句;語義:當exp為真時,執(zhí)行循環(huán)體;為假

36、時,執(zhí)行循環(huán)語句的后續(xù)語句; 說明:1)  循環(huán)體可以用復合語句;2)  在while語句前應有為測試表達式(exp)中的循環(huán)控制變量賦初值的語句,以確保循環(huán)的正常開始;3) 循環(huán)體內應有改變循環(huán)控制變量的語句,以確保循環(huán)進行有限次后正常結束; 如:i=1;while (i<=100) sum=sum+1; (死循環(huán))4)  while 循環(huán)的特點是先判斷后執(zhí)行,故循環(huán)有可能一次都不被執(zhí)行; 如: i=3; while (i<3) printf(“i=%dn”,i); 例5.1 編寫程序求12+22+32+n2,直到累加和大于或等于10000

37、為止。#include<stdio.h>void main( ) int i,sum; i=0;sum=0; /*i和sum的初值為0*/while(sum<10000) /*當sum小于10000時執(zhí)行循環(huán)體*/ sum+=i*i; /*在循環(huán)體中每累加一次后,i增加1*/i+;printf(“n=%dsum=%dn”,i-1,sum);例5.2 用公式求的近似值,直到最后一項的絕對值小于10為止。 #include<stdio.h>#include<math.h>教學內容及過程設計void main( ) int s;float n, t , pi

38、;t=1.0;pi=0;n=1.0;s=1;while(fabs(t)>1e-6) pi=pi+t; n+=2.0; s=-s; t=s/n; pi=pi*4;printf(“pi=%fn”,pi);例5.3 用迭代法求方程x=cosx的根,要求誤差小于10.#include<stdio.h>#include<math.h>void main( ) double x1,x2;x1=0.0;x2=cos(x1);while(fabs(x2-x1)>1e-6) x1=x2; x2=cos(x1); printf(“x=%fn”,x2); (二)、do-while

39、語句和用do-while語句構成的循環(huán)結構語法:do 循環(huán)體語句; while (exp);語義:當exp為真時,執(zhí)行循環(huán)體;為假時,執(zhí)行循環(huán)語句的后續(xù)語句;說明:1)      循環(huán)體可以用復合語句;2)      循環(huán)控制變量在執(zhí)行do前必須賦初值;循環(huán)體內應有改變循環(huán)控制變量的語句;3)      do-while 循環(huán)的特點是先執(zhí)行后判斷,故循環(huán)至少被執(zhí)行一次。 例5.4 計算Fibonacci數列,直到某項大于1000為止,并輸出該項的

40、值。#include<stdio.h>void main() int f1,f2,f;f1=0; f2=1;dof=f1+f2;f2=f;while(f2<=1000);printf(“F=%dn”,f2);教學內容及過程設計 (四)、for 語句語法:for(表達式1;表達式2;表達式3) 循環(huán)體語句;語義:1、先求表達式1;2、求解表達式2,若值為真,則執(zhí)行第三步;若為假,則結束循環(huán);3、執(zhí)行循環(huán)體中的語句;4、求解表達式3;5、轉回第二步繼續(xù)執(zhí)行如:for( i=1; i<=100; i+) sum=sum+i;可看成:for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增

41、值)語句;說明:(1)顯然for循環(huán)更簡潔,更靈活;(2)循環(huán)體可以是復合語句;(3)for語句中的三個表達式均可以是逗號表達式,故可同時對多個變量賦初值及修改。如:for(i=0, j=1; j<n && i<n; i+, j+)   (4)for語句中三個表達式可?。豪?.5 編寫程序,求1+2+3+100.#include<stdio.h>void main( ) int i,sum;sum=0; for(i=1;i<=100;i+) sum+=i; printf(“sum=%dn”,sum);例5.6 編寫程序,計算半徑為0.5m

42、m、1.0mm、1.5mm、2.0mm、2.5mm時的圓的面積。#include<stdio.h>void main() doulde r , s , pi=3.1416;for(r=0.5;r = <2.5;r+=0.5) s=pi*r*r; printf(“r=%3.1f s=%fn”,r ,s );(五)、幾種循環(huán)的比較 (1)可以相互代替使用 (2)while, do-while循環(huán),在while后面指定循環(huán)條件,在循環(huán)體中應包含使循環(huán)趨向于結束的語句 (3)凡是在while中能完成的,在for 語句中也能完成。教學內容及過程設計 (六)、循環(huán)結構的嵌套 在一個循環(huán)體

43、內又完整地包含了另一個循環(huán),稱為循環(huán)嵌套。 例5.7 使用雙層for循環(huán)打印如下由星號組成的倒三角形圖形: * * * *#include<stdio.h>void main( ) int k , i , j; for( i =0;i<4;i+) for(k=1;k<=i;k+) printf (“ ”); for(j=0;j<7-i*2;j+) printf(“ * ”); printf(“n”);例5.8 編寫程序,找出2100以內的所有質數(素數)。#include<stdio.h>void main( ) int k , i , tag;pri

44、ntf(“2,”);for(i=3;i<=100;i+=2)tag = 0; for(k=2;tag=0&&k<sqrt(i);k+) if(i%k=0) tag=1; if(tag=0) printf(“%d,”,i); (七)、break和continue語句在循環(huán)體中的作用(1)break語句:可以用于switch語句中,也可以用于循環(huán)語句中,當用于循環(huán)語句中時,用于在滿足條件情況下,跳出本層循環(huán)。(2)continue語句:用于循環(huán)語句中,在滿足條件情況下,跳出本次循環(huán)。即跳過本次循環(huán)體中下面尚未執(zhí)行的語句,接著進行下一次的循環(huán)判斷。例5.9 求s=1+2+

45、3+i,直到s大于5000為止,并給出s和i的值。#include<stdio.h>void main( ) int i , s;s=0;for( i = 1;i+) s=s+i; if(s>5000) break;printf(“s=%d,i=%dn”,s,i);教學內容及過程設計例5.10 在循環(huán)體中continue語句執(zhí)行示例。#include<stdio.h>void main( ) int k=0,s=0,i;for(i=1;i< =5;i+) s=s+i;if(s>5) printf(“* * * *i = %d,k = %dn”,i ,s

46、 ,k ); continue; k = k + s;printf(“i=%d,s=%d,k=%dn”,i,s,k); (八)、程序舉例例5.11 從輸出的若干大于零的正整數中選出最大值,用-1結束輸入。#include<stdio.h>void main( ) int x,max;printf(“Enter -1 to end:n”);do printf(“Enter x:”); scanf(“% d”,&x);while(x<0&& x! = - 1);max= x;while(x!= - 1) printf(“Enter x:”);scanf(“%d”,&x);if (x > 0&& x >max ) max=x; if(max!= - 1) printf(“max = %dn”,max);例5.12 用迭代法求某個數a的平方根。已知求平方根的迭代公式為:#include<stdi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論