1、国家二级 C+机试(操作题)模拟试卷 351及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modilcpp,但该程序运行时有错,请改正程序中的错误,使该程序的输出结果为: 100 注意:错误的语句在*error*的下面,修改该语句即可。 #include StatiC int x=50; int t=0; int*func(int X,int Y,int z) t=t+x+y+Z; *error* return t; ; void main() int y=3 0; int x=1 0; int z=
2、2 0; *error* x=x; *error* coutfunc(x,y,z)_二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码,补充空出的代码。函数 sum(int n)计算在 n范围内,能被 7和 1l整除的所有整数的和(包括 n在内)。 注意:不能修改程序的其他部分,只能补充 sum()函数。 #include double sum(int n) void msin() coutsum(80)sum(200)sum(300)_三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件夹下的
3、源程序文件 modi3cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)完成 CMyClass的构造函数,请改正注释*1*后的错误。 (2)完成 mnc0函数定义,请改正注释*2*后的错误。 (3)初始化 CmyClass的成员变量 Number3为 4,请改正注释*3*后的错误。 (4)完成 func()函数, 请改正注释*4*后的错误。 输出的结果为: Number1=12 Number2=18 Number3=16 Number1=4 Number2=2 Number3=19 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 #inc
4、lude class CMyClass public: *1* CMyClass(int i,int j) Number1=i; Number3+=i; void display() coutNumber1Number2Number3_国家二级 C+机试(操作题)模拟试卷 351答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modilcpp,但该程序运行时有错,请改正程序中的错误,使该程序的输出结果为: 100 注意:错误的语句在*error*的下面,修改该语句即可。 #include StatiC i
5、nt x=50; int t=0; int*func(int X,int Y,int z) t=t+x+y+Z; *error* return t; ; void main() int y=3 0; int x=1 0; int z=2 0; *error* x=x; *error* coutfunc(x,y,z)_正确答案:(正确答案:(1)returnt; (2)x=:x; (3)cout*func(x,y,z)end1;)解析:解析:程序当中定义了全局静态变量 x,主函数内又定义了一个和静态变量 x重名的变量 x,在使用时需要注意区分这两个变量。函数 func(int x,inly,in
6、t z)返回一个整型数据指针,功能是将参数x,y,z 三者求和,通过指针返回运算结果。二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码,补充空出的代码。函数 sum(int n)计算在 n范围内,能被 7和 1l整除的所有整数的和(包括 n在内)。 注意:不能修改程序的其他部分,只能补充 sum()函数。 #include double sum(int n) void msin() coutsum(80)sum(200)sum(300)_正确答案:(正确答案:int result=0; for(int i=11;
7、i=n;i+) if(i7=0)&(i1=0) result+:i; return result;)解析:解析:函数 sum(int n)的功能是实现计算在 n范围内,能被 7和 11整除的所有整数的和(包括 n在内),可采用循环的方式从 11开始到 n逐个寻找能被 7和 11整除的数,如果能同时被 7和 11整除则加到累加变量中。三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件夹下的源程序文件 modi3cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)完成 CMyClass的构造函数,请改正注释*1*后的错误。 (2)完成
8、mnc0函数定义,请改正注释*2*后的错误。 (3)初始化 CmyClass的成员变量 Number3为 4,请改正注释*3*后的错误。 (4)完成 func()函数, 请改正注释*4*后的错误。 输出的结果为: Number1=12 Number2=18 Number3=16 Number1=4 Number2=2 Number3=19 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 #include class CMyClass public: *1* CMyClass(int i,int j) Number1=i; Number3+=i; void display() co
9、utNumber1Number2Number3_正确答案:(正确答案:(1)将“CMyClass(int i,int j)”补充完整为:CMyClas s(int i,int j):Number2(j) (2)添加语句:friend void func(); (3)添加语句:int CMyClass:Number3=4; (4)将“objAddNum()”补充完整为:objAddNum(2);)解析:解析:程序中定义了 CMyClass类,其含有 3个成员变量和多个成员函数,成员变量 Number2为常成员,Number3 为静态成员。display()函数输出 3个成员变量的值,AddNum(int i)函数改变静态成员变量 Number3的值,在函数 func()内部,访问了类的私有成员,而且 rune0不属于类的成员函数,故函数func()为类 cmyclass的友元函数。