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

下載本文檔

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

文檔簡介

1、Chap 2 用用C語言編寫程序語言編寫程序 2.1 在屏幕上顯示在屏幕上顯示 Hello World!2.2 求華氏溫度求華氏溫度 100F 對應(yīng)的攝氏溫度對應(yīng)的攝氏溫度2.3 計算分段函數(shù)計算分段函數(shù)2.4 輸出華氏輸出華氏攝氏溫度轉(zhuǎn)換表攝氏溫度轉(zhuǎn)換表2.5 生成乘方表與階乘表生成乘方表與階乘表 本章要點本章要點v怎樣編寫程序,在屏幕上顯示一些信息?怎樣編寫程序,在屏幕上顯示一些信息?v怎樣編寫程序,實現(xiàn)簡單的數(shù)據(jù)處理,例如怎樣編寫程序,實現(xiàn)簡單的數(shù)據(jù)處理,例如將華氏溫度轉(zhuǎn)換為攝氏溫度?將華氏溫度轉(zhuǎn)換為攝氏溫度?v怎樣使用怎樣使用 if 語句計算分段函數(shù)?語句計算分段函數(shù)?v怎樣用怎樣用

2、for 語句求語句求 1+2+100?v如何定義和調(diào)用函數(shù)生成一張乘方表?如何定義和調(diào)用函數(shù)生成一張乘方表?2.1 在屏幕上顯示在屏幕上顯示Hello World! 例例2-1 在屏幕上顯示一個短句在屏幕上顯示一個短句:Hello World!2.1 在屏幕上顯示在屏幕上顯示Hello World/* 顯示顯示“Hello World!” */ 注釋文本注釋文本 # include 編譯預(yù)處理命令編譯預(yù)處理命令,不加分號不加分號int main(void) 主函數(shù)主函數(shù) printf(“Hello World! n”); 語句結(jié)束語句結(jié)束 return 0; 輸出函數(shù)輸出函數(shù) 換行符換行符1.

3、任何程序都有主函數(shù)任何程序都有主函數(shù)2.程序由若干語句組成程序由若干語句組成3.語句由;結(jié)束語句由;結(jié)束2.1 在屏幕上顯示一些信息在屏幕上顯示一些信息例例2-2 在屏幕上顯示在屏幕上顯示:Programming is fun!And Programming in C is even more fun!# include 編譯預(yù)處理命令編譯預(yù)處理命令int main(void) printf(Programming is fun! n); printf(And Programming in C is even more fun! n); return 0; 2.2 求華氏溫度求華氏溫度 100

4、F 對應(yīng)的攝氏溫度對應(yīng)的攝氏溫度 攝氏溫度攝氏溫度 C=(5/9)(F-32)2.2.1 程序解析程序解析2.2.2 常量、變量和數(shù)據(jù)類型常量、變量和數(shù)據(jù)類型2.2.3 算術(shù)運(yùn)算和賦值運(yùn)算算術(shù)運(yùn)算和賦值運(yùn)算2.2.4 格式化輸出函數(shù)格式化輸出函數(shù)printf2.2.1 程序解析程序解析例例2-3 求華氏溫度求華氏溫度 100F 對應(yīng)的攝氏溫度。對應(yīng)的攝氏溫度。攝氏溫度攝氏溫度 C=(5/9)(F-32) #include int main(void) int celsius, fahr; 變量定義變量定義 fahr = 100; 變量使用變量使用 celsius = 5 * (fahr - 3

5、2) / 9; printf(fahr = %d, celsius = %dn, fahr, celsius);輸出結(jié)果輸出結(jié)果 return 0;輸出輸出: : fahr =100, celsius = 372.2.2 常量、變量和數(shù)據(jù)類型常量、變量和數(shù)據(jù)類型int celsius, fahr; celsius = 5 * (fahr - 32) / 9;v數(shù)據(jù)數(shù)據(jù)常量:在程序運(yùn)行過程中,其值不能被改變常量:在程序運(yùn)行過程中,其值不能被改變 變量:在程序運(yùn)行過程中,其值可以被改變變量:在程序運(yùn)行過程中,其值可以被改變 v數(shù)據(jù)類型數(shù)據(jù)類型常量:常量:5 和和 9是整型常量(整數(shù))是整型常量(整

6、數(shù))變量:在定義時指定變量:在定義時指定變量的定義變量的定義變量定義的一般形式:變量定義的一般形式:類型名類型名 變量名表;變量名表;例如:例如:int celsius, fahr; 定義整型變量定義整型變量float x; 定義單精度浮點型變量定義單精度浮點型變量double area, length; 定義雙精度浮點型變量定義雙精度浮點型變量double型數(shù)據(jù)比型數(shù)據(jù)比float精度高,取值范圍大精度高,取值范圍大 變量名:小寫字母;見名知義變量名:小寫字母;見名知義變量的定義變量的定義v定義變量時要指定變量名和數(shù)據(jù)類型定義變量時要指定變量名和數(shù)據(jù)類型類型名類型名 變量名表;變量名表;in

7、t celsius, fahr; float x;double area, length;v變量名代表內(nèi)存中的一個存儲單元變量名代表內(nèi)存中的一個存儲單元存放該變量的值存放該變量的值v該存儲單元的大小由變量的數(shù)據(jù)類型決定該存儲單元的大小由變量的數(shù)據(jù)類型決定vC語言中的變量代表保存數(shù)據(jù)的存儲單元語言中的變量代表保存數(shù)據(jù)的存儲單元v數(shù)學(xué)中的變量代表未知數(shù)數(shù)學(xué)中的變量代表未知數(shù) x = x+1變量的定義與使用變量的定義與使用變量必須先變量必須先定義定義,后,后使用使用。#include int main(void) int celsius, fahr; fahr = 100; celsius = 5

8、* (fahr - 32) / 9; printf(fahr = %d, celsius = %dn, fahr, celsius); return 0;一個變量名只能定義一次一個變量名只能定義一次變量一般都定義在程序的頭上變量一般都定義在程序的頭上不能不能定義在程序的中間或后面定義在程序的中間或后面應(yīng)該先賦值,后引用應(yīng)該先賦值,后引用2.2.3 算術(shù)運(yùn)算和賦值運(yùn)算算術(shù)運(yùn)算和賦值運(yùn)算fahr = 100; celsius = 5 * (fahr - 32) / 9; 1、算術(shù)運(yùn)算、算術(shù)運(yùn)算雙目算術(shù)運(yùn)算符:雙目算術(shù)運(yùn)算符:+ - * / %算術(shù)表達(dá)式:用算術(shù)表達(dá)式:用算術(shù)運(yùn)算符算術(shù)運(yùn)算符將將運(yùn)算

9、對象運(yùn)算對象連接起來的連接起來的符合符合C語言語法規(guī)則的式子語言語法規(guī)則的式子 數(shù)學(xué)式:數(shù)學(xué)式:(5/9)(F-32) C表達(dá)式:表達(dá)式:5 * (fahr - 32) / 9 或者:或者:數(shù)學(xué)式:數(shù)學(xué)式:s(s-a)(s-b)(s-c)C表達(dá)式:表達(dá)式:?算術(shù)運(yùn)算算術(shù)運(yùn)算雙目算術(shù)運(yùn)算符:雙目算術(shù)運(yùn)算符:+ - * / %算術(shù)表達(dá)式:用算術(shù)表達(dá)式:用算術(shù)運(yùn)算符算術(shù)運(yùn)算符將將運(yùn)算對象運(yùn)算對象連接起連接起來的符合來的符合C語言語法規(guī)則的式子語言語法規(guī)則的式子 注意注意v/ 整數(shù)除整數(shù),得整數(shù)整數(shù)除整數(shù),得整數(shù)如:如:1/2 0,9/4 2 ?5 * (fahr - 32) / 9 和和 5 / 9

10、 * (fahr - 32) 等價嗎等價嗎v% 針對整型數(shù)據(jù)針對整型數(shù)據(jù)如:如: 565,941,10040v雙目運(yùn)算符兩側(cè)操作數(shù)的類型要相同雙目運(yùn)算符兩側(cè)操作數(shù)的類型要相同賦值運(yùn)算賦值運(yùn)算v賦值運(yùn)算符賦值運(yùn)算符 =v賦值表達(dá)式:用賦值表達(dá)式:用 = 將一個將一個變量變量和一個和一個表達(dá)表達(dá)式式連接起來的式子連接起來的式子 變量變量 表達(dá)式表達(dá)式例如:例如:fahr = 100; celsius = 5 * (fahr - 32) / 9; 計算賦值運(yùn)算符右側(cè)計算賦值運(yùn)算符右側(cè)表達(dá)式表達(dá)式的值的值將賦值運(yùn)算符右側(cè)將賦值運(yùn)算符右側(cè)表達(dá)式表達(dá)式的值賦給左側(cè)的的值賦給左側(cè)的變量變量的左邊必須是一個變

11、量的左邊必須是一個變量2.2.4 格式化輸出函數(shù)格式化輸出函數(shù)printf數(shù)據(jù)輸出:格式化輸出函數(shù)數(shù)據(jù)輸出:格式化輸出函數(shù) printf #include printf(Hello World! n);printf(fahr = %d, celsius = %dn, fahr, celsius);printf(格式控制字符串格式控制字符串, 輸出參數(shù)輸出參數(shù)1, , 輸出參數(shù)輸出參數(shù)n);用雙引號括起來,表示輸出的格式要輸出的數(shù)據(jù)printf格式控制字符串格式控制字符串printf(Hello World! n); printf(fahr = %d, celsius = %dn, fahr,

12、celsius);printf(Hin, fahr);格式控制字符串格式控制字符串:普通字符:原樣輸出普通字符:原樣輸出格式控制說明格式控制說明:按指定的格式輸出數(shù)據(jù)按指定的格式輸出數(shù)據(jù),%與數(shù)據(jù)類型有關(guān)與數(shù)據(jù)類型有關(guān)vint型型 :%dvfloat double型:型:%fprintf(fahr = %d, celsius = %dn, fahr, celsius);輸出輸出: :fahr =100, celsius = 372.3 計算分段函數(shù)計算分段函數(shù) 2.3.1 程序解析程序解析2.3.2 關(guān)系運(yùn)算關(guān)系運(yùn)算2.3.3 if-else語句語句2.3.4 格式化輸入函數(shù)格式化輸入函數(shù)sc

13、anf2.3.5 常用數(shù)學(xué)庫函數(shù)常用數(shù)學(xué)庫函數(shù)2.3.1 程序解析程序解析例例2-4 分段計算水費(fèi)分段計算水費(fèi)要解決的問題:要解決的問題:輸入輸入計算分段函數(shù)計算分段函數(shù)輸出,并保留輸出,并保留2位小數(shù)位小數(shù) 415( )32.510.515xxyf xxx求分段函數(shù) #include int main(void) double x, y; printf(Enter x (x=0):n); /* 輸入提示輸入提示 */ scanf(%lf, &x); /* 調(diào)用調(diào)用scanf函數(shù)輸入數(shù)據(jù)函數(shù)輸入數(shù)據(jù) */ if(x =0):9.5f(9.500000)=12.67Enter x (x=

14、0):15f(15.000000)=20.00數(shù)據(jù)必須輸入嗎?數(shù)據(jù)必須輸入嗎?Enter x (x=0):21.3f(21.300000)=42.752.3.2 關(guān)系運(yùn)算關(guān)系運(yùn)算x = 15比較比較 x 和和 15 的大小的大小比較的結(jié)果:真比較的結(jié)果:真 假假當(dāng)當(dāng) x 取值取值9.5時,時, x = 15的結(jié)果是:?的結(jié)果是:?當(dāng)當(dāng) x 取值取值21.3時,時, x = 15的結(jié)果是:?的結(jié)果是:? 關(guān)系運(yùn)算關(guān)系運(yùn)算 比較運(yùn)算,比較兩個操作數(shù)比較運(yùn)算,比較兩個操作數(shù)v關(guān)系運(yùn)算符關(guān)系運(yùn)算符x y x y x = y x != yv關(guān)系表達(dá)式:用關(guān)系表達(dá)式:用關(guān)系運(yùn)算符關(guān)系運(yùn)算符將將2個個表達(dá)式

15、表達(dá)式連接起來的連接起來的式子。式子。如:如:x = 1區(qū)分區(qū)分= 和和=運(yùn)用關(guān)系表達(dá)式運(yùn)用關(guān)系表達(dá)式表示比較的數(shù)學(xué)式表示比較的數(shù)學(xué)式 C關(guān)系表達(dá)式關(guān)系表達(dá)式x10 x10 x10 x = 10 x = 10 x != 10 x = 10用關(guān)系表達(dá)式描述條件用關(guān)系表達(dá)式描述條件判斷判斷 x 是否為負(fù)數(shù)是否為負(fù)數(shù)x 0判斷判斷 x 是否不為零是否不為零x != 02.3.3 if - else語句語句if (表達(dá)式表達(dá)式) 語句語句1else 語句語句2if(x = 15) y = 4 * x / 3; else y = 2.5 * x - 10.5;語句語句1表達(dá)式表達(dá)式語句語句2真真假假計算

16、二分段函數(shù)計算二分段函數(shù) if (表達(dá)式表達(dá)式) 語句語句1else 語句語句2if(x != 0) y = 1/x;else y = 0;10( )00 xf xxx源程序源程序#include int main(void) double x, y; printf(Enter x:n); scanf(%lf, &x); if(x != 0) y = 1/x; else y = 0; printf(f(%.2f) = %.1fn, x, y); return 0;#include /*例例2-4 */int main(void) double x, y; printf(Enter x

17、(x=0):n); scanf(%lf, &x); if(x = 15) y = 4 * x / 3; else y = 2.5 * x - 10.5; printf(f(%f) = %.2fn, x, y); return 0;運(yùn)行結(jié)果運(yùn)行結(jié)果#include int main(void) double x, y; printf(Enter x:n); scanf(%lf, &x); if(x != 0) y = 1/x; else y = 0; printf(f(%.2f) = %.1fn, x, y); return 0;input x:2.5f(2.50)=0.4inp

18、ut x:0f(0.00)=0.0軟件測試的基本思想軟件測試的基本思想 軟件測試軟件測試精心設(shè)計一批精心設(shè)計一批測試用例測試用例 輸入數(shù)據(jù),預(yù)期輸出結(jié)果輸入數(shù)據(jù),預(yù)期輸出結(jié)果 ,然后分,然后分別用這些測試用例運(yùn)行程序,看程序的實際運(yùn)行結(jié)果與預(yù)期輸別用這些測試用例運(yùn)行程序,看程序的實際運(yùn)行結(jié)果與預(yù)期輸出結(jié)果是否一致。出結(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 =0):9.5f(9.500000)=12.67Enter x (x=0):15f(15.000000)=20.0

19、0Enter x (x=0):21.3f(21.300000)=42.752.3.4 格式化輸入函數(shù)格式化輸入函數(shù)scanf數(shù)據(jù)輸入:格式化輸入函數(shù)數(shù)據(jù)輸入:格式化輸入函數(shù) scanf #include scanf(%lf, &x);scanf(格式控制字符串格式控制字符串, 輸入?yún)?shù)輸入?yún)?shù)1, , 輸入?yún)?shù)輸入?yún)?shù)n);用雙引號括起來,表示輸入的格式用雙引號括起來,表示輸入的格式變量地址變量地址scanf格式控制字符串格式控制字符串格式控制字符串格式控制字符串:格式控制說明格式控制說明: 按指定的格式輸入數(shù)據(jù)按指定的格式輸入數(shù)據(jù), %與數(shù)據(jù)類型有關(guān)與數(shù)據(jù)類型有關(guān)vint型型 :%d

20、vfloat型:型:%fvdouble型:型:%lf普通字符:原樣輸入普通字符:原樣輸入例如:例如:scanf(%lf, &x);輸入輸入: : 9.5scanf(x=%lf, &x);輸入輸入: x=9.5盡量不要出現(xiàn)普通字符盡量不要出現(xiàn)普通字符改進(jìn)例改進(jìn)例2-3的程序的程序例例2-3 求華氏溫度求華氏溫度 100F 對應(yīng)的攝氏溫度。對應(yīng)的攝氏溫度。攝氏溫度攝氏溫度 C=(5/9)(F-32) #include int main(void) int celsius, fahr; fahr = 100; celsius = 5 * (fahr - 32) / 9; printf

21、(fahr = %d, celsius = %dn, fahr, celsius); return 0;scanf(%d, &fahr);printf(“Enter fahr: n);Enter fahr:100fahr =100, celsius = 372.3.5 常用數(shù)學(xué)庫函數(shù)常用數(shù)學(xué)庫函數(shù)v庫函數(shù)庫函數(shù)C語言處理系統(tǒng)提供事先編好的函數(shù),供用戶在語言處理系統(tǒng)提供事先編好的函數(shù),供用戶在編程時調(diào)用。編程時調(diào)用。scanf(), printf(), exp()在相應(yīng)的系統(tǒng)文件(頭文件)中定義一些必需的在相應(yīng)的系統(tǒng)文件(頭文件)中定義一些必需的信息。信息。v#include命令命令用戶

22、調(diào)用庫函數(shù)時,將相應(yīng)的頭文件包含到源程用戶調(diào)用庫函數(shù)時,將相應(yīng)的頭文件包含到源程序中。序中。例如例如調(diào)用調(diào)用scanf, printf,需要需要 #include 調(diào)用調(diào)用sqrt,需要需要 #include 常用數(shù)學(xué)庫函數(shù)常用數(shù)學(xué)庫函數(shù)v平方根函數(shù)平方根函數(shù) sqrt(x) v絕對值函數(shù)絕對值函數(shù) fabs(x)fabs(-3.56) 的值為的值為3.56v冪函數(shù)冪函數(shù) pow(x, n) :xnpow(1.1, 2) 的值為的值為1.21(即(即1.12)v指數(shù)函數(shù)指數(shù)函數(shù) exp(x):exexp(2.3) 的值為的值為e2.3v以以e為底的對數(shù)函數(shù)為底的對數(shù)函數(shù) log(x):ln x

23、log(123.45) 的值為的值為4.815836v以以10為底的對數(shù)函數(shù)為底的對數(shù)函數(shù) log10(x):log10 xlog10(123.45) 的值為的值為2.091491。 例例2-5 計算存款的本息計算存款的本息輸入存款金額輸入存款金額 money、存期存期 year 和年利率和年利率 rate,根據(jù)公式計算存款到期時的本息合計根據(jù)公式計算存款到期時的本息合計sum(稅前),輸出時保留稅前),輸出時保留2位小數(shù)。位小數(shù)。sum = money ( 1 + rate)yearsum = money * pow(1 + rate), year)例例2-5 程序程序# include #

24、 include int main(void) int money, year; double rate, sum; printf(“Enter money:); scanf(%d, &money); printf(“Enter year: ); scanf(%d, &year); printf(“Enter rate:); scanf(%lf, &rate); sum = money * pow(1 + rate), year); printf(sum = %.2f, sum); return 0;Enter money: 1000Enter year: 3Enter

25、 rate: 0.025sum = 1076.89scanf(%d%d%lf, &money, &year, &rate);調(diào)用調(diào)用scanf函數(shù)輸入多個數(shù)據(jù)函數(shù)輸入多個數(shù)據(jù)scanf(%d%d%lf, &money, &year, &rate); 輸入:輸入:1000 3 0.025vscanf需要多個輸入?yún)?shù)和多個格式控制說明需要多個輸入?yún)?shù)和多個格式控制說明輸入?yún)?shù)的類型、個數(shù)和位置要與格式控制說明一輸入?yún)?shù)的類型、個數(shù)和位置要與格式控制說明一一對應(yīng)一對應(yīng) ? scanf(%d%lf%d , &money, &year, &

26、amp;rate);v程序運(yùn)行時,輸入的多個數(shù)據(jù)之間必須有間隔。程序運(yùn)行時,輸入的多個數(shù)據(jù)之間必須有間隔。scanf(%d%lf%d , &money, &rate , &year);如何輸入?如何輸入?輸入?yún)?shù)、格式控制說明、輸入數(shù)據(jù)輸入?yún)?shù)、格式控制說明、輸入數(shù)據(jù)2.4 輸出華氏攝氏溫度轉(zhuǎn)換表輸出華氏攝氏溫度轉(zhuǎn)換表2.4.1 程序解析程序解析2.4.2 for語句語句2.4.3 指定次數(shù)的循環(huán)程序設(shè)計指定次數(shù)的循環(huán)程序設(shè)計2.4.1 程序解析程序解析例例2-6 輸入輸入2個整數(shù)個整數(shù)lower和和 upper,輸出一,輸出一張華氏攝氏溫度轉(zhuǎn)換表,華氏溫度的取值范張華

27、氏攝氏溫度轉(zhuǎn)換表,華氏溫度的取值范圍是圍是lower, upper,每次增加,每次增加1F。 fahr celsius 30 -1.1 31 -0.6 32 0.0 33 0.6 34 1.1 35 1.72.4.1 程序解析程序解析-溫度轉(zhuǎn)換表溫度轉(zhuǎn)換表#include int main(void) int fahr, lower, upper; double celsius; printf(Enter lower:); scanf(%d, &lower); printf(Enter upper:); scanf(%d, &upper); printf(fahr celsiu

28、sn);Enter lower: 30Enter upper: 35fahr celsius 30 -1.1 31 -0.6 32 0.0 33 0.6 34 1.1 35 1.72.4.1 程序解析程序解析-溫度轉(zhuǎn)換表溫度轉(zhuǎn)換表for (fahr = lower; fahr = upper; fahr +) celsius = (5.0 / 9.0) * (fahr - 32); printf(%d %6.1fn, fahr, celsius); return 0; fahr = fahr+1Enter lower: 30Enter upper: 35fahr celsius 30 -1.1

29、 31 -0.6 32 0.0 33 0.6 34 1.1 35 1.7例例2-8中中for語句的流程語句的流程for (fahr = lower; fahr = upper; fahr +) celsius = (5.0 / 9.0) * (fahr - 32); printf(%d %6.1fn, fahr, celsius); fahr = fahr+2輸出?輸出?Enter lower: 30Enter upper: 35fahr celsius 30 -1.1 31 -0.6 32 0.0 33 0.6 34 1.1 35 1.7forfor( (表達(dá)式表達(dá)式1 1;表達(dá)式表達(dá)式2

30、2;表達(dá)式表達(dá)式3 3) ) 循環(huán)體語句循環(huán)體語句實現(xiàn)實現(xiàn)C語句的重復(fù)執(zhí)行語句的重復(fù)執(zhí)行2.4.2 for語句循環(huán)語句語句循環(huán)語句3個表達(dá)式、循環(huán)體語句個表達(dá)式、循環(huán)體語句!書寫順序和執(zhí)行順序不同書寫順序和執(zhí)行順序不同!表達(dá)式表達(dá)式1只執(zhí)行一次只執(zhí)行一次循環(huán)循環(huán)(控制控制)變量變量:for語句中,通過改變或判斷某個語句中,通過改變或判斷某個變量的值來控制循環(huán)的執(zhí)行變量的值來控制循環(huán)的執(zhí)行for (fahr = lower; fahr = upper; fahr +) celsius = (5.0 / 9.0) * (fahr - 32.0); printf(%d %6.1fn, fahr, c

31、elsius); for語句中的循環(huán)變量語句中的循環(huán)變量賦初值賦初值判斷其值判斷其值改變其值改變其值for (fahr = lower; fahr = upper; fahr +) celsius = (5.0 / 9.0) * (fahr - 32.0); printf(%d %6.1fn, fahr, celsius); 表達(dá)式表達(dá)式1:給循環(huán)變量賦初值,給循環(huán)變量賦初值,指定循環(huán)的起點。指定循環(huán)的起點。fahr = lower表達(dá)式表達(dá)式2:給出循環(huán)的條件,決定循環(huán)的繼續(xù)或結(jié)束。給出循環(huán)的條件,決定循環(huán)的繼續(xù)或結(jié)束。fahr = upper表達(dá)式表達(dá)式3:設(shè)置循環(huán)的步長,改變循環(huán)變量的值

32、,從而可改設(shè)置循環(huán)的步長,改變循環(huán)變量的值,從而可改變表達(dá)式變表達(dá)式2的真假性。的真假性。fahr+語句:語句:被反復(fù)執(zhí)行的語句,一條語句。被反復(fù)執(zhí)行的語句,一條語句。for語句的說明語句的說明for (fahr = lower; fahr = upper; fahr +) 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);

33、 printf(%d %6.1fn, fahr, celsius); 復(fù)合語句復(fù)合語句 和空語句和空語句 ;for (fahr = lower ; fahr = upper; fahr = fahr + 1); celsius = (5.0 / 9.0) * (fahr - 32.0); printf(%d %6.1fn, fahr, celsius); !不要在!不要在for語句中隨意加分號語句中隨意加分號求求 1+2+100抽取具有共性的算式:抽取具有共性的算式:sum = sum + i sum初值為初值為0,該算式重復(fù),該算式重復(fù)100次,次,i從從1變到變到100設(shè)設(shè)i為循環(huán)變量,則

34、:為循環(huán)變量,則:指定循環(huán)起點的表達(dá)式指定循環(huán)起點的表達(dá)式1:i = 1給出循環(huán)條件的表達(dá)式給出循環(huán)條件的表達(dá)式2:i = 100設(shè)置循環(huán)步長的表達(dá)式設(shè)置循環(huán)步長的表達(dá)式3:i+循環(huán)體語句:循環(huán)體語句:sum = sum + i;for(i=1; i=100; i+)sum =sum+i;2.4.3 指定次數(shù)的循環(huán)程序設(shè)計指定次數(shù)的循環(huán)程序設(shè)計/* 計算計算1 + 2 + 3 + + 100 */#include int main(void) int i, sum; sum = 0; /* 置累加和置累加和sum的初值為的初值為0 */ for ( i = 1; i = 100; i+ ) /

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

36、+1/3+ 1/100for(i=1; i=100; i+) sum=sum+1.0/i;int i;double sum;printf( “sum = %fn”, sum);一般包含四個部分:一般包含四個部分:v初始化:初始化:指定循環(huán)起點指定循環(huán)起點給循環(huán)變量賦初值,如給循環(huán)變量賦初值,如i = 1;進(jìn)入循環(huán)之前,設(shè)置相關(guān)變量的初值,如進(jìn)入循環(huán)之前,設(shè)置相關(guān)變量的初值,如sum = 0。v條件控制:條件控制:只要只要i 100,循環(huán)結(jié)束。,循環(huán)結(jié)束。指定次數(shù)的循環(huán)程序設(shè)計指定次數(shù)的循環(huán)程序設(shè)計輸入一個正整數(shù)輸入一個正整數(shù)n,求前,求前n項和,即循環(huán)項和,即循環(huán)n次次#include int

37、 main(void) int i, sum; sum = 0; for ( i = 1; i = 100; i+ ) sum = sum + i; printf( “sum = %dn”, sum); return 0;例例2-7 求求 1+2+3+n for(i=1; i=n; i+) sum=sum+i;printf(“Enter n:); scanf(%d, &n); Enter n: 100Sum = 5050求前n項和,即循環(huán)n次,每次累加1項。for (i = 1; i = n ; i+) sum = sum + item (第i項)item = 1.0 / (2 * i

38、 - 1)示例:求求 1+1/3+1/5+ 的前的前n項和項和#include int main(void) int i, n; double item, sum; printf(“Enter n: ); scanf (%d, &n);sum = 0 ; for ( i = 1; i = n; i+ ) item = 1.0 / (2 * i - 1); /* 計算第i項的值 */ sum = sum + item ; /* 累加第i項的值 */ printf ( sum = %fn, sum); return 0;示例:求求 1+1/3+1/5+ 源程序源程序求前求前n項和,即循環(huán)項

39、和,即循環(huán)n次,每次累加次,每次累加1項。項。for (i = 1; i = n ; i+) sum = sum + item (第第i項項)item = flag * 1.0 / denominator denominator = denominator + 2flag = -flag例例2-8:求求 1-1/3+1/5- 的前的前n項和項和item = flag*1.0/(2 * i - 1)#include int main(void) int denominator, flag, i, n; double item, sum; printf(“Enter n: ); scanf (%d

40、, &n);flag=1; denominator =1;sum = 0 ; for ( i = 1; i = n; i+ ) item = flag * 1.0/ denominator; /* 計算第i項的值 */ sum = sum + item ; /* 累加第i項的值 */ flag = -flag; /* 準(zhǔn)備下一次循環(huán) */ denominator = denominator +2; printf ( sum = %fn, sum); return 0;源程序源程序n! = 1*2*nfor (i = 1; i = n ; i+) product = product *

41、item (第i項)item=i例例2-9:求求n!product = ?#include int main(void) int i, n; double product; printf(input n: n); scanf (%d, &n) ; product=1; /* 置階乘product的初值為1 */ for ( i = 1; i = n; i+ ) /* 循環(huán)重復(fù)n次,計算n! */ product = product * i ; printf ( product = %.0fn, product ); return 0;源程序源程序輸入實數(shù)x和正整數(shù)n,計算xn = x

42、* x * * xfor (i = 1; i = n ; i+) power = power * item (第i項)item=?示例:求求 xn #include int main(void) int i, n; double x, power ; printf(“Enter x, n: n); scanf (%lf%d, &x, &n) ; power = 1; /* 置power的初值為1 */ for ( i = 1; i = n; i+ ) /* 循環(huán)重復(fù)n次,計算x的n次冪 */ power = power * x; printf( %0.fn, power);求求

43、 xn 源程序源程序2.5 生成乘方表與結(jié)成表生成乘方表與結(jié)成表例例2-10(1):程序解析 輸入一個正整數(shù)輸入一個正整數(shù)n,生成一張,生成一張2的乘方表,輸出的乘方表,輸出20 到到2n的值,可以調(diào)用冪函數(shù)計算的值,可以調(diào)用冪函數(shù)計算2的乘方。的乘方。for (i = 0; i = n ; i+) power = pow(2, i); /*調(diào)用冪函數(shù)調(diào)用冪函數(shù)pow(2,i)計算計算2的的i次方次方*/ 輸出輸出power的值的值;生成乘方表源程序#include #include int main(void) int i, n; double power; printf(Enter n:)

44、; scanf(%d, &n); for (i = 0; i = n ; i+) power = pow(2, i); /* 調(diào)用冪函數(shù)pow(2,i)計算2的i次方 */ printf(pow(2,%d)= %.0fn, i, power); return 0;Enter n: 4pow(2,0)= 1pow(2,1)= 2pow(2,2)= 4pow(2,3)= 8pow(2,4)= 16 例例2-10(1)生成階乘表輸入一個正整數(shù)n,生成一張階乘表,輸出0!到n!的值。要求定義和調(diào)用函數(shù)fact(n)計算n!,函數(shù)類型是double。 for (i = 0; i = n ; i+

45、)power = pow(2, i); /*調(diào)用冪函數(shù)調(diào)用冪函數(shù)pow(2,i)計算計算2的的i次方次方*/ 輸出輸出power的值的值;for (i = 0; i = n ; i+) product = fact(i); /* 調(diào)用自定義函數(shù)調(diào)用自定義函數(shù)fact(i)計算計算i! */ 輸出輸出product的值的值;#include double fact(int n); /* 自定義函數(shù)的聲明 */int main(void) int i, n; double result; printf(Enter n:); scanf(%d, &n); for (i = 0; i = n

46、; i+) result = fact(i); /* 調(diào)用自定義函數(shù)fact(i)計算i! */ printf(%d!=%.0fn, i, result); return 0;生成階乘表源程序Enter n: 30!=11!=12!=23!=6double fact(int n) /* 函數(shù)首部 */ int i; double product; product = 1; for (i = 1; i = n; i+) product = product * i; return product; /* 將結(jié)果回送主函數(shù) */2.5.2 結(jié)構(gòu)化程序設(shè)計思想結(jié)構(gòu)化程序設(shè)計思想v結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化程

47、序設(shè)計(Structured Programming)程序設(shè)計技術(shù)程序設(shè)計技術(shù)C語言是結(jié)構(gòu)化程序設(shè)計語言語言是結(jié)構(gòu)化程序設(shè)計語言v強(qiáng)調(diào)程序設(shè)計的風(fēng)格和程序結(jié)構(gòu)的規(guī)范化,提倡強(qiáng)調(diào)程序設(shè)計的風(fēng)格和程序結(jié)構(gòu)的規(guī)范化,提倡清晰的結(jié)構(gòu),其基本思路是將一個復(fù)雜問題的求解清晰的結(jié)構(gòu),其基本思路是將一個復(fù)雜問題的求解過程劃分為若干階段,每個階段要處理的問題都容過程劃分為若干階段,每個階段要處理的問題都容易被理解和處理。易被理解和處理。按自頂向下的方法對問題進(jìn)行分析、模塊化按自頂向下的方法對問題進(jìn)行分析、模塊化設(shè)計和結(jié)構(gòu)化編碼等設(shè)計和結(jié)構(gòu)化編碼等3個步驟。個步驟。自頂向下的分析方法自頂向下的分析方法v把大的復(fù)雜

48、的問題分解成小問題后再解決把大的復(fù)雜的問題分解成小問題后再解決v面對一個復(fù)雜的問題,首先進(jìn)行上層(整體)的面對一個復(fù)雜的問題,首先進(jìn)行上層(整體)的分析,按組織或功能將問題分解成子問題,如果分析,按組織或功能將問題分解成子問題,如果子問題仍然十分復(fù)雜,再做進(jìn)一步分解,直到處子問題仍然十分復(fù)雜,再做進(jìn)一步分解,直到處理對象相對簡單,容易處理為止。理對象相對簡單,容易處理為止。v當(dāng)所有的子問題都得到了解決,整個問題也就解當(dāng)所有的子問題都得到了解決,整個問題也就解決了。決了。v每一次分解都是對上一層的問題進(jìn)行細(xì)化和逐步每一次分解都是對上一層的問題進(jìn)行細(xì)化和逐步求精,最終形成一種類似樹形的層次結(jié)構(gòu),來描求精,最終形成一種類似樹形的層次結(jié)構(gòu),來描述分析的結(jié)果。述分析的結(jié)果。學(xué)生成績統(tǒng)計程序?qū)W生成績統(tǒng)計程序成績輸入成績輸入數(shù)據(jù)計算數(shù)據(jù)計算數(shù)據(jù)查找數(shù)據(jù)查找輸出成績輸出成績計算學(xué)生平均分計算學(xué)生平均分計算課程平均分計算課程平均分學(xué)生成績統(tǒng)計程序的層次結(jié)構(gòu)圖學(xué)生成績統(tǒng)計程序的層次結(jié)構(gòu)圖 模塊化設(shè)計模塊化設(shè)計v將模塊組織成良好的層次系統(tǒng),頂層模塊調(diào)用其下層將模塊組織成良好的層次系統(tǒng),頂層模塊調(diào)用其下層模塊以實現(xiàn)程序的完整功能,每個下層模塊再調(diào)用更模塊以實現(xiàn)程序的完整功能,每個下層模塊再調(diào)用更下層的模

溫馨提示

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

最新文檔

評論

0/150

提交評論