C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式課件_第1頁(yè)
C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式課件_第2頁(yè)
C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式課件_第3頁(yè)
C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式課件_第4頁(yè)
C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式課件_第5頁(yè)
已閱讀5頁(yè),還剩65頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式1第三章第三章 數(shù)據(jù)類型、運(yùn)算符和表達(dá)式數(shù)據(jù)類型、運(yùn)算符和表達(dá)式Chapter ThreeVariables,Data Types, and Arithmetic ExpressionsC語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式23.1 C3.1 C語言數(shù)據(jù)類型語言數(shù)據(jù)類型單精度型float(single precision)雙精度型(double precision)基本類型Basic Type構(gòu)造類型conformation指針類型(Pointer)空類型(Dummy)數(shù)據(jù)類型Data Type整型(integer)字符型(characte

2、r)實(shí)型(浮點(diǎn)型)(Real)枚舉類型(enumeration) 數(shù)組(Array)結(jié)構(gòu)體類型(Structure)共用體類型(Union)C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式3C字符集Letters字母AZUppercase大寫字母azLowercase小寫字母Digits數(shù)字09All Decimal digits數(shù)字Special Characters特殊符號(hào)_Under score下劃線,comma逗號(hào).period小數(shù)點(diǎn),句號(hào);semicolon分號(hào):colon冒號(hào)?Question mark問號(hào)apostrophe單引號(hào)“quotation雙引號(hào)C語言程序設(shè)計(jì)2第3章-數(shù)

3、據(jù)類型、運(yùn)算與表達(dá)式4C字符集(續(xù))!Exclamation mark感嘆號(hào)|Vertical bar豎線/slash斜線backslash反斜線tilde波浪線$Dollar sign美元符號(hào)%Percent sign百分號(hào)&ampersand與caret冪次符號(hào)C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式5C字符集(續(xù))*asterisk星號(hào)-Minus sign減號(hào)+Plus sign加號(hào)closing angle bracket(or less than sign)右尖括號(hào)(或大于號(hào))(Left parenthesis左圓括號(hào))Right parenthesis右圓括號(hào)Lef

4、t bracket左方括號(hào)Right bracket右方括號(hào)Left brace左大(花)括號(hào)Right brace右大(花)括號(hào)#Number sign井號(hào)C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式63.2.1常量常量(Constant)1.定義定義:在程序執(zhí)行期間在程序執(zhí)行期間,其值不發(fā)生變化的量稱為常量其值不發(fā)生變化的量稱為常量2.類型:類型:v直接常量直接常量 (Direct )又稱又稱字面常量字面常量 。分為。分為整型常量:整型常量:123,-321,0,654321,+78實(shí)型常量:實(shí)型常量:2.68,3.14,2.718,1.38e12單字符常量:?jiǎn)巫址A浚篴,C,z字符串

5、常量:字符串常量:”china”,”student”,”class number”3.2 3.2 常量與變量常量與變量(Constant and(Constant and Variable)Variable)C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式73.2 3.2 常量與變量常量與變量(Constant and(Constant and Variable)Variable)v符號(hào)常量符號(hào)常量 (Symbol ) 即用一個(gè)符號(hào)代表一個(gè)常量即用一個(gè)符號(hào)代表一個(gè)常量 例如例如: #define PI 3.1415926/預(yù)處理命令預(yù)處理命令 main( ) float r,l,s; r=2;

6、l=2*PI*r;s=PI*r*r; printf(“l(fā)=%d, s=%d”, l,s); 編譯器編譯后,程序中的有關(guān)代碼變成了(編譯器編譯后,程序中的有關(guān)代碼變成了(.obj文件,不可文件,不可見)見)l=2* 3.1415926*r; s= 3.1415926*r*r;C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式8說明:說明:v符號(hào)常量必須符號(hào)常量必須先定義先定義后才能用它表示一個(gè)數(shù)值。后才能用它表示一個(gè)數(shù)值。v符號(hào)常量的值在其作用域內(nèi)符號(hào)常量的值在其作用域內(nèi)不能改變不能改變,也不能,也不能被再賦值。被再賦值。v符號(hào)常量名習(xí)慣用符號(hào)常量名習(xí)慣用大寫大寫字母表示。字母表示。C語言程序設(shè)計(jì)2

7、第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式93.2.2 變量變量1. 定義:定義:程序執(zhí)行期間值可以改變的量。2.命名規(guī)則命名規(guī)則: 變量名由標(biāo)識(shí)符表示,只能由字母字母、數(shù)字?jǐn)?shù)字和下劃線下劃線三種字符組成,且第一個(gè)字符不得為數(shù)字。 例如:下列標(biāo)識(shí)符中,不合法不合法的變量名有: M.D.John , 12%gf , 1add , age& 5thclass, lotus-1-2-3 , cd*ef , float3. 變量要變量要“先定義,后使用先定義,后使用” 定義格式:定義格式:類型說明符類型說明符 標(biāo)識(shí)符標(biāo)識(shí)符1, 1, , ,標(biāo)識(shí)符標(biāo)識(shí)符n n; 例如:int x, y, z; (每個(gè)整型變

8、量分配 2字節(jié)bytes存儲(chǔ)單元)float a,b,c,d;(每個(gè)單精度變量分配 4字節(jié)存儲(chǔ)單元)double u,v,w;(每個(gè)雙精度變量分配 8字節(jié)存儲(chǔ)單元)3aC語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式10在在C語言中,變量之所以要強(qiáng)制定義,其目的:語言中,變量之所以要強(qiáng)制定義,其目的:1、避免在使用時(shí)輸錯(cuò):int student; stadent=30;。2、每一個(gè)變量被指定為一確定的類型,在編譯時(shí)就能為 其分配相應(yīng)的存儲(chǔ)單元。3、指定每一個(gè)變量為一確定的類型,在編譯時(shí)據(jù)此檢查 該變量所進(jìn)行的運(yùn)算是否合法。 例如:如果有double x,y ; int z; 對(duì)于運(yùn)算: z=x*

9、y;在編譯時(shí)系統(tǒng)就會(huì)提示該運(yùn)算類型不匹配:warning C4244: = : conversion from double to int, possible loss of dataC語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式11l選變量名時(shí),要做到“見名知意” 例如:name student_num max class suml大小寫字母是兩種不同的字符,C變量名習(xí)慣用小寫小寫字母表示。l變量名的長(zhǎng)度因系統(tǒng)而異。當(dāng)用TC編譯系統(tǒng)時(shí),不要超過8個(gè)字符,而用Visual C+編譯系統(tǒng)時(shí),幾乎無限制。請(qǐng)請(qǐng) 注注 意意C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式123.33.3整型數(shù)據(jù)整型數(shù)據(jù)

10、3.3.1整型常量的表示法整型常量的表示法十進(jìn)制整數(shù)十進(jìn)制整數(shù) :由數(shù)字(0-9)和正負(fù)號(hào)表示 例如:123、-456、0 等八進(jìn)制整數(shù)八進(jìn)制整數(shù):以0開頭 例如:037,0,0435,0551,0123 即(123)8 =(83)10(123) 8=182+2 81+3 80 =(83)10十六進(jìn)制整數(shù)十六進(jìn)制整數(shù):以0 x或0X開頭 例如: 0X2,0 x9F,0Xbcd,0X 0 x123 即 (123)16 =(291)10 -0 x12 即 (-12)16 =( -18 )10C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式133.3.2 整型變量整型變量整型數(shù)據(jù)在內(nèi)存中的存放形式(補(bǔ)

11、碼表示法:便于加整型數(shù)據(jù)在內(nèi)存中的存放形式(補(bǔ)碼表示法:便于加減運(yùn)算)減運(yùn)算)int i;i=10; 10=(1010)2 余數(shù)首位0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 00 0 0 0 0 0 0 0 0 0 0 0 1 0 1 01 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 010的原碼取反再加1,得-10的補(bǔ)碼10的表示法的表示法,正數(shù)的補(bǔ)碼等于它的原碼正數(shù)的補(bǔ)碼等于它的原碼-10的的表示表示21025221020121022123C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式14計(jì)算計(jì)算

12、10-10:10-10=10+(-10)0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 00=10-10+C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式152 整型變量的分類整型變量的分類 基本型(16位):以 intint 表示 (-3276832767 ) 短整型(16位):以short intshort int或shortshort表示 1.類型 長(zhǎng)整型(32位):以long intlong int或longlong表示 (-2.1E9L2.1E9L)

13、 無符號(hào)基本型(unsigned intunsigned int) 無符號(hào)型 無符號(hào)短整型(unsigned shortunsigned short) 無符號(hào)長(zhǎng)整型(unsigned longunsigned long)一個(gè)無符號(hào)整型變量中可以存放的正數(shù)的范圍比一般整型變量中正數(shù)的范圍擴(kuò)大一倍。unsigned int b; /* 變量b的數(shù)值范圍:065535 */C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式16整整型變量的字長(zhǎng)型變量的字長(zhǎng)short型型 2個(gè)字節(jié)個(gè)字節(jié)byte(字長(zhǎng)(字長(zhǎng)16位位bit)int 型型 一般是一般是2個(gè)字節(jié)個(gè)字節(jié)long 型型 4個(gè)字節(jié)(字長(zhǎng)個(gè)字節(jié)(字長(zhǎng)32

14、位)位)C要求要求 short型數(shù)據(jù)長(zhǎng)度短于型數(shù)據(jù)長(zhǎng)度短于int型,型,int型短于型短于long型。型。(short=int int-int = chard- a = 100-97 = 003 = vfloat+float = double+double =double int/float=float/float=floatfloat a; a=1/3.0=1.0/3.0=0.3333333double c; c=1.0/3.0=0.3333333333333333int b; b=1/3.0=1.0/3.0=0.3333333=0vint/int=intfloat a; a=1/3=0.0

15、;int b; b=1/3=0;Decision lossC語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式36例:若有: int i ; float f ; double d ; long e ; 試判斷表達(dá)式 3 +b +i*f - d/e 的類型 int float float double double例:如果int a=5,b=2;double x;x=a/b;printf(“ x=%f“,x);輸出結(jié)果是什么?X=2.000000C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式37 C語言使用的基本表達(dá)式有:語言使用的基本表達(dá)式有: 賦值表達(dá)式,如:賦值表達(dá)式,如:a=3 算術(shù)表達(dá)式,如

16、:算術(shù)表達(dá)式,如:3+4*2 關(guān)系表達(dá)式,如:關(guān)系表達(dá)式,如:32, a=b,c!=0 邏輯表達(dá)式,如:邏輯表達(dá)式,如:35&a=b 條件表達(dá)式,如:條件表達(dá)式,如:ab?a:b 逗號(hào)表達(dá)式,如:逗號(hào)表達(dá)式,如:a=3, b=4, c=5C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式383.83.8算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符和算術(shù)表達(dá)式( (Arithmetic Operators and Expressions)Arithmetic Operators and Expressions)1、基本的算術(shù)運(yùn)算符、基本的算術(shù)運(yùn)算符: + - * / %l整型數(shù)運(yùn)算int a=14,b=

17、4;a-b=10a+b=18a*b=56a/b=3(decimal part truncated)a%b=2(reminder of division)-14%3=-2C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式39l實(shí)型數(shù)運(yùn)算float x,y,z;x=6.0/7.0=0.857143y=1.0/3.0=0.333333z=-2.0/3.0=-0.666667% operator can not be used herel混合運(yùn)算15/10.0=1.515/10=1C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式40說明:()上述運(yùn)算符均為雙目運(yùn)算符(即有兩個(gè)操作數(shù)two operands)

18、(2)“”運(yùn)算中,若操作數(shù)均為整數(shù),則執(zhí)行整除運(yùn)算,舍去小數(shù)部分。例如:5/3=1(3)“” 要求兩側(cè)均為整數(shù),“”運(yùn)算不能用于float 和 double型數(shù)據(jù)例如:2C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式412 2、算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性、算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性(Priority and CombinationPriority and Combination,附錄,附錄III III )(1)算術(shù)表達(dá)式:用算術(shù)運(yùn)算符和括號(hào)將操作數(shù)連接起來的,符合語法規(guī)則的式子。 例如: a + b + a*b/c +2.8(2)優(yōu)先級(jí):優(yōu)先級(jí):高于(3)結(jié)合性結(jié)合性: “自

19、左至右的結(jié)合方向” 例如:a - b + cC語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式42說明:()表達(dá)式應(yīng)用括號(hào)括起例如:(int)(x+y) ;()在強(qiáng)制類型轉(zhuǎn)換時(shí),得到一個(gè)所需類型的中間變量,原來變量類型未發(fā)生變化。(3)用途:完成某種運(yùn)算,如(int)5.5%3;在函數(shù)調(diào)用時(shí)使實(shí)參與形參一致。3 3、強(qiáng)制類型轉(zhuǎn)換、強(qiáng)制類型轉(zhuǎn)換( (Forced Forced type type transformationtransformation) )形式:(類型名)(表達(dá)式)例如:( double) (a+b)C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式43舉例作用x=(int) 7.57

20、.5 通過截尾轉(zhuǎn)換為整數(shù)a=(int)21.3/(int)4.5轉(zhuǎn)換為21/4 ,結(jié)果為5b=(double)sum/n以浮點(diǎn)數(shù)(實(shí)型數(shù))模式計(jì)算除法y=(int)(a+b) 將表達(dá)式a+b轉(zhuǎn)換為整數(shù)z=(int)a+b將a轉(zhuǎn)換為整數(shù)然后與b相加p=cos(double)x)在使用 x之前,將其轉(zhuǎn)換為實(shí)型數(shù)C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式4444main( ) float x; int i; x=3.6; i=(int)x; printf(“x=%f, i=%d”,x,i);輸出結(jié)果: x=3.600000, i=3注意:強(qiáng)制類型轉(zhuǎn)換后并不改變?cè)瓉碜兞康念愋?請(qǐng)看下面程序段:C語

21、言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式454、自增、自減運(yùn)算符(、)、自增、自減運(yùn)算符(、)作用:作用:使變量的值增或減,如:i+, +i等于i=i+1i-, -i等于i=i-1 +i ,-i 先執(zhí)行i=i+1(i=i-1),再使用i的值 i+ ,i- 先使用i的值,再執(zhí)行i=i+1(i=i-1) 舉例:舉例: int j,i=3; j=+i; /*j的值為的值為4,i為為4*/ j=i+; /*j的值為的值為3,然后然后i的值變?yōu)榈闹底優(yōu)? */ j=-i+; /*j的值的值-3,然后,然后i的值變?yōu)榈闹底優(yōu)? */C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式46說明:(1)為單目運(yùn)算

22、符 (2)+ 、只能用于變量,而不能用于常量或表達(dá)式。 例如:,(,(x+y)+x+y)+,+,+a a, b+ , b+ 中合法的為:(3)自增、自減運(yùn)算符為右結(jié)合性(即自右至左)。例如:a+ (a+)錯(cuò)誤的結(jié)合(-a)+ y*x+ y*(x+)錯(cuò)誤的結(jié)合 (y*x)+4、自增、自減運(yùn)算符(、)、自增、自減運(yùn)算符(、)C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式47練習(xí)題練習(xí)題v設(shè)a=2, 則執(zhí)行語句 k=+a+a+ 后的 k值為多少?(k=6, a=4)vint i=3;a=(i+)+(i+)+(i+) ?vint i=3; printf(“%d,%d”,i, i+) ? P58最好寫成

23、i=3; j=i+;printf(“%d,%d”,i, j) ? 請(qǐng)避免這種寫法C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式483.9 3.9 賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符和賦值表達(dá)式Assignment Operator and Expressions1、 賦值運(yùn)算符(賦值運(yùn)算符(=)形式:變量名=常量或表達(dá)式作用:將右邊常量或表達(dá)式的值賦給左邊的變量例如: b=c+d; 要求要求:如果表達(dá)式類型與左邊的變量的類型不:如果表達(dá)式類型與左邊的變量的類型不 匹配,自動(dòng)進(jìn)行類型轉(zhuǎn)換。匹配,自動(dòng)進(jìn)行類型轉(zhuǎn)換。 C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式492、類型轉(zhuǎn)換的原則、類型轉(zhuǎn)換的原則

24、(1) 將實(shí)型數(shù)據(jù)賦給整型變量時(shí)將實(shí)型數(shù)據(jù)賦給整型變量時(shí),舍棄實(shí)數(shù)的小數(shù)部分。舍棄實(shí)數(shù)的小數(shù)部分。如:若如:若a為為int型變量,型變量, 執(zhí)行執(zhí)行a=3.56后,則后,則a=3(2) 將整型數(shù)據(jù)賦給實(shí)型數(shù)據(jù)時(shí)將整型數(shù)據(jù)賦給實(shí)型數(shù)據(jù)時(shí),數(shù)值不變數(shù)值不變,但以浮點(diǎn)形但以浮點(diǎn)形式存儲(chǔ)到變量中。式存儲(chǔ)到變量中。 如:若如:若b為為float型變量,執(zhí)行型變量,執(zhí)行b=35后,則后,則b為為35.00000 (3) 整型數(shù)據(jù)賦給字符型變量時(shí)整型數(shù)據(jù)賦給字符型變量時(shí), 只將低只將低8位原封不動(dòng)地位原封不動(dòng)地送到字符變量中(即截?cái)啵?。送到字符變量中(即截?cái)啵?010 00010000 0001 0010

25、 0001如:i=289=256+33c=33 c=!C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式50(4) 字符型數(shù)據(jù)賦給整型變量時(shí)字符型數(shù)據(jù)賦給整型變量時(shí), 將字符數(shù)據(jù)將字符數(shù)據(jù)(8位位)放到整型變量低放到整型變量低8位中。高位中。高8位則需要依據(jù)位則需要依據(jù)“符符號(hào)擴(kuò)展號(hào)擴(kuò)展”來決定。來決定。例1(無符號(hào)字符數(shù)據(jù)賦給整型變量) unsigned char c; int i; c=254; i=c;1111 1110c= 254i=254 0000 0000 1111 1110例2(Turbo C 系統(tǒng)把字符處理為帶符號(hào)的) char c; int i; c=254; i=c; /* 變

26、量c 以整數(shù)形式輸出為-2 */1111 1110c= 254i=-2 1111 1111 1111 1110C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式51(5) 將帶符號(hào)數(shù)據(jù)賦給長(zhǎng)度相同的無符號(hào)型變量,將帶符號(hào)數(shù)據(jù)賦給長(zhǎng)度相同的無符號(hào)型變量, 原樣照賦。原樣照賦。(6)double 賦給賦給 float 時(shí),截取前面時(shí),截取前面7位有效數(shù)字。位有效數(shù)字。C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式52例3:(帶符號(hào)int型數(shù)據(jù)賦給long型變量) int a; long b; a=254; b=a;0000 0000 0000 0000 0000 0000 1111 1110a=254

27、 0000 0000 1111 1110b=254 例4:(帶符號(hào)int型數(shù)據(jù)賦給long型變量) int a; long b; a=-2; b=a;1111 1111 1111 1111 1000 0000 1111 1110a=-2 1111 1111 1111 1110b=-2 C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式53例5: (無符號(hào)int型數(shù)據(jù)賦給long型變量) unsigned int a; long b; a=65534; b=a;0000 0000 0000 0000 1111 1111 1111 1110a=65534 1111 1111 1111 1110b=65

28、534 例6: (有符號(hào)數(shù)據(jù)賦給無符號(hào)變量) int a; unsigned int b; a=-2; b=a;1111 1111 1111 1110a=-2 1111 1111 1111 1110b=65534 C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式54P66 (3.11) 寫出下面賦值的結(jié)果。格中寫了數(shù)值的是要將它賦給其它類型的變量,將所有空格添上賦值后的數(shù)值。int 9 9 100 76 53 68 42 -1char c d L 5 D * X unsigned int 99 100 76 53 68 42 65535float 99.000000 100.000000 76.

29、000000 53.65 68.000000 42.000000 65535.000000long int 99 100 76 53 68 42 65535C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式55v總的結(jié)論:低精度的數(shù)據(jù)賦值給高精度的變量,其精度將保持;高精度的數(shù)據(jù)賦值給低精度的變量,其精度將降低,有時(shí)甚至可能出錯(cuò)。C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式563、復(fù)合賦值運(yùn)算符、復(fù)合賦值運(yùn)算符(Compound assignment operators)復(fù)合賦值運(yùn)算符:在賦值符“=”之前加上其它運(yùn)算符共有10種復(fù)合賦值運(yùn)算符 += ,-=, ,&, =, |= (位運(yùn)算

30、)(位運(yùn)算)例如:a+=3 a=a+3 x*=y+3 x=x*(y+3) x/=y x=x/yC語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式57普通賦值運(yùn)算符簡(jiǎn)潔賦值運(yùn)算符a=a+3 a+=3a=a-3 a-=3a=a*(n+1) a*=n+1a=a/(n+1)a/=n+1a=a%ba%=ba=b=c=6a=(b=4)+(c=6)a=(b=4)*(c=6)C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式584、 賦值表達(dá)式賦值表達(dá)式(Assignment expressions)定義:由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來的式子式子。形式:變量變量 = 表達(dá)式表達(dá)式結(jié)合方向:由右向左結(jié)合方向

31、:由右向左說明:賦值表達(dá)式的值為被賦值的變量的值。其中賦值表達(dá)式的值為被賦值的變量的值。其中“表達(dá)式表達(dá)式”又可以是一個(gè)賦值表達(dá)式。又可以是一個(gè)賦值表達(dá)式。例如:a=b=c=6 a=(b=4)+(c=6) a=(b=4)*(c=6)x=-b/(2*a)y1=-x+(dt=sqrt(b*b-4*a*c) y2=-x-dtC語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式59v練習(xí):寫出順序執(zhí)行下列表達(dá)式運(yùn)算后的x值: 1. x=a=b=10 2. x=25%(c=3) X=10X=1賦值表達(dá)式中可以包含復(fù)合賦值運(yùn)算符 例如:若a=12,計(jì)算表達(dá)式a+=a=a*a運(yùn)算后a的值 第一步:aa*a a=a

32、-a*a=12-12*12=-132 第二步:a+=-132 a=a+(-132)=-264錯(cuò)誤理解:a=a+(a=a*a)=a+a-a*a=-120C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式603.10 3.10 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式1.逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符:即“,”優(yōu)先級(jí)優(yōu)先級(jí):為所有運(yùn)算符中級(jí)別最低的。2.逗號(hào)表達(dá)式逗號(hào)表達(dá)式形式:表達(dá)式表達(dá)式1 1,表達(dá)式,表達(dá)式2 2,表達(dá)式,表達(dá)式n n求解過程:順次求解表達(dá)式1,表達(dá)式2,最后求解表達(dá)式n,逗號(hào)表達(dá)式的值為表達(dá)式表達(dá)式n n的值。的值。例如:a=3a=3* *5,a5,a* *4 4 a=3a=3* *

33、5,a5,a* *4,a+54,a+5 x=(a=4%3 , a+1, a*10)a=2,b=3,c=4;602010C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式61例如:v=(x=10,y=5,x+y);The value of v is 15.應(yīng)用:1)在for循環(huán)中:for(n=1,m=10; n=m; n+,m+)2)在while循環(huán)中:while(c=getchar(), c!=0)3)數(shù)值交換:t=x, x=y, y=t;C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式62要牢記v不要使用關(guān)鍵詞或者系統(tǒng)庫(kù)函數(shù)的名字作為標(biāo)識(shí)符(變量名或函數(shù)名);v不要使用只差一、兩個(gè)字符的變量名;v

34、每個(gè)變量要在程序或函數(shù)開始處聲明其類型;v在程序中被使用前,所有變量必須賦值;v不要在#define命令的結(jié)尾處加“;”;v不要在#和define之間加空格;vC對(duì)于數(shù)據(jù)的溢出不給任何警告或指示,只會(huì)給出錯(cuò)誤的結(jié)果。必須小心定義數(shù)據(jù)的類型;C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式63要牢記v小心使用自增和自減運(yùn)算符,在使用前了解前置(如+i)和后置(如i+)的差別;v在計(jì)算順序混亂的地方,小括號(hào)的使用可使它們變清晰;v在賦值以前,表達(dá)式的類型被轉(zhuǎn)換成與等號(hào)左邊的變量類型一致。注意轉(zhuǎn)換時(shí)可能的數(shù)據(jù)損失;v所有的數(shù)學(xué)函數(shù)的參數(shù)(自變量)和返回值(計(jì)算值)均為double類型(例如y=sin(

35、x)中的x和y);v不要對(duì)浮點(diǎn)數(shù)變量使用自增和自減運(yùn)算符。C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式64第三章 作業(yè)(所有程序均需上機(jī)調(diào)試,正確后方能提交)3_1 判斷以下程序段有否錯(cuò)誤,寫出正確的程序段,并上機(jī)調(diào)試驗(yàn)證你的程序。(提交修改后的源程序)#include;void main()float x=3.1415;int y ,z,student_num=196;PRINTF(“Hello!n”);printf(“the student_number is:d%n”,num);printf(“the student_number is:%Dn”, student_num);print

36、f(“x=%dn”,x);printf(“y=%fn”,y);z=3/2;printf(“z=%dn”,z);/說明:”%d”是輸入、輸出整形數(shù)據(jù)的格式, ”%f”是輸入、輸出實(shí)形數(shù)據(jù)的格式,”n”是換行的格式C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式653_2 在計(jì)算機(jī)屏幕上輸出一段文字:John said to his brother:(換行) (空兩格)”Lets have a rest!”并在此段文字前后各空兩行。 (提交源程序)3_3 習(xí)題3.9,先寫出運(yùn)行結(jié)果,然后編制程序驗(yàn)證之。 (提交源程序)3_4 習(xí)題3.10 ,先寫出運(yùn)行結(jié)果,然后編制程序驗(yàn)證之。 3_5 習(xí)題3.12,先寫出運(yùn)行結(jié)果,然后編制程序驗(yàn)證之。 (提交源程序,注意每次計(jì)算之前,將a的值復(fù)原為12)C語言程序設(shè)計(jì)2第3章-數(shù)據(jù)類型、運(yùn)算與表達(dá)式663_6.判斷下列陳述是對(duì)還是錯(cuò)?判斷下列

溫馨提示

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

評(píng)論

0/150

提交評(píng)論