第 1 页:选择题 |
第 3 页:基本操作题 |
第 4 页:简单应用题 |
三、简单应用题(共24分)
42 [简答题]
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2。其中有类Point(“点”)、Rectangle(“矩形”)和Circle(“圆”)的定义。在程序所使用的平面坐标系统中,x轴的正方向是水平向右的,y轴的正方向是竖直向下的。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应该是:
--圆形------------
圆心=(3,2)
半径=1
面积=3.14159
--外切矩形------
左上角=(2,1)
右下角=(4,3)
面积 =4
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“// ****found ****”。
参考解析:
【参考答案】 (1)point.getX()+width,point.getY()+height
(2)radius * radius
(3)center.getX() - radius,center.getY() - radius
(4)2 * radius
【考点分析】
本题考查Point类、Rectangle类和Circle类,其中涉及构造函数、const函数和静态成员。
【解题思路】
(1)主要考查考生对成员函数的掌握,程序要求返回右下角顶点,该点的x坐标为左上角顶点的x坐标加上width,该点的y坐标为左上角顶点y坐标加上height,即return Point(point.getX()+width,point.getY()+height);。
(2)主要考查考生对成员函数的掌握,程序要求计算圆形面积,也就是返回圆面积,即return PI * radius * radius;。
(3)主要考查考生对成员函数的掌握,首先看函数声明:Rectangle Circle::boundingBox()const,可知该函数要返回的是一个Rectangle类型,即要返回的是圆的外切矩形。再看Rectangle类的构造函数Rectangle(Point p,int w,int h),由此可知,空格处要定义的点pt为左上角点,即Point pt(center.getX() - radius,center.getY() - radius);。
(4)由函数声明和Rectangle类的构造函数可知,w和h应该为直径,即w=h=2 * radius;。
四、综合应用题(共18分)
43 [简答题]
【考点分析】
本题考查类的数据成员、类的成员函数、重载流运算符>>和插入运算符<<和字符数组。
【解题思路】
程序定义了MyString类,它包含一个成员:str字符指针;默认构造函数和复制构造函数通过dup()函数,动态分配地址p,将参数拷贝到p指向的内存空间,再使用p初始化str;show()成员函数将str指向的字符串输出;reverse()成员函数将str指向的字符串反转;重载的<<运算符函数调用形参m对象的show()函数输出str指向的字符串。
main()函数首先构造一个MyString类对象m1,构造过程中传人字符串“This is a string”,所以m1对象中的str指向一个动态分配的内存空间,该段内存存放拷贝的字符串“This is a string”,输出m1后,再调用m1.reverse()函数,将str指向的字符串进行反转,再输出m1,题意要求我们完成reverse()成员函数的定义,完成反转字符串的功能。
由题意,我们仅有的信息就是str指向一个字符串,它是char*类型,需要对str指向的字符串进行反转,需要获得字符串的长度,然后将首尾字符进行交换,直到交换到中间字符串为止,所以我们定义两个变量i、j,表示元素下标,分别从首(i=0)和尾(长度-1)向中间遍历该字符串,每次遍历,首先判断i是否小于j,若i小于j则将i和J下标对应的字符进行交换,交换完成后i自增1,j自减1,直到i不小于j为止。
微信搜索"考试吧"了解更多考试资讯、下载备考资料
相关推荐: