1、国家二级 C+机试(操作题)模拟试卷 370及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modi lcpp,该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下语句: TestClass1:0 TestClass2 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 #include struct TestClass1 TestClass1(int i=0) m i=i; void print() cout“TestClassl:”“Te
2、stClass2”_二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。完成 fun()函数,其功能是:将两个从小到大有序数组 a和 b,复制合并出一个有序整数序列 c,其中形参 n和 m分别是数组 a和 b的元素个数。 注意:不能修改程序的其他部分,只能修改 fun()函数。 include void fun (int a,int n,int b,int m,int*c) void main() int A=3,5,7,9,11,1 8,21); int B=6,1 5,1 9,2 1,3 9); int C25,i ; for(i=0
3、;iAiBiCi_三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件夹下的源程序文件 modi3cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)完成类 Rect的构造函数,实现对变量left、right、top、bottom 的初始化,缺省值都为 0,请在注释*1*后添加适当的语句。(2)完成类 Rectangle的构造函数,请在注释*2*后添加适当的语句。 (3)完成计算矩形对角线长度函数 Diagonal(),请在注释*3*后添加适当的语句。 (4)完成计算周长函数 Girth(),请在注释*4*后添加适当的语句。 程序输出
4、: 50 140 注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。 #include #include class Rectangle public: int left,right t top , bottom; *1* left=i; right=r; top=t; bottom=b; *2* left=rcleft; right=rcright; top=rctop; bottom=rcbottom; float Diagonal() *3* return int Girth() *4* return ; int main() Rectangle rect(
5、20,50,40,80); Rectangle rect2(rect); coutrect2Diagonal()rect2Girth()_国家二级 C+机试(操作题)模拟试卷 370答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modi lcpp,该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下语句: TestClass1:0 TestClass2 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 #include struct Tes
6、tClass1 TestClass1(int i=0) m i=i; void print() cout“TestClassl:”“TestClass2”_正确答案:(正确答案:(1)public: (2)TeStClass1 obj 1(0);或 TestClass1 obj1; (3)TestClass2 obj2;)解析:解析:程序要求输出 TestClass1:0 和 TestClass2。从已定源程序的 main主函数开始入手,可以看出程序首先定义 TestClass1和 TestClass2类型的变量,然后通过调用其中的 print成员函数实现输出结果。二、简单应用题(总题数:1,
7、分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。完成 fun()函数,其功能是:将两个从小到大有序数组 a和 b,复制合并出一个有序整数序列 c,其中形参 n和 m分别是数组 a和 b的元素个数。 注意:不能修改程序的其他部分,只能修改 fun()函数。 include void fun (int a,int n,int b,int m,int*c) void main() int A=3,5,7,9,11,1 8,21); int B=6,1 5,1 9,2 1,3 9); int C25,i ; for(i=0;iAiBiCi_正确答案:(正确答案:Int
8、i,j; for(i=j=0; in top=t; bottom=b; *2* left=rcleft; right=rcright; top=rctop; bottom=rcbottom; float Diagonal() *3* return int Girth() *4* return ; int main() Rectangle rect(20,50,40,80); Rectangle rect2(rect); coutrect2Diagonal()rect2Girth()_正确答案:(正确答案:(1)添加语句:Rectangle(int 1,int r,int t,int b) (2)添加语句:Rectangle(Rectangle&rc) (3)将“return”补充完整为:return sqrt(rightleft)*(rightleft) + (bottomtop)*(bottomtop); (4)将“return”补充完整为:return 2*(rightleft)+(bottomtop);)解析:解析:类 Rectangle是描述了一个矩形,私有成员分别描述矩形的坐标值,构造函数给私有数据成员赋初值。Rectangle 类的 Diagonal()和 Girth()分别计算矩形的对角线长度和周长,可通过矩形的长和宽计算得到。