计算机二级C上机考试程序改错题及答案

来源:文萃谷 5.6K

为了使广大考生在备战计算机等级考试时,更快的掌握相应知识点,下面是小编搜索整理的计算机二级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);”。

热门标签