1、国家二级 C+机试(操作题)模拟试卷 278及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modi1cpp,该程序运行时有错误,请改正错误,使得程序通过运行。 程序输出: 5 a 1 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在*error*的下面。#includeiostreamtemplateclass T*error*t min(t x,t y) return(xy)?Y:X; Void main() int n=5; *error* char c=“a“;
2、int d=1; *error* coutmin(n,n)endl; coutmin(c,c)endl; coutmin(d,d)endl;(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码。函数 show()的功能是将 1、2、3、4 四个数字,组成互不相同且无重复数字的四位数,并将这些数输出到屏幕,输出的内容如下: 1234 1243 1324 1342 1423 1432 2134 2143 2314 2341 2413 2431 3124 3142 3214 3241 3412 3421
3、 4123 4132 4213 4231 4312 4321 将函数 show()补充完整。 注意:请勿改动主函数。 #include void show() int main() show(); return 0; (分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件夹下的源程序文件 modi3cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)定义私有常量 PI,请在注释*1*后添加适当的语句。 (2)完成类的私有常量 PI的赋值,以及完成对半径 radius的赋值。请在注释*2*后添加适当的语句。 (3)完成
4、计算圆面积的函数 GetArea()。请在注释*3*后添加适当的语句。 (4)完成计算圆周长的函数 GetGirth()。请在注释*4*后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。#includei0streamh#define CONST PI 3141592Class CCircleprivate: double radius; *1*public: *2* CCircle(int radius) this-radius=radius; double GetArea() *3* double GetGirth() *4* void SetRadius(i
5、nt m) radius=m; );int main() CCircle circle(5); coutcircleGetArea()endl; coutcircleGetGirth()endl; circleSetRadius(10); coutcircleGetArea()endl; coutcircleGetGirth()endl; return 0;(分数:2.00)_国家二级 C+机试(操作题)模拟试卷 278答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modi1cpp,该程序运行时有错误,
6、请改正错误,使得程序通过运行。 程序输出: 5 a 1 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在*error*的下面。#includeiostreamtemplateclass T*error*t min(t x,t y) return(xy)?Y:X; Void main() int n=5; *error* char c=“a“; int d=1; *error* coutmin(n,n)endl; coutmin(c,c)endl; coutmin(d,d)endl;(分数:2.00)_正确答案:(正确答案:(1)T min(T x,T y) (2
7、)char c=a; (3)using namespace Std;)解析:解析:(1)C+是区分大小写的,“template”语句中定义的模板类为 T不是 t,所以第 1个标识下的“t min(t x,t y)”修改为“T min(Tx,Ty)”。 (2)第 2个标识下的“char c=“a“;”语句中的变量a为 char型,赋值为字符 a,在 C+中应该使用单引号标注字符变量,而不是双引号,所以修改为“charC=a:”。 (3)在程序中用到 C+标准库时,要使用 std标准命名空间进行限定。cout 为标准库函数,所以要声明 cout是在命名空间 std中定义的流对象,即添加 using
8、 namespace std;”。二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码。函数 show()的功能是将 1、2、3、4 四个数字,组成互不相同且无重复数字的四位数,并将这些数输出到屏幕,输出的内容如下: 1234 1243 1324 1342 1423 1432 2134 2143 2314 2341 2413 2431 3124 3142 3214 3241 3412 3421 4123 4132 4213 4231 4312 4321 将函数 show()补充完整。 注意:请勿改动主函数。 #inc
9、lude void show() int main() show(); return 0; (分数:2.00)_正确答案:(正确答案:for(int i=1;i5;i+) for(int J=1;j5;j+) for(int l=1;l5;1+) for(int k=1;k5;k+) if(i!=jj!=ki!=k i!=lj!=lk!=l)条件判断 coutijlk ; 输出显示 coutendl:)解析:解析:(1)四重循环变量分别为 i、i、l 和 k,分别从 1变化至 4,分别表示四位数的第一、第二、第三和第四位数。 (2)在最内层循环内,如果 i、i、k 和 l互不相同则 i、j、k
10、 和 l表示的四位数互不相同,把 i、j、k 和 l打印在屏幕上。三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件夹下的源程序文件 modi3cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)定义私有常量 PI,请在注释*1*后添加适当的语句。 (2)完成类的私有常量 PI的赋值,以及完成对半径 radius的赋值。请在注释*2*后添加适当的语句。 (3)完成计算圆面积的函数 GetArea()。请在注释*3*后添加适当的语句。 (4)完成计算圆周长的函数 GetGirth()。请在注释*4*后添加适当的语句。 注意:除在指定位
11、置添加语句之外,请不要改动程序中的其他内容。#includei0streamh#define CONST PI 3141592Class CCircleprivate: double radius; *1*public: *2* CCircle(int radius) this-radius=radius; double GetArea() *3* double GetGirth() *4* void SetRadius(int m) radius=m; );int main() CCircle circle(5); coutcircleGetArea()endl; coutcircleGet
12、Girth()endl; circleSetRadius(10); coutcircleGetArea()endl; coutcircleGetGirth()endl; return 0;(分数:2.00)_正确答案:(正确答案:(1)添加语句:const double PI; (2)将“CCircle(int radius)”补充完整为:CCircle(int radius):PI(CONST_PI) (3)添加语句:return radius*radius*PI; (4)添加语句:return 2*radius*PI;)解析:解析:(1)第 1个标识下定义私有常量 PI,常数据成员是使用 const说明的数据成员,因此第 1个标识下应添加“const double PI;”。 (2)常数据成员的初始化只能通过构造函数的成员初始化列表进行,构造函数 CCircle(int radius)应对常数据成员 PI进行初始化,第 2个标识下应改为“CCircle(int radius):PI(CONST_PI)”。 (3)第 3个标识下返回圆面积值,圆面积为半径平方与 PI的乘积值,即第 3标识下应添加“return radius*radius*PI;”。 (4)第 4个标识下返回周长,即第 4表示下应添加“return 2*radius*PI;”。