程序設計(C語言)_第1頁
程序設計(C語言)_第2頁
程序設計(C語言)_第3頁
程序設計(C語言)_第4頁
程序設計(C語言)_第5頁
已閱讀5頁,還剩40頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、程序設計(C語言) 第第2章章 數據與運算數據與運算 2.1 常量與變量常量與變量 是在程序運行過程中其值不能發生改變的量。是在程序運行過程中其值不能發生改變的量。 例如例如256256、3.453.45、aa等。等。 變量:變量:是在程序運行過程中其值可以發生改變的量。變量在是在程序運行過程中其值可以發生改變的量。變量在 內存中占據一定的存儲單元。在該存儲單元中存放變量的內存中占據一定的存儲單元。在該存儲單元中存放變量的 值。變量的標識通過給變量取名實現,所以一個變量應該值。變量的標識通過給變量取名實現,所以一個變量應該 有一個名字。有一個名字。 用來標識變量名、符號常量名、函數名、數組名、

2、類型用來標識變量名、符號常量名、函數名、數組名、類型 名、文件名的有效字符序列稱為標識符,簡單地說,標名、文件名的有效字符序列稱為標識符,簡單地說,標 識符就是一個名字。識符就是一個名字。 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.1 常量與變量常量與變量 C C語言規定標識符必須滿足以下規則:語言規定標識符必須滿足以下規則: (1 1)所有標識符必須由一個字母)所有標識符必須由一個字母(a(az z,A AZ)Z)或下劃線或下劃線 ( _ _ )開頭。)開頭。 (2 2)標識符的其他部分可以用字母、下劃線或數字)標識符的其他部分可以用字母、下劃線或數字 (0 09 9)組成。

3、)組成。 (3 3)大小寫字母表示不同意義,即代表不同的標識符。)大小寫字母表示不同意義,即代表不同的標識符。 (4 4)標識符只有前)標識符只有前3232個字符有效。個字符有效。 (5 5)標識符應當盡量遵循)標識符應當盡量遵循“簡潔明了簡潔明了”和和“見名知義見名知義” 的原則。的原則。 (6 6)標識符不能使用)標識符不能使用C C語言的關鍵字。語言的關鍵字。 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.1 常量與變量常量與變量 所謂關鍵字就是已被所謂關鍵字就是已被Turbo C 2.0Turbo C 2.0本身使用、不能作其他用本身使用、不能作其他用 途使用的字。途使用的

4、字。Turbo C 2.0Turbo C 2.0有以下關鍵字:有以下關鍵字: Turbo C 2.0Turbo C 2.0擴展的共擴展的共1111個:個: asmasm_cs _ds _cs _ds _es_es_ss _ss cdecl cdecl far farnearnearhugehuge interrupt pascal interrupt pascal 由由ANSIANSI標準定義的共標準定義的共3232個:個: auto double auto double intint struct structbreakbreak else long else long switch cas

5、eswitch caseenumenum register typedef char extern register typedef char externreturnreturn unionunionconstconstfloat shortfloat short unsignedunsigned continuecontinue forforsigned void defaultsigned void default goto gotosizeofsizeofvolatilevolatile dodoif if while whilestaticstatic 程序設計(C語言) 第第2章章

6、 數據與運算數據與運算 2.1 常量與變量常量與變量 C C語言規定變量在使用前必須先定義。語言規定變量在使用前必須先定義。 變量定義的一般形式為:變量定義的一般形式為: 類型說明符類型說明符 變量標識符變量標識符, ,變量標識符變量標識符,;,; 示例:示例:int a,b,c;int a,b,c; float e,f; float e,f; char x,y; char x,y; 以上以上intint,floatfloat,charchar為類型說明符,為類型說明符,a a,b b,c c,e e,f f,x x,y y 為變量標識符。為變量標識符。 程序設計(C語言) 第第2章章 數據與

7、運算數據與運算 2.2 數據類型數據類型 數據的組織形式稱為數據結構。數據的組織形式稱為數據結構。 C C語言中的數據結構表現為數據類型。語言中的數據結構表現為數據類型。 數據類型數據類型 基本類型基本類型 構造類型構造類型 空類型空類型 指針類型指針類型 數組類型數組類型 結構體類型結構體類型 共用體類型共用體類型 整型整型 字符型字符型 實型實型 單精度單精度 枚舉類型枚舉類型 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.2 數據類型數據類型 1 1整型變量整型變量 數據類型數據類型類型說明符類型說明符 位(字節數)位(字節數)數的范圍數的范圍 基本整型基本整型int16(2

8、 2) -327683276732767 -215(2(215-1) 短整型短整型short16(2 2) -327683276732767 -215(2(215-1) 長整型長整型long int32(4 4) -214748364821474836472147483647 -231(2(231-1) 無符號基本整無符號基本整 型型 unsigned int16(2 2) 06553565535 0(2(216-1) 無符號短整型無符號短整型 unsigned short 16(2 2) 06553565535 0(2(216-1) 無符號長整型無符號長整型 unsigned long 32

9、(4 4) 042949672954294967295 0(2(232-1) 2.2.1 2.2.1 整型數據整型數據 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.2 數據類型數據類型 整型變量的定義:整型變量的定義: 整型類型說明符整型類型說明符 變量標識符變量標識符, ,變量標識符變量標識符,;,; 示例:示例:int a,b,c; int a,b,c; / /* *定義定義a a,b b,c c為基本整型變量為基本整型變量* */ / long d,e; long d,e; / /* *定義定義d d,e e為長整型變量為長整型變量* */ / unsigned x,y;

10、unsigned x,y; / /* *定義定義x x,y y為無符號基本整型變量為無符號基本整型變量* */ / 在書寫變量說明時,應注意以下幾點:在書寫變量說明時,應注意以下幾點: (1 1)允許在一個類型說明符后說明多個相同類型的變量。各變量名之間用)允許在一個類型說明符后說明多個相同類型的變量。各變量名之間用 逗號間隔。類型說明符與變量名之間至少用一個空格間隔。逗號間隔。類型說明符與變量名之間至少用一個空格間隔。 (2 2)最后一個變量名之后必須以)最后一個變量名之后必須以“;”;”號結尾。號結尾。 (3 3)變量說明必須放在變量使用之前,一般放在函數體的開頭部分。)變量說明必須放在變

11、量使用之前,一般放在函數體的開頭部分。 1 1整型變量整型變量 2.2.1 2.2.1 整型數據整型數據 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.2 數據類型數據類型 2 2整型常量整型常量 整型常量即整常數。整型常量即整常數。 按不同的進制區分,整型常數有三種表示方法:按不同的進制區分,整型常數有三種表示方法: (1 1)十進制數:以非)十進制數:以非0 0開始的數,開始的數, 如:如:254254,-10-10,4560045600。 (2 2)八進制數:以)八進制數:以0 0開始的數,開始的數, 如:如:0606,01060106,057057。 (3 3)十六進制數:

12、以)十六進制數:以0X0X或或0 x0 x開始的數,開始的數, 如:如:0X2A0X2A,0XFF0XFF,0 x580 x58。 1 1整型變量整型變量 2.2.1 2.2.1 整型數據整型數據 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.2 數據類型數據類型 (1 1)一個整常量,如果其值在)一個整常量,如果其值在-32768-32768+32767+32767范圍內,認為它是范圍內,認為它是intint型。型。 它可以賦值給它可以賦值給intint型和型和1ong int1ong int型變量。型變量。 (2 2)一個整常量,如果其值超過了上述范圍,而在)一個整常量,如果其

13、值超過了上述范圍,而在-2147483648-2147483648 21474836472147483647范圍內,則認為它是范圍內,則認為它是1ong int1ong int型。可以將它賦值給一個型。可以將它賦值給一個1ong 1ong intint型變量。型變量。 (3 3)如果某一計算機系統的)如果某一計算機系統的C C版本確定的版本確定的short int short int 與與intint型數據在內存型數據在內存 中占據的長度相同,則它表示的數據范圍與中占據的長度相同,則它表示的數據范圍與intint型相同,因此一個型相同,因此一個intint型型 的常量也同時是一個的常量也同時是

14、一個short intshort int型常量,可以賦給型常量,可以賦給intint型或型或short intshort int型變型變 量;量; 整型常量的類型:整型常量的類型: 2 2整型常量整型常量 1 1整型變量整型變量 2.2.1 2.2.1 整型數據整型數據 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.2 數據類型數據類型 (4 4)常量中無)常量中無unsignedunsigned型。但一個非負值的整常量可以賦給型。但一個非負值的整常量可以賦給 unsignedunsigned型整變量,只要它的范圍不超過變量表示的數據范圍即可。型整變量,只要它的范圍不超過變量表示的

15、數據范圍即可。 例如,將例如,將5000050000賦給一個賦給一個unsigned intunsigned int型變量是可以的,而將型變量是可以的,而將7000070000 賦給它則是不行的(溢出)。賦給它則是不行的(溢出)。 (5 5)在一個整常量后面加一個字母)在一個整常量后面加一個字母l l或或L L,則認為是,則認為是1ong int1ong int型常量。型常量。 整型常量的類型:整型常量的類型: 2 2整型常量整型常量 1 1整型變量整型變量 2.2.1 2.2.1 整型數據整型數據 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.2 數據類型數據類型 2.2.2 2

16、.2.2 實型數據實型數據 1 1實型變量實型變量 實型也稱為浮點型,實型也稱為浮點型,Turbo CTurbo C中實型變量有以下兩種類型:中實型變量有以下兩種類型: (1 1)單精度浮點型。類型說明符為)單精度浮點型。類型說明符為floatfloat,占,占4 4個字節(個字節(3232 位)內存空間,其數值范圍為位)內存空間,其數值范圍為3.4E-383.4E-383.4E+383.4E+38,只能提供,只能提供 七位有效數字。七位有效數字。 (2 2)雙精度浮點型。類型說明符為)雙精度浮點型。類型說明符為doubledouble,占,占8 8個字節(個字節(6464 位)內存空間,其數

17、值范圍為位)內存空間,其數值范圍為1.7E-3081.7E-3081.7E+3081.7E+308,可提供,可提供 十六位有效數字。十六位有效數字。 說明:浮點數均為有符號浮點數,沒有無符號浮點數。說明:浮點數均為有符號浮點數,沒有無符號浮點數。 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.2 數據類型數據類型 2.2.2 2.2.2 實型數據實型數據 1 1實型變量實型變量 實型變量定義:實型變量定義: 實型類型說明符實型類型說明符 變量標識符變量標識符, ,變量標識符變量標識符,;,; 示例:示例:float a, f; /float a, f; /* *定義定義a a,f

18、f為單精度浮點型變量為單精度浮點型變量* */ / double b; / double b; /* *定義定義b b為雙精度浮點型變量為雙精度浮點型變量* */ / 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.2 數據類型數據類型 2.2.2 2.2.2 實型數據實型數據 1 1實型變量實型變量 2 2實型常量實型常量 實型常量又稱實數或浮點數,有兩種表示形式:實型常量又稱實數或浮點數,有兩種表示形式: (1 1)十進制數形式。十進制數形式由數字和小數點組成(注)十進制數形式。十進制數形式由數字和小數點組成(注 意必須有小數點)。例如:意必須有小數點)。例如:0.1230.12

19、3、.123.123、123.0123.0、123.123.、0.00.0、 123.123123.123等都是十進制數形式。等都是十進制數形式。 (2 2)指數形式。指數形式由十進制數加階碼標志)指數形式。指數形式由十進制數加階碼標志“e”e”或或“E”E” 以及階碼(只能為整數,可以帶符號)組成。其一般形式為以及階碼(只能為整數,可以帶符號)組成。其一般形式為a a E n E n (a a為十進制數,為十進制數,n n為十進制整數),表示值為為十進制整數),表示值為 a a10n10n, 其中,其中,a a,n n均不可缺省。均不可缺省。 例:例:0.123E4 0.123E4 表示值為

20、表示值為0.1230.123104104 -5.123E-4 -5.123E-4 表示值為表示值為-5.123-5.12310-410-4 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.2 數據類型數據類型 2.2.2 2.2.2 實型數據實型數據 1 1實型變量實型變量 2 2實型常量實型常量 說明:說明: (1 1)浮點常數只有一種進制(十進制)。)浮點常數只有一種進制(十進制)。 (2 2)所有實型常量都被默認為)所有實型常量都被默認為doubledouble類型。類型。 (3 3)絕對值小于)絕對值小于1 1的浮點數,其小數點前面的零可以省略。的浮點數,其小數點前面的零可以

21、省略。 (4 4)Turbo CTurbo C以默認格式輸出浮點數時,最多只保留小數點以默認格式輸出浮點數時,最多只保留小數點 后六位。后六位。 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.2 數據類型數據類型 2.2.3 2.2.3 字符型數據字符型數據 1 1字符常量字符常量 C C語言的字符常量是用單引號(即撇號)括起來的一個字符。語言的字符常量是用單引號(即撇號)括起來的一個字符。 例如:例如:aa、xx,DD、?、 $、A4A4等都是不同的字符常量。等都是不同的字符常量。 C C還允許用一種特殊形式的字符常量,這種特殊形式的還允許用一種特殊形式的字符常量,這種特殊形式的

22、 字符常量稱為轉義字符。字符常量稱為轉義字符。 轉義字符以反斜線轉義字符以反斜線“”開頭,后跟一個或幾個字符。開頭,后跟一個或幾個字符。 轉義字符具有特定的含義,不同于字符原有的意義,故稱轉義字符具有特定的含義,不同于字符原有的意義,故稱 “轉義轉義”字符。轉義字符主要用來表示那些用一般字符不字符。轉義字符主要用來表示那些用一般字符不 便于表示的控制代碼。便于表示的控制代碼。 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.2 數據類型數據類型 2.2.3 2.2.3 字符型數據字符型數據 1 1字符常量字符常量 轉義字符轉義字符表示含義表示含義 n回車換行回車換行 t橫向跳到下一制

23、表位置橫向跳到下一制表位置 v豎向跳格豎向跳格 b退格退格 r回車回車 f走紙換頁走紙換頁 反斜線符反斜線符 單引號符單引號符 a鳴鈴鳴鈴 ddd13 3位八進制數所代表的字符位八進制數所代表的字符 xhh12 2位十六進制數所代表的字符位十六進制數所代表的字符 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.2 數據類型數據類型 2.2.3 2.2.3 字符型數據字符型數據 1 1字符常量字符常量 2 2字符變量字符變量 字符型變量用來存放字符常量。字符型變量用來存放字符常量。 類型說明符為類型說明符為charchar。 占占1 1個字節(個字節(8 8位)內存空間。位)內存空間。

24、 字符變量的定義:字符變量的定義: 字符型類型說明符字符型類型說明符 變量標識符變量標識符, ,變量標識符變量標識符,;,; 示例:示例:char a,b; /char a,b; /* *定義定義a a,b b為字符型變量為字符型變量* */ / 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.2 數據類型數據類型 2.2.3 2.2.3 字符型數據字符型數據 1 1字符常量字符常量 2 2字符變量字符變量 字符值是以字符值是以ASCIIASCII碼的形式存放在變量的內存單元中的。碼的形式存放在變量的內存單元中的。 例如:如果有例如:如果有char a,b;char a,b; a=x

25、;b=y; 查表可知,查表可知,x x的十進制的十進制ASCIIASCII碼是碼是120120,y y的十進制的十進制ASCIIASCII碼碼 是是121121,所以對字符變量,所以對字符變量a a,b b賦予賦予xx和和yy值,實際上是值,實際上是 在在a a,b b兩個單元內存放兩個單元內存放120120和和121121的二進制代碼,即:的二進制代碼,即: a單元為:單元為: b單元為:單元為: 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.2 數據類型數據類型 2.2.3 2.2.3 字符型數據字符型數據 1 1

26、字符常量字符常量 2 2字符變量字符變量 由此可見,字符型量也可以看成是整型量。語言允許對由此可見,字符型量也可以看成是整型量。語言允許對 整型變量賦以字符值,也允許對字符變量賦以整型值。在整型變量賦以字符值,也允許對字符變量賦以整型值。在 輸出時,允許把字符變量按整型量輸出,也允許把整型量輸出時,允許把字符變量按整型量輸出,也允許把整型量 按字符型量輸出。整型量為二字節量,字符型量為單字節按字符型量輸出。整型量為二字節量,字符型量為單字節 量,當整型量按字符型量處理時,量,當整型量按字符型量處理時, 只有低八位字節參與只有低八位字節參與 處理。處理。 程序設計(C語言) 第第2章章 數據與運

27、算數據與運算 2.2 數據類型數據類型 2.2.3 2.2.3 字符型數據字符型數據 1 1字符常量字符常量 2 2字符變量字符變量 3 3字符串常量字符串常量 C C語言的字符串常量是用雙引號括起來的一個字符序列。語言的字符串常量是用雙引號括起來的一個字符序列。 例如例如“ABcd”ABcd”、“9”9”、“a”a”等都是字符串常量。等都是字符串常量。 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.2 數據類型數據類型 2.2.3 2.2.3 字符型數據字符型數據 1 1字符常量字符常量 2 2字符變量字符變量 3 3字符串常量字符串常量 字符串常量和字符常量是不同的量。它們之間

28、主要有以下區別:字符串常量和字符常量是不同的量。它們之間主要有以下區別: (1 1)字符常量由單引號括起來,字符串常量由雙引號括起來。)字符常量由單引號括起來,字符串常量由雙引號括起來。 (2 2)字符常量只能是單個字符,字符串常量則可以含多個字符。)字符常量只能是單個字符,字符串常量則可以含多個字符。 (3 3)可以把一個字符常量賦給一個字符變量,但不能把一個字符串)可以把一個字符常量賦給一個字符變量,但不能把一個字符串 常量賦給一個字符變量。在語言中沒有相應的字符串變量。常量賦給一個字符變量。在語言中沒有相應的字符串變量。 (4 4)字符常量占一個字節的內存空間。字符串常量占的內存字節數)

29、字符常量占一個字節的內存空間。字符串常量占的內存字節數 等于字符串中字符數加等于字符串中字符數加1 1。增加的一個字節中存放字符。增加的一個字節中存放字符00,這是,這是 字符串結束的標志。字符常量字符串結束的標志。字符常量aa和字符串常量和字符串常量“a”a”雖然看上去都雖然看上去都 只有一個字符,但在內存中的情況是不同的:只有一個字符,但在內存中的情況是不同的:aa在內存中占一個在內存中占一個 字節,可表示為字節,可表示為a a;“a”a”在內存中占兩個字節,可表示為在內存中占兩個字節,可表示為a0a0。 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.3 2.3 運算符和表達式

30、運算符和表達式 2.3.1 2.3.1 算術運算符和算術表達式算術運算符和算術表達式 1 1算術運算符算術運算符 運算符運算符作用作用運算符運算符作用作用 +加加-取負取負 -減減-減減1 1 *乘乘+增增1 1 /除除(類型類型) )類型轉換類型轉換 %取模取模 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.3 2.3 運算符和表達式運算符和表達式 2.3.1 2.3.1 算術運算符和算術表達式算術運算符和算術表達式 1 1算術運算符算術運算符 2 2算術表達式算術表達式 算術表達式是由算術運算符、括號以及操作對象組成的算術表達式是由算術運算符、括號以及操作對象組成的 符合符合C

31、 C語言語法規則的表達式。語言語法規則的表達式。 C C語言規定:語言規定: (1 1)模運算符)模運算符% %僅用于整型變量或整型常量。僅用于整型變量或整型常量。 (2 2)一個表達式中如有多個運算符,則按相應運算符)一個表達式中如有多個運算符,則按相應運算符 的優先級順序計算。的優先級順序計算。 (3 3)當運算對象兩側的運算符的優先級別相同時,應)當運算對象兩側的運算符的優先級別相同時,應 按運算符的結合律處理。按運算符的結合律處理。 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.3 2.3 運算符和表達式運算符和表達式 2.3.1 2.3.1 算術運算符和算術表達式算術運算

32、符和算術表達式 1 1算術運算符算術運算符 2 2算術表達式算術表達式 運算符運算符 優先級優先級 (值小的優先級高)(值小的優先級高) 結合律結合律 + -(減)(減) 4 從左向右從左向右* / % 3 -(取負)(取負) - + ( (類型類型) ) 2從右向左從右向左 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.3 2.3 運算符和表達式運算符和表達式 2.3.1 2.3.1 算術運算符和算術表達式算術運算符和算術表達式 1 1算術運算符算術運算符 2 2算術表達式算術表達式 (4 4)增)增1 1 運算符運算符“+”+”是操作數加是操作數加1 1,而減,而減1 1運算符

33、運算符“- -”- -” 則是操作數減則是操作數減1 1。 例:例:x=x+1 x=x+1 可寫成可寫成x+x+或或+x +x x=x-1 x=x-1 可寫成可寫成x-x-或或-x-x 但是,表達式但是,表達式x+x+與與+x+x是有區別的。表達式是有區別的。表達式x+x+的值為的值為x x的原值(不增的原值(不增 加加1 1),而表達式),而表達式+x+x的值為的值為x x變量增加變量增加1 1后的值。后的值。 例如:執行例如:執行m=4;x= m +;m=4;x= m +;后后,m=5,x=4,m=5,x=4。 執行執行m=4;x= + m;m=4;x= + m;后后,m=5,x=5,m=

34、5,x=5。 同理,表達式同理,表達式x-x-值為值為x x的原值(不減的原值(不減1 1),而表達式),而表達式-x-x值為值為x x原值減原值減1 1 后的值。后的值。 (5 5)+和和-僅適用于變量,不能用于常量或表達式。僅適用于變量,不能用于常量或表達式。 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.3 2.3 運算符和表達式運算符和表達式 2.3.1 2.3.1 算術運算符和算術表達式算術運算符和算術表達式 1 1算術運算符算術運算符 2 2算術表達式算術表達式 3 3類型轉換類型轉換 類型轉換有兩種方式:自動類型轉換和強制類型轉換。類型轉換有兩種方式:自動類型轉換和強

35、制類型轉換。 自動類型轉換:運算時不必用戶指定,系統自動將不同自動類型轉換:運算時不必用戶指定,系統自動將不同 類型的數據轉換成同一類型,然后進行計算。類型的數據轉換成同一類型,然后進行計算。 C C語言規定不同類型數值轉換的規則如下:語言規定不同類型數值轉換的規則如下: double float double float (必轉)(必轉) long long UnsignedUnsigned int char ,short int char ,short (必轉)(必轉) 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.3 2.3 運算符和表達式運算符和表達式 2.3.1 2.3.

36、1 算術運算符和算術表達式算術運算符和算術表達式 1 1算術運算符算術運算符 2 2算術表達式算術表達式 3 3類型轉換類型轉換 強制類型轉換:當自動類型轉換不能實現目的時,可以用強制類型轉換:當自動類型轉換不能實現目的時,可以用 強制類型轉換。強制類型轉換。 強制類型轉換的一般形式如下:強制類型轉換的一般形式如下: ( (類型類型) 例如:例如:(int)(a+b) (int)(a+b) 是將是將a+ba+b的結果強制轉換成的結果強制轉換成intint型;型; (float) a/b (float) a/b 是將是將a a的結果強制轉換成的結果強制轉換成floatfloat型后,型后, 再進

37、行計算。再進行計算。 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.3 2.3 運算符和表達式運算符和表達式 2.3.1 2.3.1 算術運算符和算術表達式算術運算符和算術表達式 2.3.2 2.3.2 賦值運算符和賦值表達式賦值運算符和賦值表達式 1 1賦值運算符賦值運算符 C C語言的賦值運算符是語言的賦值運算符是“=”=”,其作用是將賦值運算符右,其作用是將賦值運算符右 邊表達式的值賦給其左邊的變量。邊表達式的值賦給其左邊的變量。 2 2賦值表達式賦值表達式 賦值表達式是由賦值運算符將一個變量和一個表達式連接起賦值表達式是由賦值運算符將一個變量和一個表達式連接起 來的式子。來

38、的式子。 賦值表達式的一般形式如下:賦值表達式的一般形式如下: 變量變量= =表達式表達式 說明:說明: (1 1)賦值表達式的值等于計算后賦值運算符左邊變量的值。)賦值表達式的值等于計算后賦值運算符左邊變量的值。 (2 2)賦值運算符左邊必須是變量。)賦值運算符左邊必須是變量。 程序設計(C語言) 注意:如果賦值運算符兩側的類型不一致,但都是數值型或注意:如果賦值運算符兩側的類型不一致,但都是數值型或 字符型時,在賦值時要進行類型轉換,將賦值運算符右邊表字符型時,在賦值時要進行類型轉換,將賦值運算符右邊表 達式值的類型轉換成賦值運算符左邊變量的類型。達式值的類型轉換成賦值運算符左邊變量的類型

39、。 (1 1)將實型數據(包括單、雙精度)賦給整型變量時,舍棄)將實型數據(包括單、雙精度)賦給整型變量時,舍棄 實數的小數部分。實數的小數部分。 例:執行:例:執行:int a;int a; a=12.345; a=12.345; 結果:結果:a =12a =12 (2 2)將整型數據賦給單、雙精度變量時,數值不變,但以浮)將整型數據賦給單、雙精度變量時,數值不變,但以浮 點數形式存儲到變量中。點數形式存儲到變量中。 例:執行:例:執行:float b;float b; b=12 b=12; 結果:結果:b =12.00000b =12.00000 程序設計(C語言) 注意:如果賦值運算符兩

40、側的類型不一致,但都是數值型或注意:如果賦值運算符兩側的類型不一致,但都是數值型或 字符型時,在賦值時要進行類型轉換,將賦值運算符右邊表字符型時,在賦值時要進行類型轉換,將賦值運算符右邊表 達式值的類型轉換成賦值運算符左邊變量的類型。達式值的類型轉換成賦值運算符左邊變量的類型。 (3 3)字符型數據賦給整型變量時,由于字符只占一個字節,)字符型數據賦給整型變量時,由于字符只占一個字節, 而整型變量為兩個字節,因此將字符數據(而整型變量為兩個字節,因此將字符數據(8 8位)放到整型變位)放到整型變 量低量低8 8位中。位中。Turbo CTurbo C系統將字符處理為帶符號的量,若字符系統將字符

41、處理為帶符號的量,若字符 最高位為最高位為0 0,則整型變量高,則整型變量高8 8位全補位全補0 0;若字符最高位為;若字符最高位為1 1,則,則 高高8 8位全補位全補1 1。 例:執行:例:執行:int c; int c; 執行:執行:int c;int c; c=a; c=a; c=376; c=376; 結果:結果:c =97 c =97 結果:結果:c =-2c =-2 (4 4)整型數據賦給字符型變量,只把低)整型數據賦給字符型變量,只把低8 8位原封不動送到字位原封不動送到字 符型變量(即截斷)。符型變量(即截斷)。 程序設計(C語言) 注意:如果賦值運算符兩側的類型不一致,但都

42、是數值型或注意:如果賦值運算符兩側的類型不一致,但都是數值型或 字符型時,在賦值時要進行類型轉換,將賦值運算符右邊表字符型時,在賦值時要進行類型轉換,將賦值運算符右邊表 達式值的類型轉換成賦值運算符左邊變量的類型。達式值的類型轉換成賦值運算符左邊變量的類型。 (5 5)將帶符號的整型數據()將帶符號的整型數據(intint型)賦給型)賦給1ong int1ong int型變量時。型變量時。 要進行符號擴展,如果要進行符號擴展,如果intint型數據為正值(符號位為型數據為正值(符號位為0 0),則),則 1ong int1ong int型變量的高型變量的高1616位補位補0 0;如;如inti

43、nt型變量為負值(符號位型變量為負值(符號位 為為1 1),則),則1ong int1ong int型變量的高型變量的高1616位補位補1 1,將整型數的,將整型數的1616位送位送 到到1ong1ong型低型低1616位中,以保持數值不改變。反之,若將一個位中,以保持數值不改變。反之,若將一個 1ong int1ong int型數據賦給一個型數據賦給一個intint型變量,只把低型變量,只把低1616位原封不動送位原封不動送 到整型變量(即截斷)。到整型變量(即截斷)。 例:執行:例:執行:int a=12; int a=12; 執行:執行:int a;int a; long b; long

44、 b; long b=65536; long b=65536; b=a b=a; a=ba=b; 結果:結果:b =12 b =12 結果:結果:a =0a =0 程序設計(C語言) 注意:如果賦值運算符兩側的類型不一致,但都是數值型或注意:如果賦值運算符兩側的類型不一致,但都是數值型或 字符型時,在賦值時要進行類型轉換,將賦值運算符右邊表字符型時,在賦值時要進行類型轉換,將賦值運算符右邊表 達式值的類型轉換成賦值運算符左邊變量的類型。達式值的類型轉換成賦值運算符左邊變量的類型。 (6 6)將)將signedsigned類型數據賦給長度相同的類型數據賦給長度相同的unsignedunsigne

45、d型變量時,型變量時, 原樣照賦(連同符號位);反之,將原樣照賦(連同符號位);反之,將unsignedunsigned類型數據賦給類型數據賦給 長度相同的長度相同的signedsigned型變量時,同樣原樣照賦,再將最高位作型變量時,同樣原樣照賦,再將最高位作 為符號位處理。為符號位處理。 例:執行:例:執行:unsigned a; unsigned a; 執行:執行:int a;int a; int b=-1; unsigned b=65535; int b=-1; unsigned b=65535; a = b; a = b; a = b; a = b; 結果:結果:a =65535 a

46、 =65535 結果:結果:b =-1b =-1 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.3 2.3 運算符和表達式運算符和表達式 2.3.1 2.3.1 算術運算符和算術表達式算術運算符和算術表達式 2.3.2 2.3.2 賦值運算符和賦值表達式賦值運算符和賦值表達式 3 3復合賦值運算符復合賦值運算符 C C語言允許在賦值運算符語言允許在賦值運算符“=”=”之前加上其他運算符,以構成之前加上其他運算符,以構成 其復合運算符。其復合運算符。 復合運算符有:復合運算符有:+=+=、-=-=、* *= =、/=/=、%=%=。 例如:例如:a+=2 a+=2 等價于等價于 a=

47、a+2a=a+2 x x* *=y+5 =y+5 等價于等價于 x=xx=x* *(y+5)(y+5) x%=8 x%=8 等價于等價于 x=x%8x=x%8 同樣:同樣: (1 1)復合賦值表達式的值等于計算后賦值運算符左邊變量的值。)復合賦值表達式的值等于計算后賦值運算符左邊變量的值。 (2 2)復合賦值運算符左邊必須是變量。)復合賦值運算符左邊必須是變量。 賦值運算符的結合律都是從右向左執行,賦值運算符的結合律都是從右向左執行, 其優先級低于所有算術運算符。其優先級低于所有算術運算符。 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.3 2.3 運算符和表達式運算符和表達式 2

48、.3.1 2.3.1 算術運算符和算術表達式算術運算符和算術表達式 2.3.2 2.3.2 賦值運算符和賦值表達式賦值運算符和賦值表達式 2.3.3 2.3.3 逗號運算符和逗號表達式逗號運算符和逗號表達式 逗號運算符為逗號運算符為“,”,”。 逗號表達式是用逗號運算符把表達式組合成的一個表達式。逗號表達式是用逗號運算符把表達式組合成的一個表達式。 其一般形式為:其一般形式為: 表達式表達式1,1,表達式表達式2,2,表達式表達式3,3,表達式表達式N N 說明:說明: (1 1)逗號表達式的執行過程是:依次求表達式)逗號表達式的執行過程是:依次求表達式1 1的值、表達的值、表達 式式2 2的

49、值、的值、表達式、表達式N N的值,整個逗號表達式的值是表達的值,整個逗號表達式的值是表達 式式N N的值。的值。 (2 2)逗號運算符是所有運算符中級別最低的。)逗號運算符是所有運算符中級別最低的。 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.3 2.3 運算符和表達式運算符和表達式 2.3.1 2.3.1 算術運算符和算術表達式算術運算符和算術表達式 2.3.2 2.3.2 賦值運算符和賦值表達式賦值運算符和賦值表達式 2.3.3 2.3.3 逗號運算符和逗號表達式逗號運算符和逗號表達式 例如:例如: main() main() int x, y; int x, y; x=5

50、0; x=50; y=(x=x-5, x/5); y=(x=x-5, x/5); 上面程序執行后上面程序執行后y y的值為的值為9 9,因為,因為x x的初始值為的初始值為5050, 減減5 5后變為后變為4545,4545除除5 5為為9 9賦給賦給y y。 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.4 2.4 本章考點本章考點 C C語言對用戶標識符的規定。語言對用戶標識符的規定。 整型變量的定義和整型常量的表示。整型變量的定義和整型常量的表示。 實型變量的定義和實型常量的表示。實型變量的定義和實型常量的表示。 字符型變量的定義和字符型常量的表示。字符型變量的定義和字符型常

51、量的表示。 算術運算符和算術表達式。算術運算符和算術表達式。 賦值運算符和賦值表達式。賦值運算符和賦值表達式。 逗號運算符和逗號表達式。逗號運算符和逗號表達式。 運算符的優先級和結合律。運算符的優先級和結合律。 混合運算中的類型轉換。混合運算中的類型轉換。 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.5 2.5 典型試題詳解典型試題詳解 1 1以下選項中合法的用戶標識符是以下選項中合法的用戶標識符是_。 A A)longlong B B)_2Test_2Test C C)3Dmax3Dmax D D)A.datA.dat 正確答案:正確答案:B B(知識點:(知識點:C C語言對

52、用戶標識符的規定)語言對用戶標識符的規定) 試題分析:試題分析:C C語言規定標識符必須由一個字母(語言規定標識符必須由一個字母(a az z, A AZ Z)或下劃線()或下劃線(_ _)開頭,標識符的其他部分可以用字母、)開頭,標識符的其他部分可以用字母、 下劃線或數字(下劃線或數字(0 09 9)組成。)組成。 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.5 2.5 典型試題詳解典型試題詳解 2 2以下選項中不屬于以下選項中不屬于C C語言的類型的是語言的類型的是_。 A A)signed short intsigned short int B B)unsigned lon

53、g intunsigned long int C C)unsigned intunsigned int D D)long shortlong short 正確答案:正確答案:D D(知識點:(知識點:C C語言的基本數據類型)語言的基本數據類型) 試題分析:試題分析:C C語言的基本類型包括語言的基本類型包括signed short intsigned short int、 unsigned long intunsigned long int、unsigned intunsigned int、charchar、floatfloat、doubledouble 等,沒有等,沒有long short

54、long short類型。類型。 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.5 2.5 典型試題詳解典型試題詳解 3 3在在1616位位C C編譯系統上,若定義編譯系統上,若定義long a;long a;,則能給變量,則能給變量a a賦值賦值 4000040000的正確語句是的正確語句是_。 A A)a=20000+20000;a=20000+20000;B B)a=4000a=4000* *10;10; C C)a=30000+10000;a=30000+10000;D D)a=4000La=4000L* *10L;10L; 正確答案:正確答案:D D(知識點:算術運算和賦

55、值運算中的類型轉換)(知識點:算術運算和賦值運算中的類型轉換) 試題分析:試題分析:A A、B B、C C選項中參與算術運算的對象是選項中參與算術運算的對象是intint類型,類型, 其結果應該是其結果應該是intint類型,而結果值類型,而結果值4000040000超出超出intint類型范圍,發生類型范圍,發生 溢出,運算結果截取溢出,運算結果截取4000040000的低的低1616位,再將其進行符號位擴展,位,再將其進行符號位擴展, 賦給賦給longlong類型的類型的a a,則,則a a中的結果并不是中的結果并不是4000040000。D D選項中參與算術選項中參與算術 運算的對象是運

56、算的對象是longlong類型,其結果是類型,其結果是longlong類型,賦給類型,賦給longlong類型的類型的a a, 則則a a中的結果是中的結果是4000040000。 程序設計(C語言) 第第2章章 數據與運算數據與運算 2.5 2.5 典型試題詳解典型試題詳解 4 4以下選項中可以作為以下選項中可以作為C C語言中合法整數的是語言中合法整數的是_。 A A)10110B10110BB B)03860386 C C)0 xffa0 xffaD D)x2a2x2a2 正確答案:正確答案:C C(知識點:整型常量)(知識點:整型常量) 試題分析:試題分析:C C語言中整數的表示有十進制、八進制、十六進語言中整數的表示有十進制、八進制、十六進 制三種方法。制三種方法。A A、D D選項應該是十進制表示方法,但選

溫馨提示

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

評論

0/150

提交評論