1、国家二级 C+机试(操作题)模拟试卷 397及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modilcpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为: TestClass1 TestClass2 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在*error*的下面。 #include #include Struct TestClass0 *error* virtualvoid fun(); ; class TestClass1:publ
2、ic TestClass0 void fun() toutfun(); return; (分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码,完成空出部分的程序。函数 func(int ANUM,int n)实现的功能是将数组的内容进行一次重新排序。排序的方法是:给定n,则下标为 i的数字与下标为 n-i的数字交换。从 0开始,交换 N2 次,则最后的内容为排序后的结果。如果:A8=1,2,3,4,5,6,7,8,n=6,则结果:A8=7,6,5,4,3,2,1,8。 注意:不能修改其他代码。#i
3、ncludeiostreamh#define NUM 8void func(int ANUM,int n)int main() int ANUM=1,2,3,4,5,6,7,8); func(A,6); for(int i=0;isizeof(A)Sizeof(int);i+) coutAi; coutendl; return 0;(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.用 VC6打开考生文件夹下的源程序文件 modi3cpp,其中定义了多个类,但类不能达到输出要求,按照定义的输出修改函数,使得输出如下: TestClass3 TestClass2 TestClas
4、s 1 其中定义的类并不完整,按照要求完成下列操作,将类的定义补充完整。 (1)类 TestClass2公共继承于 TestClassl,请在注释*1*后添加适当的语句。 (2)print 函数为虚函数,请在注释*2*后添加适当的语句。 (3)修改语句,使得 P指定对象 obj3,请在注释*3*后添加适当的语句。(4)修改语句,利用 P调用 printO数,完成输出信息,注释*4*后添加适当的语句。 注意:仅在函数指定位置添加语句,请勿改动主函数 main与其他函数中的任何内容。 #include using namespace std; CLass TestClaSS1 public: vo
5、id print() coutfun(); return; (分数:2.00)_正确答案:(正确答案:(1)virtual void fun()=0; (2)p=obj 1; (3)p=&obj 2;)解析:解析:本题程序中的功能为输出字符串 TestClass1和 TestClass2。从已定源程序的 main主函数开始入手,通过定义的类,实现题目中要求的输出结果。二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码,完成空出部分的程序。函数 func(int ANUM,int n)实现的功能是将数组的内容进行一次
6、重新排序。排序的方法是:给定n,则下标为 i的数字与下标为 n-i的数字交换。从 0开始,交换 N2 次,则最后的内容为排序后的结果。如果:A8=1,2,3,4,5,6,7,8,n=6,则结果:A8=7,6,5,4,3,2,1,8。 注意:不能修改其他代码。#includeiostreamh#define NUM 8void func(int ANUM,int n)int main() int ANUM=1,2,3,4,5,6,7,8); func(A,6); for(int i=0;isizeof(A)Sizeof(int);i+) coutAi; coutendl; return 0;(分
7、数:2.00)_正确答案:(正确答案:for (int i=0;in2;i+) int temp=Ai;交换 Ai =Ani; Ani=temp; )解析:解析:func()函数完成对数组内容的重排,下标为 i的数字与下标为 n-i的数字交换,可以用循环来实现。三、综合应用题(总题数:1,分数:2.00)3.用 VC6打开考生文件夹下的源程序文件 modi3cpp,其中定义了多个类,但类不能达到输出要求,按照定义的输出修改函数,使得输出如下: TestClass3 TestClass2 TestClass 1 其中定义的类并不完整,按照要求完成下列操作,将类的定义补充完整。 (1)类 Test
8、Class2公共继承于 TestClassl,请在注释*1*后添加适当的语句。 (2)print 函数为虚函数,请在注释*2*后添加适当的语句。 (3)修改语句,使得 P指定对象 obj3,请在注释*3*后添加适当的语句。(4)修改语句,利用 P调用 printO数,完成输出信息,注释*4*后添加适当的语句。 注意:仅在函数指定位置添加语句,请勿改动主函数 main与其他函数中的任何内容。 #include using namespace std; CLass TestClaSS1 public: void print() coutprint();)解析:解析:本题的功能是通过 print虚函数将字符串输出。在 VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已定源程序的 main主函数开始入手,可以看出程序通过调用类和成员函数实现各种输出操作。