第3章_數據類型、運算符和表達式_第1頁
第3章_數據類型、運算符和表達式_第2頁
第3章_數據類型、運算符和表達式_第3頁
第3章_數據類型、運算符和表達式_第4頁
第3章_數據類型、運算符和表達式_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機程序設計基礎計算機程序設計任課教師:石曉山任課教師:石曉山E-mail:中國礦業(yè)大學銀川學院中國礦業(yè)大學銀川學院計算機語言程序設計計算機語言程序設計第第3章章 數據類型、運算符與表達式數據類型、運算符與表達式計算機語言程序設計計算機語言程序設計3.1 計算機語言程序設計計算機語言程序設計3.1.1 常量常量常量:常量:在程序的運行過程中,其值不能被改變的數據。在程序的運行過程中,其值不能被改變的數據。直接常量(字面常量)整形常量,實型常量,直接常量(字面常量)整形常量,實型常量,字符常量,字符串常量字符常量,字符串常量 如:如:1,-7,3.14,t,”Program”等等符號常量:符號

2、常量:用一個標識符代表一個常量。用一個標識符代表一個常量。 習慣上,符號常量名常用大寫字母。習慣上,符號常量名常用大寫字母。符號常量的定義:符號常量的定義: #define #define 標識符標識符 常量常量 #define PAI 3.14159計算機語言程序設計計算機語言程序設計3.1.2 變量變量變量的使用要求:變量的使用要求: 先定義,后使用先定義,后使用變量的定義格式:變量的定義格式: 類型名類型名 變量名;變量名; 如如 int a, b ;變量:變量:在程序的運行過程中,其值可以改變的數據。在程序的運行過程中,其值可以改變的數據。本質:本質:在內存中占據一定的存儲單元,存儲單

3、元中存在內存中占據一定的存儲單元,存儲單元中存 放變量的值。放變量的值。3a內存單元內存單元變量值變量值變量名變量名計算機語言程序設計計算機語言程序設計3.1.2 變量變量C語言允許在定義變量的同時使變量初始化。語言允許在定義變量的同時使變量初始化。如:如: int a = 3 ; /* 定義定義a為整型變量,初值為為整型變量,初值為3 */ float f = 3.12 ; /*定義定義f為實型變量,初值為為實型變量,初值為3.12 */ char c = a ; /* 定義定義c為字符型變量,初值為為字符型變量,初值為a */ int a = 3 ; 相當于相當于 int a ; a =

4、3 ; int a , b = 123 , c , i = 0 , j ; int x = 1 , y = 2 , z = 3 ; 注意注意: 不能寫成不能寫成 int x = y = z = 1 ; 必須一個一個賦值。必須一個一個賦值。計算機語言程序設計計算機語言程序設計3.2 C語言的數據類型語言的數據類型雙精度型雙精度型( double )數據類型數據類型整型整型( int )基本類型基本類型指針類型指針類型構造類型構造類型空類型空類型( void )字符型字符型( char )實型實型(浮點型浮點型)枚舉類型枚舉類型( enum )數組類型數組類型結構體類型結構體類型( struct

5、)共用體類型共用體類型( union )單精度型單精度型( float )計算機語言程序設計計算機語言程序設計3.2 C語言的數據類型語言的數據類型計算機語言程序設計計算機語言程序設計3.2.1 整型數據整型數據1. 1. 整型常量:整型常量: 十進制整數:十進制整數:由由0-90-9的數字組成的數字組成 如如: 123,-456,0 八進制整數:八進制整數:由由0 07 7的數字組成,最高位必須的數字組成,最高位必須 用用0 0作引導符。作引導符。 如如: 0123,-023 十六進制整數:十六進制整數:由由0 0 9 9、a a f(A f(A F)F)組組 成成, ,最高位必須用最高位必

6、須用0 x0 x作引導符。作引導符。 如如 : 0 x123,-0 x23計算機語言程序設計計算機語言程序設計3.2.1 整型數據整型數據2. 整型變量:整型變量: 整型變量的分類:整型變量的分類:基本整型:基本整型:int 如如: int a ;短整型:短整型:short int 或或 short 如如: short b ;長整型:長整型:long int 或或 long 如如: long c ;無符號數:無符號數:unsigned 如如: unsigned long e;有符號數:有符號數:signed 如如: signed int f ;計算機語言程序設計計算機語言程序設計3.2.1 整

7、型數據整型數據ANSI標準定義的整數類型:標準定義的整數類型:類型類型比特數比特數取值范圍取值范圍signed int16-3276832767 即即-215 (215 1)unsigned int16065535 即即0(216 1)signed short int16-3276832767 即即-215 (215 1)unsigned short int16065535 即即0(216 1)signed long int32-21474836482147483647即即-231 (231 1)unsigned long int3204294967295 即即0(232 1)計算機語言程序設

8、計計算機語言程序設計3.2.1 整型數據整型數據整型變量的定義:整型變量的定義: 類型符類型符 變量名變量名整型數據的溢出:整型數據的溢出:C語言中,數據超出其范圍,語言中,數據超出其范圍,即即“溢出溢出”,系統(tǒng)不報告錯誤信息,程序仍然能運行,系統(tǒng)不報告錯誤信息,程序仍然能運行,但可能出現不正確的結果。但可能出現不正確的結果。例例: : #include (P32 例例3.3) void main( ) int a,b; a=32767; b=a+1; printf(a=%d,b=%dn,a,b); 計算機語言程序設計計算機語言程序設計11111111111111103276732767a:b

9、:-32768-327681 0 0 0 0 0 0 0 0 0 0 0 0 00 0整型變量的定義:整型變量的定義: 類型符類型符 變量名變量名整型數據的溢出:整型數據的溢出:C語言中,數據超出其范圍,語言中,數據超出其范圍,即即“溢出溢出”,系統(tǒng)不報告錯誤信息,程序仍然能運行,系統(tǒng)不報告錯誤信息,程序仍然能運行,但可能出現不正確的結果。但可能出現不正確的結果。3.2.1 整型數據整型數據計算機語言程序設計計算機語言程序設計3.2.1 整型數據整型數據 整型變量的定義:整型變量的定義:類型符類型符 變量名變量名 整型數據的溢出:整型數據的溢出:C C語言中,數據超出其范圍,語言中,數據超出其

10、范圍, 即即“溢出溢出”,系統(tǒng)不報告錯誤信息,程仍然能運行,系統(tǒng)不報告錯誤信息,程仍然能運行,但可能出現不正確的結果。但可能出現不正確的結果。 整型常量的類型:整型常量的類型:注:注:1) 將一個整型常量賦值給一個整型變量時應注將一個整型常量賦值給一個整型變量時應注 意對應的整型變量的取值范圍。意對應的整型變量的取值范圍。 2) 在一個整型常量后面加一個字母在一個整型常量后面加一個字母 l 或或 L,則表,則表 示示long int型常量。型常量。計算機語言程序設計計算機語言程序設計3.2.2 實型數據實型數據1. 實型常量的表示:實型常量的表示:2. 小數形式小數形式: 如:如: 12.3

11、、- 0.123 、123.0、0.0 指數形式:指數形式: 如:如:1.23e1 ( 1.23E1 ) 1.23*101 如:如:123e-3 ( 123E-3 ) 123*10-3注意事項注意事項(P33P33)計算機語言程序設計計算機語言程序設計3.2.2 實型數據實型數據2. 實型變量:實型變量: 實型數據在內存中的存放形式:如:實型數據在內存中的存放形式:如:101101.011 實型變量的分類:實型變量的分類:單精度:單精度:float 如如 float x, y ;雙精度:雙精度:double 如如 double z ;24b8b0 0000110101 1010 1100 00

12、00 0000 00000數符數符小數部分小數部分指數指數計算機語言程序設計計算機語言程序設計3.2.2 實型數據實型數據ANSI標準定義的實型數據類型:標準定義的實型數據類型:類型類型比特數比特數有效數字有效數字取值范圍取值范圍 float326 710-37 1038 double6415 1610-307 10308計算機語言程序設計計算機語言程序設計3.2.2 實型數據實型數據 實型數據的舍入誤差:實型數據的舍入誤差: 由于實型變量是用有限的存儲單元存儲的,因由于實型變量是用有限的存儲單元存儲的,因此能提供的有效數字是有限的,在有效位以外的數此能提供的有效數字是有限的,在有效位以外的數

13、字將舍去,由此可能產生一些誤差。字將舍去,由此可能產生一些誤差。 實型常量的類型:實型常量的類型:l實型常量不分單雙精度,可以賦值給實型常量不分單雙精度,可以賦值給float也可以賦也可以賦值給值給double,系統(tǒng)都將按照作為,系統(tǒng)都將按照作為雙精度雙精度來處理。來處理。l 在一個實型常量后面加一個字母在一個實型常量后面加一個字母 f 或或 F,則表示,則表示此此 常量按常量按單精度單精度來處理。來處理。計算機語言程序設計計算機語言程序設計3.2.3 字符型數據(一)字符型數據(一)1. 字符常量的表示:字符常量的表示: 用單引號括起來的一個字符。用單引號括起來的一個字符。 如:如:a、D、

14、 5、 % 、 轉義字符:用轉義字符:用 開頭的字符序列開頭的字符序列 如:如:n、t、b、” 如:如:101、141、x41、x61計算機語言程序設計計算機語言程序設計轉義字符轉義字符字符形式字符形式含義含義ASCII代碼代碼n換行,將當前位置移到下一行開頭換行,將當前位置移到下一行開頭10t水平位移(跳到下一個水平位移(跳到下一個tab位置)位置)9b退格,將當前位置移到前一列退格,將當前位置移到前一列8r回車,將當前位置移到本行開頭回車,將當前位置移到本行開頭13f換頁,將當前位置移到下頁開頭換頁,將當前位置移到下頁開頭12反斜杠字符反斜杠字符“”92單引號(撇號)字符單引號(撇號)字符

15、39”雙引號字符雙引號字符34ddd1到到3位位8進制數所代表的字符進制數所代表的字符xhh1到到2位位16進制數所代表的字符進制數所代表的字符計算機語言程序設計計算機語言程序設計2.2.字符串常量字符串常量: : 用一對雙引號括起來的字符序列。用一對雙引號括起來的字符序列。 如如: : “HELLOHELLO”, ,”20082008”, ,”a a” 字符串結束標志:字符串結束標志:00 如如: :”HELLOHELLO”在內存中為在內存中為: :H EL LO 0A A為一個字符為一個字符”A A”為兩個字符為兩個字符AA 03.2.3 字符型數據(一)字符型數據(一)計算機語言程序設計

16、計算機語言程序設計3.2.3 字符型數據(二)字符型數據(二)3. 字符型變量:字符型變量: 用來存放字符常量(單個字符),而非字符串用來存放字符常量(單個字符),而非字符串如:如:char c1 , c2 ; c1 = a ; c2 = n ;字符型變量的存放:字符型變量的存放:l 存放的是對應字符的存放的是對應字符的ASCII碼值。碼值。l 字符型數據和整型數據是通用的。字符型數據和整型數據是通用的。l 字符型數據占用內存空間的一個字符,只能存字符型數據占用內存空間的一個字符,只能存 放放0255 范圍內的整數。范圍內的整數。計算機語言程序設計計算機語言程序設計例例1:1:字符的存儲與輸出

17、字符的存儲與輸出 # include void main( ) char c1,c2; c1=a;c2=b; printf(%c%c,c1,c2); c197; c298; printf(%c%c,c1,c2); 運行結果為:運行結果為: a ba b a b a b c1c2970110000198011000103.2.3 字符型數據(二)字符型數據(二)內存中內存中c1,c2c1,c2的存放形式的存放形式: :計算機語言程序設計計算機語言程序設計例例2:2:字符數據的輸出形式字符數據的輸出形式 # include void main( ) int i; char c; i=a; c=97

18、; printf(%c%d,c,c); printf(%c%d,i,i); 運行結果為:運行結果為:a 97a 97 a 97 a 97 3.2.3 字符型數據(二)字符型數據(二)計算機語言程序設計計算機語言程序設計計算機語言程序設計計算機語言程序設計 運算原則:運算原則: 進行運算時,不同類型的數據先轉換為同一類型,進行運算時,不同類型的數據先轉換為同一類型, 然后進行運算。然后進行運算。如如: 8+a+1.23-3.52*c 轉換規(guī)則為:轉換規(guī)則為:intshort,charunsignedlongdoublefloat低低高高此種數據類型轉換是由系統(tǒng)自動進行的。此種數據類型轉換是由系統(tǒng)

19、自動進行的。注:注:箭頭表示當箭頭表示當運算對象為不同運算對象為不同類型時數據轉換類型時數據轉換的方向的方向計算機語言程序設計計算機語言程序設計3.3.2 賦值運算時的類型轉換賦值運算時的類型轉換 賦值運算符:賦值運算符:= 說明:說明:賦值運算符左側必須為變量,右側為表達式。賦值運算符左側必須為變量,右側為表達式。 將運算符右側的數據賦值給運算符左側的變量。將運算符右側的數據賦值給運算符左側的變量。 規(guī)則:規(guī)則:在進行賦值運算時,賦值運算符右側的數據類在進行賦值運算時,賦值運算符右側的數據類 型先轉換為賦值運算符左側變量的數據類型。型先轉換為賦值運算符左側變量的數據類型。 如:如:int a

20、 ; a = 3.74 ; /* a 的值為的值為 3 */此種數據類型轉換是截斷型的轉換,不會四舍五入。此種數據類型轉換是截斷型的轉換,不會四舍五入。計算機語言程序設計計算機語言程序設計3.3.2 賦值運算時的類型轉換賦值運算時的類型轉換 賦值運算符:賦值運算符:變量變量 = 表達式表達式變量變量表達式表達式轉換規(guī)則轉換規(guī)則整型整型實型實型舍去實數的小數部分舍去實數的小數部分實型實型整型整型其值不變,以浮點數形式存儲其值不變,以浮點數形式存儲floatdouble截取其前截取其前7位有效數字存放位有效數字存放字符型字符型整型整型截取低截取低8位數據存放位數據存放整型整型字符型字符型將數據存放

21、到低將數據存放到低8位,高位,高8位補位補1/0intlong截取低截取低16位數據存放位數據存放longint將數據存放到低將數據存放到低16位,高位,高16位補位補1/0計算機語言程序設計計算機語言程序設計3.3.3 強制類型轉換強制類型轉換 強制類型轉換強制類型轉換: 將一個表達式的類型轉換為指定的數據類型。將一個表達式的類型轉換為指定的數據類型。 轉換形式轉換形式:(類型符)(表達式)(類型符)(表達式) 如:如:float a = 4.5 ; int b ; b = a * 2; 如:如:float a = 4.5 ; int b ; b = ( int ) a * 2;說明:說明:

22、 1)類型說明和表達式都需要加括號(單個變量可不加)類型說明和表達式都需要加括號(單個變量可不加 括號)。括號)。 2)無論自動轉換,還是強制轉換都是臨時轉換,不改)無論自動轉換,還是強制轉換都是臨時轉換,不改變數據本身的類型和值。變數據本身的類型和值。計算機語言程序設計計算機語言程序設計3.4.2 算術運算符及表達式算術運算符及表達式3.4.3 賦值運算符及表達式賦值運算符及表達式3.4.4 關系運算符及表達式關系運算符及表達式3.4.5 邏輯運算符及表達式邏輯運算符及表達式3.4.6 逗號運算符及表達式逗號運算符及表達式3.4.7 條件運算符及表達式條件運算符及表達式3.4.8 位運算位運

23、算計算機語言程序設計計算機語言程序設計3.4.1 C語言運算符簡介語言運算符簡介算術運算符算術運算符+-*/%關系運算符關系運算符=!=邏輯運算符邏輯運算符! &|位運算符位運算符|&賦值運算符賦值運算符 = 及其擴展賦值運算符及其擴展賦值運算符條件運算符條件運算符 ? :逗號運算符逗號運算符,指針運算符指針運算符*&求字節(jié)數運算符求字節(jié)數運算符 sizeof強制類型轉換運算符強制類型轉換運算符(類型)(類型)分量運算符分量運算符.-下標運算符下標運算符 計算機語言程序設計計算機語言程序設計3.4.2 算術運算符及表達式算術運算符及表達式 基本算術運算符:基本算術運算符

24、: + 加法或正值運算符加法或正值運算符 減法或負值運算符減法或負值運算符 * 乘法運算符乘法運算符 / 除法運算符除法運算符 % 模運算符,或求余運算符模運算符,或求余運算符 如:如:3 + 5 5 9 9 / 4 3.5 * 2 7%4 算術表達式:算術表達式: 用算術運算符和括號將運算對象用算術運算符和括號將運算對象(也稱操作數也稱操作數)連接連接 起來的、符合起來的、符合C語法規(guī)則的式子。語法規(guī)則的式子。操作對象包括:常量、變量、表達式、函數等操作對象包括:常量、變量、表達式、函數等 表達式的類型:表達式的類型: 算術運算符的優(yōu)先級和結合性算術運算符的優(yōu)先級和結合性:自左至右:自左至右

25、計算機語言程序設計計算機語言程序設計3.4.2 算術運算符及表達式算術運算符及表達式自增、自減運算符:自增、自減運算符: + - 作用:作用: + i - - i 在使用在使用 i 之前,使之前,使 i 的值加或減的值加或減1 i + i - - 在使用在使用 i 之后,使之后,使 i 的值加或減的值加或減1 說明:說明:只能用于變量,不能用于常量或表達式。只能用于變量,不能用于常量或表達式。 如:如: int i = 3, j, k ; j = i + ; k = + i ; int i = 3, j ; j = ( i + ) + ( i + ) + ( i + ) ; int i = 3

26、, j ; j = ( + i ) + ( + i ) + ( + i ) ; 結合方向:結合方向:“自右至左自右至左” 如:如: - j +i + j- ( j + )( i + ) + j計算機語言程序設計計算機語言程序設計3.4.3 賦值運算符及表達式賦值運算符及表達式 賦值運算符:賦值運算符:= 賦值表達式:賦值表達式: 由賦值運算符將一個變量和一個表達式連接起來由賦值運算符將一個變量和一個表達式連接起來 的式子稱為賦值表達式的式子稱為賦值表達式. . 格式:格式: 如:如:int a,b ; float d,e ; char c1, c2 ; a = 0 ; b = a+7 ; d

27、= 3.14 ; e = 2 ; c1 = a ; c2 = 65 ;計算機語言程序設計計算機語言程序設計3.4.3 賦值運算符及表達式賦值運算符及表達式 復合的賦值運算符:復合的賦值運算符: 賦值運算符前可加其他運算符,構成復合賦值運算符。賦值運算符前可加其他運算符,構成復合賦值運算符。 +=+=(加賦值)(加賦值) |=|=(按位或賦值)(按位或賦值) -=-=(減賦值)(減賦值) =(按位異或賦值)(按位異或賦值) * *= =(乘賦值)(乘賦值) =(右移位賦值)(右移位賦值) %=%=(求余賦值)(求余賦值) &=&=(位與賦值)(位與賦值)如:如:a + = 3 相

28、當于相當于 a = a + 3 x * = y + 8 相當于相當于 x = x * ( y + 8 ) x % = 3 相當于相當于 x = x % 3計算機語言程序設計計算機語言程序設計3.4.3 賦值運算符及表達式賦值運算符及表達式 賦值運算符結合方向:賦值運算符結合方向:“自右至左自右至左” 如:如:a = 5 a = ( b = 5 ) a = ( b = 4 ) + ( c = 6 ) a + = a - = a * a計算機語言程序設計計算機語言程序設計3.4.4 關系運算符及表達式關系運算符及表達式 關系運算符:關系運算符: = = != = 優(yōu)先級相同(高)優(yōu)先級相同(高)

29、= != 優(yōu)先級相同(低)優(yōu)先級相同(低)優(yōu)先級比較優(yōu)先級比較算術運算符算術運算符關系運算符關系運算符賦值運算符賦值運算符高高低低 關系表達式:關系表達式: 用關系運算符將兩個表達式連接起來的式子。用關系運算符將兩個表達式連接起來的式子。關系表達式的值:關系表達式的值:即即“真真”或或“假假”邏輯值邏輯值 C語言中,以語言中,以 1 表示表示“真真”,0 表示表示“假假”如:如: a=3,b=2,c=1 d = a b e = a b c f = a b b & b b ! a & b | | b b ) & ( n = c d )應用舉例:應用舉例:判斷某年是否閏年判

30、斷某年是否閏年 閏年:閏年:y % 4 = 0 & y % 100 != 0 | | y % 400 = 0 非閏年:非閏年: ! ( y % 4 = 0 & y % 100 != 0 | | y % 400 = 0 ) 或:或: y % 4 != 0 | | y % 100 = 0 & y % 400 != 0計算機語言程序設計計算機語言程序設計3.4.6 逗號運算符及表達式逗號運算符及表達式 逗號運算符:又稱順序求值運算符逗號運算符:又稱順序求值運算符 格式:格式:表達式表達式1,表達式,表達式2 說明:說明:依次求解各表達式,整個表達式的值為表達式依次求解各表達式,整個表達式的值為表達式 2的值。的值。 如:如:( 3 * 5,2 * 4 ) 的值為的值為8如:如:a = 3 * 5,a * 4 ( a = 3 * 5,a * 4 ),a + 5 逗號表達式的擴展形式:逗號表達式的擴展形式:格式:格式:表達式表達式1,表達式,表達式2, ,表達式,表達式n如:如:a = 3 * 5,a * 4,a + 5 逗號運算符的優(yōu)先

溫馨提示

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

最新文檔

評論

0/150

提交評論