當前位置:才華齋>計算機>計算機二級>

2016年12月計算機二級C++備考習題及答案大綱

計算機二級 閱讀(2.93W)

計算機等級考試要取得好成績平時一定要多加練習,提高做題技巧和速度。下面是小編為大家整理的2016年12月計算機二級C++備考習題及答案,希望對大家有幫助!

2016年12月計算機二級C++備考習題及答案大綱

(1)下面敘述不正確的是

A)派生類一般都用公有派生

B)對基類成員的訪問必須是無兩義性的

C)賦值相容規則也適用於多重繼承的組合

D)基類的公有成員在派生類中仍然是公有的

(2)下面程式應能對兩個整型變數的值進行交換。以下正確的說法是

#include

void swap(int p,int q)

{ int t;

t=p;

p=q;

q=t;}

void main()

{ int a=10,b=20;

cout << a << " " << b;

swap(&a,&b);

cout << a << " " << b;}

A)該程式完全正確

B)該程式有錯,只要將語句swap(&a,&b);中的引數改為a,b即可

C)該程式有錯,只要將swap()函式中的形參p和q以及t均定義為指標(執行語句不變)即可

D)以上說法都不對

(3)設以下變數均為int型別,則值不等於7的表示式是

A)(x=y=6,x+y,x+1)

B)(x=y=6,x+y,y+1)

C)(x=6,x+1,y=6,x+y)

D)(y=6,y+1,x=y,x+1)

(4)以下程式的輸出結果是

#include

void main()

{ int a=21,b=11;

cout << --a+b;}

A)30

B)31

C)32

D)33

(5)while 和do-while迴圈的主要區別是

A)do-while的迴圈體至少無條件執行一次

B)while的迴圈控制條件比do-while的.迴圈控制條件更嚴格

C)do-while允許從外部轉到迴圈體內

D)do-while 的迴圈體不能是複合語句

(6)與 y=(x>0?1:x<0?-1:0);的功能相同的if語句是

A)if (x>0)y=1;

else if(x<0)y=-1;

else y=0;

B)if(x)

if(x>0)y=1;

else if(x<0)y=-1;

C)y=-1;

if(x)

if(x>0)y=1;

else if(x==0)y=0;

else y=-1;

D)y=0;

if(x>=0)

if(x>0)y=1;

else y=-1;

(7)若二維陣列a有m列,則計算任一元素a[i][j]在陣列中相對位置的公式為 (假設a[0][0]位於陣列的第一個位置上)

A)i*m+j

B)j*m+i

C)i*m+j-1

D)i*m+j+1

(8)下面程式段的執行結果是

#include

void main()

{ char *s="abcde";

s+=2;

cout << &s;}

A)cde

B)字元′c′

C)字元′c′的地址

D)無確定的輸出結果

(9)以下都是C++語言識別符號的是

A)dsfa,df4,f$

B)huhj,a^,k2

C)3k,h,j_9

D)_ok,jk,k8

(10)C++語言中用於定義類的關鍵字是

A)class

B)struct

C)default

D)sizeof

答案解析

(1)D

解析: C++語言中如果基類的成員是公有的,它被繼承後在子類中該成員可能是公有的,也可能不是,主要看繼承的許可權。

(2)D

解析: 本題應該把swap()函式改成這樣:swap(int *p,int *q){int t; t=*p;*p=*q;*q=t;}執行程式時,先將a的地址傳遞給指標變數p,b的地址傳遞給指標變數q,然後將*p(a的值)的值傳遞給t,將*q(b的值)傳遞給*p,將t的值傳遞給*q,從而將a值和b值互換。

(3)C

解析: C++語言中逗號","也是一種運算子,稱為逗號運算子。其功能是把兩個表示式連線起來組成一個表示式,稱為逗號表示式。其一般形式為:表示式1, 表示式2,其求值過程是分別求兩個表示式的值,並以表示式2的值作為整個逗號表示式的值。逗號表示式的一般形式可以擴充套件為:表示式1,表示式2,表示式3,…,表示式n,它的值為表示式n的值。

(4)B

解析: 自減運算子位於變數之前時,先使變數的值減1,再進行運算。

(5)A

解析: while是先判斷條件再執行語句;do-while則是先執行一次語句再判斷條件,從而決定是否繼續再執行迴圈體中的語句,這正是二者主要區別。

(6)A

解析: 條件運算子要求有三個操作物件,它是C++語言中惟一的一個三目運算子。條件表示式的一般形式為:表示式1?表示式2:表示式3,先求解表示式1,若為非0(真)則求解表示式2,此時表示式2的值就作為整個條件表示式的值。若表示式1的值為0(假),則求解表示式3,表示式3的值就是整個條件表示式的值。本題中用了兩次三目運算子。

(7)A

解析: a[i][j]元素之前有i行元素(每行有m個元素),在a[i][j]的前面還有j個元素,因此a[i][j]之前共有i*m+j個元素。

(8)C

解析: 對於字串指標,其保留的是整個串的首地址,即為第一個字元的起始地址,當該指標做算術運算時,就是該指標根據其型別向後移動相應的儲存空間。

(9)D

解析: C++語言識別符號只能由數字,字母和下劃線組成,並且只能以字母和下劃線為開頭。

(10)A

解析: C++中類定義的關鍵字是class。class不能大寫。