问答题 改错题 使用VC6打开考生文件夹下的工程test18_1,此工程包含一个源程序文件test18_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下: Enter x and y: -4 -5 xoffset=1 yoffset=1 angle=45 radius=1.41421 源程序文件test18_1.cpp清单如下: #include #include class point { public: void set(double ix,double iy) { x=ix; y=iy; } double xoffset() { return x; } double yoffset() { return y; } double angle() { return (180/3.14159)*atan2(y,x); } /**************** found *******************/ inline radius() { return sqrt(x*x+y*y); } protected: double x; double y; }; void main() { point p; double x,y; cout<<"Enter x and y:/n"; cin>>x>>y; p.set(x,y); /**************** found *******************/ p.x+=5; p.y+=6; /**************** found *******************/ cout<<"xoffset="<
【正确答案】(1)错误:inline radius() 正确:inline double radius() (2)错误:p.x+=5; p.y+=6; 正确:p.set((p.xoffset()+5),(p.yoffset()+6)); (3)应在结尾处添加"}"
【答案解析】(1)主要考查考生对于内联函数使用规则的掌握,虽然使用内联函数返回函数的值,但也要确定返回值的类型; (2)主要考查考生对于对象访问类的数据成员的权限的掌握,对象不能直接访问类的私有或保护成员,只能通过类的公有成员函数去访问; (3)主要考查考生对于主函数定义的掌握,该处缺少"}",函数体的花括号一定是成对出现的。