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

計算機二級考試C上機考試試題及答案

計算機二級 閱讀(1.82W)

為了使廣大考生在備戰計算機等級考試時,更快的掌握相應知識點,下面是小編搜尋整理的計算機二級考試C上機考試試題及答案,供參考練習,預祝考生們考出自己理想的成績!

計算機二級考試C上機考試試題及答案

程式改錯題

使用VC++6.0開啟考生資料夾下的源程式檔案1.cpp,該程式執行時有錯誤,請改正其中的錯誤,使程式正確執行,並且使程式輸出的結果為

0K

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

試題程式:

#include

classTC

{

public:

TC()

{

a=b=0:

}

private:

inta,b;

};

classTCl:publicTC

{

public:

TC1()

{

}

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

virtualvoidfunc();

};

classTC2:publicTCl

{

public:

TC2()

{

a=0:

b=0:

}

voidfunc()

{

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

cout<<"OK"<endl;

}

private:

inta;

intb;

};

voidmain()

{

TC20bj;

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

TCl*p=(TCl*)obj;

p->func();

}

答案:

(1)應改為“virtualvoidfunc()=0;”。

(2)應改為“cout<<"0K"<(endl;”。

(3)應改為“TCl*p=(TCl*)&obj;”。

【解析】本題中TCl類中的func函式是純虛擬函式,純虛擬函式的定義格式為virtual<函式型別><函式名>((引數表>)=0”,因此第1處的語句應為“virtualvoidfunc()=0;”。func函式沒有引數表。編譯程式後發現第2處的語句有錯誤,cout流中的.資料是用流插入運算子“<<”順序加入的,因此“<”不正確,應改成“cout<<"0K"<<endl;”。函式的呼叫方式有2種:非多型呼叫和多型呼叫,非多型呼叫是指不使用指標或引用的直接呼叫,多型呼叫是指通過物件的指標或引用的呼叫。在主函式中定義了tel*p,p是指向基類tcl的指標,因此是多型呼叫方式,即通過物件的指標來呼叫,應該把派生類物件的地址賦給p,而不是物件名,因此第3處的語句應改為“tcl*p=(tcl*)&obj;”。