1、国家二级 C+机试(操作题)模拟试卷 53及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为: 1 1 2 1 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 1 #include 2 class TestClass 3 4 *error* 5 6 *error* 7 const int j ; 8 public: 9 TeStClasS() 10 11 *error* 12 static int i=0; 13 co
2、ut 2 #include 3 #define MAXLEN 1024 4 void convert(char*des , char*str, char*str2) 5 6 7 8 void main() 9 10 char destMAXLEN; 11 char*str=“!&cefghi*!&“; 12 char*str2=“Jklm“; 13 convert(dest, str, str2); 14 cout 2 C1ass CBase 3 4 private: 5 int Number; 6 public: 7 *1* 8 CBase(int X) 9 1 0 void display
3、() 11 12 cout: 。 , ; 类 CPri是 CBase的公共继承类,因此第 2个标识下应改为 “class CPri: public CBase”。 (3)CPri构造函数有两个形式参数,第一个是对 CBase的初始化,第二个缺省为0,用来对变量 Number2进行初始化,这里对 CBase的初始化也不能在函数体内完成,因此也必须采用参数初始化表来完成,即第 3个标识下应改为 “CPri(int x,int y=0): CBase(x)”,调用 CBase的构造函数完成对 CBase的初始化。 (4)函数 display()重载于 CBase的打印函数。完成对变量 Number2的输出,然后调用基类的打印函数 display(),基类的 display()和派生类的 display()重名,调用基类的 display()应过类名来直接调用,即第 4个标识下应添加“cout”Number2=”Number2endl; CBase: display(); ”。