点击查看:2017年9月计算机二级C++考试操作题预测卷汇总
1[简答题]
请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,此工程中含有一个源程序文件proj1.cpp。其中位于每个注释“//ERROR **** found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:
The value is:10
注意:只修改注释“//ERROR ****found ****”的下一行语句,不要改动程序中的其他内容。
参考解析:【参考答案】 (1)public:
(2)MyClass(int val):_m(val){}或MyClass(int val){_m=val}
(3)cout<<”The value is:”
【考点分析】
本题主要考查的是Member类和MyClass类,其中涉及构造函数、成员函数和类的指针。类的指针调用类的成员函数时要使用标识符“->”,而不是“.”,这是最容易出错的地方。私有成员使用private,公有成员使用public,保护成员使用protected,类的构造函数一定是公有成员函数。
【解题思路】
(1)主要考查考生对私有成员和公有成员的掌握,先看改错语句的下一条语句:Member(int val):value(val){},该语句是一个构造函数,因此我们可以得出此处为公有成员,因为构造函数不可能是私有成员。
(2)主要考查构造函数,构造函数要对类的成员进行初始化,因此在这里使用成员列表初始化,即MyClass(int val):_m(val){}或MyClass(int val){_m=val}。
(3)指针调用类的成员函数时,应使用标识符“->”。
【解题宝典】
判断该成员是公有成员还是私有成员的方法很多,不必一一死记,只要记住公有成员可以被类外函数调用,私有成员则不可以,类的构造函数一定是公有成员函数就可以了。
微信搜索"考试吧"了解更多考试资讯、下载备考资料
简单应用题
2[简答题]
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,其中有矩阵基类MatrixBase、矩阵类Marx和单位阵UnitMatrix的定义,还有main函数的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“// ****found ****”。
参考解析:【参考答案】 (1)getElement(i,j)
(2)MatrixBase(rows,cols)
(3)new double[rows * cols]
(4)r==c
【考点分析】
本题考查MatrixBase类及其派生类Matrix和UnitMatrix,其中涉及构造函数、const函数、纯虚函数、动态数组和析构函数。派生类的构造函数要涉及基类的初始化,因此必须使用成员初始化列表。动态数组要先使用new语句分配空间,再赋值。
【解题思路】
(1)主要考查考生对纯虚函数的掌握,函数功能是分行显示矩阵中所有元素。因此在这里要输出行为i、列为J的元素,使用纯虚函数getElement(i,j)实现,输出语句为eout <
(2)主要考查考生对派生类的构造函数的掌握,派生类的构造函数使用成员列表初始化法,先对基类初始化。
(3)主要考查考生对动态数组的掌握,val是double型指针,要给val赋值,就要先给它分配空间,应使用New来完成。
(4)主要考查考生对成员函数的掌握,因为要输出单位矩阵,只有满足条件r==c的元素为1.0,所以填写语句if(r==c)retum 1.0;。
微信搜索"考试吧"了解更多考试资讯、下载备考资料
综合应用题
3[简答题]
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中包含了类IntegerSet和主函数main的定义。一个IntegerSet对象就是一个整数的集合,其中包含0个或多个无重复的整数;为了便于进行集合操作,这些整数按升序存放在成员数组elem的前若干单元中。成员函数add的作用是将一个元素添加到集合中(如果集合中不存在该元
素),成员函数remove从集合中删除指定的元素(如果集合中存在该元素)。请编写成员函数remove。在main函数中给出了一组测试数据,此时程序的正确输出结果应为:
要求:
补充编制的内容写在“// ******** 333 ********”与“// ******** 666 ********”之间,不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中。输出函数WriteToFile已经编译为obj文件,并且在本程序中调用。
参考解析:
【考点分析】
本题考查IntegerSet类,其中涉及数组、构造函数、成员函数、const函数和插入排序。类中的数组elem是一个按升序存放的数组,要填写的程序段是完成remove函数的功能,即删除指定元素。
【解题思路】
主要考查考生对有序数组的掌握,题目要求成员函数remove从集合中删除指定的元素(如果集合中存在该元素)。遍历数组etem中的元素,找出与形参element相等的元素,并将其删除,每删除一个元素,即将该元素之后的每个元素前移一位,如果不存在与形参element相等的元素则没有操作。使用下标i遍历数组,if语句判断是否与element相等。
微信搜索"考试吧"了解更多考试资讯、下载备考资料