




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第 2 2 講講 C C語言的基本數據類型語言的基本數據類型與表達式與表達式 2.1 C2.1 C語言的基本數據類型語言的基本數據類型 2.2 2.2 常量與變量常量與變量 2.3 2.3 運算符與表達式運算符與表達式 2.4 2.4 數據類型轉換數據類型轉換C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁 字符字符型(型(charchar) 整型整型(short,int,long,unsignedshort,int,long,unsigned) 單精度型(單精度型(floatfloat) 實型實型 雙精度型(雙精度型(doubledouble) 枚舉類型(枚
2、舉類型(enumenum) 數組類型(數組類型( ) 構造類型構造類型 結構體類型(結構體類型(structstruct) 共用體類型(共用體類型(unionunion) 指針類型(指針類型(* *) 空類型(空類型(voidvoid)基本類型基本類型數據類型數據類型一、數據類型概述本講中將對基本類型中的前三類進行介紹和學習。本講中將對基本類型中的前三類進行介紹和學習。2.1 C2.1 C語言的基本數據類型語言的基本數據類型C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁變量:變量:指指以標識符為名字,其值可以改變的量。以標識符為名字,其值可以改變的量。 在學習
3、各種數據類型之前,我們先簡單了解一下常量常量和變量變量的概念。后面的章節中將會詳細介紹。 常量常量:指在程序運行中指在程序運行中,其數值不能被改變的量。其數值不能被改變的量。 變量變量 代表計算機內存中的某一存儲空間,代表計算機內存中的某一存儲空間,變量的類型決定了該存儲空間的長度和其變量的類型決定了該存儲空間的長度和其中存放中存放數據的編碼方式及存儲格式。數據的編碼方式及存儲格式。 變量的類型也決定了該存儲空間中存放變量的類型也決定了該存儲空間中存放數據的數據形式和取值范圍。數據的數據形式和取值范圍。C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁 * 八進制
4、的數碼范圍為八進制的數碼范圍為07; 018 * 十六進制的十六進制的數碼除了數字數碼除了數字0 09 9外外, , 還使用英文字母還使用英文字母a f (或或A F)表示表示1015。 如:如:0 x1e 二、整型(采用定點整數的存儲格式,只能表示純整數)1 1、整型常量:整型常量: (1) (1) 十進制形式十進制形式: :與數學上的整數表示相同;與數學上的整數表示相同; 例如例如: 12, -100, 0: 12, -100, 0 (2) (2) 八進制形式八進制形式: :在數碼前加數字在數碼前加數字0 0; 例如例如: 012=1: 012=1* *8 81 1+2+2* *8 80
5、0=10(=10(十進制)十進制) (3) (3) 十六進制形式十六進制形式: :在數碼前加在數碼前加0X0X(數字數字0和字母和字母X)。)。 例如例如: 0 x12=1: 0 x12=1* *16161 1+2+2* *16160 0=18(=18(十進制)十進制)C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁 在在16位編譯系統(如位編譯系統(如Turbo C)中,一般用字節表示一個中,一般用字節表示一個int型變量,且型變量,且 long型(字節)型(字節)int型(字節)型(字節)short型(字節)。型(字節)。 在在32位編譯系統(如位編譯系統(
6、如VC+6.0)中,用)中,用4字節表示一個字節表示一個int型變量,且型變量,且 long型(字節)型(字節)int型(型(4字節)字節)short型(字節)。型(字節)。 2、整型變量的分類:整型變量的分類: 根據數據所占的存儲長度的不同分為根據數據所占的存儲長度的不同分為: :int、short、long; 同樣存儲長度的數據又分同樣存儲長度的數據又分unsigned、signed; 故可組合出六種類型。故可組合出六種類型。3、整型變量的值域:整型變量的值域:由機器中數據的存儲長度決定由機器中數據的存儲長度決定思考:思考:int a=32767,b=1, c; c=a+b; c的值為多少
7、?的值為多少?考慮在考慮在TC及及VC中的不同?中的不同?C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁2、實型變量的分類及值域實型變量的分類及值域: 關鍵字關鍵字 字節數字節數 取值范圍取值范圍 精度精度( (位位) ) float 4 3.4 float 4 3.41010-38 3.43.4101038 7 7 double 8 1.7 double 8 1.71010-308 1.71.71010308 1515注意注意三、實型1 1、常量:常量:(1) (1) 十進制小數形式:十進制小數形式:由數字和小數點組成;由數字和小數點組成; 例如例如: 3.
8、4, 4., .3: 3.4, 4., .3。(2) (2) 指數形式:指數形式:“十進制小數十進制小數”+“ e(+“ e(或或E)”+“E)”+“十進制數整十進制數整數數”。 例如例如: 12.5e-6: 12.5e-6 表示表示12.512.51010-6 。 小數點不能單獨出現;小數點不能單獨出現; 0.0. .0 .0 . . e e或或E E的兩邊必須有數,且其后面必須為整數;的兩邊必須有數,且其后面必須為整數; 如:如: 6E0.2 6E0.2 e5e5 C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁 字符形式字符形式 功能功能 n n 換行換行
9、 t t 橫向跳格橫向跳格 b b 退格退格 r r 回車回車 反斜杠字符反斜杠字符 單引號字符單引號字符 ddd 8ddd 8進制數表示的進制數表示的ASCIIASCII碼對應的字符碼對應的字符 xhh 16xhh 16進制數表示的進制數表示的ASCIIASCII碼對應的字符碼對應的字符四、字符類型1 1、常量:常量: (1) (1) 用單引號括起來的一個字符;如:用單引號括起來的一個字符;如:A、 1、?等等。 注意注意 (1)(1)數值數值0 0、字符、字符0 、 字符字符0 的區別的區別 (2)大小寫對應字母的大小寫對應字母的ASCII值相差值相差32(A為為65,a為為97) (2)
10、 (2) 用單引號括起來的由反斜杠用單引號括起來的由反斜杠( ( ) )引導的轉義字符。引導的轉義字符。C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁4 4、字符串常量:字符串常量: 是用一對雙引號括起來的字符序列。是用一對雙引號括起來的字符序列。 注意:每個字符串的后面都有一個注意:每個字符串的后面都有一個00結束符。結束符。 如:如:“SHANGHAI”SHANGHAI”,“AbcdeFGHijkAbcdeFGHijk”,“How are How are you”you”。 注意注意(1)(1) aa與與“a”a”的區別的區別(2)(2) strlenst
11、rlen()()與與sizeofsizeof()()的區別的區別例如:字符例如:字符A A的的ASCIIASCII碼為:碼為: 65D65D(十進制)(十進制)=41H=41H(十六進制)(十六進制)=101Q=101Q(八進制)(八進制) 字符字符A A可以表示為可以表示為AA、x41x41、101101。2、字符型變量的分類:字符型變量的分類: char char 3 3、值域值域(字符型可參與數學運算,也可看成一種一字節的整型變量)(字符型可參與數學運算,也可看成一種一字節的整型變量) 每個字符型數據在內存中占每個字符型數據在內存中占一一個字節;包括個字節;包括ASCIIASCII字符表
12、字符表中的所有字符(可顯示字符和非顯示字符)。中的所有字符(可顯示字符和非顯示字符)。C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁基本基本ASCIIASCII碼表的前碼表的前3232個字符為控制字符(個字符為控制字符(ASCIIASCII碼值為碼值為031031)。)。接著為標準英文鍵盤上的每一個字符都規定了一個接著為標準英文鍵盤上的每一個字符都規定了一個ASCIIASCII碼值,碼值,字符在內存中的存儲格式按照字符在內存中的存儲格式按照ASCIIASCII碼值所對應的二進制數確定。碼值所對應的二進制數確定。空 格320 0 1 0 0 0 0 0A650
13、1 0 0 0 0 0 1a970 1 1 0 0 0 0 1b980 1 1 0 0 0 1 0C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁一、常量與符號常量 常量常量是指在程序運行中是指在程序運行中,其數值不能被改變的量。其數值不能被改變的量。 常量常量又可分為直接常量和符號常量。又可分為直接常量和符號常量。2.2 2.2 常量與變量常量與變量C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁 120 、 -100、 0; 0120、 072; 0 xFFFF、 0 x1e、0X28AF,0XED4 ; 120L, 200L
14、 ; 長整型常量長整型常量 3.14、 -3.1、 5.12E-6 ; a 、#、n、101 ; 099、12f、 0 xg 、48EA ; 2.1E10.2、E-6、6.4E+4.8、E9 ; changsha 、+?ab ; 、p 、ab ;1、直接常量:直接常量:是在程序中直接引用的數據。是在程序中直接引用的數據。請判斷這些常量正確與否:請判斷這些常量正確與否:C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁 定義形式定義形式: #define 標識符標識符 常量數據常量數據 例如例如: #define PI 3.14159 在程序預處理時,凡是出現標識符
15、在程序預處理時,凡是出現標識符PI的地方都將用的地方都將用數據數據3.14159來替換。來替換。 如如: 2*2.3*PI 就就等價于等價于 2*2.3*3.14159。 變量是指變量是指以標識符為名字,其值可以改變的量。以標識符為名字,其值可以改變的量。 變量代表計算機內存中的某一存儲空間,該存儲空間變量代表計算機內存中的某一存儲空間,該存儲空間 中存放中存放的數據就是變量的值。的數據就是變量的值。 在同一程序塊中,在同一程序塊中,變量變量不能被重復定義。不能被重復定義。 使用變量時必須使用變量時必須“先定義,后使用先定義,后使用”。 2、符號常量符號常量 是是用標用標識符來表示一個數據;識
16、符來表示一個數據;在程序不能給它賦值。在程序不能給它賦值。二、 變量C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁1、定義形式:定義形式:類型標識符類型標識符 變量名變量名1 ,變量名變量名2,變量名變量名3.; 自己設定,滿足自己設定,滿足標識符的規定。標識符的規定。如:如:int,int,float,charfloat,char;不可省;不可省2、變量初始化變量初始化 在定義變量的同時給變量一個初始值。在定義變量的同時給變量一個初始值。 注意注意int a=5, b=3; int a=5, b=3; int a=b=c=3; int a=b=c=3; in
17、t a,b,c; a=b=c=3; int a,b,c; a=b=c=3; 例如例如: int a,b,c ; float x,y; char c1,c2; 或或 int c1,c2; 定義變量就是在內存中劃出一塊相應類型的存儲空間存放該變量的值。定義變量就是在內存中劃出一塊相應類型的存儲空間存放該變量的值。C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁 在數學里當多個運算符一起組成一個表達式時,我們規在數學里當多個運算符一起組成一個表達式時,我們規定了定了優先級優先級(先乘除后加減)和(先乘除后加減)和結合規則結合規則(從左至右)。(從左至右)。 同樣,在同
18、樣,在C語言中,我們也規定了每個運算符的結合規語言中,我們也規定了每個運算符的結合規則及運算符之間的優先級。則及運算符之間的優先級。2.3 2.3 運算符與表達式運算符與表達式運算符:就是表示某種運算功能的符號。運算符:就是表示某種運算功能的符號。 按操作功能運算符大致可分為:按操作功能運算符大致可分為:算術運算符、關系運算術運算符、關系運算符、邏輯運算符、賦值運算符、算符、邏輯運算符、賦值運算符、條件運算符、逗號運算條件運算符、逗號運算符以及符以及按位運算符按位運算符等。等。 表達式:是由操作數和運算符組成的序列。表達式:是由操作數和運算符組成的序列。 如:如:1+2*3-4 、 35-7
19、、a=b%2 等都是等都是C語言中的表達式。語言中的表達式。 下面分類介紹各種運算符:下面分類介紹各種運算符:C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁%(%(取余取余)()(注意:取余運算的操作數只能是整數注意:取余運算的操作數只能是整數) ) 一、一、 算術運算符和算術表達式算術運算符和算術表達式1 1、 運算符運算符 +(+(加加) ):3+43+4、 +3+3 -( -(減減) ):3-53-5、 -5-5 * *( (乘乘) ):3 3* *5 5 /( /(除除) ):5/25/2、5.0/2 5.0/2 (注意,此二種形式,結果不同)(注意,
20、此二種形式,結果不同)5%35%3的值為的值為2 2; -5%3-5%3的值為的值為-2-2;5%(-3)5%(-3)的值為的值為2 2; -5%(-3)-5%(-3)的值為的值為-2-2;12.3%3 12.3%3 若若a%b a%b 的結果為的結果為0 0,則有,則有a a能被能被b b整除整除C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁 2 2、算術表達式算術表達式 用算術運算符和括符將操作數連接起來的式子。用算術運算符和括符將操作數連接起來的式子。 優先級:()優先級:() * *、/ /、% +% +、- - 結合性:從左至右;結合性:從左至右;
21、表達式的值:表達式的值: 數值型數值型(int(int、longlong、unsignedunsigned、floatfloat、double)double);例如:例如: 已知:已知: float a=2.0;float a=2.0; int b=6,c=3; int b=6,c=3; 求解:求解: a a* *b/c-1.5+a+fabs(-5)=b/c-1.5+a+fabs(-5)=?C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁 float a=2.0;float a=2.0; int b =6,c =3; int b =6,c =3; a a* *b
22、/c -1.5 +a +fabs(-5)b/c -1.5 +a +fabs(-5)12.012.0/3/354.0 4.0 - 1.5- 1.52.5 2.5 + 97(int)+ 97(int)99.5 99.5 + 5+ 5104.5104.5思考思考 int a=1,b=2; 表達式表達式a/b+3的結果是多少?的結果是多少? double floatunsigned long long unsigned int int char,shortC語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁等價于:等價于:j=i;i+; j=i;i+; 所以所以i i的值為
23、的值為4 4,j j的值為的值為3 3等價于:等價于:i+;j=i; i+;j=i; 所以所以i i的值為的值為4 4,j j的值為的值為4 4(1) i=3;(1) i=3; j=i+; j=i+; (2) i=3;(2) i=3; j=+i; j=+i;3 3、自增與自減運算符自增與自減運算符 (+ 、-) +i,-i+i,-i:使用之前使:使用之前使i i的值增的值增1 1(或減(或減1 1);); i+,i- i+,i-:使用之后使:使用之后使i i的值增的值增1 1(或減(或減1 1););分析下面幾種情況中分析下面幾種情況中i與與j的值:的值: 當當+、 -不與其他運算符混合使用時
24、,不與其他運算符混合使用時,+i+i與與i+i+都等價于都等價于 i=i+1, -ii=i+1, -i與與i-i-都等價于都等價于 i=i-1i=i-1C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁 如:如:i = 2;i = 2; j = -i+; j = -i+; 求執行完這兩句后求執行完這兩句后i i與與j j的值分別是多少的值分別是多少 結合性:自右至左。結合性:自右至左。分析:分析:“+”與與”- -“是同優先級,且都高于是同優先級,且都高于“=”=” 按結合規則,等價于:按結合規則,等價于:j=-(i+);j=-(i+); 結果:結果:i i的值為
25、的值為3 3,j j的值為的值為-2-2。再看幾個例子:再看幾個例子:如:設如:設a=3,b=(a+)+(a+) b= a=a=3,b=(a+)+(a+) b= a=65設設a=3,b=(+a)+(a+) b= a=a=3,b=(+a)+(a+) b= a=85設設a=3,b=(a+)+(+a) b= a=a=3,b=(a+)+(+a) b= a=85設設a=3,b=(+a)+(+a) b= a=a=3,b=(+a)+(+a) b= a=105C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁 1 1、6 6種關系運算符:種關系運算符: = = != = = !=
26、 2 2、關系表達式:關系表達式:用關系運算符將表達式連接起來的式子用關系運算符將表達式連接起來的式子 優先級優先級: ( = )( = ) ( = != )( = != ) 結合性結合性:自左至右;:自左至右; 表達式的值表達式的值: 若為真,則結果為若為真,則結果為1 1; 若為假,則結果為若為假,則結果為0 0。35 35 值為:值為: 32 32 值為:值為: 設設x=-2; -3x-1 x=-2; -3x-1 值為:值為: 設設x=1; 2x4 x=1; 2x4 值為:值為:例如例如二、關系運算符和關系表達式二、關系運算符和關系表達式求如下關系表達式的值:求如下關系表達式的值:000
27、1算術運算符優先級高于關系運算符算術運算符優先級高于關系運算符3+(43)3+(43)* *4 4 值為:值為: 3+43+43 & | 結合性:自左至右;結合性:自左至右; 表達式的值:表達式的值: 若為真,則結果為若為真,則結果為1 1; 若為假,則結果為若為假,則結果為0 0。 三、邏輯運算符和邏輯表達式三、邏輯運算符和邏輯表達式 1 1、3 3種邏輯運算符:種邏輯運算符: & | !& | !參與邏輯運算的操作數叫邏輯量。參與邏輯運算的操作數叫邏輯量。邏輯量可以是整型、實型、字符型和指針類型,邏輯量可以是整型、實型、字符型和指針類型,其中,其中,0 0,0.00.0,0,NULL0,N
28、ULL代表代表假假,其余邏輯量代表,其余邏輯量代表真真。C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁 int a=5; float b=3.5; !a ( ) !(a b) ( ) a & b ( ) !a&b ( ) !a&!b ( ) !(a&b) ( ) a b ( ) !a|b ( ) !a|!b ( ) !(a|b) ( ) (a 0) ( ) (a 0) ( )例如例如011000110001C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁例如表達式運算如下:例如表達式運算如下:混合優先級:混合優先級: ! ! 高
29、高 算術運算符算術運算符 關系運算符關系運算符 &和和| | 賦值運算符賦值運算符 低低 4 - 04 - 01 & 21 & 28 48 3 & 2 | 8 3 & 2 | 8 4 - !5C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁例如:例如: (1)a = 0; b = 1; (1)a = 0; b = 1; c = a+ & ( b = 3 ); c = a+ & ( b = 3 ); 執行后執行后: a: a為為 ,b,b為為 ,c,c為為 。 邏輯或優化和邏輯與優化:邏輯或優化和邏輯與優化: 在邏輯表達式的求解中,并不是所有的邏輯運算符都在邏輯表
30、達式的求解中,并不是所有的邏輯運算符都被執行,只是在必須執行下一個邏輯運算符才能求出表被執行,只是在必須執行下一個邏輯運算符才能求出表達式的解時,才執行該運算符。達式的解時,才執行該運算符。110(2)a = 1; b = 1; c=0;(2)a = 1; b = 1; c=0; d = -a d = -a b- b- (c = b+3 ); (c = b+3 ); 執行后執行后: a: a為為 ,b,b為為 ,c,c為為 ,d,d為為 。0001C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁例如:例如: (1) n(1) n是小于是小于m m的偶數:的偶數:
31、 (2)year(2)year是閏年是閏年: : (能被(能被4 4整除但不能被整除但不能被100100整除整除, ,或能被或能被400400整除)整除)邏輯表達式一般用于控制語句中的條件:邏輯表達式一般用于控制語句中的條件:n m & n % 2 = 0n m & n % 2 = 0 year % 4 = 0 & year % 100 != 0 | year % 400 = 0C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁例如例如:(1) x=(y=12)/4 (1) x=(y=12)/4 (2) x=y=12/4 (2) x=y=12/4 (3) x=(y
32、=12/4) (3) x=(y=12/4) (4)(x=y)=12/4(4)(x=y)=12/4四、賦值運算符和賦值表達式四、賦值運算符和賦值表達式 1 1、賦值運算符賦值運算符 = = ( (執行功能:把執行功能:把= =右邊的表達式的值,存入右邊的表達式的值,存入= =左邊的左邊的變量變量對應的存儲空間,即給此變量賦值對應的存儲空間,即給此變量賦值) 3=2+1 a=a+2) 3=2+1 a=a+2 2 2、賦值表達式:賦值表達式:用賦值運算符將變量和表達式連接起來的式子用賦值運算符將變量和表達式連接起來的式子 形式形式: : = 求值規則求值規則: : 將將“=”=”右邊表達式的值賦給左
33、邊的變量。右邊表達式的值賦給左邊的變量。 優先級:優先級: ! ! 算術算術 關系關系 & & | | 賦值賦值 結合性:自右至左;結合性:自右至左; 表達式的值:表達式的值:被賦值變量的值被賦值變量的值。y y值為值為1212,x x值為值為3 3,表達式的值為,表達式的值為3 3y y值為值為3 3,x x值為值為3 3,表達式的值為,表達式的值為3 3y y值為值為3 3,x x值為值為3 3,表達式的值為,表達式的值為3 3 C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁練習:練習:設設a=12a=12,計算表達式,計算表達式a+=a-=aa+=a-=
34、a* *1212和和a+=a-=aa+=a-=a* *=12=12的值的值 3 3、復合賦值運算符復合賦值運算符 * *= =、/=/=、 %=%=、 +=+=、 -=, =-=, =, &=, &=、 =、 = 復合運算符是一個運算符復合運算符是一個運算符, ,但功能上但功能上, ,是兩個運算符功是兩個運算符功能的組合。能的組合。例如例如: a+=b : a+=b 相當于相當于 a=a+ba=a+b a a* *=b =b 相當于相當于 a=aa=a* *b b注意:注意:a a* *=b+c =b+c 相當于相當于 a=aa=a* *(b+c) (b+c) 而不是而不是 a=aa=a* *
35、b+cb+c 優先級:優先級: 與與 = = 是同一優先級。是同一優先級。 結合性:自右至左;結合性:自右至左; 表達式的值:表達式的值:被賦值變量的值被賦值變量的值。-2640C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁 求值規則:求值規則: 先求解表達式先求解表達式1 1的值的值 若為真若為真( (非非0),0),求解表達式求解表達式2 2,并把表達式,并把表達式2 2的值的值 作為整個條件表達式的值作為整個條件表達式的值 若為假若為假(0),(0),求解表達式求解表達式3 3,并把表達式,并把表達式3 3的值作的值作 為整個條件表達式的值為整個條件表達
36、式的值 四、其它運算符四、其它運算符 1 1、條件運算符條件運算符 ? ?和和: : , ,它們與三個操作數組組成三元運算。它們與三個操作數組組成三元運算。 形式為形式為: : ? ? :3 優先級:優先級: 邏輯邏輯 條件條件 賦值賦值 結合性:自右至左;結合性:自右至左;C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁2 2、逗號運算符:逗號運算符: , 形式形式: : 表達式表達式1 1,表達式,表達式2 2,表達式,表達式n n 求值規則求值規則: : 從左至右依次計算各表達式的值從左至右依次計算各表達式的值; 優先級:優先級: 最低;最低; 結合性:自
37、左至右;結合性:自左至右; 表達式的值:最后一個表達式的值。表達式的值:最后一個表達式的值。又如:又如: y = x10 ? x/10 : x0 ? x: -xy = x10 ? x/10 : x0 ? x: -x 當當x x的值為整型的的值為整型的1515時,表達式的結果為:時,表達式的結果為: 當當x x的值為整型的的值為整型的5 5時,表達式的結果為:時,表達式的結果為:15 5例如例如: int: int max, max,a=5a=5,b=3;b=3; max=ab?a:b max=ab?a:b 求求maxmax的值的值 max的值為的值為5C語言程序設計C語言程序設計C語言程序設計
38、C語言程序設計上一頁上一頁下一頁下一頁例如:例如: a b y a b y 表達式表達式 y=a=4,b=5,a+b y=a=4,b=5,a+b y=(a=4,b=5,a+b) y=(a=4,b=5,a+b) y=(a=4,b=5),a+b y=(a=4,b=5),a+b y=a=(4,b=5),a+b y=a=(4,b=5),a+b 4 45 54 49 94 45 59 99 94 45 59 95 55 55 55 51010C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁 形式有三種:形式有三種: sizeof 變量名變量名 sizeof(變量名變量名)
39、 sizeof (類型名類型名) 結果為整型數。結果為整型數。 int a int a; float xfloat x; printf(“%d,%d”,sizeof a,sizeof x);printf(“%d,%d”,sizeof a,sizeof x); printf(“%d,%d”,sizeof(int),sizeof(float); printf(“%d,%d”,sizeof(int),sizeof(float); 以上兩個以上兩個printfprintf語句結果均為語句結果均為 例如例如3 3、求求字節運算符:字節運算符: sizeof 作用:求得變量或某種數據類型所需的字節數。作用
40、:求得變量或某種數據類型所需的字節數。4 4,4 42 2,4 4C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁 C C語言允許整型、實型、字符型數據進行混合運算。語言允許整型、實型、字符型數據進行混合運算。 有有3 3種轉換方式:自動轉換、賦值轉換和強制轉換。種轉換方式:自動轉換、賦值轉換和強制轉換。 一、類型自動轉換一、類型自動轉換 2.4 2.4 數據類型轉換數據類型轉換 double floatunsigned long long unsigned int int char,short特點:由數值存儲位數少特點:由數值存儲位數少的向多的轉換;整型向實的
41、向多的轉換;整型向實型轉換!型轉換!操作數為相同類型的不轉操作數為相同類型的不轉換,仍取原類型,特別注換,仍取原類型,特別注意此時可能帶來的錯誤!意此時可能帶來的錯誤!C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁 int x=2;float y=1.6;char c=A;int x=2;float y=1.6;char c=A; 則:則: c + 1/x c + 1/x * * y y = = = =例如例如char c=68.5;printf(“%c”,c);65(int)+ 0(int) 65(int)+ 0(int) * * 1.6(float 1.6
42、(float)65(float)65(float)二、二、 賦值轉換賦值轉換 在在賦值時將賦值符右邊值的類型轉換成與其左邊變量賦值時將賦值符右邊值的類型轉換成與其左邊變量類型一致的類型。類型一致的類型。 有下列幾種情況:有下列幾種情況: (1) (1) 實型實型 整型(字符型):去掉小數部分;整型(字符型):去掉小數部分;C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁(2) (2) 整型(字符型)整型(字符型) 實型:實型: 補足有效位;補足有效位;float f=23; 23.00000 7位位double f=A; 65.0000000000000 15位
43、位C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁例如:例如: int a=2,b=5;int a=2,b=5; float x=4.4; float x=4.4; 則有:則有: 表達式表達式 結果結果 b/ab/a (float)b/a (float)b/a (float)(b/a) (float)(b/a) (int)x%a+x (int)x%a+x (int)x%(a+x) (int)x%(a+x) 三、強制類型轉換三、強制類型轉換 形式:形式: ( (類型名類型名) )表達式表達式 強制類型轉換時強制類型轉換時, ,得到所需類型的中間變量,原來得到所需類
44、型的中間變量,原來變量的類型不會改變。變量的類型不會改變。2 22.52.52.02.04.44.4C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁2006-9易錯題1、有以下程序、有以下程序 main( ) int a=0,b=0; a=10; /* 給給a賦值賦值 b=20; 給給b賦值賦值 */ printf(a+b=%dn, a+b); /* 輸出計算結果輸出計算結果 */ A a+b=10 B a+b=30 C 30 D 出錯出錯2、以下選項中,值為、以下選項中,值為1的表達式是的表達式是 A 1-0 B 1-0 C 1-0 D 0-0C語言程序設計C
45、語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁2007-4易錯題1、若有代數式、若有代數式 以下正確表示該代數式的以下正確表示該代數式的C語言表達式是語言表達式是 A sqrt(abs(nx+ex) B sqrt(fabs(pow(n,x)+pow(x,e) C sqrt(fabs(pow(n,x)+exp(x) D sqrt(fabs(pow(x,n)+exp(x)2、設有定義:、設有定義:int k=0; 以下選項的四個表達式中與其他三個表達式的值不相同以下選項的四個表達式中與其他三個表達式的值不相同的是的是 A k+ B k+=1 C +k D k+13、執行以下程序后
46、的輸出結果是、執行以下程序后的輸出結果是 main() int a=10; a=(3*5,a+4); printf(a=%dn,a) ;xxen 注意:考慮的是表達式的值,不是變量k的值a=14C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁2007-91. 以下選項中,合法的一組以下選項中,合法的一組C語言數值常量是語言數值常量是A)028 B)12. C).177 D)0 x8A .5e-3 0Xa23 4e1.5 10,000 .0 xf 4.5e0 0abc 3.e52. 以下關于以下關于long、int和和short類型數據占用內存大小的敘述中正確的是
47、類型數據占用內存大小的敘述中正確的是A)均占均占4個字節個字節 B)根據數據的大小來決定所占內存的字節數根據數據的大小來決定所占內存的字節數C)由用戶自己定義由用戶自己定義D)由由C語言編譯系統決定語言編譯系統決定3. 若變量均已正確定義并賦值,以下合法的若變量均已正確定義并賦值,以下合法的C語言賦值語句是語言賦值語句是A)x=y=5;B)x=n%2.5;C)x+n=I;D)x=5=4+1;4. 設有條件表達式:設有條件表達式:(EXP)?i+;j-,則以下表達式中,則以下表達式中(EXP)完全等價的是完全等價的是A)(EXP=0)B)(EXP!=0)C)(EXP=1)D)(EXP!=1)C語
48、言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁2007-95. 已有定義:已有定義:charc;,程序前面已在命令行中包含,程序前面已在命令行中包含ctype.h文件,不能用于判文件,不能用于判斷斷c中的字符是否為大寫字母的表達式是中的字符是否為大寫字母的表達式是A)isupper(c) B)A=c=ZC)A=c&c=Z D)c=(z-32)&(a-32)=A&kk=A|kk=a&(kk+32)=z D)isalpha(kk)&(kk=2&c=2&c=2&c=6)&(c%2!=1)C語言程序設計C語言程序設計C語言程序設計C語言程序設計上一頁上一頁下一頁下一頁2008-45. 已有定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北省棗陽一中2025年高考考前提分英語仿真卷含解析
- 2025屆四川成都實驗中學高考適應性考試英語試卷含解析
- 職業技術學院2024級電子商務專業人才培養方案
- 液化石油氣供應系統運行與管理考核試卷
- 電氣設備環境測試與評估考核試卷
- 組織溝通與跨文化管理技巧考核試卷
- 石棉與建筑物結構安全的關系和防護措施考核試卷
- 皮革制品養護項目投資風險評估考核試卷
- 自然地理與環境考核試卷
- 燈具的防眩光涂層技術考核試卷
- 跳繩市場調研報告
- 《民法典》合同編通則及司法解釋培訓課件
- 《大學生的情緒》課件
- 交通事故法律處理與索賠案例分析與實踐指導
- 大學生組織管理能力大賽題庫第三屆
- 定向鉆出入土點平面布置圖(可編輯)
- ANSYS導出柔性體MNF文件入ADAMS的詳細步驟
- 光學零件制造工藝
- 餐飲銷售提成方案
- 公共營養師第八章食品衛生基礎課件
- 2024屆新高考數學熱點沖刺復習:多面體與球的切、接問題
評論
0/150
提交評論