1、国家二级( C+)机试模拟试卷 32及答案与解析 一、程序改错题( 30分) 0 使用 VC6打开考生文件夹下的工程 RevProj13。此工程包含一个源程序文件RevMain13.cpp,但该程序中类的定义有错误。请改正程序中的错误,使它能得到正确结果。 注意,不要改动主函数,不得删行或增行,也不得更改程序的结构。 源程序文件 RevMain13.cpp中的程序清单如下; /RevMain13.cpp #include iostream using namespace std; class MyClass public: MyClass(int a=0, b=1); Print(); pri
2、vate: int x; int y; ; MyClass: MyClass(int a=0, int b=1) x=a; y=b; void MyClass: Print() cout “x=“ x end1; cout “y= “ y end1; int main() MyClass obj(1, 2) obj.Print(); return 0; 二、简单应用题( 40分) 0 请编写一个函数 fun(),它的功能是求出一个正整数的所有因子。例如,若输入72, 则程序应该输出: 72=2*2*2*3*3。 注意:部分源程序已存在文件 PROC14。 CPP中。 请勿修改主函数和其他函数中
3、的任何内容,仅在函数 fun()的花括号中填写若干语句。 文件 PROC14.cpp的内容如下: /PROC14. cpp #include iostream using namespace std; void fun(int number); int main ( ) int n; cout “Please enter a number n“; cin n; cout n “=“; fun (n); return 0; void fun(int number) /* * * * * * * 三、综合应用题( 30分) 0 使用 VC6打开考生文件夹下的工程 MyProj12。此工程包含一个源
4、程序文件MyMain12.cpp。程序中定义了两个类 Base和 Derived,但类的定义并不完整。 请按要求完成下列操作,将类的定义补充完成: 类 Derived是基类 Base公有派生来的。请在注释 “/* *1* *”之后添加适当的语句。 完成构造函数 Derived(int x)定义,采用初始化列表的方式使基类 Base私有成员 a初始化为 x,类 Derived的私有成员 b初始化为 x+1。请在注释 “/* *2* *”之后添加适当的语句。 完成类 Derived的成员函数 show()的类体外的定义。函数 show()中要输出基类数据成员 a的值,然后要输出私有成员 b的值。请
5、在注释 “/* *3* *之后添加适当的语句。 注意;除在指定位置添加语句之外,请不要改动程序中的其他内容。 源程序文件 MyMain12.cpp清单如下: /MyMain12.cpp #include iostream using namespace std; class Base public: int a; Base(int i) a=i; ; /* * * 1 * * * private: int b; public: /* * * 2 * * * void show(); ; void Derived: show() /* * * 3 * * * int main() Derived d(1); d.show(); return 0; 国家二级( C+)机试模拟试卷 32答案与解析 一、程序改错题( 30分) 二、简单应用题( 40分) 三、综合应用题( 30分)