糯米文學吧

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

2016年計算機二級《C++》非選擇題練習及答案

  一、程序改錯題

2016年計算機二級《C++》非選擇題練習及答案

1、使用VC++6.0打開考生文件夾下的源程序文件,該程序運行時有錯。請改正程序中的錯誤,使程序輸出的結果為

100

37

32

注意:錯誤的語句在//******error******的下面,修改該語句即可。

試題程序:

#include

//******error******

voidmain

{

//******error******

intm=0142:

//******error******

intn=0X27:

intq=32;

cout<

cout<

cout<

return;

}

參考解析:

(1)“voidmain()”。

(2)“intm=0144;”。

(3)“intn=OX25;”或“intn===0x25;”。

【解析】本題主要考查了主函數定義及冪同進制之間的轉換,包括十進制到八進制,十進制到十六進制。主函數定義的定義形式為“main()”,函數名之後必須是一對括號,因此第1處應改為“voidmain()”。cout輸出默認是以十進制方式輸出的,根據題目要求輸出的結果可發現變量的初值不正確,十進制的100對應八進制的144,卡進制的37對應十六進制的25,因此2和3應分別改成“intm=0144;”,“intn=0×25;”或“intn=0×25;”。

  二、簡單應用題

2、使用VC++6.0打開考生文件夾下的源程序文件。請完成函數fun(intn),使其實現以下功能:當i等於3時,則打印如下內容。

A

AA

AAA

注意:不能修改程序的.其他部分,只能修改fun函數。

試題程序:

#include

voidfun(intn)

{

}

voidmain()

{

intn;

cout<<"請輸入打印的行數:"<

cin>>n;

if(n<1)

{

cout<<"輸入的行數必須大於0"<

return;

}

fun(n);

return;

}

參考解析:

inti;

for(i=0;i

{

intj;

for(j=0;j(n-i-1;j++)//循環打印空格

{

cout<<'';

}

for(;j

{

cout<<"A":

}

cout<

}

【解析】本題利用外層循環打印每一行。內層循環分為

打印空格和打印A。打印空格由第一個位置到第n-i-1。打印A,是由打印完空格開始一直到行結束。在外循環中打印每一行的結束符。

  三、綜合應用題

3、使用VC++6.0打開考生文件夾下的源程序文件。請完成以下部分,實現在屏幕上輸出為

C3

C2

這個程序需要修改的部分,請按照以下部分實現。

(1)類C0不能被實例化,請定義一個純虛函數print,在註釋1後添加適當的語句。

(2)類C1私有虛繼承類C0,請在註釋2後添加適當的語句。

(3)類C2公有繼承於C0,請在註釋3後添加適當的語句。

(4)類c3公有繼承於C2與C1,請在註釋4後添加適當的語句。

注意:增加代碼或者修改代碼的位置已經用符號表示出來。請不要修改其他的程序代碼。

試題程序:

#include(iostream.h)

classCO

{

//********1********

};

//********2********

classC1:

{

public:

voidprint()

{

cout<"”C1"<

}

};

//********3********

classC2:

{

public:

voidprint()

{

cout<<"C2"<

}

};

//********4***x****

classC3:

{

public:

voidprint()

{

cout<<"C3"<

}

};

voidmain()

{

C30bj3;

C20bj2;

t();

t();

return;

}

  參考解析:

(1)應添加“virtualvoidprint()=0,”。

(2)“classC1:”應改為“classC1:virtualprivateC0”。

(3)“classC2:”應改為“classC2:publicC0”。

(4)“classC3:”應改為“classC3:publicC2,publicC1”。

【解析】本題考查了類的繼承。根據題意,第1處應該添加“virtualvoidprint()=0;”。第2處根據題意,在冒號後面應添加“virtualprivateCO”。第3處根據題意,冒號後應添加“publicCO”。第4處根據題意,冒號後應添加“publicC2,publicC1”。