第2章用C語言編寫程序第6章數(shù)據(jù)類型和表達(dá)式_第1頁
第2章用C語言編寫程序第6章數(shù)據(jù)類型和表達(dá)式_第2頁
第2章用C語言編寫程序第6章數(shù)據(jù)類型和表達(dá)式_第3頁
第2章用C語言編寫程序第6章數(shù)據(jù)類型和表達(dá)式_第4頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第2 2章章 用用C C語言編寫程序語言編寫程序第第6 6章章 數(shù)據(jù)類型和表達(dá)式數(shù)據(jù)類型和表達(dá)式6.1 6.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型C語言中的數(shù)據(jù)類型語言中的數(shù)據(jù)類型: 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)在計(jì)算機(jī)中的存儲(chǔ)形式數(shù)據(jù)在計(jì)算機(jī)中的存儲(chǔ)形式 )( 空類型指針類型共用體類型結(jié)構(gòu)體類型數(shù)組類型構(gòu)造類型枚舉類型雙精度型單精度型浮點(diǎn)型實(shí)型字符型整型基本類型數(shù)據(jù)類型變量和數(shù)據(jù)類型變量和數(shù)據(jù)類型三種基本數(shù)據(jù)類型:三種基本數(shù)據(jù)類型:整型、實(shí)型和字符型整型、實(shí)型和字符型u 在程序運(yùn)行的過程中,其值可以改變的量稱為變量在程序運(yùn)行的過程中,其值可以改變的量稱為變量u 變量必須變量必須 “先定義、后使用先定義、后使

2、用”u 變量定義的一般形式是:變量定義的一般形式是: 類型名類型名 變量名表變量名表例如例如: (參見教材(參見教材p19) int a, b, sum; /*定義定義a,b為整型變量為整型變量*/ float r, a; /*定義定義r,a為實(shí)型變量為實(shí)型變量*/ char c; /*定義定義c為字符變量為字符變量*/#include /*求面積求面積*/void main( ) float r,a; printf(“輸入圓半徑:輸入圓半徑:”); scanf(“%f”,&r); a=3.14*r*r; printf(“圓面積圓面積=%fn”,a);#include /*求兩個(gè)數(shù)之和求兩個(gè)數(shù)

3、之和*/void main( ) int a,b,sum; a = 123; b = 456; sum = a + b; printf( sum is %dn, sum ); 變量賦初值變量賦初值(P20P20)變量賦值的方式分為兩種:變量初始化變量賦值的方式分為兩種:變量初始化 1、先說明,再賦值。如:、先說明,再賦值。如: int a,b; a=10; b=20; 2、說明變量的同時(shí)賦值。這稱為變量的、說明變量的同時(shí)賦值。這稱為變量的初始化初始化 int a=10,b=10; float f=3.56; (等價(jià)于(等價(jià)于 float f; f=3.56;) int a=3,b=3,c=3;

4、 (對(duì)對(duì)a、b、c都進(jìn)行初始化都進(jìn)行初始化) int a,b,c=5; (只對(duì)變量只對(duì)變量C進(jìn)行初始化進(jìn)行初始化) int a=b=c=3; () char c=a;格式化輸出函數(shù)(格式化輸出函數(shù)(p21p21)printf函數(shù)函數(shù)(格式輸出函數(shù)格式輸出函數(shù)) 是系統(tǒng)提供的庫函數(shù),在系統(tǒng)文件是系統(tǒng)提供的庫函數(shù),在系統(tǒng)文件stdio.h中聲明中聲明 printf函數(shù)的一般格式如下,函數(shù)的一般格式如下,格式:格式:printf(printf(“格式控制字符串格式控制字符串”,輸出參數(shù),輸出參數(shù)1,1, , ,輸出參數(shù)輸出參數(shù)n)n)功能:按指定格式向功能:按指定格式向顯示器顯示器輸出數(shù)據(jù)輸出數(shù)據(jù)l

5、格式控制串格式控制串 是用雙引號(hào)括起來的字符串,用于指定輸出格式。是用雙引號(hào)括起來的字符串,用于指定輸出格式。 格式格式說明總是由說明總是由“%”字符開始,如:整型用字符開始,如:整型用%d, 實(shí)型用實(shí)型用%f等。等。l輸出參數(shù)輸出參數(shù) 可以是變量或表達(dá)式,可以是變量或表達(dá)式, 要輸出的數(shù)據(jù)多個(gè)時(shí)以要輸出的數(shù)據(jù)多個(gè)時(shí)以“,”分隔分隔#includevoid main( ) int a,b,sum; a = 123; b = 456; sum = a + b; printf( sum is %dn, sum ); 格式化輸出函數(shù)(格式化輸出函數(shù)(p21p21)printf函數(shù)函數(shù)(格式輸出函數(shù)格

6、式輸出函數(shù)) 輸出參數(shù)必須和格式控制字符串中的格式控制說明的輸出參數(shù)必須和格式控制字符串中的格式控制說明的類型、個(gè)數(shù)以及位置一一對(duì)應(yīng)(輸出多個(gè)參數(shù)時(shí))類型、個(gè)數(shù)以及位置一一對(duì)應(yīng)(輸出多個(gè)參數(shù)時(shí)) 普通字符:輸出時(shí)要原樣輸出普通字符:輸出時(shí)要原樣輸出#includevoid main( ) int a,b,sum; a = 123; b = 456; sum = a + b; printf( “a=%d,b=%d,sum=%dn, a,b,sum ); 格式化輸入函數(shù)(格式化輸入函數(shù)(p25p25)scanf函數(shù)函數(shù)(格式輸入函數(shù)格式輸入函數(shù)) 是系統(tǒng)提供的庫函數(shù),在系統(tǒng)文件是系統(tǒng)提供的庫函數(shù),

7、在系統(tǒng)文件stdio.h中聲明中聲明 scanf函數(shù)的一般格式如下:函數(shù)的一般格式如下:格式:格式:scanfscanf( (“格式控制字符串格式控制字符串”,輸入?yún)?shù),輸入?yún)?shù)1,1, , ,輸入?yún)?shù)輸入?yún)?shù)n)n)功能:按指定格式從鍵盤讀入數(shù)據(jù),存入地址表指定的功能:按指定格式從鍵盤讀入數(shù)據(jù),存入地址表指定的存儲(chǔ)單元中存儲(chǔ)單元中, ,并按回車鍵結(jié)束并按回車鍵結(jié)束l格式控制串格式控制串 是用雙引號(hào)括起來的字符串,用于指定輸入格式。是用雙引號(hào)括起來的字符串,用于指定輸入格式。 格式格式說明也是由說明也是由“%”字符開始,如:整型用字符開始,如:整型用%d, 實(shí)型用實(shí)型用%f等。等。l輸入表列輸

8、入表列 輸入?yún)?shù)是變量地址,變量名前加地址符輸入?yún)?shù)是變量地址,變量名前加地址符&#includevoid main( ) float r,a; printf(“輸入圓半徑:輸入圓半徑:”); scanf(“%f”,&r); a=3.14*r*r; printf(“圓面積圓面積=%.2fn”,a);格式化輸入函數(shù)(格式化輸入函數(shù)(p25p25)scanf函數(shù)函數(shù)(格式輸入函數(shù)格式輸入函數(shù)) 輸入?yún)?shù)必須和格式控制字符串中的格式控制說明輸入?yún)?shù)必須和格式控制字符串中的格式控制說明的類型、個(gè)數(shù)以及位置一一對(duì)應(yīng)(輸入多個(gè)參數(shù)時(shí))的類型、個(gè)數(shù)以及位置一一對(duì)應(yīng)(輸入多個(gè)參數(shù)時(shí)) 普通字符:在輸入時(shí)要原樣

9、輸入普通字符:在輸入時(shí)要原樣輸入#includevoid main( ) int a,b,sum; printf(“輸入輸入a,b:”); scanf(“%d,%d”,&a,&b); sum = a + b; printf( “a=%d,b=%d,sum=%dn, a,b,sum ); scanf(“%d,%d”,&a,&b); scanf(“%d%d”,&a,&b); scanf(“a=%d,b=%d”,&a,&b); 課程回顧課程回顧三種基本數(shù)據(jù)類型:三種基本數(shù)據(jù)類型:整型、實(shí)型和字符型整型、實(shí)型和字符型 定義形式定義形式: int a, b, sum; /*定義定義a,b為整型變量為整型

10、變量*/ float r, a; /*定義定義r,a為實(shí)型變量為實(shí)型變量*/ char c; /*定義定義c為字符變量為字符變量*/ printf函數(shù)函數(shù)(格式輸出函數(shù)格式輸出函數(shù)) printf(“sum=%d”,sum); scanf函數(shù)函數(shù)(格式輸入函數(shù)格式輸入函數(shù)) scanf(“%f”,&r);#includevoid main( ) int a,b,sum; printf(“輸入輸入a,b:”); scanf(“%d,%d”,&a,&b); sum = a + b; printf( “a=%d,b=%d,sum=%dn, a,b,sum ); 常用數(shù)學(xué)庫函數(shù)(常用數(shù)學(xué)庫函數(shù)(p25

11、) C語言處理系統(tǒng)提供了許多事先編輯好的函數(shù),語言處理系統(tǒng)提供了許多事先編輯好的函數(shù),供用戶在編程時(shí)調(diào)用,這些函數(shù)稱為庫函數(shù)。調(diào)用供用戶在編程時(shí)調(diào)用,這些函數(shù)稱為庫函數(shù)。調(diào)用庫函數(shù)一定要用庫函數(shù)一定要用include命令將相應(yīng)的頭文件包含命令將相應(yīng)的頭文件包含到源程序中到源程序中 輸入輸入/ /輸出函數(shù):輸出函數(shù):#includestdio.h#include 數(shù)學(xué)處理函數(shù):數(shù)學(xué)處理函數(shù): #includemath.h#include u常用的數(shù)學(xué)庫函數(shù):常用的數(shù)學(xué)庫函數(shù):平方根函數(shù):平方根函數(shù):sqrt(x)絕對(duì)值函數(shù):絕對(duì)值函數(shù):fabs(x)冪函數(shù):冪函數(shù): pow(x,n)指數(shù)函數(shù):指

12、數(shù)函數(shù): exp(x)對(duì)數(shù)函數(shù):對(duì)數(shù)函數(shù): log(x)#includevoid main( ) int a,b,sum; a = 123; b = 456; sum = a + b; printf( sum is %dn, sum ); 6.2 6.2 常量和變量常量和變量 (P96)(P96)6.2.1 常量和符號(hào)常量常量和符號(hào)常量常量常量 在程序運(yùn)行的過程中,其值不能改變的量稱為常量在程序運(yùn)行的過程中,其值不能改變的量稱為常量 常量又分為不同的類型:常量又分為不同的類型:如:如:45,6,-34,-6為為整型整型常量;常量; 5.6,7.9,-7.78,2.0為為實(shí)型實(shí)型常量;常量; a

13、,b,d為為字符型字符型常量;常量;6.2 6.2 常量和變量常量和變量 (P96)(P96)6.2.1 常量和符號(hào)常量常量和符號(hào)常量符號(hào)常量符號(hào)常量 用一個(gè)標(biāo)識(shí)符代表一個(gè)常量用一個(gè)標(biāo)識(shí)符代表一個(gè)常量 如:如:#define PI 3.1415926標(biāo)識(shí)符:標(biāo)識(shí)符:用來標(biāo)識(shí)變量名、常數(shù)名、數(shù)組名、函用來標(biāo)識(shí)變量名、常數(shù)名、數(shù)組名、函數(shù)名、文件名等的有效字符序列。數(shù)名、文件名等的有效字符序列。例例6-1:計(jì)算球的表面積和體積:計(jì)算球的表面積和體積(符號(hào)常量的使用)(符號(hào)常量的使用)# include # define PI 3.1416void main( ) double r,s,v; pri

14、ntf(“input r: ”); scanf(“%lf”,&r); s=4.0*PI*r*r; v=4.0/3.0*PI*r*r*r; printf(“s=%f,v=%f,s,v);符號(hào)常量不能改變,符號(hào)常量不能改變,即不能被重新賦值。即不能被重新賦值。符號(hào)常量名習(xí)慣上用符號(hào)常量名習(xí)慣上用大寫大寫 ,變量名用小寫,變量名用小寫,以示區(qū)別。以示區(qū)別。在程序中不要太多使用常量,應(yīng)盡量使用變量和符號(hào)常量在程序中不要太多使用常量,應(yīng)盡量使用變量和符號(hào)常量5.1.2 5.1.2 基本基本數(shù)據(jù)類型數(shù)據(jù)類型整型整型有符號(hào)整型有符號(hào)整型 無符號(hào)整型無符號(hào)整型 數(shù)據(jù)長度數(shù)據(jù)長度int unsigned int

15、 16或或32位位short int unsigned short int 16位位long int unsigned long int 32位位實(shí)型(浮點(diǎn)型)實(shí)型(浮點(diǎn)型)單精度浮點(diǎn)型單精度浮點(diǎn)型 float 32位位雙精度浮點(diǎn)型雙精度浮點(diǎn)型 double 64位位字符型字符型char 8位位基本基本數(shù)據(jù)類型數(shù)據(jù)類型整型整型整型數(shù)據(jù)類型:整型數(shù)據(jù)類型:int擴(kuò)展的整數(shù)類型:擴(kuò)展的整數(shù)類型:有符號(hào)整型有符號(hào)整型(正數(shù)或負(fù)數(shù)正數(shù)或負(fù)數(shù)) 無符號(hào)整型無符號(hào)整型int unsigned intshort int unsigned short intlong int unsigned long int

16、類型名類型名 數(shù)據(jù)長度數(shù)據(jù)長度 取值范圍取值范圍int 32位位 -2147483648 2147483647 -231 231-1short 16位位 -32768 32767 -215 215-1long 32位位 -2147483648 2147483647 -231 231-1unsigned 32位位 0 4294967295 0 232-1unsigned short 16位位 0 65535 0 216-1unsigned long 32位位 0 4294967295 0 232-16.3 6.3 數(shù)據(jù)的輸入和輸出數(shù)據(jù)的輸入和輸出 (P100)(P100)6.3.1 整型數(shù)據(jù)的輸

17、入和輸出整型數(shù)據(jù)的輸入和輸出 調(diào)用調(diào)用scanf()函數(shù)函數(shù)和和printf()函數(shù)函數(shù)輸入和輸出時(shí),應(yīng)根據(jù)數(shù)輸入和輸出時(shí),應(yīng)根據(jù)數(shù)據(jù)類型使用相應(yīng)的格式控制說明,并且可以加據(jù)類型使用相應(yīng)的格式控制說明,并且可以加寬度限定詞寬度限定詞%md或者或者%-md,指定整型數(shù)據(jù)的輸出寬度。,指定整型數(shù)據(jù)的輸出寬度。 %d,按照整數(shù)的實(shí)際長度輸出。前面講過!,按照整數(shù)的實(shí)際長度輸出。前面講過! %md,m為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于m,則左端補(bǔ)以空格(右對(duì)齊);如果大于,則左端補(bǔ)以空格(右對(duì)齊);如果大于m,則按照實(shí)際位數(shù),則按照實(shí)際位數(shù)輸出。輸出。

18、(此格式用來對(duì)齊輸出的數(shù)據(jù))(此格式用來對(duì)齊輸出的數(shù)據(jù)) 若若a=123; d=12345; 則:則: printf(“%4d,%4d”,a,b); 輸出:輸出: 123,12345 ( 代表空格)代表空格) %ld,輸出長整型數(shù)據(jù)。,輸出長整型數(shù)據(jù)。如:如:long a=135790; printf(“%ld”,a);xt1-2基本基本數(shù)據(jù)類型數(shù)據(jù)類型實(shí)型實(shí)型實(shí)型(浮點(diǎn)型)數(shù)據(jù)實(shí)型(浮點(diǎn)型)數(shù)據(jù)單精度浮點(diǎn)型單精度浮點(diǎn)型 float雙精度浮點(diǎn)型雙精度浮點(diǎn)型 double 存儲(chǔ)存儲(chǔ) 數(shù)據(jù)精度數(shù)據(jù)精度 取值范圍取值范圍 (有效數(shù)字有效數(shù)字)float 4字節(jié)字節(jié) 七七/八位八位 (10-38 10

19、38)double 8字節(jié)字節(jié) 十六位十六位 (10308 10308 )6.3 6.3 數(shù)據(jù)的輸入和輸出數(shù)據(jù)的輸入和輸出 (P100)(P100)6.3.2 實(shí)型數(shù)據(jù)的輸入和輸出實(shí)型數(shù)據(jù)的輸入和輸出 用來輸出實(shí)數(shù),以小數(shù)形式輸出。有以下幾用來輸出實(shí)數(shù),以小數(shù)形式輸出。有以下幾種用法種用法 %f,不指定字段寬度,由系統(tǒng)自動(dòng)指定,不指定字段寬度,由系統(tǒng)自動(dòng)指定,使整數(shù)部使整數(shù)部分全部輸出,并輸出分全部輸出,并輸出6位小數(shù)。位小數(shù)。注意注意:并非全部數(shù)據(jù)都是:并非全部數(shù)據(jù)都是有效數(shù)字,單精度實(shí)數(shù)的有效位數(shù)一般為有效數(shù)字,單精度實(shí)數(shù)的有效位數(shù)一般為7位,雙位,雙 精度有精度有效位數(shù)為效位數(shù)為16位。

20、位。%m.nf,指定輸出數(shù)據(jù)共占,指定輸出數(shù)據(jù)共占m列,其中有列,其中有n位小數(shù)。如果位小數(shù)。如果數(shù)值長度小于數(shù)值長度小于m,則左補(bǔ)空格。,則左補(bǔ)空格。%-m.nf與與%m.nf基本相同,只是輸出的數(shù)值向左端靠,基本相同,只是輸出的數(shù)值向左端靠,右端補(bǔ)空格右端補(bǔ)空格輸出如下:輸出如下:123.456001*123.456001*123.46*123.46 *123.46例例4.8 輸出實(shí)數(shù)時(shí)指定小數(shù)位輸出實(shí)數(shù)時(shí)指定小數(shù)位#inclucevoid main() float f=123.456; printf(“%f *%10f *%10.2f*%.2f*%-10.2fn”,f,f,f,f,f);

21、xt1-1共共10位位,小數(shù)占小數(shù)占2位位,小數(shù)點(diǎn)占小數(shù)點(diǎn)占1位位實(shí)型數(shù)據(jù)輸出示例實(shí)型數(shù)據(jù)輸出示例# include int main(void) double d = 3.1415926; printf(%f, %en, d, d); printf(%5.3f, %5.2f, %.2fn, d, d, d); 一共一共5位,小數(shù)位,小數(shù)3位,小數(shù)點(diǎn)一位位,小數(shù)點(diǎn)一位lxt23-pingguo基本基本數(shù)據(jù)類型數(shù)據(jù)類型字符型字符型字符具有數(shù)值特征:字符具有數(shù)值特征: 字符型數(shù)據(jù)在內(nèi)存中占用一個(gè)字節(jié),用于存儲(chǔ)它的字符型數(shù)據(jù)在內(nèi)存中占用一個(gè)字節(jié),用于存儲(chǔ)它的ASCIIASCII碼??梢杂米址A炕蛳?/p>

22、應(yīng)的碼??梢杂米址A炕蛳鄳?yīng)的ASCIIASCII碼表示字符碼表示字符 A A 65 65 (ASCII (ASCII碼碼) ) 0100 00010100 0001( (二進(jìn)制二進(jìn)制) ) 字符變量的定義形式如下:字符變量的定義形式如下: char c1,c2;char c1,c2;可以用下面的語句對(duì)可以用下面的語句對(duì)c1c1、c2c2賦值:賦值: c1=A; c1=A; /把字符常量把字符常量A A賦值給字符變量賦值給字符變量c1c1 c2=b; c2=b; 字符型變量的等價(jià)關(guān)系字符型變量的等價(jià)關(guān)系 char c;char c; c = A; c = A; 等價(jià)于等價(jià)于 c = 65;c

23、= 65;字符型常量字符型常量字符常量字符常量a A 9 + $ ASCII字符集(附錄字符集(附錄2)列出所有可用的字符(列出所有可用的字符(256個(gè))個(gè))每個(gè)字符:惟一的次序值(每個(gè)字符:惟一的次序值( ASCII 碼)碼)0-9 升序排列升序排列A-Za-z字符的數(shù)值特征字符的數(shù)值特征字符字符ASCII 碼碼對(duì)字符進(jìn)行運(yùn)算對(duì)字符進(jìn)行運(yùn)算 對(duì)字符的對(duì)字符的ASCII 碼進(jìn)行運(yùn)算碼進(jìn)行運(yùn)算例如:例如:A 的的 ASCII 碼碼 65則:則:A+1=66,對(duì)應(yīng)字符,對(duì)應(yīng)字符 B轉(zhuǎn)轉(zhuǎn)義義字字符符反斜杠后跟一個(gè)字符或數(shù)字反斜杠后跟一個(gè)字符或數(shù)字字符常量,代表一個(gè)字符字符常量,代表一個(gè)字符 n 10

24、1 x41 A %所有字符都可以用轉(zhuǎn)義字符表示所有字符都可以用轉(zhuǎn)義字符表示6.3.3 6.3.3 字符型數(shù)據(jù)輸入輸出字符型數(shù)據(jù)輸入輸出字符型數(shù)據(jù)的格式控制說明是字符型數(shù)據(jù)的格式控制說明是%c使用使用scanf() 和和 printf()函數(shù),輸入輸出一個(gè)字符函數(shù),輸入輸出一個(gè)字符char ch;scanf(%c, &ch);printf(%c, ch);使用使用getchar() 和和 putchar()函數(shù),輸入輸出一個(gè)字符函數(shù),輸入輸出一個(gè)字符char ch;ch = getchar( );putchar(ch); 例例 向字符變量賦以整數(shù)向字符變量賦以整數(shù).#include void m

25、ain() char c1,c2; c1=97; c2=98; printf(%c %cn,c1,c2); printf(%d %dn,c1,c2);運(yùn)行結(jié)果為:運(yùn)行結(jié)果為:a b97 98 一個(gè)字符型數(shù)據(jù)既一個(gè)字符型數(shù)據(jù)既可以以字符形式輸可以以字符形式輸出,也可以以整數(shù)出,也可以以整數(shù)形式輸出形式輸出可以改為這兩句:可以改為這兩句:c1=a;c2=b; 例例 大小寫字母的轉(zhuǎn)換大小寫字母的轉(zhuǎn)換#include void main( ) char c1,c2; c1=a; c2=b; c1=c1-32; c2=c2-32; printf(“%c %cn”,c1,c2);運(yùn)行結(jié)果為:運(yùn)行結(jié)果為:A

26、 B小寫字母在小寫字母在ASCII碼表中排在大寫字碼表中排在大寫字母的后面,每個(gè)小母的后面,每個(gè)小寫字母比其相應(yīng)的寫字母比其相應(yīng)的大寫字母的大寫字母的ASCII碼大碼大32例例6-3(2) 6-3(2) 輸入輸出字符示例輸入輸出字符示例# include void main( ) char ch1, ch2, ch3; scanf(%c%c%c, &ch1, &ch2, &ch3); printf(%c%c%c%c%c, ch1, #, ch2, #, ch3);AbCA#b#CA bCA# #b例例6-3(1) 6-3(1) 輸入輸出字符示例輸入輸出字符示例# include void ma

27、in( ) char ch1, ch2; ch1=getchar(); ch2=getchar(); putchar(ch1); putchar(#); putchar(ch2);AbA#b例例6-4 6-4 輸出字符型數(shù)據(jù)輸出字符型數(shù)據(jù)# include void main( ) char ch = b; printf(%c, %dn, b, b); printf(%c, %dn, 98, 98); printf(%c, %dn, 97, b-1); printf(%c, %dn, ch - a + A, ch - a + A ); b的的ASCII碼碼98b, 98b, 98a, 97B,

28、 666.4.1 6.4.1 自動(dòng)類型轉(zhuǎn)換(非賦值運(yùn)算)自動(dòng)類型轉(zhuǎn)換(非賦值運(yùn)算)整型、整型、浮點(diǎn)浮點(diǎn)型型(單、雙精度單、雙精度)、字符型數(shù)據(jù)間可以混合運(yùn)算、字符型數(shù)據(jù)間可以混合運(yùn)算在運(yùn)算時(shí),不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型在運(yùn)算時(shí),不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型(系統(tǒng)自動(dòng)完(系統(tǒng)自動(dòng)完成)成),然后進(jìn)行運(yùn)算。轉(zhuǎn)換的規(guī)則如下圖所示:,然后進(jìn)行運(yùn)算。轉(zhuǎn)換的規(guī)則如下圖所示:根據(jù)數(shù)據(jù)類根據(jù)數(shù)據(jù)類型的優(yōu)先級(jí)別來確定。型的優(yōu)先級(jí)別來確定。高高 double float long unsigned 低低 int char,short運(yùn)算時(shí)數(shù)據(jù)向最高級(jí)別轉(zhuǎn)換運(yùn)算時(shí)數(shù)據(jù)向最高級(jí)別轉(zhuǎn)換設(shè)設(shè) int i; fl

29、oat f; double d; long e; 則式子則式子 10+a+i*f-d/e 的結(jié)果為的結(jié)果為double型型5.4.2 5.4.2 強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換運(yùn)算符強(qiáng)制類型轉(zhuǎn)換運(yùn)算符類型轉(zhuǎn)換運(yùn)算符類型轉(zhuǎn)換運(yùn)算符: (類型名類型名)轉(zhuǎn)換形式轉(zhuǎn)換形式:(類型名類型名) 表達(dá)式表達(dá)式如:如:(double)a /* 將將a的值轉(zhuǎn)換成的值轉(zhuǎn)換成double類型類型 */ (int)(x+y) /* 將將x+y的值轉(zhuǎn)換成整型的值轉(zhuǎn)換成整型 */ (float)(5%3) /* 將將5%3的值轉(zhuǎn)換成的值轉(zhuǎn)換成float型型 */在強(qiáng)制類型轉(zhuǎn)換時(shí),得到一個(gè)所需類型的中間變量,原來在強(qiáng)

30、制類型轉(zhuǎn)換時(shí),得到一個(gè)所需類型的中間變量,原來變量的類型未發(fā)生變化。變量的類型未發(fā)生變化。 例如例如 (int)x 而不要寫成而不要寫成 int(x)例例 float a; int cfloat a; int c; a=3.34;a=3.34; c=(int)a+2; c=(int)a+2; 結(jié)果是結(jié)果是5 5總結(jié):類型轉(zhuǎn)換有兩種:總結(jié):類型轉(zhuǎn)換有兩種:1、自動(dòng)類型轉(zhuǎn)換、自動(dòng)類型轉(zhuǎn)換 2、強(qiáng)制類型轉(zhuǎn)換、強(qiáng)制類型轉(zhuǎn)換表達(dá)式:由運(yùn)算符和運(yùn)算對(duì)象(操作數(shù))組成的有表達(dá)式:由運(yùn)算符和運(yùn)算對(duì)象(操作數(shù))組成的有意義的運(yùn)算式子,它的值和類型由參加運(yùn)算的運(yùn)意義的運(yùn)算式子,它的值和類型由參加運(yùn)算的運(yùn)算符和運(yùn)算

31、對(duì)象決定。算符和運(yùn)算對(duì)象決定。運(yùn)算符:具有運(yùn)算功能的符號(hào)運(yùn)算符:具有運(yùn)算功能的符號(hào)運(yùn)算對(duì)象:常量、變量和函數(shù)等表達(dá)式運(yùn)算對(duì)象:常量、變量和函數(shù)等表達(dá)式算術(shù)表達(dá)式、賦值表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)算術(shù)表達(dá)式、賦值表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式、條件表達(dá)式和逗號(hào)表達(dá)式等式、條件表達(dá)式和逗號(hào)表達(dá)式等 6.5 6.5 表達(dá)式表達(dá)式 6.5.1 6.5.1 算術(shù)表達(dá)式算術(shù)運(yùn)算符算術(shù)表達(dá)式算術(shù)運(yùn)算符單目單目 + - + -雙目雙目 + - * / %注意注意/ 整數(shù)除整數(shù),得整數(shù)整數(shù)除整數(shù),得整數(shù)1/4 = 0,10/3 = 3% 模模(求余求余): 針對(duì)整型數(shù)據(jù)針對(duì)整型數(shù)據(jù)5%6 = 5,9%4 = 1

32、,100%4 = 0+ 和和 u單目運(yùn)算符,單目運(yùn)算符, +10 和和 10u雙目運(yùn)算符,雙目運(yùn)算符, x+10 和和 y 10 雙目運(yùn)算符兩側(cè)操作數(shù)的類型要相同,否則,自動(dòng)類型雙目運(yùn)算符兩側(cè)操作數(shù)的類型要相同,否則,自動(dòng)類型轉(zhuǎn)換后,再運(yùn)算。轉(zhuǎn)換后,再運(yùn)算。自增運(yùn)算符自增運(yùn)算符+和自減運(yùn)算符和自減運(yùn)算符- -自增、自減運(yùn)算符自增、自減運(yùn)算符+ - + - (單目運(yùn)算)(單目運(yùn)算)作用:使變量值加作用:使變量值加1 1或減或減1 1。如:。如:+I +I 等價(jià)于等價(jià)于 i=i+1i=i+1兩種形式:兩種形式:u 前置前置 +i,-i (+i,-i (先先使使i i值值+1+1或或-1-1,再使用

33、再使用i i值)值)u 后置后置 i+,i- (i+,i- (先使用先使用i i值值, , 再再使使i i值值+1+1或或-1-1)例例 i=3; k=+i; i=3; k=+i; i=3; k=i+; i=3; k=i+; a=3; b=5; c=(+a) a=3; b=5; c=(+a)* *b; b; a=3; b=5; c=(a+) a=3; b=5; c=(a+)* *b; b; /i=4,k=/i=4,k=4 4 /i=4,k=/i=4,k=3 3 /a=4,c=2/a=4,c=20 0 /a=4,c=1/a=4,c=15 5注意:前置和后置的區(qū)別,注意:前置和后置的區(qū)別,i值有不

34、同嗎?值有不同嗎?/*使用循環(huán)方式求使用循環(huán)方式求1-100的和(累加)的和(累加)*/#includevoid main() int i,sum; sum=0; i=1; while(i=100) sum=sum+i; i+; printf(和為和為: %dn,sum); 改成下列形式行不?改成下列形式行不?+i;自增運(yùn)算符自增運(yùn)算符+和自減運(yùn)算符和自減運(yùn)算符- -int n;n+ +n n- -n (只適合變量運(yùn)算)(只適合變量運(yùn)算)使變量的值增使變量的值增1或減或減1+n n+ n = n + 1-n n- n = n - 1取變量的值作為表達(dá)式的值取變量的值作為表達(dá)式的值+n:n =

35、n + 1;??;取n值作為表達(dá)式值作為表達(dá)式 +n 的值的值n+:?。喝值作為表達(dá)式值作為表達(dá)式 n+ 的值;的值;n = n + 1算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性單目單目 + - + -雙目雙目 * / %雙目雙目 + -高高低低從右向左從右向左-5 + 3%2 = (-5) + (3%2) = -43 * 5 % 3 = (3*5) % 3 = 0-i+ -(i+)6.5.2 6.5.2 賦值賦值表達(dá)式表達(dá)式1. 1. 賦值運(yùn)算符賦值運(yùn)算符賦值符號(hào):賦值符號(hào):= = 2. 2. 賦值表達(dá)式賦值表達(dá)式變量標(biāo)識(shí)符變量標(biāo)識(shí)符= =表達(dá)式表達(dá)式 x = 3*4;作用:將一個(gè)

36、數(shù)據(jù)(常量或表達(dá)式)賦給一個(gè)變量作用:將一個(gè)數(shù)據(jù)(常量或表達(dá)式)賦給一個(gè)變量賦值時(shí)將表達(dá)式的類型轉(zhuǎn)換成變量的類型再賦值。賦值時(shí)將表達(dá)式的類型轉(zhuǎn)換成變量的類型再賦值。 優(yōu)先級(jí)較低,結(jié)合性從右向左優(yōu)先級(jí)較低,結(jié)合性從右向左 x = y = 3例例 float a; int cfloat a; int c; a=3;a=3; c=a+2; c=a+2;例例 3=x-23=x-2* *y; y; ( ) a+b=3; a+b=3; ( )x = (y = 3)6.5.2 6.5.2 賦值賦值表達(dá)式表達(dá)式3. 3. 復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符u在等號(hào)之前加上其它運(yùn)算符,可以構(gòu)成復(fù)合的運(yùn)算符在等號(hào)之前加

37、上其它運(yùn)算符,可以構(gòu)成復(fù)合的運(yùn)算符u形式:形式:運(yùn)算符運(yùn)算符=u種類:種類:+= -= += -= * *= /= %= /= %= u實(shí)例:實(shí)例:a+=3a+=3a=a+3a=a+3x x* *=y+8=y+8x=xx=x* *(y+8)(y+8)x%=3x%=3x=x%3x=x%3例例: a=b=c=5: a=b=c=5 a=5+(c=6) a=5+(c=6) a=(b=4)+(c=6) a=(b=4)+(c=6) printf(“%d”,a=b); printf(“%d”,a=b);/表達(dá)式值為表達(dá)式值為5 5,a,b,ca,b,c值為值為5 5/表達(dá)式值表達(dá)式值1111,c=6,a=1

38、1c=6,a=11/表達(dá)式值表達(dá)式值1010,a=10,b=4,c=6a=10,b=4,c=6/完成賦值和輸出雙重功能完成賦值和輸出雙重功能賦值表達(dá)式賦值表達(dá)式例例: : 賦值表達(dá)式的復(fù)合運(yùn)算賦值表達(dá)式的復(fù)合運(yùn)算 若若a=12 則則a+=a- =a*a a=a-a*a=-132 a=a+(-132)=-2646.5.6 6.5.6 逗號(hào)表達(dá)式逗號(hào)表達(dá)式(P114)(P114)逗號(hào)運(yùn)算符和表達(dá)式逗號(hào)運(yùn)算符和表達(dá)式形式:形式:表達(dá)式表達(dá)式1,表達(dá)式表達(dá)式2,表達(dá)式表達(dá)式n結(jié)合性結(jié)合性: 從左向右從左向右優(yōu)先級(jí)優(yōu)先級(jí): 15逗號(hào)表達(dá)式逗號(hào)表達(dá)式的值:等于的值:等于“表達(dá)式表達(dá)式n”的值的值用途:用途

39、:常用于循環(huán)常用于循環(huán)for語句中語句中例例 a=3*5, a*4例例 x=(a=3, 6*3) x=a=3, 6*a例例 已有已有a=1;b=2;c=3; printf(“%d,%d,%d”,(a,b,c),b,c); /表達(dá)式值表達(dá)式值60, a=15 /賦值表達(dá)式,表達(dá)式值賦值表達(dá)式,表達(dá)式值18,x=18/逗號(hào)表達(dá)式逗號(hào)表達(dá)式,表達(dá)式值表達(dá)式值18,x=3 /3,2,3int a, b, c;a=2, b=3, c=a+b(a=2), (b=3), (c=a+b);加法:加法:0100累加和累加和sum = 0;for(i = 0; i = 100; i+) sum = sum + i

40、;逗號(hào)逗號(hào)表達(dá)式的用途表達(dá)式的用途for(i =0, sum = 0; i = 100; i+) sum = sum + i;for(i = 0, sum = 0; i = 100; i+) sum += i; 復(fù)合賦值表達(dá)式復(fù)合賦值表達(dá)式x=3, 表達(dá)式表達(dá)式y(tǒng)值?值?y= (x+) + (+x) + (x+) 實(shí)例實(shí)例y= ( a=3, b=a+, a/2 ) a值值,b值值,y值?值? 先計(jì)算所有的前置增量操作先計(jì)算所有的前置增量操作: x=4計(jì)算表達(dá)式值計(jì)算表達(dá)式值: y=12再計(jì)算所有的后置增量操作再計(jì)算所有的后置增量操作: x=5, x=6x=3, 表達(dá)式表達(dá)式y(tǒng)值?值?y= (+

41、x) + (+x) + (+x) 先前置先前置: x=4, x=5, x=6計(jì)算表達(dá)式值計(jì)算表達(dá)式值: y=18a=3; b=3, a=4; a/2計(jì)算表達(dá)式值計(jì)算表達(dá)式值: y=2C C語言程序是結(jié)構(gòu)化的程序語言程序是結(jié)構(gòu)化的程序C語言程序由三種基本結(jié)構(gòu)組成語言程序由三種基本結(jié)構(gòu)組成順序結(jié)構(gòu):順序結(jié)構(gòu):a=3; b=5; c=a+b;選擇結(jié)構(gòu)選擇結(jié)構(gòu): if else , switch 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu): for , while 順序結(jié)構(gòu)程序與選擇結(jié)構(gòu)程序順序結(jié)構(gòu)程序與選擇結(jié)構(gòu)程序順序結(jié)構(gòu)程序順序結(jié)構(gòu)程序選擇結(jié)構(gòu)程序選擇結(jié)構(gòu)程序/*求兩個(gè)數(shù)的和求兩個(gè)數(shù)的和*/#include void ma

42、in( ) int a, b, c; scanf( “%d, %d”, &a, &b ); c = a+ b; printf( “c = %d n”, c ); /*求兩個(gè)數(shù)的最大值求兩個(gè)數(shù)的最大值*/#include void main( ) int a, b, max; scanf( “%d, %d”, &a, &b ); if ( a b ) max = a; else max= b; printf( “max = %d n”, max );程序順序執(zhí)行,且每條語句都程序順序執(zhí)行,且每條語句都執(zhí)行一次執(zhí)行一次根據(jù)條件,只執(zhí)行滿足條件的語句。根據(jù)條件,只執(zhí)行滿足條件的語句。某些語句可能執(zhí)行

43、不到。某些語句可能執(zhí)行不到。循環(huán)結(jié)構(gòu)程序循環(huán)結(jié)構(gòu)程序循環(huán)結(jié)構(gòu)程序循環(huán)結(jié)構(gòu)程序#include void main( ) int a, b, sum; scanf( “%d, %d”, &a, &b ); sum = a+ b; printf( “sum = %d n”,sum); /*求求0100累加和累加和*/#include void main( ) int i, sum=0; for ( i=0; i=100; i+) sum=sum+i; printf( “sum = %d n”, sum );在給定條件成立時(shí),反復(fù)執(zhí)行某程序段(循環(huán)體語在給定條件成立時(shí),反復(fù)執(zhí)行某程序段(循環(huán)體語句)

44、,直到條件不成立時(shí),結(jié)束循環(huán)句),直到條件不成立時(shí),結(jié)束循環(huán)例例2-5 2-5 程序程序p26p26例例2-5: 計(jì)算銀行存款利息計(jì)算銀行存款利息 # include # include void main( ) int money, year; double rate, sum; printf(請輸入存款金額請輸入存款金額: ); scanf(%d,&money); printf(請輸入存款年限請輸入存款年限: ); scanf(%d,&year); printf(請輸入存款利率請輸入存款利率: ); scanf(%lf,&rate); sum=money*pow(1+rate),year)

45、; printf(到期本息合計(jì)到期本息合計(jì): %.2fn,sum); printf(n);scanf(%d,%d,%lf, &money, &year, &rate);順序結(jié)構(gòu)程序設(shè)計(jì)舉例順序結(jié)構(gòu)程序設(shè)計(jì)舉例例例 說明程序設(shè)計(jì)的步驟與注意事項(xiàng)說明程序設(shè)計(jì)的步驟與注意事項(xiàng)#include #include void main() int a,b,c; a=5;b=7; float x,y,z; c=a*b; z=sqrt(x+y); scanf(%f,%f,&x,&y); printf(“%d,%dn,c);printf(“x=%f,y=%f,z=%fn,x,y,z);順序結(jié)構(gòu)程序設(shè)計(jì)舉例順序結(jié)

46、構(gòu)程序設(shè)計(jì)舉例a=5;b=7;float x,y,z;scanf(%f,%f,&x,&y);z=sqrt(x+y); printf(“%dn,c);程序中有幾處錯(cuò)誤?程序中有幾處錯(cuò)誤?#include #include void main() float a,b,c,s,area; printf(“請輸入三角形的三個(gè)邊長:請輸入三角形的三個(gè)邊長:”); scanf(%f,%f,%f,&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf(a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2fn,a,b,c

47、,s); printf(“三角形面積三角形面積=%7.2fn,area);例輸入三角形邊長,求面積例輸入三角形邊長,求面積輸入:3,4,6輸出:a=3.00, b=4.00, c=6.00, s=6.50area=5.33)()()()(21csbsassareacbas輸入數(shù)據(jù)輸出數(shù)據(jù)分析分析: a,b,c:表示三角形的三邊。表示三角形的三邊。 s:中間變量。中間變量。 s=1/2*(a+b+c) area:三角形面積。三角形面積。 以上變量均為實(shí)型。以上變量均為實(shí)型。變量定義文件包含預(yù)處理命令s=1/2*(a+b+c)s=(a+b+c) /2 設(shè)置幾個(gè)變量?變量類型是什么?設(shè)置幾個(gè)變量?變

48、量類型是什么?選擇結(jié)構(gòu)程序選擇結(jié)構(gòu)程序/*求兩個(gè)數(shù)的最大值求兩個(gè)數(shù)的最大值*/#include void main( ) int a, b, max; scanf( “%d, %d”, &a, &b ); if ( a b ) max = a; else max= b; printf( “max = %d n”, max );根據(jù)條件,只執(zhí)行滿足根據(jù)條件,只執(zhí)行滿足條件的語句。某些語句條件的語句。某些語句可能執(zhí)行不到??赡軋?zhí)行不到。6.5.3 6.5.3 關(guān)系表達(dá)式關(guān)系運(yùn)算符關(guān)系表達(dá)式關(guān)系運(yùn)算符比較兩個(gè)操作數(shù),比較的結(jié)果:真比較兩個(gè)操作數(shù),比較的結(jié)果:真 假假x y x y x = y x !

49、= y優(yōu)先級(jí)優(yōu)先級(jí) 算術(shù)運(yùn)算符算術(shù)運(yùn)算符 = = != 賦值運(yùn)算符賦值運(yùn)算符左結(jié)合左結(jié)合a b = cd = a bch a + 1 d = a + b c3 = x b)= cd = (a b)ch (a + 1)d = (a + b) c)(3 = x) b = cd = a bch a + 1d = a + b cb - 1 = a != c3 = x b) max=a ; else max=b ;其中:其中:“ab”是關(guān)系表達(dá)式,是關(guān)系表達(dá)式,“”關(guān)系運(yùn)算符關(guān)系運(yùn)算符如果如果a=5,b=3,滿足條件,滿足條件ab,則執(zhí)行語句,則執(zhí)行語句 max=a;如果如果a=2,b=3,不滿足條件,

50、不滿足條件ab,則執(zhí)行語句,則執(zhí)行語句max=b;2.2.3 if-else2.2.3 if-else/*求兩個(gè)數(shù)的最大值求兩個(gè)數(shù)的最大值*/#include void main( ) int a, b, max; scanf( “%d, %d”, &a, &b ); if ( a b ) max = a; else max= b; printf( “max = %d n”, max );2.3.1 2.3.1 程序解析程序解析例例2-4 分段計(jì)算水費(fèi)分段計(jì)算水費(fèi)要解決的問題:要解決的問題:輸入輸入x計(jì)算分段函數(shù)計(jì)算分段函數(shù)輸出輸出y,并保留,并保留2位小數(shù)位小數(shù) 415( )32.510.5

51、15xxyf xxx2.3.3 if - else2.3.3 if - else語句語句if (表達(dá)式表達(dá)式) 語句語句1else 語句語句2if (x 15) else y = 2.5 * x - 10.5;y = 4 * x / 3;2.3.1 2.3.1 程序解析求分段函數(shù)程序解析求分段函數(shù) /*例例2-4 居民用水居民用水*/#include void main ( ) 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.

52、5f(9.500000)=12.67Enter x (x=0):15f(15.000000)=20.00Enter x (x=0):21.3f(21.300000)=42.75軟件測試的基本思想軟件測試的基本思想 p24p24軟件測試軟件測試精心設(shè)計(jì)一批測試用例精心設(shè)計(jì)一批測試用例 輸入數(shù)據(jù),預(yù)期輸出結(jié)果輸入數(shù)據(jù),預(yù)期輸出結(jié)果 ,然后分,然后分別用這些測試用例運(yùn)行程序,看程序的實(shí)際運(yùn)行結(jié)果與預(yù)別用這些測試用例運(yùn)行程序,看程序的實(shí)際運(yùn)行結(jié)果與預(yù)期輸出結(jié)果是否一致。期輸出結(jié)果是否一致。input x:2.5f(2.50)=0.4input x:0f(0.00)=0.0if(x != 0) y =

53、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.756.5.5 6.5.5 條件表達(dá)式條件表達(dá)式p113p113y = (x0) ? x+2 : x*x;if ( x0 ) y=x+2;else y=x*x; x+2 x0y = x2 xb) ? a : b;if ( ab ) z = a;else z = b;問題:編程序求問題:編程序求1+2+100之和之和分析:分析: 1、設(shè)一個(gè)變量、設(shè)一個(gè)變量sum存放和,并初始

54、化為存放和,并初始化為0; 2、設(shè)置變量、設(shè)置變量i, 讓其從讓其從1100,將這,將這100個(gè)數(shù)一個(gè)一個(gè)加到個(gè)數(shù)一個(gè)一個(gè)加到sum中,中,加加100次,而且每次都做同樣的操作:次,而且每次都做同樣的操作: sum=sum+i;i+;(i從從1增加到增加到100) 3、當(dāng)、當(dāng)i增加到增加到101時(shí),停止計(jì)算;最后時(shí),停止計(jì)算;最后sum中的值就為所求的值中的值就為所求的值 順序結(jié)構(gòu)和選擇結(jié)構(gòu)程序是每條語句最多執(zhí)行一次,順序結(jié)構(gòu)和選擇結(jié)構(gòu)程序是每條語句最多執(zhí)行一次,不能解決這個(gè)問題,因此要用到循環(huán)結(jié)構(gòu)不能解決這個(gè)問題,因此要用到循環(huán)結(jié)構(gòu) 循環(huán)結(jié)構(gòu)是用于處理大量的有規(guī)律的重復(fù)操作循環(huán)結(jié)構(gòu)是用于處理

55、大量的有規(guī)律的重復(fù)操作sum=1+2+100;分析:分析:sum=0 i=1sum=sum+1=1sum=sum+2=1+2=3sum=sum+3=3+3=6sum=sum+4=6+4=10sum=sum+100=4950+100=5050u一般形式:一般形式:for ( 表達(dá)式表達(dá)式1 ; 表達(dá)式表達(dá)式2 ; 表達(dá)式表達(dá)式3 ) 循環(huán)體語句循環(huán)體語句u執(zhí)行流程:執(zhí)行流程:表達(dá)式表達(dá)式2循環(huán)體語句循環(huán)體語句假假(0)真真(非非0)for表達(dá)式表達(dá)式1表達(dá)式表達(dá)式32.4.2 for2.4.2 for語句循環(huán)語句語句循環(huán)語句1.1.先求解表達(dá)式先求解表達(dá)式1 1,只執(zhí),只執(zhí)行一次行一次2.2.判

56、斷表達(dá)式判斷表達(dá)式2 2,若其值,若其值為真為真( (非非0)0),則執(zhí)行循,則執(zhí)行循環(huán)體語句,并接著執(zhí)環(huán)體語句,并接著執(zhí)行表達(dá)式行表達(dá)式3 3;若為假;若為假(0)(0),則結(jié)束循環(huán),執(zhí),則結(jié)束循環(huán),執(zhí)行行forfor語句下面一條語語句下面一條語句句sum=0;for (i=1;i=100;i+) sum=sum+i;實(shí)現(xiàn)實(shí)現(xiàn)C語句的重復(fù)執(zhí)行語句的重復(fù)執(zhí)行此處無此處無分號(hào)分號(hào);uforfor語句一般應(yīng)用形式語句一般應(yīng)用形式:for( 循環(huán)變量賦初值循環(huán)變量賦初值; 循環(huán)條件循環(huán)條件; 循環(huán)變量增值循環(huán)變量增值) 循環(huán)體語句循環(huán)體語句 #include void main() int i,su

57、m=0; for(i=1;i=100;i+) sum+=i; printf(%d,sum);for (表達(dá)式表達(dá)式1;表達(dá)式;表達(dá)式2;表達(dá)式;表達(dá)式3) 求求 1+2+100抽取具有共性的算式:抽取具有共性的算式:sum = sum + i sum初值為初值為0,該算式重復(fù),該算式重復(fù)100次,次,i從從1變到變到100設(shè)設(shè)i為循環(huán)變量,則:為循環(huán)變量,則:指定循環(huán)起點(diǎn)的表達(dá)式指定循環(huán)起點(diǎ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=10

58、0; i+)sum =sum+i;2.4.3 2.4.3 指定次數(shù)的循環(huán)程序設(shè)計(jì)指定次數(shù)的循環(huán)程序設(shè)計(jì)/*計(jì)算計(jì)算1 + 2 + 3 + + 100 */#include void main ( ) int i, sum; sum = 0; /* 置累加和置累加和sum的初值為的初值為0 */ for ( i = 1; i = 100; i+ ) /* 循環(huán)重復(fù)循環(huán)重復(fù)100次次 */ sum = sum + i; /* 反復(fù)累加反復(fù)累加 */ printf( “sum = %dn”, sum); /* 輸出累加和輸出累加和 */源程序求源程序求 1+2+1+2+100+100sum=5050

59、for(i=1,sum=0; i=100; i+) sum=sum+i;例例2-7: 計(jì)算計(jì)算1 + 2 + 3 + + n #include void main ( ) int i, sum; printf (“Enter n: ”); scanf (“%d”,&n); sum = 0; /* 置累加和置累加和sum的初值為的初值為0 */ for ( i = 1; i = 100; i+ ) /* 循環(huán)重復(fù)循環(huán)重復(fù)100次次 */ sum = sum + i; /* 反復(fù)累加反復(fù)累加 */ printf( “sum = %dn”, sum); /* 輸出累加和輸出累加和 */擴(kuò)展程序擴(kuò)展程

60、序: 求求1+2+n的和的和作業(yè)題作業(yè)題2-2. 編寫程序編寫程序: 從鍵盤上輸入攝氏溫度,輸出對(duì)應(yīng)的華氏溫從鍵盤上輸入攝氏溫度,輸出對(duì)應(yīng)的華氏溫度。度。2-5. 編寫程序編寫程序: 從鍵盤輸入兩個(gè)整數(shù),交換這兩個(gè)變量的值從鍵盤輸入兩個(gè)整數(shù),交換這兩個(gè)變量的值并輸出結(jié)果。并輸出結(jié)果。 提示:設(shè)置中間變量,用于交換數(shù)據(jù)。提示:設(shè)置中間變量,用于交換數(shù)據(jù)。2-7. 編寫程序編寫程序: 將一個(gè)小于將一個(gè)小于256的十進(jìn)制數(shù)正整數(shù)轉(zhuǎn)換成的十進(jìn)制數(shù)正整數(shù)轉(zhuǎn)換成3位八進(jìn)制數(shù)。位八進(jìn)制數(shù)。 (選做選做) 提示:采用提示:采用“除除8取余數(shù)取余數(shù)”的方法,將十進(jìn)制數(shù)除以的方法,將十進(jìn)制數(shù)除以8得得到商和余數(shù),

溫馨提示

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