1[简答题]
请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1。程序中位于每个“// ERROR **** found ****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为: value=63 number=1
注意:只修改每个“// ERROR **** found ****”下的那一行,不要改动程序中的其他内容。
参考解析:【参考答案】 (1)MyClass(int val):N(1) (2)~MyClass(){delete[]p;} (3)void print(MyClass & obj)
【考点分析】
本题考查MyClass类,其中涉及动态数组、构造函数、析构函数和友元函数。构造函数的成员列表初始化格式为:私有成员(参数)……{},不能用赋值语句。析构函数使用delete语句,delete语句的语法是:delete[]指针。 【解题思路】
(1)主要考查考生对构造函数的掌握,在这里不能使用赋值语句。
(2)主要考查考生对析构函数的掌握,析构函数的delete语句要使用标识符 “[]”,即delete[]p;。
(3)主要考查考生对友元函数的掌握,友元函数并不属于类,因此定义时前面不用加类名和作用域符号。 【解题宝典】
友元函数考查较少,但也是很关键的,友元函数并不属于类,只是可以使用类的私有成员而已,因此定义的时候就当作普通函数处理即可。 2[简答题]
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,该工程中含有一个源程序文件proj2.cpp,其中定义了CharShape类、Triangle类和Rectangle类。 CharShape是一个抽象基类,它表示由字符组成的图形(简称字符图形),纯虚函数Show用于显示不同字符图形的相同操作接口。Triangle和Rectangle是CharShape的派生类,它们分别用于表示字符三角形和字符矩形,并且都定义了成员函数Show,用于实现各自的显示操作。程序的正确输出结果应为: * *** ***** ******* ########
######## ########
请阅读程序,分析输出结果,然后根据以下要求在横线处填写适当的代码并删除横线。 (1)将Triangle类的成员函数Show补充完整,使字符三角形的显示符合输出结果。 (2)将Rectangle类的成员函数Show补充完整,使字符矩形的显示符合输出结果。 (3)为类外函数fun添加合适的形参。
注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“// **** found****”。
参考解析:【参考答案】 (1)i * 2-1 (2)rows (3)cols
(4)CharShape &CS 【考点分析】
本题主要考查抽象类CharShape类及其派生类Triangle和Rectangle,其中涉及构造函数、纯虚函数、成员函数和函数调用。着重考查函数Show()在Triangle类与在Rectangle类中的定义,填空前应先理解Show()函数在该类中的功能。 【解题思路】
(1)考查for循环语句,该语句所在的函数的功能是输出字符组成的三角形。从外层循环中可以看出下标i代表行数,那么下标j就代表每一行字符的个数,因为要输出的是三角形,所以每一行的个数与该行的行数相关,即j <=i*2-1;。
(2)考查for循环语句,该语句所在的函数的功能是输出字符组成的矩形。回到Rectangle类中可以知道矩形的长和宽就是类中私有成员的行数和列数,因此在这里只要要求下标i不大于行数即可。
(3)考查for循环语句,该语句所在的函数的功能是输出字符组成的矩形。回到Rectangle类中可以知道矩形的长和宽就是类中私有成员的行数和列数,因此在这里只要要求下标j不大于列数即可。
(4)主要考查考生对虚函数的掌握,该语句所在的函数是普通函数fun,题目要求为fun函数添加形参。从函数体中可以知道形参名为cs,那么形参的类型是什么呢?就是抽象类CharShape,因此要使用CharShape & cs才可以实现题目要求输出的内容。 【解题宝典】
计算机二级考试C++上机操作题(1)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)