糯米文學吧

位置:首頁 > 計算機 > 計算機二級

全國計算機二級C++選擇特訓題

為了幫助大家提高計算機二級考試成績,下面應屆畢業生小編給大家帶來了全國計算機二級C++選擇特訓題,祝大家考試成功。

全國計算機二級C++選擇特訓題

1.在公有派生情況下,有關派生類對象和基類對象的關係,下列敍述不正確的是( )

A.派生類的對象可以賦給基類的對象

B.派生類的對象可以初始化基類的引用

C.派生類的對象可以直接訪問基類中的成員

D.派生類的對象的地址可以賦給指向基類的指針

參考答案】 C

2.下列關於虛基類的描述,錯誤的是( )

A.設置虛基類的目的是為了消除二義性

B.虛基類的構造函數在非虛基類之後調用

C.若同一層中包含多個虛基類,這些基類的構造函數按它們説明的次序調用

D.若虛基類由非虛基類派生而來,則仍然先調用基類構造函數,再調用派生類的構造函數

【參考答案】 B

3.下列運算符中,在C++語言中不能重載的是( )

A.*

B.>=

C.::

D./

【參考答案】 C

4.下列程序的運行結果是( )

#include

class A

{ int a;

public:

A() {a=0;}

A(int aa)

{a=aa;

cout<

void main()

{A x,y(2),z(3);

cout<

A.00

B.23

C.34

D.25

【參考答案】 B

5.判斷char型變量c是否為小寫字母的正確表達式是( )

A.′a′<=c<=′z′

B.(c>+A)&&(c<=z)

C.(′a′>=c)||(′z′<=c)

D.(c>=′a′)&&(c<=′z′)

【參考答案】 D

綜合應用題

使用VC6打開考生文件夾下的工程kt8_3,此工程包含一個源程序文件kt8_,該文件設計了用於輸出乘法九九表的類。請認真閲讀已有的代碼,按要求完成下列操作,將程序補充完整。

(1)定義類Table的私有數據成員x和y,分別用於表示九九表中的兩個乘數(x*y),它們都是int型的數據。請在註釋“//**1**”之後添加適當的語句;

(2)完成類Table的成員函數print()的定義,該函數以"x*y=z"的格式打印出九九表中的一個乘法算式,請使用格式化輸出函數printf實現,在註釋“//**2**”之後添加適當的語句;

(3)完成類Table9的成員函數print()的定義,該函數調用基類Table的print()函數,將九九表輸出到屏幕,請在註釋“//**3**”之後添加適當的語句;

(4)補充主函數,在屏幕上輸出九九表,以便測試所定義的類的正確性。請在註釋“//**4**”之後添加適當的語句。

注意:除在指定位置添加語句之外,請不要改動程序中的其他內容。

源程序文件kt8_清單如下:

#include

#include

classTable

{//**1**

intz;

public:

voidprint(intx,inty,intz);};

voidTable::print(intx,inty,intz)

{//**2**}

classTable9:publicTable

{public:

voidprint();};

voidTable9::print()

{//**3**

intx,y,z;

for(i=1;i<10;i++)

{for(j=1;j   {x=i;

y=j;

z=i*j;

Table::print(y,x,z);}

printf("n");}}

main()

{//**4**

return0;}

【參考答案】

(1)int x;

int y;

(2)printf( "%d*%d=%d ",x,y,z);

if(z<10) printf(" ");

(3)int i,j;

(4)Table9 t_9;

t_t();

【試題解析】

主要考查將具體問題抽象為類,將類的定義補充完整,並進行類定義測試的能力。

1.下列選項,不正確的是( )

(int a=1;a<=10;a++);

a=1;

do

{a++}

while(a<=10)

a=1;

(int a=1;a<=10;a++)a++;

while(a<=10)

{a++}

【參考答案】 B

2.下列程序的輸出結果為( )

#include

void main()

{char *a[]={″hello″,″the″,″world″};

char **pa=a;

pa++;

cout<<*pa<

o

d

otheworld

【參考答案】 B

3.下列程序的輸出結果是( )

#include

int min(int a,int b)

{if(a

else return b;

return 0;}

void main()

{cout<

A.0

B.1

C.2

D.3

【參考答案】 B

4.對類成員訪問權限的控制,是通過設置成員的訪問控制屬性實現的,下列不是訪問控制屬性的是( )

A.公有類型

B.私有類型

C.保護類型

D.友元類型

【參考答案】 D

5.類的析構函數的作用是( )

A.一般成員函數的初始化

B.類的初始化

C.對象的`初始化

D.刪除類創建的對象

【參考答案】 D

6.下面對靜態數據成員的描述中,正確的是( )

A.靜態數據成員可以在類體內進行初始化

B.靜態數據成員不可以被類的對象調用

C.靜態數據成員不能受private控制符的作用

D.靜態數據成員可以直接用類名調用

【參考答案】 D

簡單應用題

已知考生的記錄由學號和學習成績構成,N名考生的數據已存入a結構體數組中。請編寫函數fun,該函數的功能是:找出成績最低的考生記錄,通過形參返回主函數(規定只有一個最低分)。已給予出函數的首部,請完成該函數。

注意:部分源程序已存在文件kt8_中。

請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。

文件kt8_的內容如下:

#include

#include

#include

#defineN10

typedefstructss

{charnum[10];

ints;

}STU;

voidfun(STUa[],STU*s)

{

}

voidmain()

{STU

a[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}},m;

fun(a,&m);

cout<<"*****Theoriginaldate*****"<

cout<<"Thelowest:"<

【參考答案】

fun(STU a[],STU *s)

{int i, min;

min=a[0].s;

for(i=0;i

if(a[i].s

{min=a[i].s;

*s=a[i];}}

【試題解析】

解題思路為:先假設第一個考生的成績最優,通過循環找到最低成績,並將最低成績的考生記錄傳給指針s,帶回主函數。