C語言程序設(shè)計教程電子教案(幻燈片)第03章_第1頁
C語言程序設(shè)計教程電子教案(幻燈片)第03章_第2頁
C語言程序設(shè)計教程電子教案(幻燈片)第03章_第3頁
C語言程序設(shè)計教程電子教案(幻燈片)第03章_第4頁
C語言程序設(shè)計教程電子教案(幻燈片)第03章_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、本文由jxsfdxljxy貢獻ppt文檔可能在WAP端瀏覽體驗不佳。建議您優(yōu)先選擇TXT,或下載源文件到本機查看。第3章數(shù)據(jù)類型、運算符與表達式章數(shù)據(jù)類型、3.13.33.33.43.53.63.73.83.9程序設(shè)計概述C語言的數(shù)據(jù)類型語言的數(shù)據(jù)類型常量和變量整型數(shù)據(jù)實型數(shù)據(jù)字符型數(shù)據(jù)算術(shù)運算與算術(shù)表達式賦值運算與賦值表達式C語言特有的運算和運算符語言特有的運算和運算符Return3.1程序設(shè)計概述一個程序應(yīng)包括對數(shù)據(jù)的描述和對數(shù)據(jù)處理的描述。1.對數(shù)據(jù)的描述,即數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)是計算機學(xué)科的核心課程之一,有許多專門著作論述,本課程就不再贅述。在C語言中,系統(tǒng)提供的數(shù)據(jù)結(jié)構(gòu),是以數(shù)據(jù)類型的

2、形式出現(xiàn)的。3.對數(shù)據(jù)處理的描述,即計算機算法。算法是為解決一個問題而采取的方法和步驟,是程序的靈魂。為此,著名計算機科學(xué)家沃思(NikiklausWirth提出一個公式:數(shù)據(jù)結(jié)構(gòu)+算法=程序?qū)嶋H上,一個程序除了數(shù)據(jù)結(jié)構(gòu)和算法外,還必須使用一種計算機語言,并采用結(jié)構(gòu)化方法來表示。Return3.3C語言的數(shù)據(jù)類型語言的數(shù)據(jù)類型C語言提供的數(shù)據(jù)結(jié)構(gòu),是以數(shù)據(jù)類型形式出現(xiàn)的。具體分類如下:1.基本類型分為整型、實型(又稱浮點型、字符型和枚舉型四種。3.構(gòu)造類型分為數(shù)組類型、結(jié)構(gòu)類型和共用類型三種。3.指針類型。在第9章中介紹。4.空類型C語言中的數(shù)據(jù),有常量和變量之分,它們分別屬于上述這些類型。本

3、章將介紹基本類型中的整型、實型和字符型三種數(shù)據(jù)。Return3.3常量和變量3.3.1常量1.常量的概念在程序運行過程中,其值不能被改變的量稱為常量。3.常量的分類(1整型常量(3實型常量(3字符常量。(4符號常量。常量的類型,可通過書寫形式來判別。3.3.3變量1.變量的概念在程序運行過程中,其值可以被改變的量稱為變量。3.變量的兩個要素(1變量名。每個變量都必須有一個名字變量名,變量命名遵循標(biāo)識符命名規(guī)則。(3變量值。在程序運行過程中,變量值存儲在內(nèi)存中。在程序中,通過變量名來引用變量的值。3.標(biāo)識符命名規(guī)則標(biāo)識符命名規(guī)則(1有效字符:只能由字母、數(shù)字和下劃線組成,且以字母或下劃線開頭。(

4、3有效長度:隨系統(tǒng)而異,但至少前8個字符有效。如果超長,則超長部分被舍棄。例如,由于student_na me和student_number的前8個字符相同,有的系統(tǒng)認為這兩個變量,是一回事而不加區(qū)別。在TCV3.0中,變量名(標(biāo)識符的有效長度為133個字符,缺省值為3 3。(3C語言的關(guān)鍵字不能用作變量名。注意:C語言對英文字母的大小敏感,即同一字母的大注意小寫,被認為是兩個不同的字符。習(xí)慣上,變量名和函數(shù)名中的英文字母用小寫,以增加可讀性。思考題:在C語言中,變量名total與變量名TO TAL、思考題ToTaL、tOtAl等是同一個變量嗎?標(biāo)識符命名的良好習(xí)慣見名知意:所謂“見名知意”是

5、指,通過變量名就知道變量值的含義。通常應(yīng)選擇能表示數(shù)據(jù)含義的英文單詞(或縮寫作變量名,或漢語拼音字頭作變量名。例如,name /xm(姓名、sex/xb(性別、age/nl(年齡、salary/gz(工資。4.變量的定義與初始化在C語言中,要求對所有用到的變量,必須先定義、后使用;且稱在定義變量的同時進行賦初值的操作為變量初始化。(1變量定義的一般格式存儲類型數(shù)據(jù)類型變量名,變量名3;例如,floatradius,leng th,area;(3變量初始化的一般格式存儲類型數(shù)據(jù)類型變量名=初值,變量名3=初值3;例如,floatradius=3.5,length,area;Return3.4整型

6、數(shù)據(jù)3.4.1整型變量1.分類根據(jù)占用內(nèi)存字節(jié)數(shù)的不同,整型變量又分為4類:(1基本整型(類型關(guān)鍵字為int。(3短整型(類型關(guān)鍵字為shortint。(3長整型(類型關(guān)鍵字為longint。(4無符號整型。無符號型又分為無符號基本整型(unsignedint、無符號短整型(unsignedshort和無符號長整型(unsignedlong三種,只能用來存儲無符號整數(shù)。3.占用內(nèi)存字節(jié)數(shù)與值域上述各類型整型變量占用的內(nèi)存字節(jié)數(shù),隨系統(tǒng)而異。在16位操作系統(tǒng)中,一般用3字節(jié)表示一個int型變量,且long型(4字節(jié)int型(3字節(jié)short型(3字節(jié)。顯然,不同類型的整型變量,其值域不同。占用內(nèi)

7、存字節(jié)數(shù)為n的(有符號整型變量,其值域為:-3n*8-1(3n*8-11;無符號整型變量的值域為:0(3n*8-1。例如,PC機中的一個int型變量,其值域為-33*8-1(33*8-11,即-337683376 7;一個unsigned型變量的值域為:0(33*8-1,即065535。3.4.3整型常量1 .三種表示形式整型常量即整常數(shù),在C語言中可用三種形式表示:(1十進制。例如10、36。(3八進制(以數(shù)字0開頭。例如013。(3十六進制(以數(shù)字0 +小寫字母x開頭。例如0x36。3.分類(1基本整型。在16位機中,用3字節(jié)存儲,其數(shù)據(jù)范圍與int型變量一樣。(3長整型(在數(shù)值后面加“L

8、(l”。對超出基本整型值域的整型常量,可使用長整型常量表示,其取值范圍可達-331-(331-1。例如,133l、31 5L等。3.類型匹配規(guī)則類型匹配規(guī)則為:一個整型常量,可以賦給能容納下其值的整型變量。例如,其值在-315-(315-1的整型常量,可以賦給int型變量和longint型變量;其值在-331-(331-1的整型常量,就只能賦給longin t型變量。注意:常量無unsigned型。但一個非負整型常量,只要注意它的值不超過相應(yīng)變量的值域(即取值范圍,也可以賦給unsigned型變量。Return3.5實型數(shù)據(jù)3.5.1實型變量C語言的實型變量,分為兩種:(1單精度型。類型關(guān)鍵字

9、為float,一般占4字節(jié)(33位、提供7位有效數(shù)字。(3雙精度型。類型關(guān)鍵字為double,一般占8個字節(jié)、提供1516位有效數(shù)字。3.5.3實型常量1.表示形式實型常量即實數(shù),在C語言中又稱浮點數(shù),其值有兩種表達形式:(1十進制形式。例如3.14、9.8。(3指數(shù)形式:<尾數(shù)>E(e<整型指數(shù)>。例如3.0E+5等。3.關(guān)于類型實型常量不分float型和double型。一個實型常量,可以賦給一個實型變量(float型或double型。Return3.6字符型數(shù)據(jù)3.6.1字符常量1.字符常量的定義用一對單引號括起來的單個字符,稱為字符常量。例如,A、1、+等。3.轉(zhuǎn)

10、義字符C語言還允許使用一種特殊形式的字符常量,就是以反斜杠“”開頭的轉(zhuǎn)義字符。注意:如果反斜杠或單引號本身作為字符常量,必須注意使用轉(zhuǎn)義字符:、。案例案例3. 1用轉(zhuǎn)義字符輸出可打印字符和不可打印字符。案例/*案例代碼文件名:AL3_1.C */*程序功能:用轉(zhuǎn)義字符輸出可打印字符和不可打印字符*/main(printf(“x4Fx4Bx31n”;/*等價于printf(“OK!n”;*/p rintf(“x15xABn”;程序運行結(jié)果如下:OK!§程序演示程序演示程序演示3.6.3字符變量字符變量的類型關(guān)鍵字為char,一般占用1字節(jié)內(nèi)存單元。1.變量值的存儲字符變量用來存儲字符常

11、量。將一個字符常量存儲到一個字符變量中,實際上是將該字符的ASCII碼值(無符號整數(shù)存儲到內(nèi)存單元中。例如,char ch1,ch3;/*定義兩個字符變量:ch1,ch3*/ch1=a;ch3=b;/*給字符變量賦值*/3.特性字符數(shù)據(jù)在內(nèi)存中存儲的是字符的ASCII碼一個無符號整數(shù),其形式與整數(shù)的存儲形式一樣(如圖3-4所示,所以C語言允許字符型數(shù)據(jù)與整型數(shù)據(jù)之間通用。(1一個字符型數(shù)據(jù),既可以字符形式輸出,也可以整數(shù)形式輸出。案例案例3.3字符變量的字符形式輸出和整數(shù)形式輸出。案例/*案例代碼文件名:AL3_3.C*/*程序功能:用字符形式和整數(shù)形式輸出字符變量*/main(charch1

12、,ch3;ch1='a'ch3='b'printf(“ch1=%c,ch3=%cn”,c h1,ch3;printf(“ch1=%d,ch3=%dn”,ch1,ch3;程序運行結(jié)果:ch1=a,ch3=b ch1=97,ch3=98程序演示程序演示程序演示(3允許對字符數(shù)據(jù)進行算術(shù)運算,此時就是對它們的ASCII碼值進行算術(shù)運算。案例案例3.3字符數(shù)據(jù)的算術(shù)運算。案例/*案例代碼文件名:AL3_3.C*/*程序功能:字符數(shù)據(jù)的算術(shù)運算*/main(charch1,ch3;ch1=a;ch3=B;/*字母的大小寫轉(zhuǎn)換*/printf(“ch1=%c, ch3=%c

13、n”,ch1-33,ch3+33;/*用字符形式輸出一個大于356的數(shù)值*/printf("ch1 +300=%dn",ch1+300;printf("ch1+300=%cn",ch1+300;printf("ch1+356=%d n",ch1+356;printf("ch1+356=%cn",ch1+356;程序運行結(jié)果:ch1=A,ch3=bch1+300=397ch1+300=ch1+356=353ch1+356= a程序演示程序演示程序演示思考題:用字符形式輸出一個大于356的數(shù)值,會得思考題到什么結(jié)果?3

14、.6 .3字符串常量1.字符串常量的概念和字符串長度字符串常量是用一對雙引號括起來的若干字符序列。字符串中字符的個數(shù)稱為字符串長度。長度為0的字符串(即一個字符都沒有的字符串稱為空串,表示為“”(一對緊連的雙引號。例如,“Howdoyoudo.”、“Goodmorning.”等,都是字符串常量,其長度分別為14和13(空格也是一個字符。如果反斜杠和雙引號作為字符串中的有效字符,則必須使用轉(zhuǎn)義字符。例如:(1C:msdosv6.33"C:msdosv6.33"(3Isay:"Goodbye!""Isay:"Goodbye!"“

15、3.字符串的存儲字符串的存儲C語言規(guī)定:在存儲字符串常量時,由系統(tǒng)在字符串的末尾自動加一個0作為字符串的結(jié)束標(biāo)志。注意:在源程序中書寫字符串常量時,不必加結(jié)束注意字符0,否則畫蛇添足。如果有一個字符串為“CHINA”,則它在內(nèi)存中的實際存儲如下所示:CHINA0最后一個字符'0'是系統(tǒng)自動加上的,它占用6字節(jié)而非5字節(jié)內(nèi)存空間。綜上所述,字符常量'A'與字符串常量"A"是兩回事:(1定界符不同:字符常量使用單引號,而字符串常量使用雙引號;(3長度不同:字符常量的長度固定為1,而字符串常量的長度,可以是0,也可以是某個整數(shù);(3存儲要求不同:字

16、符常量存儲的是字符的ASCII碼值,而字符串常量,除了要存儲有效的字符外,還要存儲一個結(jié)束標(biāo)志0。Return3.7算術(shù)運算與算術(shù)表達式在C語言中,除控制語句和輸入輸出函數(shù)外,其它所有基本操作都作為運算符處理。1.五種基本算術(shù)運算符五種基本算術(shù)運算符+、-(減法/取負、*、/、%(求余數(shù)(1關(guān)于除法運算/C語言規(guī)定:兩個整數(shù)相除,其商為整數(shù),小數(shù)部分被舍棄。例如,5/3=3。(3關(guān)于求余數(shù)運算%要求兩側(cè)的操作數(shù)均為整型數(shù)據(jù),否則出錯。3.表達式和算術(shù)表達式表達式和算術(shù)表達式(1表達式的概念用運算符和括號將運算對象(常量、變量和函數(shù)等連接起來的、符合C語言語法規(guī)則的式子,稱為表達式。單個常量、變

17、量或函數(shù),可以看作是表達式的一種特例。將單個常量、變量或函數(shù)構(gòu)成的表達式稱為簡單表達式,其它表達式稱之為復(fù)雜表達式。(3算術(shù)表達式的概念表達式中的運算符都是算術(shù)運算符。例如,3+6*9、(x+y/3-1等,都是算術(shù)表達式。良好的源程序書寫習(xí)慣:在表達式中,在雙目運算符的左右兩側(cè)各加一個空格,可增強程序的可讀性。請比較表達式“(x+y/31”與“(x+y/31”,您認為哪個的可讀性更好一些?3.運算符的優(yōu)先級與結(jié)合性運算符的優(yōu)先級與結(jié)合性(1C語言規(guī)定了運算符的優(yōu)先級和結(jié)合性。所謂結(jié)合性是指,當(dāng)一個操作數(shù)兩側(cè)的運算符具有相同的優(yōu)先級時,該操作數(shù)是先與左邊的運算符結(jié)合,還是先與右邊的運算符結(jié)合。自

18、左至右的結(jié)合方向,稱為左結(jié)合性。反之,稱為右結(jié)合性。結(jié)合性是C語言的獨有概念。除單目運算符、賦值運算符和條件運算符是右結(jié)合性外,其它運算符都是左結(jié)合性。(3表達式求值11按運算符的優(yōu)先級高低次序執(zhí)行。例如,先乘除后加減。3如果在一個運算對象(或稱操作數(shù)兩側(cè)的運算符的優(yōu)先級相同,則按C語言規(guī)定的結(jié)合方向(結(jié)合性進行。例如,算術(shù)運算符的結(jié)合方向是“自左至右”,即:在執(zhí)行“ab+c”時,變量b先與減號結(jié)合,執(zhí)行“a-b”;然后再執(zhí)行加c的運算。4.數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換(1在C語言中,整型、實型和字符型數(shù)據(jù)間可以混合運算(因為字符數(shù)據(jù)與整型數(shù)據(jù)可以通用。如果一個運算符兩側(cè)的操作數(shù)的數(shù)據(jù)類型不同,則

19、系統(tǒng)按“先轉(zhuǎn)換、后運算”的原則,首先將數(shù)據(jù)自動轉(zhuǎn)換成同一類型,然后在同一類型數(shù)據(jù)間進行運算。轉(zhuǎn)換規(guī)則如圖3-5所示。1橫向向左的箭頭,表示必須的轉(zhuǎn)換。char和short型必須轉(zhuǎn)換成int型,float型必須轉(zhuǎn)換成double型。3縱向向上的箭頭,表示不同類型的轉(zhuǎn)換方向。例如,int型與double 型數(shù)據(jù)進行混合運算,則先將int型數(shù)據(jù)轉(zhuǎn)換成double型,然后在兩個同類型的數(shù)據(jù)間進行運算,結(jié)果為double型。注意:箭頭方向只表示數(shù)據(jù)類型由低向高轉(zhuǎn)換,不要注意理解為int型先轉(zhuǎn)換成unsigned型,再轉(zhuǎn)換成long型,最后轉(zhuǎn)換成double型。(3除自動轉(zhuǎn)換外,C語言也允許強制轉(zhuǎn)換。數(shù)據(jù)

20、類型強制轉(zhuǎn)換的一般格式為:(要轉(zhuǎn)換成的數(shù)據(jù)類型(被轉(zhuǎn)換的表達式當(dāng)被轉(zhuǎn)換的表達式是一個簡單表達式時,外面的一對圓括號可以缺省。例如,(doublea(等價于(double(a/*將變量a的值轉(zhuǎn)換成double型*/(int(x+y/*將x+y的結(jié)果轉(zhuǎn)換成int型*/(float5/3(等價于(float(5/3/*將5轉(zhuǎn)換成實型,再除以3(=3.5*/(float(5/3/*將5整除3的結(jié)果(3轉(zhuǎn)換成實型(3.0*/注意:強制轉(zhuǎn)換類型得到的是一個所需類型的中間量,原表達注意式類型并不發(fā)生變化。例如,(doublea只是將變量a的值轉(zhuǎn)換成一個double型的中間量,其數(shù)據(jù)類型并未轉(zhuǎn)換成double

21、型。Return3.8賦值運算與賦值表達式1.賦值運算賦值運算賦值符號“=”就是賦值運算符,它的作用是將一個表達式的值賦給一個變量。賦值運算符的一般形式為:變量=賦值表達式例如,x=5y=(float5/3如果表達式值的類型,與被賦值變量的類型不一致,但都是數(shù)值型或字符型時,系統(tǒng)自動地將表達式的值轉(zhuǎn)換成被賦值變量的數(shù)據(jù)類型,然后再賦值給變量。思考題:假設(shè)變量num的數(shù)據(jù)類型為float,其值為3.5,思考題則執(zhí)行“num=(intnum”后,num的值等于多少?3.復(fù)合賦值運算復(fù)合賦值運算復(fù)合賦值運算符是由賦值運算符之前再加一個雙目運算符構(gòu)成的。復(fù)合賦值運算的一般格式為:變量雙目運算符=表達式

22、復(fù)合賦值運算符它等價于:變量=變量雙目運算符(表達式。當(dāng)表達式為簡單表達式時,表達式外的一對圓括號才可缺省,否則可能出錯。例如,x+=3/*等價于x=x+3*/y*=x+6/*等價于y=y*(x+6,而不是y =y*x+6*/C語言規(guī)定的10種復(fù)合賦值運算符如下:+=,-=,*=,/=,%=;/*復(fù)合算術(shù)運算符(5個*/&=,=,|=,<<=,>>=;/*復(fù)合位運算符(5個*/3.賦值表達式賦值表達式由賦值運算符或復(fù)合賦值運算符,將一個變量和一個表達式連接起來的表達式,稱為賦值表達式。(1一般格式變量(復(fù)合賦值運算符表達式(3賦值表達式的值任何一個表達式都有一個

23、值,賦值表達式也不例外。被賦值變量的值,就是賦值表達式的值。被賦值變量的值,例如,“a=5”這個賦值表達式,變量a的值“5”就是它的值。Return3.9C語言特有的運算和運算符3.9.1自增(+、自減(-運算自增(、自減(、自減1.作用自增運算使單個變量的值增1,自減運算使單個變量的值減1。3.用法與運算規(guī)則自增、自減運算符都有兩種用法:(1前置運算運算符放在變量之前:+變量、-變量先使變量的值增(或減1,然后再以變化后的值參與其它運算,即先增減、后運算。(3后置運算運算符放在變量之后:變量+、變量-變量先參與其它運算,然后再使變量的值增(或減1,即先運算、后增減。案例案例3.4自增、自減運算符的用法與運算規(guī)則示例。案例/*案例代碼文件名:AL3_4.

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論