1、国家二级 C+机试(操作题)模拟试卷 356及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,但该程序运行有问题,请改正 main函数中的错误,使程序的输出结果是: nember=1 nember=10 nember=100 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 #include Class TestClass public: TestClass(int i)( nember=i; void SetNember(int m) nember=m; int GetNember()con
2、st return nember; void Print()const cout void fun(int i) int main() fun(5); return 0; 三、综合应用题 3 使用 VC6打开考生文件夹下的源程序文件 modi3 cpp。通过继承完成输入到屏幕指定的信息: TestClassA TestClassB TestClassC 其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)完成类 B虚继承于 A,请在注释 *1*后添加适当的语句。 (2)完成类 C虚继承于 A,请在注释 *2*后添加适当的语句。 (3)完成类 D继承于 B, C,请在注释 *3
3、*后添加适当的语句。 (4)函数 fun通过调用基类的 fun,完成所输出的内容,请在注释 *4*后添加适当的语句。 注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。 #include Class TeStClassA public: void fun() cout“TestClassA”end1; ; *1* Clas s TestClas sB public: void fun() cout“TestClassB”endl; ; *2* Class TestClassc public: void fun() cout“TestClassC”endl; ; *
4、3* Class TeStClassD public: void fun() *4* ; void mein() TeStClassD test; test fun(); return; ; 国家二级 C+机试(操作题)模拟试卷 356答案与解析 一、基本操作题 1 【正确答案】 (1)Testclas s obj 1(1); (2)obj 1 SetNember(1 0); (3)obj 2 setNember(1 0 0); 【试题解析】 程序要求输出 nerrlber的值为 l, 10, 100。从已定源程序的 main主函数开始入 手,可以看出程序定义了 TestClass类的对象 o
5、bj1和 obi2,然后通过调用类的成员函数实现了题目中的输出结果。 二、简单应用题 2 【正确答案】 for(int j=0; ji; J+) 行循环 for(int k=0; k=j; k+) 列循环 cout“#”; 输出 “#” coutendl; 【试题解析】 (1)该程序功能是输出 5行井号。它的解题思路,两层循环,外循环为行,内循环为列。第一行为 1列,第二行为两列,同理类推,第 n行为 n列。 (2)从已给部分源程序的 main主函数开始入手,核心函数 fun(int i)中的 i参数为 i行 #。 三、综合应用题 3 【正确答案】 (1)将 “class TestClassB
6、: ”补充完整为: class TestClassB: virtual public TestClassA (2)将 “class TestClassC: ”补充完整为: class TestClassC: virtual public TestClassA (3)将 “class TestClassD: ”补充完整为: class TestClassD: public TestClassB, public TeStClassC (4)添加语句: TestClassA: fun(); TestClassB: fun(); TestClassC: fun(); 【试题解析】 在 VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从己定源程序的 main主函数开始入手,可以看出程序通过调用类和函数 fun实现各种输出操作。