C語言程序設(shè)計第2章-數(shù)據(jù)類型、運算符和表達(dá)式_第1頁
C語言程序設(shè)計第2章-數(shù)據(jù)類型、運算符和表達(dá)式_第2頁
C語言程序設(shè)計第2章-數(shù)據(jù)類型、運算符和表達(dá)式_第3頁
C語言程序設(shè)計第2章-數(shù)據(jù)類型、運算符和表達(dá)式_第4頁
C語言程序設(shè)計第2章-數(shù)據(jù)類型、運算符和表達(dá)式_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C語言程序設(shè)計主編:連衛(wèi)民 何 櫻第2章 數(shù)據(jù)類型、運算符和表達(dá)式本章主要內(nèi)容:2.1 數(shù)據(jù)類型2.2 常量和變量2.3 整型數(shù)據(jù)(重點)2.4 實型數(shù)據(jù)(重點)2.5 字符型數(shù)據(jù)(重點)2.6 數(shù)據(jù)的基本運算(重點)2.7 混合運算本章教學(xué)要求:熟悉C語言的語句和數(shù)據(jù)類型 掌握C語言的數(shù)據(jù)表示方法和算術(shù)、賦值、關(guān)系、邏輯等運算及其表達(dá)式 2.1 數(shù)據(jù)類型概述數(shù)據(jù)類型的概念數(shù)據(jù)是程序的必要組成部分,也是程序處理的對象,在高級語言中廣泛地使用“數(shù)據(jù)類型”來描述數(shù)據(jù)。數(shù)據(jù)類型是對數(shù)據(jù)的“抽象”。數(shù)據(jù)類型規(guī)定了該類數(shù)據(jù)的取值范圍和該類數(shù)據(jù)所能參與的運算,是這類數(shù)據(jù)的值與運算的集合。 第2章 數(shù)據(jù)類型

2、、運算符和表達(dá)式2.1 數(shù)據(jù)類型概述C語言中的數(shù)據(jù)類型基本類型:由系統(tǒng)提供 整型、實型、字符型構(gòu)造類型:由用戶構(gòu)造 枚舉型、數(shù)組、結(jié)構(gòu)體、共用體指針類型:變量的內(nèi)存地址 空類型說明: 數(shù)據(jù)類型要熟記:類型名、存儲長度、數(shù)據(jù)范圍第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.2 常量和變量數(shù)據(jù)的表示是指數(shù)據(jù)在計算機中的描述形式。它有常量、變量和地址(即指針)三種形式。 2.2.1 常量常量是指在程序的執(zhí)行過程中,值不能發(fā)生變化的量和具有固定值的量。類型:整型常量、實型常量、字符型常量、字符串常量和符號常量。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.2 常量和變量2.2.1 常量例如,6、2.8、a、abcd分別是

3、整型、實型、字符型和字符串常量,符號常量則是在程序(或程序的一部分)中指定的用標(biāo)識符代表的常量。符號常量用#define命令行定義,其命令格式為: #define 標(biāo)識符 常量值 例如: #define PI 3.14 如果作了以上定義,在程序中凡用到值的地方,均可使用 符號常量PI。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.2 常量和變量2.2.1 常量【例2-1】求圓面積。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.2 數(shù)據(jù)的表示2.2.2 變量1.變量的概念數(shù)據(jù)被存儲在一定的內(nèi)存單元中,數(shù)據(jù)連同存儲它的內(nèi)存單元被抽象為變量。說明:每個變量都有一個名字,這個名字稱為變量名,它代表了某段存儲單元及其所存儲

4、的數(shù)據(jù)。例如:當(dāng)在程序中出現(xiàn)下面的語句:int a=5;它意味著,在程序中定義了一個整型變量,變量名為a,其值為5,它在內(nèi)存中占據(jù)連續(xù)的2個內(nèi)存單元用于存放數(shù)據(jù)。 第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.2 數(shù)據(jù)的表示2.2.2 變量2.標(biāo)識符C語言中對程序中的實體,如:變量、常量、函數(shù)、數(shù)組、結(jié)構(gòu)體以及文件的名字統(tǒng)稱為標(biāo)識符。標(biāo)識符的命名規(guī)則 :由字母、數(shù)字和下劃線組成,且以字母或下劃線開頭。標(biāo)識符的長度無統(tǒng)一規(guī)定,最多可取到32個字符??紤]到程序的可移植性,建議標(biāo)識符的長度最長不要超過8個字符。 標(biāo)識符不能與C語言提供的關(guān)鍵字同名。盡量做到“見名知義”,以增加程序的可讀性。 第2章 數(shù)據(jù)類型、

5、運算符和表達(dá)式2.2 數(shù)據(jù)的表示2.2.2 變量3.變量的定義與初始化變量定義:在C語言中,要求對所有用到的變量必須“先定義,后使用”,也就是在使用這個變量之前,必須先說明其數(shù)據(jù)類型。變量初始化:是指在定義變量時給變量賦值。例如 :float a;char ch;int x=5,y=6; /* 在內(nèi)存中申請兩個整數(shù)空間x、y,并存入初值5、6 */float a=2.5; /* 在內(nèi)存中申請一個實數(shù)空間a,并存入初值2.5 */char ch=m; /* 在內(nèi)存中申請一個字符空間ch,并存入初值m */第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.3 整型數(shù)據(jù)2.3.1 整型常量整型常量就是整數(shù)。表示形

6、式: (1)十進(jìn)制表示。例如:215、15、-10等。(2)八進(jìn)制表示。程序中凡以數(shù)字0開頭的數(shù)被認(rèn)為是八進(jìn)制數(shù)。例如:010、025,轉(zhuǎn)換為十進(jìn)制數(shù)分別是8和21。(3)十六進(jìn)制表示。程序中凡以0 x(數(shù)字0和小寫字母x)開頭的數(shù)是十六進(jìn)制數(shù)。例如: 0 x32、0 x84,轉(zhuǎn)換為十進(jìn)制數(shù)分別是50和132。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.3 整型數(shù)據(jù)2.3.2 整型變量1. 整型變量的分類整型變量可分為四類:(1)基本整型,用int表示。(2)短整型,用short int 或short表示。(3)長整型,用long int 或long表示。(4)無符號整型,用unsigned表示。無符

7、號整型變量又分為:無符號整型,用unsigned int表示。無符號短整型,用unsigned short表示。無符號長整型,用unsigned long表示。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.3 整型數(shù)據(jù)2.3.2 整型變量2. 整型變量的存儲存儲:整型變量在內(nèi)存中所占字節(jié)數(shù)如表2-3所示。 在內(nèi)存中存儲整數(shù)時,一般以其最高位(即最左邊一位)表示數(shù)的符號,用0表示正,用1表示負(fù)。數(shù)值是以補碼形式存放的:一個正數(shù)的補碼就是該數(shù)的二進(jìn)制數(shù)(例如,10的補碼為00000000 00001010);一個負(fù)數(shù)的補碼是: 取該數(shù)的絕對值; 以二進(jìn)制形式表示; 對各位取反; 加1。例如-10的補碼可以這

8、樣求: 先取10; 10的二進(jìn)制碼為00000000 00001010; 各位取反得11111111 11110101; 加1得11111111 11110110,它就是-10的補碼。 第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.3 整型數(shù)據(jù)2.3.2 整型變量2. 整型變量的存儲【例2-3】用sizeof運算符測定所用的C系統(tǒng)中各數(shù)據(jù)類型的長度。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.3 整型數(shù)據(jù)2.3.2 整型變量2. 整型變量的存儲【例2-4】整型數(shù)據(jù)的溢出。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.3 整型數(shù)據(jù)2.3.2 整型變量3. 整型變量的定義對變量要“先定義,后使用”,變量的定義要放在函數(shù)的開頭

9、部分?!纠?-5】整型變量的定義與使用。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.4 實型數(shù)據(jù)2.4.1 實型常量實型常量就是一個具體的實數(shù)。表示形式: (1)小數(shù)形式。例如,2.5,-5.8,3.0等。(2)指數(shù)形式。指數(shù)表示形式由尾數(shù)和指數(shù)兩部分組成。指數(shù)由“e”或“E”開頭。例如123e3或 123E3都代表123103 ,123e-3或123E-3都代表12310-3。注意字母e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù)。規(guī)范化的指數(shù)形式是指尾數(shù)中,小數(shù)點左邊應(yīng)有一位(且只能有一位)非零的數(shù)字。例如2.3478e2、3.0999E-5都屬于規(guī)范化的指數(shù)形式,而12.908e6、0.45

10、6e3都不屬于規(guī)范化的指數(shù)形式。一個實數(shù)在用指數(shù)形式輸出時,是按規(guī)范化的指數(shù)形式輸出的。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.4 實型數(shù)據(jù)2.4.2 實型變量分類 :C語言的實型變量分為兩種:單精度和雙精度,分別用float 和double表示。如表2-2所示。 說明:實型常量不分單精度和雙精度,一個實數(shù)可以賦值給一個float型變量或double型變量。根據(jù)變量的類型截取實型變量中相應(yīng)有效位的數(shù)字。 第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.4 實型數(shù)據(jù)2.4.2 實型變量【例2-6】實型數(shù)據(jù)的表示。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.5 字符型數(shù)據(jù)2.5.1 字符型常量C語言中的字符常量是用單引號

11、括起來的一個字符。如:a, A ,6等。字符型數(shù)據(jù)在內(nèi)存中是以相應(yīng)的ASCII碼形式存放的。例如,a的ASCII值為97,在內(nèi)存中的存儲形式為數(shù)字97的二進(jìn)制形式。C語言中字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。一個字符數(shù)據(jù)既可以以字符形式輸出,也可以以整數(shù)形式輸出?!纠?-7】寫出下列程序的運行結(jié)果。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.5 字符型數(shù)據(jù)2.5.1 字符型常量在C語言中,除了以上形式的字符常量外,還允許使用一種特殊形式的字符常量,就是以一個開頭的字符序列,稱為“轉(zhuǎn)義字符”C語言規(guī)定:(1)以反斜線開頭后面跟一個字母代表一個控制字符。如“n”中的“n”不代表字母n而作為“換行”符。(2)

12、用“”代表字符“”,用代表撇號字符。(3)用“”后跟1到3個八進(jìn)制數(shù)代表ASCII碼為該八進(jìn)制數(shù)的字符;用x后跟1到2個十六進(jìn)制數(shù)代表ASCII碼為該十六進(jìn)制數(shù)的字符。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.5 字符型數(shù)據(jù)2.5.1 字符型常量【例2-8】寫出下列程序的運行結(jié)果。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.5 字符型數(shù)據(jù)2.5.2 字符型變量字符型變量是用來存放字符常量的。它只能保存一個字符,而不是一個字符串。在C語言中有兩種形式的字符型變量:字符變量 char c1;無符號型字符變量 : unsigned char c2;這兩種字符變量的用法是相同的,不同之處在于char型變量ASCII

13、值的取值范圍是0127,而unsigned char型變量的取值范圍是0255。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.5 字符型數(shù)據(jù)2.5.2 字符型變量字符數(shù)據(jù)在內(nèi)存中是以整數(shù)形式存放的,字符型數(shù)據(jù)和整型數(shù)據(jù)之間是可以通用的。也可以對字符數(shù)據(jù)進(jìn)行算術(shù)運算,此時相當(dāng)于對它們的ASCII碼值進(jìn)行算術(shù)運算。下面兩個例子可以說明字符數(shù)據(jù)和整型數(shù)據(jù)之間的運算和轉(zhuǎn)換?!纠?-9】【例2-10】第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.5 字符型數(shù)據(jù)2.5.3 字符串常量字符串常量是用一對雙引號括起來的若干字符序列。例如:“abcd”、“name”、“123”等。說明:雙引號作為字符串定界符是不能出現(xiàn)在字符串中的

14、,如果要在字符串中插入雙引號和,必須使用轉(zhuǎn)義字符。字符串中的字符數(shù)稱為該字符串的長度。字符串常量在機器內(nèi)存儲時,系統(tǒng)自動在字符串的末尾加上一個結(jié)束標(biāo)志,它是轉(zhuǎn)義字符0。 第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.6 數(shù)據(jù)的基本運算運算(即操作)是對數(shù)據(jù)的加工。運算符:操作的符號。數(shù)據(jù):是被運算的對象,可以是常量、變量或函數(shù)。表達(dá)式:表示數(shù)據(jù)運算的式子。 C語言提供了豐富的運算符,能構(gòu)成多種表達(dá)式,它把許多基本操作都作為運算符處理。 學(xué)習(xí)運算符重點:要掌握其運算規(guī)則、優(yōu)先級和結(jié)合性。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.6 數(shù)據(jù)的基本運算2.6.1 算術(shù)運算和算術(shù)表達(dá)式1.基本算術(shù)運算符C語言的算術(shù)運算

15、符如表2-4所示。說明:(1)“/”是法除運算符,但是它與數(shù)學(xué)中的除法運算有所不同。 (2)“%”是求模運算符,即兩數(shù)相除所得的余數(shù)。C語言要求只能對整數(shù)進(jìn)行求模運算。 第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.6 數(shù)據(jù)的基本運算2.6.1 算術(shù)運算和算術(shù)表達(dá)式2.算術(shù)表達(dá)式用算術(shù)運算符和括號將運算對象(也稱操作數(shù))連接起來的符合C語法規(guī)則的式子,稱為C算術(shù)表達(dá)式。運算對象包括常量、變量、函數(shù)等。3.運算符的優(yōu)先級和結(jié)合性(1)計算方法:先按運算符的優(yōu)先級的高低次序進(jìn)行,如果優(yōu)先級相同,則按結(jié)合性處理。 (2)算術(shù)運算符的優(yōu)先級:“ *、/、% ” 同級別,“ +、- ”同級別,但低于“ *、/、%

16、 ”。 (3)算術(shù)運算符的結(jié)合方向為“自左至右”,即先左后右,也稱為“左結(jié)合”。 第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.6 數(shù)據(jù)的基本運算2.6.2 賦值運算符與賦值表達(dá)式1.賦值運算符賦值運算符為“=”,它的作用是給變量賦值。由賦值運算符將一個變量和一個表達(dá)式連接起來的式子稱為賦值表達(dá)式。其一般形式為:變量 = 表達(dá)式 說明:(1)“= ”的左邊只能是變量,右邊可以是常量、變量、函數(shù)或表達(dá)式。結(jié)合性是右結(jié)合。(2)當(dāng)表達(dá)式值的類型與被賦值變量的類型不一致時,系統(tǒng)會自動將表達(dá)式的值轉(zhuǎn)換成被賦值變量的數(shù)據(jù)類型。(3)如果一個變量被多次賦值,那么前面的值會被后面的值所覆蓋,因此變量的最終取值是最后一

17、次被賦予的值。 【例2-12】寫出下列程序的運行結(jié)果。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.6 數(shù)據(jù)的基本運算2.6.2 賦值運算符與賦值表達(dá)式2.復(fù)合賦值運算符C語言規(guī)定可以使用10種復(fù)合賦值運算符,其中復(fù)合算術(shù)運算符有5個:+=、-=、*=、/=、%=說明:各復(fù)合賦值運算符與普通賦值運算符的優(yōu)先級相同,它們的結(jié)合性為右結(jié)合。容易使人產(chǎn)生誤解和錯誤。在編程時,語句的表達(dá)要清晰、易讀,盡量少用或不用復(fù)雜的賦值表達(dá)式。 第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.6 數(shù)據(jù)的基本運算2.6.2 賦值運算符與賦值表達(dá)式3賦值表達(dá)式由賦值運算符將一個變量和一個表達(dá)式連接起來的式子,稱為賦值表達(dá)式。其一般格式為:

18、 變量=表達(dá)式賦值表達(dá)式的值就是被賦值變量的值。例如,有一個賦值表達(dá)式: y=3 這個賦值表達(dá)式的值就是變量y的值3。若有如下語句: x=y=3; 則變量x的值為3。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.6 數(shù)據(jù)的基本運算2.6.2 賦值運算符與賦值表達(dá)式4自增(+)和自減(-)運算符自增、自減運算的作用是使變量的值加1或減1。根據(jù)自增自減運算符在變量的前面還是后面,將其分為前置運算和后置運算。(1)前置運算自增自減運算符在變量之前的稱為前置運算。如:+i、-i。它的運算規(guī)則是:先使變量的值加1或減1,再以變化后的值參與其它運算。如:i=1;j=+i;執(zhí)行以上語句后,i=2,j=2第2章 數(shù)據(jù)類

19、型、運算符和表達(dá)式2.6 數(shù)據(jù)的基本運算2.6.2 賦值運算符與賦值表達(dá)式4自增(+)和自減(-)運算符自增、自減運算的作用是使變量的值加1或減1。根據(jù)自增自減運算符在變量的前面還是后面,將其分為前置運算和后置運算。(2)后置運算自增自減運算符在變量之后的稱為后置運算。如:i+、i-。它的運算規(guī)則是:變量先參與其它運算,然后再使變量的值加1或減1 。如:i=1;j=i+;執(zhí)行以上語句后,i=2,j=1。j的值為什么不是2而是1呢?原因是在執(zhí)行j=i+時,先將i的值賦值給j,然后i再自增變?yōu)?,而在自增前i的值是1,當(dāng)然j的值就是1了。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.6 數(shù)據(jù)的基本運算2.6

20、.2 賦值運算符與賦值表達(dá)式4自增(+)和自減(-)運算符說明:(1)自增與自減運算符的優(yōu)先級高于算術(shù)運算符,自增自減運算符和單目運算符“+、-”(正負(fù))屬于同一級別。(2)自增與自減運算的結(jié)合方向是“從右向左”,即右結(jié)合。(3)自增或自減操作運行速度比其等價的賦值運算快得多,目標(biāo)代碼的效率也更高,因此,在條件允許的情況下,若有a=a+1和a+兩個選擇,那么首選的應(yīng)是a+。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.6 數(shù)據(jù)的基本運算2.6.3 關(guān)系運算符和關(guān)系表達(dá)式關(guān)系運算又稱為比較運算,它是比較兩個操作數(shù)之間大小關(guān)系的運算。1關(guān)系運算符C語言提供了6種關(guān)系運算符: (大于) = (大于等于) b,

21、 x=2, ab字符的比較是按ASCII碼值的大小進(jìn)行比較。因此,ab的結(jié)果為0。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.6 數(shù)據(jù)的基本運算2.6.4 邏輯運算符和邏輯表達(dá)式1邏輯運算符C語言提供了三種邏輯運算符:&(邏輯與)| (邏輯或)! (邏輯非)第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.6 數(shù)據(jù)的基本運算2.6.4 邏輯運算符和邏輯表達(dá)式2優(yōu)先級和結(jié)合性邏輯運算符的優(yōu)先級由高到低依次為: ! & |與其它運算符相比,&和|運算符低于關(guān)系運算符,!高于算術(shù)運算符。即:! 算術(shù)運算符 關(guān)系運算符 & | 賦值運算符邏輯運算符的結(jié)合性為“左結(jié)合”。第2章 數(shù)據(jù)類型、運算符和表達(dá)式2.6 數(shù)據(jù)的基本運算2.6.4 邏輯運算符和邏輯表達(dá)式3邏輯表達(dá)式用邏輯

溫馨提示

  • 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

提交評論