1、二级 C+机试-82 及答案解析(总分:100.00,做题时间:90 分钟)一、1改错题(总题数:1,分数:30.00)1.使用 VC6 打开考生文件夹下的工程 test30_1,此工程包含一个源程序文件 test30_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果为:Previous=9,Next=11源程序文件 test30_1.cpp 清单如下:#include iostream.h/* found */void prevnext (int,int int main ( )int x=10,y,z;prevnext (x,y,z);cout “Previous=“
2、 y “, Next=“ zend1;return 0;/* found */void prevnext (int x, int prev, int next)/* found */prev=x-;next=+x;(分数:30.00)填空项 1:_二、2简单应用题(总题数:1,分数:40.00)2.请编写一个函数 fun(int x,int n),该函数返回 x 的 n 次幂的值,其中 x 和 n 都是非负整数。x 的 n 次幂的计算方法是 1 与 x 相乘 n 次,如 x 的 20 次幂的计算为 1 与 x 相乘 20 次,注意:部分源程序已存在文件 test30_2.cpp 中。请勿修改主
3、函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填写若干语句。如输入 3 和 4,输出结果如下:3 481文件 test30_2.cpp 清单如下:#includeiostream.hdouble fun(int x, int n)void main ( )int x,n;cinxn;coutfun(x,n)end1;(分数:40.00)_三、3综合应用题(总题数:1,分数:30.00)3.a. show( );(分数:30.00)_二级 C+机试-82 答案解析(总分:100.00,做题时间:90 分钟)一、1改错题(总题数:1,分数:30.00)1.使用 VC6 打开考
4、生文件夹下的工程 test30_1,此工程包含一个源程序文件 test30_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果为:Previous=9,Next=11源程序文件 test30_1.cpp 清单如下:#include iostream.h/* found */void prevnext (int,int int main ( )int x=10,y,z;prevnext (x,y,z);cout “Previous=“ y “, Next=“ zend1;return 0;/* found */void prevnext (int x, int prev, i
5、nt next)/* found */prev=x-;next=+x;(分数:30.00)填空项 1:_ (正确答案:(1)错误:在 main()函数前缺少 prevnext 函数的声明正确:void prevnext(int,int cinxn;coutfun(x,n)end1;(分数:40.00)_正确答案:(double fun(int x, int n)if(x0) return 0;if(n0) return 1;int y1;for(int i0;in;i+) y*x;return y;)解析:解析 本题主要考查考生利用已学的基本控制结构与函数知识,解决实际问题的能力。求 x 的 n次幂是数学中常用的运算,编程时在 x=0 与 n=0 时需特殊处理。三、3综合应用题(总题数:1,分数:30.00)3.a. show( );(分数:30.00)_正确答案:(1)A(int x)ax;(2)A1(int x,int y):A(y)bx;(3)A2(int x,int y,int z):A1(y,x)cx;(4)coutgeta()“ “getb()“ “;coutc“/n“;)解析:解析 本题主要考查考生对继承和派生的掌握程度,涉及派生类构造函数的定义、基类成员函数的访问等内容。派生类的构造函数的格式请牢记,另外派生类构造函数及析构函数的执行顺序也是需要掌握的。