1、国家二级 C+机试(操作题)模拟试卷 14及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 3 cpp,其中定义了类 A、 A1和A2,其中 A1类由 A类公有派生, A2类由 A1类公有派生。 (1)定义类 A的构造函数,该构造函数有一个整型的参数 x,在构造函数中请将 x赋值给数据成员 a。请在注释 “ *1*”之后添加适当的语句。 (2)定义类 A1的构造函数,该构造函数有两个整型的参数 x和 y,在构造函数中请将 x赋值给数据成员 b,将 y作为基类 A构造函数的 参数值传入。请在注释 “ *2*”之后添加适当的语句。 (3)定义类 A2的构造函数,该构造函数
2、有 3个整型的参数 x, y和 z,在构造函数中请将 x赋值给数据成员 c,将 y和 z分别赋值给基类 A1构造函数的参数 x和 y。请在注释 “ *3*”之后添加适当的语句。 (4)完成类 A2的成员函数 show的定义,该函数调用基类成员函数,输出基类书局成员 a和 b及类 A2自身的数据成员 c的值,上述 3个值在输出时以空格隔开。请在注释 “ *4*”之后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 程序输出结果如下: 7 3 7 3 8 注意:除在指定的位置添加语句之外,请不要改动程序的其他部分。 试题程序: #include class A int
3、 a; public: *1* int geta()return a; ; class A1: public A int b; public: *2* int getb()return b; ; class A2: public A1 int c; public: *3* void show(: ) *4* ); void main() A2 a(8, 3, 7); cout int fun(char*str, char ch) void main() char str=a, b, c, d, e, f, g, h, i, j, k; char ch; coutch: cout class P
4、lnfo private: int height; int weight; *1* public: *2* : height(ht), weight(Wt), bloodType(bt); PInfo(PInfo&h1): height(h1 height), weight(h1 weight), bloodType(h1 bloodType) int GetHeight() return height; int GetWeight() return weight; int GetBloodType() return bloodType; void Setlnfo(int ht, int wt
5、, char bt); void Display(); ; *3* height=ht; weight=wt: bloodType=bt; void Plnfo: Display() toutch) high=k-1; else low=k+1: if(strlow=ch) return tow; return -1; 【试题解析】 本题首先初始查找区间的下界为 0,然后求得字符串长度 len,上界为 len-1,查 找区间的中部后, k=(下界 +上界 ) 2;若 tistk等于 ch,查找成功。若 listk)ch,则新的查找区间的下界变,上界改为 k-1;否则新的查找区间的下界改为 k+
6、1,上界不变。 三、综合应用题 3 【正确答案】 (1)应添加 “char bloodType; ”。 (2)应添加 “Plnfo(int ht=175, int wt=70, char bt=A)”。 (3)应添加 “void Plnfo: Setlnfo(int ht, int wt, char bt)”。 (4)应添 加 “h2 Setlnfo(170, 64, B); ”。 【试题解析】 本题第 1处定义私有数据成员为 char型的 bloodType,故第 1处应添加 “char hloodType; ”。构造 PInfo()完成 3个成员的初始化,并且带有默认值参数,默认值为身高
7、175,体重 70,血型 A,由函数体语句可知参数名分别为ht、 wt和 bt,因此第 2处应添加 “Plnfo(int ht=175, int wt=70, char bt=A)”。第3处的语句在类外完成成员函数 SetInfo的定义,在类外定义成员函数的格式为“(返回值类型 ): ()”,故第 3处应添加 “void PInfo: SetInfo(intht, int wt, char bt)”。调用函数 Setlnfo需要 3个参数,程序要求把对象 d2的 3个私有数据成员分别设定为身高 170,体重 64,血型为 B,即把这 3个值传入函数 Setlnfo,因此第 4处应添加 “h2 SetInfo(170, 64, B); ”。