Chap 2用C語言編寫程序(-62)_第1頁
Chap 2用C語言編寫程序(-62)_第2頁
Chap 2用C語言編寫程序(-62)_第3頁
Chap 2用C語言編寫程序(-62)_第4頁
Chap 2用C語言編寫程序(-62)_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(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)的攝氏溫度2.3 計算分段函數(shù)2.4 輸出華氏攝氏溫度轉(zhuǎn)換表2.5 生成乘方表與階乘表 本章要點(diǎn)怎樣編寫程序,在屏幕上顯示一些信息?怎樣編寫程序,實(shí)現(xiàn)簡單的數(shù)據(jù)處理,例如將華氏溫度轉(zhuǎn)換為攝氏溫度?怎樣使用 if 語句計算分段函數(shù)?怎樣用 for 語句求 1+2+100?如何定義和調(diào)用函數(shù)生成一張乘方表?2.1 在屏幕上顯示Hello World! 例2-1 在屏幕上顯示一個短句:Hello World!2.1 在屏幕上顯示Hello World!/* 顯示“Hello World!

2、*/ 注釋文本 # include int main(void) 主函數(shù) printf(“Hello World! n); 語句結(jié)束 return 0; 輸出函數(shù) 換行符1.任何程序都有主函數(shù)2.程序由假設(shè)干語句組成3.語句由;結(jié)束2.1 在屏幕上顯示一些信息例2-2 在屏幕上顯示:Programming is fun!And Programming in C is even more fun!# include 編譯預(yù)處理命令int main(void) printf(Programming is fun! n); printf(And Programming in C is even mo

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

4、dn, fahr, celsius);輸出結(jié)果 return 0;輸出:fahr =100, celsius = 372.2.2 常量、變量和數(shù)據(jù)類型int celsius, fahr; celsius = 5 * (fahr - 32) / 9;數(shù)據(jù)常量:在程序運(yùn)行過程中,其值不能被改變 變量:在程序運(yùn)行過程中,其值可以被改變 數(shù)據(jù)類型常量:5 和 9是整型常量整數(shù)變量:在定義時指定變量的定義變量定義的一般形式:類型名 變量名表;例如:int celsius, fahr; 定義整型變量float x; 定義單精度浮點(diǎn)型變量double area, length; 定義雙精度浮點(diǎn)型變量doub

5、le型數(shù)據(jù)比float精度高,取值范圍大 變量名:小寫字母;見名知義變量的定義定義變量時要指定變量名和數(shù)據(jù)類型類型名 變量名表;int celsius, fahr; float x;double area, length;變量名代表內(nèi)存中的一個存儲單元存放該變量的值該存儲單元的大小由變量的數(shù)據(jù)類型決定C語言中的變量代表保存數(shù)據(jù)的存儲單元數(shù)學(xué)中的變量代表未知數(shù) x = x+1變量的定義與使用變量必須先定義,后使用。#include int main(void) int celsius, fahr; fahr = 100; celsius = 5 * (fahr - 32) / 9; printf

6、(fahr = %d, celsius = %dn, fahr, celsius); return 0;一個變量名只能定義一次變量一般都定義在程序的頭上不能定義在程序的中間或后面應(yīng)該先賦值,后引用2.2.3 算術(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)算對象連接起來的符合C語言語法規(guī)那么的式子 數(shù)學(xué)式:5*(F-32) /9 C表達(dá)式:5 * (fahr - 32) / 9 或者:數(shù)學(xué)式:s(s-a)(s-b)(s-c)C表達(dá)式:算術(shù)運(yùn)算雙目算術(shù)運(yùn)算符:+ -

7、* / %算術(shù)表達(dá)式:用算術(shù)運(yùn)算符將運(yùn)算對象連接起來的符合C語言語法規(guī)那么的式子 注意/ 整數(shù)除整數(shù),得整數(shù)如:1/2 0,9/4 2 ?5 * (fahr - 32) / 9 和 5 / 9 * (fahr - 32) 等價嗎% 針對整型數(shù)據(jù)如: 565,941,10040雙目運(yùn)算符兩側(cè)操作數(shù)的類型要相同賦值運(yùn)算賦值運(yùn)算符 =賦值表達(dá)式:用 = 將一個變量和一個表達(dá)式連接起來的式子 變量 表達(dá)式例如:fahr = 100; celsius = 5 * (fahr - 32) / 9; 計算賦值運(yùn)算符右側(cè)表達(dá)式的值將賦值運(yùn)算符右側(cè)表達(dá)式的值賦給左側(cè)的變量的左邊必須是一個變量2.2.4 格式化輸

8、出函數(shù)printf數(shù)據(jù)輸出:格式化輸出函數(shù) printf #include printf(Hello World! n);printf(fahr = %d, celsius = %dn, fahr, celsius);printf(格式控制字符串, 輸出參數(shù)1, , 輸出參數(shù)n);用雙引號括起來,表示輸出的格式要輸出的數(shù)據(jù)printf格式控制字符串printf(Hello World! n); printf(fahr = %d, celsius = %dn, fahr, celsius);printf(Hin, fahr);格式控制字符串:普通字符:原樣輸出格式控制說明:按指定的格式輸出數(shù)據(jù),

9、%與數(shù)據(jù)類型有關(guān)int型 :%dfloat double型:%fprintf(fahr = %d, celsius = %dn, fahr, celsius);輸出:fahr =100, celsius = 372.3 計算分段函數(shù) 2.3.1 程序解析2.3.2 關(guān)系運(yùn)算2.3.3 if-else語句2.3.4 格式化輸入函數(shù)scanf2.3.5 常用數(shù)學(xué)庫函數(shù)2.3.1 程序解析例2-4 分段計算水費(fèi)輸入用戶的月用水量x噸,計算并輸出該用戶應(yīng)支付的水費(fèi)y元保存2位小數(shù) 要解決的問題:輸入計算分段函數(shù)輸出,并保存2位小數(shù)2.3.1 程序解析求分段函數(shù) #include int main(vo

10、id) double x, y; printf(Enter x (x=0):n); /* 輸入提示 */ scanf(%lf, &x); /* 調(diào)用scanf函數(shù)輸入數(shù)據(jù) */ if(x =0):9.5f(9.500000)=12.67Enter x (x=0):15f(15.000000)=20.00數(shù)據(jù)必須輸入嗎?Enter x (x=0):21.3f(21.300000)=42.752.3.2 關(guān)系運(yùn)算x = 15比較 x 和 15 的大小比較的結(jié)果:真 假當(dāng) x 取值9.5時, x = 15的結(jié)果是:?當(dāng) x 取值21.3時, x = 15的結(jié)果是:? 關(guān)系運(yùn)算 比較運(yùn)算,比較兩個操作

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

12、0) y = 1/x;else y = 0;源程序#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 (x=0):n); scanf(%lf, &x); if(x = 15) y = 4 * x / 3; else y = 2.5 * x -

13、 10.5; printf(f(%f) = %.2fn, x, y); return 0;運(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.4input x:0f(0.00)=0.0軟件測試的根本思想 軟件測試精心設(shè)計一批測試用例 輸入數(shù)據(jù),預(yù)期輸出結(jié)果 ,然后分別用這些測試用例運(yùn)行程序,看程序的實(shí)際運(yùn)行結(jié)果與

14、預(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 =0):9.5f(9.500000)=12.67Enter x (x=0):15f(15.000000)=20.00Enter x (x=0):21.3f(21.300000)=42.752.3.4 格式化輸入函數(shù)scanf數(shù)據(jù)輸入:格式化輸入函數(shù) scanf #include scanf(%lf, &x);scanf(格式控制字符串, 輸入?yún)?shù)1, , 輸入?yún)?shù)n);用雙引號括起來,表示輸入的格式變量地址scanf格式

15、控制字符串格式控制字符串:格式控制說明: 按指定的格式輸入數(shù)據(jù), %與數(shù)據(jù)類型有關(guān)int型 :%dfloat型:%fdouble型:%lf普通字符:原樣輸入例如:scanf(%lf, &x);輸入: 9.5scanf(x=%lf, &x);輸入: x=9.5盡量不要出現(xiàn)普通字符改進(jìn)例2-3的程序例2-3 求華氏溫度 100F 對應(yīng)的攝氏溫度。攝氏溫度 C=5*(F-32)/9 #include int main(void) int celsius, fahr; fahr = 100; celsius = 5 * (fahr - 32) / 9; printf(fahr = %d, celsiu

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

17、(x) 絕對值函數(shù) fabs(x)fabs(-3.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為底的對數(shù)函數(shù) log(x):ln xlog(123.45) 的值為4.815836以10為底的對數(shù)函數(shù) log10(x):log10 xlog10(123.45) 的值為2.091491。 例2-5 計算存款的本息輸入存款金額 money、存期 year 和年利率 rate,根據(jù)公式計算存款到期時的本息合計sum稅前,輸出時保存2位小數(shù)。sum = money ( 1 + ra

18、te)yearsum = money * pow(1 + rate), year)例2-5 程序# include # 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

19、); return 0;Enter money: 1000Enter year: 3Enter rate: 0.025sum = 1076.89scanf(%d%d%lf, &money, &year, &rate);調(diào)用scanf函數(shù)輸入多個數(shù)據(jù)scanf(%d%d%lf, &money, &year, &rate); 輸入:1000 3 0.025scanf需要多個輸入?yún)?shù)和多個格式控制說明輸入?yún)?shù)的類型、個數(shù)和位置要與格式控制說明一一對應(yīng) ? scanf(%d%lf%d , &money, &year, &rate);程序運(yùn)行時,輸入的多個數(shù)據(jù)之間必須有間隔。scanf(%d%lf%d

20、, &money, &rate , &year);如何輸入?輸入?yún)?shù)、格式控制說明、輸入數(shù)據(jù)2.4 輸出華氏攝氏溫度轉(zhuǎn)換表2.4.1 程序解析2.4.2 for語句2.4.3 指定次數(shù)的循環(huán)程序設(shè)計2.4.1 程序解析例2-6輸入2個整數(shù)lower和 upper,輸出一張華氏攝氏溫度轉(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)換表#include int main(void) int fahr, lower, upper; dou

21、ble celsius; printf(Enter lower:); scanf(%d, &lower); printf(Enter upper:); scanf(%d, &upper); printf(fahr celsiusn);/ 溫度重復(fù)轉(zhuǎn)換:華氏溫度從lower開始,到upper結(jié)束,每次增加1F for (fahr = lower; fahr = upper; fahr +) celsius = (5.0 / 9.0) * (fahr - 32); printf(%d %6.1fn, fahr, celsius); return 0; fahr = fahr+1Enter lowe

22、r: 30Enter upper: 35fahr celsius 30 -1.1 31 -0.6 32 0.0 33 0.6 34 1.1 35 1.7例2-6中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

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

24、celsius = (5.0 / 9.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)是否到達(dá)終點(diǎn)?fahr = upper表達(dá)式3:設(shè)置循環(huán)的步長,改變循環(huán)變量的值,從而可改變表達(dá)式2的真假性。fahr+循環(huán)體語句:被反復(fù)執(zhí)行的語句,一條語句。for語句的說明for (fahr = lower; fahr = upper; fahr +) celsius = (5.0 / 9.0) * (fahr - 32.0); printf(%

25、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); 復(fù)合語句 和空語句 ;for (fahr = lower ; fahr = upper; fahr = fahr + 1); celsius = (5.0 / 9.0) * (fahr - 32.0); printf(%d %6.1fn, fahr, celsius); !不要在for語句中隨意加分

26、號求 1+2+100抽取具有共性的算式: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;2.4.3 指定次數(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

27、+ ) /* 循環(huán)重復(fù)100次 */ sum = sum + i; /* 反復(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;求 1+1/2+1/3+ 1/100for(i=1; i

28、=100; i+) sum=sum+1.0/i;int i;double sum;printf( “sum = %fn, sum);一般包含四個局部:初始化:指定循環(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è)計輸入一個正整數(shù)n,求前n項(xiàng)和,即循環(huán)n次#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

29、-7 求 1+2+3+n for(i=1; i=n; i+) sum=sum+i;printf(“Enter n:); scanf(%d, &n); Enter n: 100Sum = 5050#include int main(void) int i, sum; printf(“Enter n: ); scanf(%d, &n); sum = 0; for ( i = 1; i = n; i+ ) sum = sum + i; printf( “sum = %dn, sum); return 0;求1+1/2+1/3+ 1/n #include int main(void) int i; d

30、ouble sum; printf(“Enter n: ); scanf(%d, &n); sum = 0; for ( i = 1; i = n; i+ ) sum = sum + 1.0/i; printf( “sum = %fn, sum); return 0;求前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 int main(void) int i, n; double item, sum; printf(

31、“Enter n: ); scanf (%d, &n);sum = 0 ; for ( i = 1; i = n; i+ ) item = 1.0 / (2 * i - 1); /* 計算第i項(xiàng)的值 */ sum = sum + item ; /* 累加第i項(xiàng)的值 */ printf ( sum = %fn, sum); return 0;源程序 求 1+1/3+1/5+ 求前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 / denominator denominator = d

32、enominator + 2flag = -flag例2-8 求 1-1/3+1/5- 的前n項(xiàng)和item = flag*1.0/(2 * i - 1)#include int main(void) int denominator, flag, i, n; double item, sum; printf(“Enter n: ); scanf (%d, &n);flag=1; denominator =1;sum = 0 ; for ( i = 1; i = n; i+ ) item = flag * 1.0/ denominator; /* 計算第i項(xiàng)的值 */ sum = sum + it

33、em ; /* 累加第i項(xiàng)的值 */ flag = -flag; /* 準(zhǔn)備下一次循環(huán) */ denominator = denominator +2; printf ( sum = %fn, sum); return 0;例2-8 源程序n! = 1*2*nfor (i = 1; i = n ; i+) product = product * item (第i項(xiàng))item=i例2-9 求n!product = ?#include int main(void) int i, n; double product; printf(input n: n); scanf (%d, &n) ; prod

34、uct=1; /* 置階乘product的初值為1 */ for ( i = 1; i = n; i+ ) /* 循環(huán)重復(fù)n次,計算n! */ product = product * i ; printf ( product = %.0fn, product ); return 0;例2-9 源程序輸入實(shí)數(shù)x和正整數(shù)n,計算xn = x * x * * xfor (i = 1; i = n ; i+) power = power * item (第i項(xiàng))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);源程序 求 xn 2.5 生成乘方表和階乘表例2-10 生成乘方表輸入一個正整數(shù)n,生成一張2的乘方表,輸出20到2n的值,可以調(diào)用冪函數(shù)計算2的

溫馨提示

  • 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

提交評論