計(jì)算機(jī)二級(jí)C上機(jī)考試程序改錯(cuò)題及答案
為了使廣大考生在備戰(zhàn)計(jì)算機(jī)等級(jí)考試時(shí),更快的掌握相應(yīng)知識(shí)點(diǎn),下面是小編搜索整理的計(jì)算機(jī)二級(jí)C上機(jī)考試程序改錯(cuò)題及答案,供參考練習(xí),預(yù)祝考生們考出自己理想的.成績!
程序改錯(cuò)題
使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò),請改正程序中的錯(cuò)誤,使程序輸出的結(jié)果為
10
6
30
2
2
注意:錯(cuò)誤的語句在//******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)應(yīng)改為:“typedefint(TC::*FUNC)(int);”。
(2)應(yīng)改為:“FUNCfunc[4];”。
(3)應(yīng)改為:“return(this->*fund[i])(j);”。
【解析】在類中定義函數(shù)指針須指定類名及指針定義運(yùn)算符*,因此第1處函數(shù)指針正確的定義為“typedefint(TC::*FUNC)(int);”。函數(shù)指針數(shù)組本身是數(shù)組類型,因此在定義時(shí)如果沒有初始化,就必須指定數(shù)組大小,在本題中因?yàn)橹羔様?shù)組包含的指針變量需要指向4種算數(shù)運(yùn)算,因此定義指針數(shù)組大小為4,即第2處應(yīng)改為“FUNCfunc[4];”。func是指針數(shù)組,因此訪問時(shí)需要有指針運(yùn)算符“*”,第3處應(yīng)改成“return(this->*func[i])(j);”。
【計(jì)算機(jī)二級(jí)C上機(jī)考試程序改錯(cuò)題及答案】相關(guān)文章:
計(jì)算機(jī)二級(jí)C上機(jī):程序改錯(cuò)題11-09
計(jì)算機(jī)二級(jí)考試C上機(jī)考試試題及答案09-28
計(jì)算機(jī)二級(jí)《C++》上機(jī)試題及答案09-03
計(jì)算機(jī)二級(jí)考試C++上機(jī)考試試題及答案10-25
全國計(jì)算機(jī)二級(jí)考試C++上機(jī)考試試題及答案09-14
計(jì)算機(jī)二級(jí)考試C語言程序設(shè)計(jì)試題及答案09-21