使用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 <iostream.h>
#include <math.h>
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="<<p.xoffset()<<end1;
cout<<"yoffset="<<p.yoffset()<<end1;
cout<<"angle="<<p.angle()<<end1;
cout<<"radius="<<p.radius()<<end1;
参考答案:
(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)主要考查考生对于主函数定义的掌握,该处缺少“}”,函数体的花括号一定是成对出现的。