1、国家二级 C+机试(操作题)模拟试卷 293及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modi1cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为: TestClass2 TIestClass3 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在*error*的下面。#includeiostreamClass TestClass1public: virtual Void fun()=0;class TestClass2:public Te
2、stClass1 *error* int fun() using namespace Std; cout“TestClass2“endl; ;class TestClass3:public TestClass1 *error* void fun() *error* Cout“TestClass3“endl; ;Void main() TestClassl*p; TestClass2 obj1; TestClass3 obj2; P=obj1; P=fun(); obj2fun(); return;(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的
3、源程序文件 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。 注意:不能修改其他代码。#includeiostreamh#define NUM 8void func(int ANUM,int n)int main() int ANUM=1,2,3,4,5,6,7,8; fun
4、c(A,6); for(int i=0;isizeof(A)sizeof(int);i+) coutAi ; coutendl; return 0;(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.用 VC6打开考生文件夹下的源程序文件 modi3cpp。其中定义的类并不完整,按照要求完成下列操作,将类的定义补充完整。在屏幕和程序 modi3txt 文件中输出以下结果: Hello Test 出现异常情况 其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整: (1)以追加的方式打开文件modi3txt,请在注释*1*后添加适当的语句。 (2)定义一个类对象 s,请在
5、注释*2*后添加适当的语句。 注意:仅在函数指定位置添加语句,请勿改动主函数 main与其他函数中的任何内容。#includeiostreamh#includefstreamusing namespace std;void WriteFile(char*x) ofstream out1; *1* out1open(“modi3txt“, ); out1x ; outlclose(); Void ClearFile() ofstream out1; out1open(“modi3txt“); out1close(); Class TestClass public: TestClass() cou
6、t“Hello“endl; WriteFile(“Hello“); TestClass() cout“Test“endl; WriteFile(“Test“); ;Void main() ClearFile(); try *2* throw 1; catch(int) cout“出现异常情况“endl; WriteFile(“出现异常情况“; (分数:2.00)_国家二级 C+机试(操作题)模拟试卷 293答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modi1cpp,该程序运行时有错,请改正其中的错误
7、,使程序正常运行,并使程序输出的结果为: TestClass2 TIestClass3 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在*error*的下面。#includeiostreamClass TestClass1public: virtual Void fun()=0;class TestClass2:public TestClass1 *error* int fun() using namespace Std; cout“TestClass2“endl; ;class TestClass3:public TestClass1 *error* void
8、 fun() *error* Cout“TestClass3“endl; ;Void main() TestClassl*p; TestClass2 obj1; TestClass3 obj2; P=obj1; P=fun(); obj2fun(); return;(分数:2.00)_正确答案:(正确答案:(1)void fun() (2)添加语句:public: (3)std:cout“TestClass3“解析:解析:(1)fun()函数是没有返回值的,而第 1个标识下的“int fun()”语句中定义的 fun()函数是有 int型返回值的,所以将其修改为“void fun()”。 (2
9、)第 2个标识下的 fun()函数,没有被定义为public型,所以外部其他成员无法访问,只能是类本身访问,所以添加“public:”。 (3)在程序中用到 C+标准库时,要使用 std标准命名空间进行限定。第三个标识下 cout为标准库函数,所以要声明cout是在命名空间 std中定义的流对象,即为“std:cout“TestClass3“二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码,完成空出部分的程序。函数 func(int ANUM,int n)实现的功能是将数组的内容进行一次重新排序。排序的方法是:给
10、定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;(分数:2.00)_正确答案:
11、(正确答案:for (int i=0 ; in2;i+) int temp=Ai;交换 Ai=An-i; An-i=temp; )解析:解析:(1)用循环来实现该过程,题目要求从 0开始,交换 N2 次,因此循环变量 i的范围从 0变化到 N2。 (2)下标为 0的元素与下标为 n的元素交换,下标为 1的元素与下标为 n1 的元素交换,依此类推,在循环体内,用一个临时变量记录第一个元素,然后将第二个元素赋值给第一个元素,临时变量值赋给第二个元素,如此完成两个元素的交换。三、综合应用题(总题数:1,分数:2.00)3.用 VC6打开考生文件夹下的源程序文件 modi3cpp。其中定义的类并不完整
12、,按照要求完成下列操作,将类的定义补充完整。在屏幕和程序 modi3txt 文件中输出以下结果: Hello Test 出现异常情况 其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整: (1)以追加的方式打开文件modi3txt,请在注释*1*后添加适当的语句。 (2)定义一个类对象 s,请在注释*2*后添加适当的语句。 注意:仅在函数指定位置添加语句,请勿改动主函数 main与其他函数中的任何内容。#includeiostreamh#includefstreamusing namespace std;void WriteFile(char*x) ofstream out1; *1
13、* out1open(“modi3txt“, ); out1x ; outlclose(); Void ClearFile() ofstream out1; out1open(“modi3txt“); out1close(); Class TestClass public: TestClass() cout“Hello“endl; WriteFile(“Hello“); TestClass() cout“Test“endl; WriteFile(“Test“); ;Void main() ClearFile(); try *2* throw 1; catch(int) cout“出现异常情况“
14、endl; WriteFile(“出现异常情况“; (分数:2.00)_正确答案:(正确答案:(1)将“out1open(“modi3txt“, );”补充完整为:out1open(“modi3txt“,ios_base:app); (2)添加语句:TestClass s;)解析:解析:(1)题目 1要求“以追加的方式打开文件 modi3txt”。文件输出输入方式的设置值,以ios:app 方式是以输出方式打开文件,写入的数据添加在文件末尾,即第 1个标识下语句补全为“out1open(“modi3txt“ios_base:app);”。 (2)题目 2要求“定义一个类对象 s”。C+中,在声明了类类型后,定义对象的一般形式:类名对象名。所以这里添加“TestClass s:”。