點擊查看:2018年9月計算機二級C語言考試章節習題及答案匯總
第2章 C程序設計的初步知識
2.3 整型數據
1[單選題] 用8位無符號二進制數能表示的最大十進制數為( )
A.127
B.128
C.255
D.256
參考答案:C
參考解析:2^8-1=256-1=255
2[單選題] 若有以下程序段(n所賦的是八進制數)
int m=32767,n=032767
printf("%d,%o/n",m,n);
執行后輸出結果是( )
A.32767,32767
B.32767,032767
C.32767,77777
D.32767,077777
參考答案:A
3[單選題] 有以下程序
main()
{ char *s[]={"one","two","three"},*p;
p=s[1];
printf("%c,%s\n",*(p+1),s[0]);
}
執行后輸出結果是( )
A.n,two
B.t,one
C.w,one
D.o,two
參考答案:C
4[單選題] 以下定義語句中正確的是
A.int a =b =0;
B.char A = 65 + 1,b='b';
C.float a = 1,*b=&a,*c=&b;
D.double a = 0.0;b=1.1;
參考答案:B
參考解析:A選項中定義時賦值不能用連等。C選項中變量C和&b的類型不匹配。D選項中變量b前是分號,所以變量b沒有類型,即未定義。B為變量定義時賦值的正確表達形式
5[單選題] 設有定義:int x=2;以下表達式中,值不為6的是 ( )
A.x*=x+1
B.x++=2*X
C.X*=(1 X)
D.2*X,X+=2
參考答案:D
參考解析:選項A和C很容易看出結果是6。選項B和D是逗號表達式,逗號表達式是從左到右順序求子表達式的值,整體的逗號表達式的值取最后一個子表達式的值,很容易判斷出答案D錯誤。
6[單選題] 若有以下定義(設int類型變量占2個字節)
int i=8,j=9;
則以下語句:
printf("i=%%d,j=%%%d\n",i,j);
輸出結果是( )。
A.i=8,d=9
B.i=%d,j=%8
C.i=%d,j=%d
D.8,9
參考答案:B
參考解析:本題考查printf函數的格式。printf函數中格式說明符之前插入的任何字符都按原樣輸出。對于printf函數,有兩個%說明;第一個%后面的內容要按原樣輸出。
7[單選題] 有下列程序:
若想從鍵盤上輸入數據,使變量m中的值為123,n中的值為456,P中的值為789,則正確的輸入是( )。
A.m=123n=456p=789
B.m=123 n=456 p=789
C.m=123,n=456,p=789
D.123 456 789
參考答案:A
參考解析:scanf()函數中格式控制字符串是為了輸入數據用的,無論其中有什么字符,在輸入數據時,按照一一對應的位置原樣輸入這些字符。
8[單選題] 以下關于long、int和short類型數據占用內存大小的敘述中正確的是( )。
A.均占4個字節
B.根據數據的大小來決定所占內存的字節數
C.由用戶自己定義
D.由C語言編譯系統決定
參考答案:D
參考解析:不同的編譯系統或計算機系統對幾類整型數所占用的字節數有不同的規定。long、int和short類型數據占用內存大小是由選擇何種C編譯系統決定的。
9[單選題] 設a和b均為int型變量,且a=6、b=11、c=3,則能使值為3的表達式是( )。
A.b%(c%4)
B.b%(c-a%5)
C.b%a-a%5
D.(b%a)-(a%4)
參考答案:D
參考解析:選項D)括號內的運算分別是b%a=11%6=5和a%c=6%4=2,最后得到5-2=3。
10[單選題] 若函數中有定義語句:int a;,則( )。
A.系統將自動給a賦初值0
B.這時a中的值是和隨機數
C.系統將自動給a賦初值-1
D.這a中無任何值
參考答案:B
參考解析:本題考查變量賦值基本概念。在聲明一個變量后,如果未顯式的對其進行賦值,則它的值是一個隨機值。
11[單選題] 定義無符號整數類為UInt,下面可以作為類UInt實例化值的是( )。
A.-369
B.369
C.0.369
D.整數集合{1,2,3,4,5}
參考答案:B
參考解析:UInt表示的是無符號整數類,所以它的每個實例都是一個無符號整數,所以排除選項A)和選項c),選項D)是整數集合,所以也排除。
12[單選題] 若有定義語句:int a=10;double b=3.14;,則表達式'A'+a+b值的類型是( )。
A.char
B.int
C.double
D.float
參考答案:C
參考解析:在c語言中不同類型的數據進行運算時,除了強制數據類型轉換外,都要進行默認的數據類型轉換,通常轉換為精度較高的數據類型。對于本題來說,字符型數據'A'與整型a相加轉換為整型數據,其和再與雙精度型數據b相加,要轉換為雙精度型數據。
13[單選題] 關于C語言中數的表示,以下敘述正確的是( )。
A.只有整型數在允許范圍內能精確無誤的表示,實型數會有誤差
B.只要在在允許范圍內整型和實型都能精確表示
C.只有實型數在允許范圍內能精確無誤的表示,整型數會有誤差
D.只有八進制表示的數在不會有誤差
參考答案:A
參考解析:實型數據在內存中存儲的二進制位數是有限的,例如float型數據在內存中有24位二進制尾數。而一個十進制實數轉化為二進制實數時,其有效數字位數有可能會超過尾數的存儲長度,從而導致有效數字丟失而產生誤差。
14[單選題] 若有定義和語句:int a,b; scanf("%d,%d",&a,&b); 以下選項中的輸入數據,不能把值3 賦給變量a、5 賦 給變量b 的是
A.3,5,
B.3,5,4
C.3 ,5
D.3,5
參考答案:C
參考解析:題目中用scanf 函數以整數的形式輸入a,b 的值。選項C)整型數字3 后面有一個空格,當輸入空格時,scanf 函數輸入就會終止。
15[單選題] 若函數中有定義語句:int a;,則( )。
A.系統將自動給a賦初值為0
B.系統將自動給a賦初值-1
C.這時a中的值無意義
D.這時a中無任何值
參考答案:C
參考解析:用int方法定義變量時,編譯器僅為變量開辟存儲單元,并沒有在存儲單元中放任何值,此時變量中的值是無確定的,稱變量值”無意義”。因此,本題正確答案為c。
16[單選題] 程序段:int x=12;double y=3.141593;printf(”%d%8.6f”,x,y);的輸出結果是( )。
A.123.141593
B.12 3.141593
C.12,3.141593
D.123.1415930
參考答案:A
參考解析:本題考查prinff函數的輸出格式控制符,%m.nf表示指定輸出的實型數據的寬度為m(包含小數點),并保留n位小數。當輸出數據的小數位大于n時,截去右邊多余的小數,并對截去的部分的第一位做四舍五入的處理;當輸出數據小數位小于n時,在小數的最右邊補0,輸出數據的小數部分寬度為n。若給出的總寬度m小于ll加上整數位數和小數點,則自動突破m的限制;反之,數字右對齊,左邊補空格。本題中3.141593數值長度為8,小數位數是6,因此左端沒有空格,故正確答案為A。
17[單選題] 以下敘述不正確的是( )。
A.在C程序中,逗號運算符的優先級最低
B.在C程序中,APH和aph是兩個不同的變量
C.若a和b類型相同,在計算賦值表達式a=b后,b的值將放入a中,而b的值不變
D.當從鍵盤輸入數據時,對于整型變量只能輸入整型數值,對于實型變量只能輸入實型數值
參考答案:D
參考解析:在c語言所有的運算符中,逗號運算符的優先級最低。C語言區分大小寫,所以APH和aph是兩個不同的變量。賦值表達式a=b表示將b的值賦予a,而b本身的值保持不變;通過鍵盤可以向計算機輸入允許的任何類型的數據。選項D)中當從鍵盤輸人數據時,對于整型變量可以輸入整型數值和字符,對于實型變量可以輸入實型數值和整型數值等。
18[單選題] 有以下程序,其中%u表示按無符號整數輸出:
main()
{
unsigned int x = 0xFFFF; /* x 的初值為十六進制數*/
printf("%u\n",x);
}
程序運行后的輸出結果是( )。
A.-1
B.65535
C.32767
D.0xFFFF
參考答案:B
參考解析:本題考查的是整型無符號數的輸出。%U的作用是按無符號的十進制形式輸出整型數,整型無符號數的取值范圍在0~65535之間,無符號數不能表示成小于0的負數,十六進制數0xFFFF轉換為二進制位其值為l6個1,代表的整數就是65535。
19[單選題] 以下選項中不屬于c語言的類型的是( )。
A.unsigned long int
B.long short
C.unsigned int
D.signed short int
參考答案:B
參考解析:c語言中整型變量分為4種,基本型int,短整型short int,長整型long int和無符號型(unsigned int、un-signed short、unsigned long)。因此B)選項不屬于c語言的類型。
20[單選題] 在C語言中,合法的長整型常數是( )。
A.0.123456
B.4962717
C.9L
D.5.321e2
參考答案:C
參考解析:選項A)和D)是實型而非整型。
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關推薦: