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

計算機二級C上機考試程式改錯題及答案

計算機二級 閱讀(6.42K)

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

計算機二級C上機考試程式改錯題及答案

程式改錯題

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

10

6

30

2

2

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

試題程式:

#include

classTC

{

private:

intnumber;

intAdd(inti)

{

returnnumber+=i:

}

intSub(inti)

{

returnnumber-=i:

}

intMul(inti)

{

returnnumber*=i:

}

intDiv(inti)

{

if(i!=O)

{

returnnumber/=i;

}

else

returnnumber;

}

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

typedefint(FUNC)(int);

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

FUNCfunc[];

public:

TC()

{

fune[0]=TC::Add;,

fund[1]=TC::Sub;

func[2]=TC::Mul;

func[3]=TC::Div;

number=0;

}

intCallFunetion(inti,intj)

{

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

return(func[i])(j);

}

};

voidmain()

{

TCmyobj;

cout<<myobj.callfunction(0,10)<<endl;

cout<<myobj.callfunction(1,4)<<endl;

cout<<myobj.callfunction(2,5)<<endl;

cout<<myobj.callfunction(3,15)<<endl;

cout<<myobj.callfunction(3,o)<<endl;

}

解析

(1)應改為:“typedefint(TC::*FUNC)(int);”。

(2)應改為:“FUNCfunc[4];”。

(3)應改為:“return(this->*fund[i])(j);”。

【解析】在類中定義函式指標須指定類名及指標定義運算子*,因此第1處函式指標正確的定義為“typedefint(TC::*FUNC)(int);”。函式指標陣列本身是陣列型別,因此在定義時如果沒有初始化,就必須指定陣列大小,在本題中因為指標陣列包含的指標變數需要指向4種算數運算,因此定義指標陣列大小為4,即第2處應改為“FUNCfunc[4];”。func是指標陣列,因此訪問時需要有指標運算子“*”,第3處應改成“return(this->*func[i])(j);”。