1、国家二级 C+机试(操作题)模拟试卷 30及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: Number=7 Numbe=12 注意:错误的语句在 *error*的下面,修改该语句即可。 1 #include 2 class CMyClass 3 4 public: 5 *error* 6 CMyClass(int i): Number=i 7 8 *error* 9 return Number ; 10 11 void set(int i) 12 13 Number=i ; 14 15
2、 void display() 16 17 coutdisplay(); 27 P-set(12); 28 P-display(); 29 return; 30 二、简单应用题 2 使用 VC6打开考生文件夹下的源程序文件 modi2 cpp。阅读下列函数说明和代码,补充空出的代码。 sum(int n)计算所有 n的因子之和 (不包括 1和自身 )。 注意:不能修改程序的其他部分,只能补充 sum()函数。 1 #include 2 int sum(int n) 3 4 5 6 void main() 7 8 cout 2 *1* 3 4 class objA0 5 6 private: 7
3、 static int m_A0; 8 *2* 9 10 ; 11 int objA0: m_A0=10 ; 12 class objAl 13 14 private: 15 int m_A1 ; 16 *3* 17 18 public: 19 obj A1(int i) 20 21 m_A1=i ; 22 23 ; 24 int func(objAl&obj) 25 26 *4* 27 28 29 int mein() 30 31 objA1 obj 0(1 0); 32 COUt: ”,因此第 1个标识下应添加 “class obiAl; ”。 (2)按照友元 的定义格式,友元函数是在类声
4、明中由关键字 friend修饰的非成员函数, func函数在类外部给出了具体的实现形式,即 “int func(objAl&obj)”,因此第 2个标识下应添加 “friend int func(objAl&obj); ”,这里参数是 objAl类对象obi。 (3)第 3个标识下和题目 2要求一样,均是声明友元函数,因此第 2标识下应添加 “friend int func(0bjAl&obj); ”。 (4)通过参数 Obj对象可以直接访问 obj.mA1, objA0的静态变量 m A0是所 有对象的共享成员,其访问形式为: objA0: m A0,因此第 4个标识下应添加“retum obj m Al*objA0: m_A0; ”。