问答题
请使用VC6或使用【答题】菜单打开考生目录proj3下的工程文件pmj3,该工程中包含一个源程序文件proj3.cpp,其中定义了用于表示平面坐标系中的点的类NyPoint和表示圆形的类NyCircle;程序应当显示:(1,2),5,31.4159,78.5398但程序中有缺失部分,请按照以下提示,把缺失部分补充完整:(1)在“//**1******found****”的下方是构造函数的定义,它用参数提供的圆心和半径分别对cen和rad进行初始化。(2)在“//**2******found****”的下方是非成员函数perimeter的定义,它返回圆的周长。(3)在“//**3******found****”的下方是友元函数area的定义,它返回圆的面积。注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“****found****”。//proj3.cpp#include<iostream>#include<cmath>usingnamespacestd;classMyPoint{//表示平面坐标系中的点的类doublex;doubley;public:MyPoint(doublex,doubley){this->x=x;this->y=y;}doublegetX()const{returnx;}doublegetY()const{returny;}voidshow()const{cout<<'('<<x<<','<<y<<')';}};classMyCircle{//表示圆形的类MyPointcen;//圆心doublerad;//半径public:MyCircle(MyPoint,double);MyPointcenter()const{returncen;}//返回圆心doubleradius()const{returnrad;}//返回圆半径frienddoublearea(MyCircle);//返回圆的面积},//**1************found**********MyCircle::MyCircle(MyPointp,doubler):cen(p),________{}#definePI3.1415926535doubleperimeter(MyCirclec)//返回圆c的周长{//**2************found**********returnPI*________;}//**3************found**********doublearea(________)//返回圆a的面积{returnPI*a.rad*a.rad;}intmain(){MyCircleC(MyPoint(1,2),5.0);C.center().show();cout<<','<<C.radius()<<','<<perimeter(c)<<','<<area(c)<<end1;return0;}
【正确答案】
正确答案:(1)rad(r) (2)2*c.radius() (3)MyCircle a
【答案解析】
解析:(1)主要考查考生对构造函数的掌握,使用成员列表初始化给rad赋初始值。 (2)主要考查考生对成员函数的掌握,函数功能为返回圆c的周长。要返回圆的周长,应利用公式PI*2*c.radius()完成。 (3)主要考查考生对成员函数的掌握,因为函数功能为返回圆a的面积,所以函数的形参应该为MyCircle a。
提交答案
关闭