浙江大學C語言總復習題—基本數(shù)據(jù)類型和運算_第1頁
浙江大學C語言總復習題—基本數(shù)據(jù)類型和運算_第2頁
浙江大學C語言總復習題—基本數(shù)據(jù)類型和運算_第3頁
浙江大學C語言總復習題—基本數(shù)據(jù)類型和運算_第4頁
浙江大學C語言總復習題—基本數(shù)據(jù)類型和運算_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第2章 基本數(shù)據(jù)類型和運算學習和解題要點1. 數(shù)據(jù)類型C 語言中的數(shù)據(jù)類型比別的語言豐富。要學好這部分內(nèi)容,首先要掌握C 語言的數(shù)據(jù)在內(nèi)存中的表示。整型數(shù)據(jù):以二進制的形式表示 (1) int 類型正數(shù): 如 123 (+123)用 16 位二進制(二個字節(jié))表示0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 符號位0表示正 原碼 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 反碼(原碼同)0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 補碼(原碼同)0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 最大正整數(shù) 215-1=214

2、+213+212+211+210+29+2827+26+25+24+23+22+21+20=327671 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 符號位1表示負 負數(shù):如 123 原碼 反碼(符號位不動,其它取反) 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 補碼(補碼加 1) 已知補碼求原負數(shù) 符號位不動,其它取反加 11 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 取反 加1 最大負整數(shù) -215=32768

3、 因為 -215 < -(215-1) 所以用 -215 而不用 -(215-1) (2) unsigned (int) 類型 稱為無符號整數(shù),它不是指不帶“+ 或 -”號的整數(shù),而是指內(nèi)存表示這類數(shù)時沒有符號位,16 位二進制都用來表示數(shù),因此1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 最大數(shù) 215+214+213+212+211+210+29+2827+26+25+24+23+22+21+20=655350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 最小數(shù) 0 (3) long (

4、int) 類型 用 32 位二進制(四個字節(jié))表示,其他同 int 型 (4) short 類型 有的計算機(小型、中型、大型機)int 即是 long ,而short用16 位二進制(二個字節(jié))表示。因此C語言中,short一定是短整型,long一定是長整型,而int因不同的系統(tǒng)而不同。PC 586 機int即short,所以一般不用short 。(5) 在C語言中,整型常量有三種形式的寫法: 十進制整數(shù)(0 - 9)表示。通常整數(shù)的寫法。 八進制整數(shù)(0 - 7)表示。在整數(shù)的前面加數(shù)字0。 十六進制整數(shù)(0 - f)表示。在整數(shù)的前面加0x。長整型常量表示方法:在整數(shù)的后面加L或 l。字

5、符型數(shù)據(jù):以二進制的形式表示char 型 用 8位二進制(一個字節(jié))表示 如 a ,在程序中要用單引號表示,輸出時無單引號,內(nèi)存中表示為0 1 1 0 0 0 0 1本0 26+25+20=97 即ASCII 碼 97實型數(shù)據(jù):以二進制的形式表示 (1) float 類型 如 123.45 (+123.45)用 32 位二進制(四個字節(jié))表示為 0.12345×1030 .12345 的二進制表示0 3的二進制表示數(shù)符 小數(shù)部分 指數(shù)符 指數(shù)+ 0.12345 + 10332位32-n位n位不同的系統(tǒng),n的位數(shù)有不同,n長,精度高,但可表示的指數(shù)小,能表示的數(shù)的范圍小。反之,則能表示

6、的數(shù)的范圍大,但精度低。float 類型又稱為“浮點” 類型,把實數(shù)的小數(shù)點都看成在第一位,而用指數(shù)位“浮動”小數(shù)點。 (2) double 類型與float同只不過用 64 位二進制(八個字節(jié))表示。因此精度高,稱雙精度。2 變量的概念C語言中的變量可以理解成計算機內(nèi)存的一個空間,它必須有一個名字(標識符),可放什么樣的數(shù)據(jù)類型(如定義時前面加int 、float 、char 等),它是開辟在內(nèi)存的一般數(shù)據(jù)區(qū)(又稱靜態(tài)數(shù)據(jù)區(qū))還是開辟在內(nèi)存的堆棧區(qū)(又稱動態(tài)數(shù)據(jù)區(qū)),這可由程序中用static或auto(可缺省)來規(guī)定。同時,一個變量有它的有效的使用范圍,稱之為作用域。最后,每個變量都有地址

7、,這在指針類型時要用到。變量可以一邊定義一邊賦初值,在程序運行時可以使它發(fā)生變化,因此稱之為變量。3 運算符的注意事項(1) 雙目運算符 % 的兩邊一定是要整數(shù),運算結(jié)果是整除后的余數(shù),也是整數(shù),注意 2%5 得2而不是 0。(2) 雙目運算符 / 的兩邊如果是整數(shù),則結(jié)果也是整數(shù),5/2 結(jié)果為 2而不是 2.5 ,即使是 float x; x=1/2; x 中也只有 0.0 , 要人為的寫成 x=1/2.0 或 x=1.0/2 ,x中才是0.5 。(3) 單目運算符 + - 放在運算對象的前面時,稱為“先加(減) 1,后使用”,這一般不會搞錯。當放在運算對象的后面時,稱為“先使用,后加(減

8、) 1”,這時要注意什么時候“使用”。 如 i=3; (i+)+(i+)+(i+) 結(jié)果是9而不是12,這里,三個i相加是“使用”,使用后才三次加1,i成為6,“使用”是以整個表達式為準。而 i=3; (+i)+(+i)+(+i) 結(jié)果是18而不是15,這里,三個i依次加1 成為6,然后再“使用”。也是以整個表達式為準。又如 i=1; if(i-) printf(“%d”,i); 輸出是0而不是1。這是因為if()中i- 是整個表達式,先用i為1,用于“判斷”成立,這算“使用”了,然后i減1成為0,輸出時i已為0。同理 char c=A; switch(c+) case A: printf(“

9、%c”,c);break;,輸出為B。(4). 算術自反賦值運算符中,注意 = 賦值號右邊是一個整體,如 c%=a-3 是c=c%(a-3)而不是 c=c%a-3。(5). 關系運算符中,注意等于比較運算符 “=” 與賦值運算符 “= ”容易疏忽,二者是絕然不同的,不然會引起很大的錯誤。如:i=0; if(i=1) 判斷得結(jié)果應該是不成立,若寫成:if(i=1) 則變成給i賦予1,賦值表達式的結(jié)果也是1,判斷結(jié)果是成立的。(6). 應該熟記運算符及其優(yōu)先級匯總表,熟記運算符之間的運算次序及結(jié)合方向。4 表達式注意的問題(1). 在算術表達式中應注意各類數(shù)值型數(shù)據(jù)間的混合運算問題,如下: dou

10、ble float float 型一定先轉(zhuǎn)換成double型參加運算。 long 運算對象不同時轉(zhuǎn)換方向。 unsigned int char, short char, short型一定先轉(zhuǎn)換成int型參加運算。(2). C語言無“真假值”,判斷成立則結(jié)果為1,不成立則結(jié)果為0。而當表達式的值為非0則認為“真”,當表達式的值為0則認為“假”。(3). 關系表達式中,數(shù)學上的 0<x<10 不能寫成 0<x<10 而應寫成 0<x && x<10,不然會引起很大的錯誤。如:當 x=20 時,數(shù)學上0<x<10是不符合的,但在C程序中

11、認為成立。這是因為C程序從左向右判別,0<x成立,則結(jié)果為1,1<10也成立。(4). 在 “&&” 連接的邏輯表達式中,當左邊表達式的值為0,則C語言不再計算右邊表達式,因為無論右邊表達式的值為什么,整個邏輯表達式的值都為0。同樣,在 “|” 連接的邏輯表達式中,當左邊表達式的值為非0,則C語言不再計算右邊表達式,因為無論右邊表達式的值為什么,整個邏輯表達式的值都為1 。如:int a=b=m=n=1; (m=a!=b)&&(n=a!=b) a!=b不成立為0,m得0,n仍為1 int a=b=m=n=0; (m=a=b)|(n=a=b) a=b成

12、立為1,m得1,n仍為0(5). C語言中,賦值號 “=” ,逗號“,”都是運算符。a=10是賦值表達式,a=10;是賦值語句,sum=0,i=0是逗號表達式,它是由二個賦值表達式用逗號運算符連起來的逗號表達式。練習題一、 單項選擇題1下列數(shù)據(jù)中屬于 字符串常量 的是(A)。 A”a”B. ABCC. abc0 D. a2下列數(shù)據(jù)中屬于“字符串常量”的是(B)。 AABCB. “ABC”C. abc D. a3. 在PC機中,n在內(nèi)存占用的字節(jié)數(shù)是(1)。A. 1 B. 2 C. 3 D. 44. 在PC機中,”axff” 在內(nèi)存占用的字節(jié)數(shù)是(c)。/ 0XX xhh xh 轉(zhuǎn)譯符A. 5

13、B. 6 C. 3 D. 45. 字符串”ABC”在內(nèi)存占用的字節(jié)數(shù)是(b)。A. 3 B. 4 C. 6 D. 86. 字符串”ABCD”在內(nèi)存占用的字節(jié)數(shù)是( )。A. 4 B. 6 C. 7 D. 87. 在C語言中,合法的長整型常數(shù)是(A)。 A. 0L B. 4962710 C. 0.054838743 D. 2.1869e108在C語言中,合法的短整型常數(shù)是(D)。 A. OL B. 0821 C. 40000 D. 0x2a9.下列數(shù)據(jù)中不屬于“字符常量”的是(c)。 A. aB. 160C. 070D. 07010char型常量在內(nèi)存中存放的是(A)。A. ASCII代碼值 B

14、. BCD代碼值 C. 內(nèi)碼值 D. 十進制代碼值11設整型變量m,n,a,b,c,d均為0,執(zhí)行( m= a=b )|(n=c=d)后,m,n的值是(C)。 A. 0,0 B. 0,1 C. 1,0 D. 1,112設整型變量m,n,a,b,c,d均為1,執(zhí)行“(m= a>b )&&(n=a>b)”后,m,n的值是(B)。A. , B. , C. , D. ,13設int a為2,執(zhí)行下列語句后,float b的值不為0.5的是(B)。A. b=1.0/a B. b=(float)(1/a)C. b=1/(float)a D. b=1/(a*1.0)14設a為5,

15、執(zhí)行下列語句后,b的值不為2的是(C)。A. b=a/2 B. b=6-(-a)C. b=a%2 D. b=a>3 ? 2:815. 執(zhí)行語句“x=(a=3,b = a-)”后,x,a,b的值依次為(C)。A. 3,3,2 B. 3,2,2 C. 3,2,3 D. 2,3,216. int b=0,x=1; 執(zhí)行語句“if(x+) b=x+1;”后,x,b的值依次為(A)。A. 2,3 B. 2,0 C. 3,0 D. 3,217.設有語句int a=3;,則執(zhí)行了語句a+=a-=9;后,變量a的值是(D)。A. B. C. 9 D. 1218.設有語句int a=3;,則執(zhí)行了語句a+

16、=a-=a*=a;后,變量a的值是(B)。A. B. C. 9 D. 1219. int a=4,b=3,c=-2,d=2; 邏輯表達式a>0 && b && c<0 && d>0的值是(A)。 A. 1 B. C. -1 D. 出錯20.在以下一組運算符中,優(yōu)先級最高的運算符是(C)。 A. <= B. = C. % D. &&21.設整型變量i的值為,則計算表達式i- -i后表達式的值為(A)。/A=*P+ +*P A. B. C. D. 表達式出錯22.設整型變量i,j=3; 則計算表達式i=j+ +

17、j后i,j的值為(D)。 A. 4,4 B. 6,6 C. 4,6 D. 6,423.設整型變量a,b,c均為,表達式a+b+c+的結(jié)果是(A)。A. B. C. D. 表達式出錯24.設整型變量i值為,表達式(+i)+(+i)+(+i)的結(jié)果是(C)。/ VSA. B. 12 C. 15 D. 表達式出錯25.設整型變量i,j值均為3,執(zhí)行了“j=i+,j+,+i”后,i,j的值是(B)。/ 逗號運算優(yōu)先級最低 A. 3,3B. 5,4C. 4,5D. 6,626.若已定義x和y為double類型,則表達式;x=1,y=x+3/2的值是(C)。A. B. C. 2.0 D. 2.527.si

18、zeof(double)的結(jié)果值是(A)。/(編譯環(huán)境)INT 4 SHORT 2 CHAR 1 A8B. 4C. 2D. 出錯28. 表達式“1?(0?3:2):(10?1:0)” 的值是(B)。 A. 3B. 2C. 1D. 029.設a=1,b=2,c=3,d=4,則表達式:a<b?a:c<d?a:d的結(jié)果為(D)。A. 4 B. 3 C. 2 D. 130.設a為整型變量,不能正確表達數(shù)學關系:if(10<a && a<15)的語言表達式是( )。A. 10<a<15 B. a=11|a=12|a=13|a=14C. a>10&

19、amp;&a<15 D. !(a<=10)&&!(a>=15)31.int a=0; if(a=1) a+=10; 結(jié)果的值是(B)。 A. 0B. 11C. 10D. 出錯32.下列表達式中符合語言語法的賦值表達式是(c)。A. a=7+b+c=a+7 B. a=7+b+=a+7 C. a=(7+b,b+,a+7) D. a=7+b,c=a+733.設f是實型變量,下列表達式中不是逗號表達式的是(d)。A. f=3.2,1.0 B. f>0,f<10 C. f=2.0,f>0 D. f=(3.2,1.0)34.下列表達式中,不正確的

20、表達式是(b)。 A. a=1,b=1B. y=int(x)C. a=b=5D. i+35.若有以下定義:char a、int b、float c、double d,則表達式a*b+d-c值的類型是(d)。A. float B. int C. char D. n; float f=13.8; 執(zhí)行“n=(int)f)%3”后,n的值是(a)。 A. 1B. 4C. 4.333333D. 4.637.用十進制數(shù)表示表達式“12 | 012”的運算結(jié)果是(C)。 A. B. C. D. 38.設有整型變量a=35,表達式“(a&15)&&(a|15

21、)” 的值是(B)。 A. 0 B. 1C. 15 D. 3539.設字符型變量a=3,b=6,計算表達式c=(ab)<<2后c的二進制值是(d)。/10100A. 00011100 B. 00000111 C. 00000001 D. 0001010040.設a,b和c都是int型變量,且a=3,b=4,c=5,則下面的表達式中值為的是(d)。A. a&&b B. a<=b C. a|b+c&&b-c D. !(a<b)&&!c|1)41.設a是char型變量,其值字符為1,則把其值變成整數(shù)1的表達式是( )。 A. (

22、int)aB. int(a)C. a=a-48D. a/(int)a 42.設a是int型變量,其值為3,則把其值變成字符 3 的表達式是(C)。 A. (char)aB. a=3C. a=a-48D. a=a+48 43.設ch是char型變量,其值為 A,則下面表達式的值是(B)。 ch=(ch>=A&&ch<=Z)?(ch+32):chA. B. a C. Z D. z44.設有整型變量i、j、k,i值為3,j值為6。計算表達式“k=ij<<3;”后,k的值是( )。/10 1000 A. 56B. 51C. 40D. 2745.設有無符號短整型變

23、量i、j、k,i值為013,j值為0x13。計算表達式“k=i|j>>3;”后,k的值是( )。/ 0000 0000 0000 1011/1111 1111 1111 0101 /0000 1101 /1111 0110A. 06 B. 0177776 C. 066 D. 017776546.設有無符號短整型變量a值為331, 計算表達式“a=(a>>4)&(0<<4)”后,a的值是(C)。/331-255/76 /100 / 1111 A. 0 B. 15 C. 4 D. 017二、填充題1在內(nèi)存中存儲“A”要占用 個字節(jié),存儲A要占用 個字節(jié)。

24、2C語言中的邏輯值“真”是用 表示的,邏輯值“假”是用 表示。邏輯表達式值為“真”是用 表示的,邏輯表達式值為“假”是用 表示的。3符號常量的定義方法是 。4說明變量時,若省略存儲類型符,系統(tǒng)默認其為 存儲類別,該存儲類別的類型符為: 。5無符號基本整型的數(shù)據(jù)類型符為 ,雙精度實型數(shù)據(jù)類型符為 ,字符型數(shù)據(jù)類型符為 。6定義變量的完整語句格式是 。7變量的作用域主要取決于變量 ,變量的生存期既取決于變量 ,又取決于變量 。8從變量的存儲類型來說, 變量不允許初始化。 變量、 變 量和 變量可以初始化。其中變量如果不進行初始化,則 變量和 變量的初值不確定,而 變量初值為0。9設下列運算符:<<、+、+、&&、<=,其中優(yōu)先級最高的是 ,優(yōu)先級最低的是 。10設二進制數(shù)A是00101101,若想通過異或運算AB使A的高4位取反,低4位不變,則二進制數(shù)B應是 。11設a=3,b=2,c=1,則a>b

溫馨提示

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

評論

0/150

提交評論