02用C語言編寫程序_第1頁
02用C語言編寫程序_第2頁
02用C語言編寫程序_第3頁
02用C語言編寫程序_第4頁
02用C語言編寫程序_第5頁
已閱讀5頁,還剩74頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第二章 用C語言編寫程序 2.1 在屏幕上顯示 Hello World!2.2 求華氏溫度 100F 對(duì)應(yīng)的攝氏溫度2.3 計(jì)算分段函數(shù)2.4 輸出華氏攝氏溫度轉(zhuǎn)換表2.5 生成乘方表與階乘表 本章要點(diǎn)怎樣編寫程序,在屏幕上顯示一些信息?怎樣編寫程序,實(shí)現(xiàn)簡單的數(shù)據(jù)處理,例如將華氏溫度轉(zhuǎn)換為攝氏溫度?怎樣使用 if 語句計(jì)算分段函數(shù)?怎樣用 for 語句求 1+2+100?如何定義和調(diào)用函數(shù)生成一張乘方表?2.1 在屏幕上顯示Hello World! 例: 在屏幕上顯示一個(gè)短句:(Ex2-1) Hello World!/* 顯示“Hello World! */# include void ma

2、in( ) printf(Hello World! n); 1. 任何程序都有主函數(shù)2. 程序由假設(shè)干語句組成3. 語句由“ ;結(jié)束注釋文本主函數(shù)語句結(jié)束輸出函數(shù)換行符# include void main( ) printf(Programming is fun! n); printf(And Programming in C is even more fun! n);例: 在屏幕上顯示:(Ex2-2) Programming is fun! And Programming in C is even more fun!編譯預(yù)處理命令2.2 求華氏溫度 100F 對(duì)應(yīng)的攝氏溫度 攝氏溫度C與華

3、氏溫度F 的 對(duì)應(yīng)關(guān)系: C=(5/9)(F-32)例:求華氏溫度 100F 對(duì)應(yīng)的攝氏溫度。(Ex2-3) 攝氏溫度 C=(5/9)(F-32) #include void main( ) int celsius, fahr; fahr = 100; celsius = 5 * (fahr - 32) / 9; printf(fahr = %d, celsius = %dn, fahr, celsius); 輸出:fahr = 100, celsius = 37一. 程序解析變量定義變量使用輸出結(jié)果二. 常量、變量和數(shù)據(jù)類型int celsius, fahr; celsius = 5 * (

4、fahr - 32) / 9;數(shù)據(jù)常量:在程序運(yùn)行過程中,其值不能被改變變量:在程序運(yùn)行過程中,其值可以被改變數(shù)據(jù)類型常量:5 和 9是整型常量整數(shù)變量:在定義時(shí)指定注意:變量名通常用小寫字母;取名一般見名知義1. 變量的定義變量定義的一般形式:類型名 變量名表;例如:int celsius, fahr; 定義整型變量char c; 定義字符型變量float x; 定義單精度浮點(diǎn)型變量double area, length; 定義雙精度浮點(diǎn)型變量 ( double 型數(shù)據(jù)比 float 精度高,取值范圍大 )說明:1. 定義變量時(shí)要指定變量名和數(shù)據(jù)類型 類型名 變量名表; int celsiu

5、s, fahr; float x;double area, length;2. 變量名代表內(nèi)存中的一個(gè)存儲(chǔ)單元 單元中存放該變量的值 該存儲(chǔ)單元的大小由變量的數(shù)據(jù)類型決定3. C語言中的變量代表保存數(shù)據(jù)的存儲(chǔ)單元 而數(shù)學(xué)中的變量代表未知數(shù) 如:x = x+1#include void main( ) int celsius, fahr; fahr = 100; celsius = 5 * (fahr - 32) / 9; printf(fahr = %d, celsius = %dn, fahr, celsius); 注意:一個(gè)變量名只能定義一次。 變量一般都定義在程序的頭上, 不能定義在程序

6、的中間或后面。應(yīng)該先賦值,后引用2. 變量的引用變量必須先定義,后使用。三. 算術(shù)運(yùn)算和賦值運(yùn)算fahr = 100; celsius = 5 * (fahr - 32) / 9;1. 算術(shù)運(yùn)算雙目算術(shù)運(yùn)算符:+ - * / %算術(shù)表達(dá)式:用算術(shù)運(yùn)算符將運(yùn)算對(duì)象連接起來的符合C語言語法規(guī)那么的式子數(shù)學(xué)式:(5/9)(F-32)C表達(dá)式:5 * (fahr - 32) / 9數(shù)學(xué)式:s(s-a)(s-b)(s-c)C表達(dá)式: s*(s-a)*(s-b)*(s-c)例如:注意:(1) / 整數(shù)除整數(shù),得整數(shù)如:1/2 0,9/4 25 * (fahr - 32) / 9 ? 5 / 9 * (fa

7、hr - 32) ?(2) % 只能用于整型數(shù)據(jù)如: 565,941,10040(3) 雙目運(yùn)算符兩側(cè)操作數(shù)的類型要相同注意:“= 的左邊必須是一個(gè)變量2. 賦值運(yùn)算賦值運(yùn)算符: =賦值表達(dá)式:用 = 將一個(gè)變量和一個(gè)表達(dá)式連接起來的式子 變量 = 表達(dá)式例如:fahr = 100; celsius = 5 * (fahr - 32) / 9;計(jì)算賦值運(yùn)算符右側(cè)表達(dá)式的值將賦值運(yùn)算符右側(cè)表達(dá)式的值賦給左側(cè)的變量賦值表達(dá)式的值就是左側(cè)被賦值的變量的值 printf(格式控制字符串, 輸出參數(shù)1, , 輸出參數(shù)n);用雙引號(hào)括起來,表示輸出的格式要輸出的數(shù)據(jù)四. 格式化輸出函數(shù)printf()數(shù)據(jù)

8、輸出可以用格式化輸出函數(shù) printf()#include printf(Hello World! n); printf(fahr = %d, celsius = %dn, fahr, celsius);printf()函數(shù)格式:輸出:fahr = 100, celsius = 37printf(Hello World! n); printf(fahr = %d, celsius = %dn, fahr, celsius);printf(Hin, fahr);格式控制字符串:普通字符:原樣輸出格式控制說明:按指定的格式輸出數(shù)據(jù),%與數(shù)據(jù)類型有關(guān)int型 :%dchar型 :%cfloat型、

9、double型:%fprintf(fahr = %d, celsius = %dn, fahr, celsius);輸出參數(shù)格式說明a=3;b=4;printf(%d%d, a,b); 輸出:可見,雙引號(hào)中的字符除了格式說明的字符外,其它非格式說明的普通字符按原樣輸出。例如:printf(a=%d,b=%d,a,b);輸出:34a=3,b=4例如: int a=5;char c=A; float x=123.456;printf (%d,%4d,%-4d,a,a,a);5 , 5 , 5 ,printf (%c,c);Aprintf (%f,x);1 2 3 . 4 5 6 0 0 0prin

10、tf (%8.2f,x); 1 2 3 . 4 6printf (%s,%4.2s,abcd,abcd);a b c d , a b1. printf 函數(shù)的格式控制字符串中可以包含轉(zhuǎn)義字符注意:2. 用在 % 后面的格式字符才是格式控制符3. 兩個(gè)連續(xù)的 % 用來輸出字符 “ % a=5;printf (result:n%d,a);5r e s u l t :b=10;printf (b=%d%,b);b = 1 0 %執(zhí)行語句 printf (“ _, 2); 將得到出錯(cuò)信息A%d B%o C%x D%fprintf(“%d %d%s, 123, “123); 輸出是 : A%123%d1

11、23 B %d123123 C%d123123 D ) 上述語句語法有錯(cuò)2.3 計(jì)算分段函數(shù) 一. 程序解析例1:輸入x,求分段函數(shù) f(x) 的值,保存2位小數(shù)。 ex x1f(x) = x2-1 x1要解決的問題:輸入計(jì)算分段函數(shù)求ex輸出,并保存2位小數(shù)#include # include void main( ) float x, y; printf(input x: n); /* 輸入提示 */ scanf(%f, &x); /* 調(diào)用scanf()函數(shù)輸入數(shù)據(jù) */ if(x = 1) /* if else語句 */ y = exp(x); /* 調(diào)用指數(shù)函數(shù)exp(x) 計(jì)算ex

12、 */ else y = x * x -1; printf(f(%f) = %.2fn, x, y); input x:0.5f(0.500000)=1.65input x:2.4f(2.400000)=4.76源程序:數(shù)據(jù)必須輸入嗎?注意區(qū)分 = 和=二. 關(guān)系運(yùn)算 x = 1比較 x 和 1 的大小比較的結(jié)果:真 假當(dāng) x 取值0.5時(shí), x = 1的結(jié)果是:?當(dāng) x 取值1.5時(shí), x = 1的結(jié)果是:?關(guān)系運(yùn)算:比較運(yùn)算,比較兩個(gè)操作數(shù)關(guān)系運(yùn)算符:x y x y x = y x != y關(guān)系表達(dá)式:用關(guān)系運(yùn)算符將2個(gè)表達(dá)式連接起來的式子。 如:x = 1=!=- 小于- 小于或等于-

13、大于- 大于或等于- 等于- 不等于優(yōu)先級(jí)結(jié)合方向優(yōu)先級(jí)相同優(yōu)先級(jí)相同高低從左向右關(guān)系運(yùn)算符與其它運(yùn)算符的優(yōu)先次序:低于算術(shù)運(yùn)算符、高于賦值運(yùn)算符如: c a+b - c (a+b) c = a b - c = (ab)算術(shù)運(yùn)算符關(guān)系運(yùn)算符賦值運(yùn)算符關(guān)系運(yùn)算符的優(yōu)先級(jí)和結(jié)合方向表示比較的數(shù)學(xué)式 C關(guān)系表達(dá)式x10 x10 x10 x = 10 x = 10 x != 10 x = 10判斷 x 是否為負(fù)數(shù) x 0判斷 x 是否不為零 x != 0運(yùn)用關(guān)系表達(dá)式:用關(guān)系表達(dá)式描述條件關(guān)系表達(dá)式的值是一個(gè)邏輯值, 即“真或“假C語言中以 1 代表“真, 以 0 代表“假例如: int i,j,k;

14、 i=1; j=2; k=-7;關(guān)系表達(dá)式 值k=j-9=i1因此, C語言中關(guān)系表達(dá)式的結(jié)果是 int 類型的 1 或 0ij3j511注意:關(guān)系表達(dá)式只能比較兩個(gè)量之間的關(guān)系, 假設(shè)要表達(dá)三個(gè)量之間的關(guān)系必須使用邏輯表達(dá)式因?yàn)?0 x 的值不是0就是1,總是10所以 不管x的值是什么,0 x10的值總是 1表達(dá)式 0 x0且x10時(shí) 表達(dá)式為 1 D) 當(dāng) x0 或 x0 時(shí) 表達(dá)式為 0if (表達(dá)式) 語句1else 語句2if(x =b ) k=0; else k=1; 上述 if 語句等價(jià)于 Ak=(a=b)?1:0 B ) k=a=b C ) k=ab D ) 以上均不是例2:輸

15、入x,求分段函數(shù) f(x) 的值,保存1位小數(shù)。 1/x x 0f(x) = 0 x = 0要解決的問題:輸入計(jì)算分段函數(shù) 輸出,并保存1位小數(shù) if(x != 0) y = 1/x;else y = 0;if (表達(dá)式) 語句1else 語句2#include /* 例2*/void main( ) float x, y; printf(input x: n); scanf(%f, &x); if(x != 0) y = 1/x; else y = 0; printf(f(%.2f) = %.1fn, x, y); #include /* 例1*/# include void main( )

16、 float x, y; printf(input x: n); scanf(%f, &x); if(x = 1) y = exp(x); else y = x * x -1; printf(f(%f) = %.2fn, x, y); 程序參考例1編寫:#include /* 例2*/void main( ) float x, y; printf(input x: n); scanf(%f, &x); if(x != 0) y = 1/x; else y = 0; printf(f(%.2f) = %.1fn, x, y); input x:2.5f(2.50)=0.4input x:0f(0

17、.00)=0.0例2的運(yùn)行結(jié)果:double x,y; ?scanf(%lf, &x);軟件測試時(shí), 精心設(shè)計(jì)一批測試用例輸入數(shù)據(jù),預(yù)期輸出結(jié)果 ,然后分別用這些測試用例運(yùn)行程序,看程序的實(shí)際運(yùn)行結(jié)果與預(yù)期輸出結(jié)果是否一致。input x:2.5f(2.50)=0.4input x:0f(0.00)=0.0if(x != 0) y = 1/x;else y = 0;if(x = 1) y = exp(x);else y = x * x -1;input x:0.5f(0.500000)=1.65input x:2.4f(2.400000)=4.76軟件測試的根本思想:用雙引號(hào)括起來,表示輸入的

18、格式變量地址四. 格式化輸入函數(shù)scanf()數(shù)據(jù)輸入可以用格式化輸入函數(shù) scanf()#include scanf(%f, &x);scanf(格式控制字符串, 輸入?yún)?shù)1, , 輸入?yún)?shù)n);scanf()函數(shù)格式:格式控制字符串包括兩局部內(nèi)容:格式控制說明:按指定的格式輸入數(shù)據(jù),%與數(shù)據(jù)類型有關(guān),如:int型 :%dfloat型:%fdouble型:%lfchar型: %c普通字符:原樣輸入輸入: 2.5scanf(x=%f, &x);輸入: x=2.5盡量不要出現(xiàn)普通字符scanf()函數(shù)的格式控制字符串:例如:scanf(%f, &x);注意:1. scanf函數(shù)中使用的是變量的地

19、址,而不是變量名2. 如果在“格式控制中包含了其它字符, 輸入時(shí)必須在相應(yīng)位置輸入這些字符。 如果包含了附加格式說明符“*, 表示該讀入項(xiàng)不賦給相應(yīng)的變量。scanf(%d,%d%d%*d%d,&a,&b,&c,&d);輸入:1,2 3 4 5以一個(gè)或多個(gè)空格分隔或者以回車鍵或 tab 鍵分隔結(jié)果:a=1 b=2 c=3 d=?53. 用 %c 輸入字符時(shí),所有字符(包括空格和轉(zhuǎn)義字符) 都是有效輸入scanf(%c%c%c,&c1,&c2,&c3);輸入:a b c結(jié)果:輸入:abc結(jié)果:c1=a c2=(空格) c3=bc1=a c2=b c3=c4. 可以用域?qū)拋碇付ㄝ斎霐?shù)據(jù)的所占的列數(shù)

20、,由系統(tǒng)自動(dòng)按 域?qū)拋斫厝∷璧臄?shù)據(jù),但是輸入數(shù)據(jù)時(shí)不能規(guī)定精度。scanf(%3d%3c,&a,&c);a=123 c=4輸入:12345A?scanf(%5.2f,&x);以下表達(dá)中正確的選項(xiàng)是 A) 輸入項(xiàng)可以是一個(gè)實(shí)型常量,如 scanf(“%f, 3.5); B) 只有格式控制,沒有輸入項(xiàng),也能正確輸入數(shù)據(jù)到內(nèi)存, 例如 scanf(“a=%d, b=%d ); C) 當(dāng)輸入一個(gè)實(shí)型數(shù)據(jù)時(shí),格式控制局部可以規(guī)定小數(shù)點(diǎn)的位數(shù)。 例如 scanf(“%4.2f , &f ); D) 當(dāng)輸入數(shù)據(jù)時(shí), 必須指明變量地址 例如 scanf(“%f , &f );對(duì)于 int i, j; cha

21、r c; 當(dāng)輸入序列為1dc2 3 4時(shí),執(zhí)行語句 scanf(“%dd%c%*d%*d%d,&i,&c,&j); 后 i, j, c 的值分別為:A1 2 d B1 2 c C1 4 d D1 4 c int a, b;scanf ( a=%d, b=%d, &a, &b );a,b 輸入都是10,那么正確的輸入是 。A、10 10 B、10, 10 C、a=10 b=10 D、a=10, b=10int a;float c;那么以下哪個(gè)輸入語句是錯(cuò)誤的 A、scanf (%d, %f, &a, &c); B、scanf (a=%d, c=%f, &a, &c); C、scanf (%d %

22、f, &a, &c); D、scanf (%d %f, a, c);假設(shè)變量已正確定義,執(zhí)行語句scanf ( “%d%d%d , &k1, &k2, &k3 );_ 是正確的輸入。 A203040 B20 30 40 C20, 30 40 D20, 30,40例:“求華氏溫度 100F 對(duì)應(yīng)的攝氏溫度程序的改進(jìn)。 攝氏溫度 C=(5/9)(F-32) #include void main( ) int celsius, fahr; fahr = 100; celsius = 5 * (fahr - 32) / 9; printf(fahr = %d, celsius = %dn, fahr,

23、 celsius); scanf(%d, &fahr);printf(input fahr: n);input fahr:100fahr = 100, celsius = 37五. 常用數(shù)學(xué)庫函數(shù)庫函數(shù):C語言處理系統(tǒng)提供事先編好的函數(shù),供用戶在編程時(shí)調(diào)用。如:scanf(), printf(), exp()在相應(yīng)的系統(tǒng)文件頭文件中定義一些必需的信息,用戶調(diào)用庫函數(shù)時(shí),用#include命令將相應(yīng)的頭文件包含到源程序中。例如調(diào)用scanf(), printf(),需要 #include 調(diào)用exp(),需要 #include 平方根函數(shù) sqrt(x) 絕對(duì)值函數(shù) fabs(x)fabs(-3

24、.56) 的值為3.56冪函數(shù) pow(x, n) :xnpow(1.1, 2) 的值為1.21即1.12指數(shù)函數(shù) exp(x):exexp(2.3) 的值為e2.3以e為底的對(duì)數(shù)函數(shù) log(x):ln xlog(123.45) 的值為4.815836以10為底的對(duì)數(shù)函數(shù) log10(x):log10 xlog10(123.45) 的值為2.091491。 常用數(shù)學(xué)庫函數(shù):輸入存款金額 money、存期 year 和年利率 rate,根據(jù)公式計(jì)算存款到期時(shí)的本息合計(jì)sum稅前,輸出時(shí)保存2位小數(shù)。 sum = money ( 1 + rate)yearsum = money * pow(1

25、+ rate), year)例:計(jì)算存款的本息C表達(dá)式:# include # include void main( ) int money, year; double rate, sum; printf(input money, year and rate: n); scanf(%d%d%lf, &money, &year, &rate); sum = money * pow(1 + rate), year); printf(sum = %.2f, sum);input money, year and rate: 1000 3 0.025sum = 1076.89程序:scanf(%d%lf

26、%d , &money, &rate , &year);如何輸入?調(diào)用scanf函數(shù)輸入多個(gè)數(shù)據(jù):scanf(%d%d%lf, &money, &year, &rate); 輸入:1000 3 0.025用scanf函數(shù)輸入多個(gè)數(shù)據(jù)時(shí)需要多個(gè)輸入?yún)?shù)和多個(gè)格式控制說明輸入?yún)?shù)的類型、個(gè)數(shù)和位置要與格式控制說明一一對(duì)應(yīng)? scanf(%d%lf%d , &money, &year, &rate);程序運(yùn)行時(shí),輸入的多個(gè)數(shù)據(jù)之間必須有間隔。例:輸出一張華氏攝氏溫度轉(zhuǎn)換表,將華氏溫度從 3040F 之間的每一度,分別轉(zhuǎn)換成相應(yīng)的攝氏溫度并輸出。一. 程序解析fahr celsius 30 -1.1

27、31 -0.6 32 0.0 33 0.6 34 1.1 35 1.7 36 2.2 37 2.8 38 3.3 39 3.9 40 4.42.4 輸出華氏攝氏溫度轉(zhuǎn)換表#include void main( ) int fahr, lower, upper; double celsius; lower = 30; upper = 40; printf(fahr celsiusn);/*溫度轉(zhuǎn)換規(guī)那么:華氏溫度從lower到upper,每次增加1F*/ for (fahr = lower; fahr = upper; fahr +) celsius = (5.0 / 9.0) * (fahr

28、- 32.0); printf(%d %6.1fn, fahr, celsius); fahr celsius 30 -1.1 31 -0.6 32 0.0 33 0.6 34 1.1 35 1.7 36 2.2 37 2.8 38 3.3 39 3.9 40 4.4fahr = fahr+1程序:例題中for語句的流程:for (fahr = lower; fahr = upper; fahr +) celsius = (5.0 / 9.0) * (fahr - 32.0); printf(%d %6.1fn, fahr, celsius); fahr celsius 30 -1.1 31

29、-0.6 32 0.0 33 0.6 34 1.1 35 1.7 36 2.2 37 2.8 38 3.3 39 3.9 40 4.4fahr = fahr+2輸出?for (表達(dá)式1;表達(dá)式2;表達(dá)式3) 循環(huán)體語句特征:3個(gè)表達(dá)式1條循環(huán)體語句二. for語句 循環(huán)語句作用:實(shí)現(xiàn)C語句的重復(fù)執(zhí)行 for語句的下一條語句 求解表達(dá)式1表達(dá)式2語句 求解表達(dá)式3真假執(zhí)行過程:1. 求解表達(dá)式12. 求解表達(dá)式2,如果值為真(非0), 那么執(zhí)行語句局部 如果值為假( 0 ),那么結(jié)束循環(huán)3. 當(dāng)表達(dá)式2為真時(shí), 在執(zhí)行了“語句局部后, 求解表達(dá)式34. 轉(zhuǎn)到第2步繼續(xù)執(zhí)行for ( 表達(dá)式1;表

30、達(dá)式2;表達(dá)式3 ) 循環(huán)體語句for 語句最常用的形式: for (循環(huán)變量賦初值; 循環(huán)結(jié)束條件; 循環(huán)變量增值) 循環(huán)體語句for ( fahr = lower; fahr = upper; fahr +) celsius = (5.0 / 9.0) * (fahr - 32.0); printf(%d %6.1fn, fahr, celsius); 賦初值判斷其值改變其值for語句中的循環(huán)變量循環(huán)(控制)變量:for語句中,通過改變或判斷某個(gè)變量的值來控制循環(huán)的執(zhí)行for ( fahr = lower; fahr = upper; fahr +) celsius = (5.0 / 9.

31、0) * (fahr - 32.0); printf(%d %6.1fn, fahr, celsius); 表達(dá)式1:給循環(huán)變量賦初值,指定循環(huán)的起點(diǎn)。fahr = lower表達(dá)式2:給出循環(huán)的條件,決定循環(huán)的繼續(xù)或結(jié)束。fahr = upper表達(dá)式3:設(shè)置循環(huán)的步長,改變循環(huán)變量的值,從而可改變表達(dá)式2的真假性。fahr+循環(huán)體語句:被反復(fù)執(zhí)行的語句,一條語句。for語句的說明注意:1. 當(dāng)循環(huán)變量在 for 語句之前已經(jīng)賦初值, 那么for 語句 中的“表達(dá)式1 ,可以省略,但是;不能省略2. 如果“表達(dá)式2 省略,那么循環(huán)無法終止(死循環(huán))3. 如果“表達(dá)式3省略,那么程序中必須要有

32、保證 循環(huán)能正常結(jié)束的措施4. 如果三個(gè)表達(dá)式都省略,那么循環(huán)無法終止(死循環(huán))5. “表達(dá)式1 既可以是設(shè)置循環(huán)變量初值,也可以是其它表達(dá)式 “表達(dá)式1和“表達(dá)式3可以是一個(gè)簡單的表達(dá)式, 也可以是逗號(hào)表達(dá)式例如: for ( i=0, j=100 ; i=j; i+, j- ) k=i+j;6. “表達(dá)式2一般是關(guān)系表達(dá)式或邏輯表達(dá)式,但也可以 是數(shù)值表達(dá)式或字符表達(dá)式,只要其值為非0,就執(zhí)行循環(huán)體for ( 表達(dá)式1 ; 表達(dá)式2 ; 表達(dá)式3 ) 語句for (fahr = lower; fahr = upper; fahr +) celsius = (5.0 / 9.0) * (fa

33、hr - 32.0); printf(%d %6.1fn, fahr, celsius); for (fahr = lower ; fahr = upper; fahr = fahr + 1) celsius = (5.0 / 9.0) * (fahr - 32.0); printf(%d %6.1fn, fahr, celsius); for (fahr = lower ; fahr = upper; fahr = fahr + 1) ; celsius = (5.0 / 9.0) * (fahr - 32.0); printf(%d %6.1fn, fahr, celsius); 注意:不

34、要在 for 語句中隨意加分號(hào)復(fù)合語句 和空語句 ;?分析:抽取具有共性的算式:sum = sum + i sum初值為0,該算式重復(fù)100次,i 從1變到100設(shè) i 為循環(huán)變量,那么:指定循環(huán)起點(diǎn)的表達(dá)式1:i = 1給出循環(huán)條件的表達(dá)式2:i = 100設(shè)置循環(huán)步長的表達(dá)式3:i+循環(huán)體語句:sum = sum + i;for(i=1; i=100; i+)sum =sum+i;例:求 1+2+100/* 計(jì)算1 + 2 + 3 + + 100 */#include void main( ) int i, sum; sum = 0; /* 置累加和sum的初值為0 */ for ( i

35、= 1; i = 100; i+ ) /* 循環(huán)重復(fù)100次 */ sum = sum + i; /* 反復(fù)累加 */ printf( “sum = %dn, sum); /* 輸出累加和 */for(i=1; i=100; i+) sum=0; sum=sum+i;sum=5050 sum= ?源程序:#include void main( ) int i, sum; sum = 0; for ( i = 1; i = 100; i+ ) sum = sum + i; printf( “sum = %dn, sum); for(i=1; i=100; i+) sum=sum+1.0/i;in

36、t i;double sum;printf( “sum = %fn, sum);例:求 1+1/2+1/3+ 1/100在1 + 2 + 3 + + 100的根底上編寫初始化:指定循環(huán)起點(diǎn)給循環(huán)變量賦初值,如i = 1;進(jìn)入循環(huán)之前,設(shè)置相關(guān)變量的初值,如 sum = 0;條件控制:只要i 100,循環(huán)結(jié)束三. 指定次數(shù)的循環(huán)程序設(shè)計(jì)指定次數(shù)的循環(huán)程序設(shè)計(jì)應(yīng)該包含四個(gè)局部:以 1+2+100為例for ( i=0, j=5; i != j; ) printf ( “%d %d, i, j ); i=i+1; j=j-1; 循環(huán)執(zhí)行次數(shù) A 6次 B3次 C0次 D無限次 用 for 循環(huán)打印

37、0 1 2 0 1 2 0 1 2 for ( i=1; i=9 ; i+ ) printf (“ % 2d , ); 1. ( i+2 ) % 3 或 2. ( i-1 ) % 3#include void main( ) int i, sum; sum = 0; for ( i = 1; i = 100; i+ ) sum = sum + i; printf( “sum = %dn, sum);for(i=1; i=n; i+) sum=sum+i;printf(input n: n); scanf(%d, &n); 例:求 1+2+3+n分析:輸入一個(gè)正整數(shù)n,求前n項(xiàng)和,即循環(huán)n次/*

38、 1+2+3+n 程序*/#include void main( ) int i, sum; printf(input n: n); scanf(%d, &n); sum = 0; for ( i = 1; i = n; i+ ) sum = sum + i; printf( “sum = %dn, sum);/*1+1/2+1/3+ 1/n 程序*/#include void main( ) int i; double sum; printf(input n: n); scanf(%d, &n); sum = 0; for ( i = 1; i = n; i+ ) sum = sum + 1

39、.0 / i ; printf( “sum = %fn, sum);例:求1+1/2+1/3+ 1/n注意:1.0 / i求前n項(xiàng)和,即循環(huán)n次,每次累加1項(xiàng)。for (i = 1; i = n ; i+) sum = sum + item (第i項(xiàng))item = 1.0 / (2 * i - 1)例:求 1+1/3+1/5+ 的前n項(xiàng)和#include void main( ) int i, n; double item, sum; printf(input n: n); scanf (%d, &n);sum = 0 ; for ( i = 1; i = n; i+ ) item = 1.0

40、 / (2 * i - 1); sum = sum + item ; printf ( sum = %fn, sum);求前n項(xiàng)和,即循環(huán)n次,每次累加1項(xiàng)。for (i = 1; i = n ; i+) sum = sum + item (第i項(xiàng))item = flag * 1.0 / tt = t + 2flag = -flagitem = flag*1.0/(2 * i - 1)flag = -flag例:求 1-1/3+1/5- 的前n項(xiàng)和#include void main( ) int i, n; double item, sum; printf(input n: ); scanf

41、 (%d, &n);flag=1; t=1;sum = 0 ; for ( i = 1; i = n; i+ ) item = flag * 1.0/ t ; sum = sum + item ; flag=-flag; t=t+2; printf ( sum = %fn, sum);for (i = 1; i = n ; i+) product = product * item (第i項(xiàng)) item=iproduct初值 = ?例:求n! n! = 1*2*n#include void main( ) int i, n; double product; printf(input n: n);

42、 scanf (%d, &n) ; product=1; for ( i = 1; i = n; i+ ) product = product * i ; printf ( product = %.0fn, product ); 輸入實(shí)數(shù)x和正整數(shù)n,計(jì)算xn = x * x * * xfor (i = 1; i = n ; i+) power = power * item (第i項(xiàng))item=?例:求 xn#include void main( ) int i, n; double x, power ; printf(input x, n: n); scanf (%lf%d, &x, &n)

43、 ; power = 1; for ( i = 1; i = n; i+ ) power = power * x; printf( %0.fn, power);for (i = 0; i = n ; i+) power = pow(2, i); /*調(diào)用冪函數(shù)pow(2,i)計(jì)算2的i次方*/ 輸出power的值;一. 程序解析2.5 生成乘方表和階乘表例1:輸入一個(gè)正整數(shù)n,生成一張2的乘方表,輸出20到2n的值,可以調(diào)用冪函數(shù)計(jì)算2的乘方。#include #include void main( ) int i, n; double power; printf(Enter n:); scanf(%d, &n); for (i = 0; i = n ; i+) power = pow(2, i); /* 調(diào)用冪函數(shù)pow(2,i)計(jì)算2的i次方 */ printf(pow(2,%d)= %.0fn, i, power); Enter n: 4pow(2,0)= 1pow(2,1)= 2pow(2,2)= 4pow(2,3)= 8pow(2,4)= 16 程序:for (i = 0; i = n ; i+) product = fact(i); /*

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論