一、改错题
使用VC6打开考生文件夹下的工程kt15_1,此工程包含一个源程序文件kt15_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果为:
Previous=9,Next=11
源程序文件kt15_1.cpp清单如下:
#include
/*****************found*****************/
intmain()
{ intx=10,y,z;
prevnext(x,y,z);
cout<
return0; }
/*****************found*****************/
voidprevnext(intx,intprev,intnext)
{ /*****************found*****************/
prev=x--;
next=++x; }
【参考答案】
(1)在main()函数前缺少prevnext函数声明
应添加:void prevnext (int,int &,int &);
(2)将void prevnext (int x, int prev,int next)
改为:void prevnext (int x, int &prev,int &next)
(3)将prev=x--;改为:prev=x-1;
【试题解析】
(1)函数在使用前必须已经被定义,main()中调用prevnext函数,而该函数的实现在main()之后,所以在main()之前必须添加该函数的声明;
(2)由运行结果可知,通过函数prevnext调动要改变main()中的实参值,所以prev和next都应为引用型参数;
(3)由运行结果prev=x-1,而源程序的prev=x,x=x-1,这里涉及运算符的优先级问题。
二、简单应用题
请编写一个函数fun(intx,intn),该函数返回x的n次幂的值,其中x和n都是非负整数。x的n次幂的计算方法是1与x相乘n次,如x的20次幂的计算为1与x相乘20次。
注意:部分源程序已存在文件kt15_2.cpp中。
请勿修改主函数main和其他函数中的任何内容,仅在函数fun的花括号中填写若干语句。
如输入3和4,输出结果如下:
34
81
文件kt15_2.cpp清单如下:
#include
doublefun(intx,intn)
{
}
voidmain()
{ intx,n;
cin>>x>>n;
cout<
【参考答案】
if(x==0) return 0;
if(n==0) return 1;
int y=1;
for(int i=0;i
return y;
【试题解析】
本题主要考查用基本控制结构与函数知识解决实际问题的能力。求x的n次幂是数学中常用的运算,编程时在x=0与n=0时需特殊处理。
三、综合应用题
使用VC6打开考生文件夹下的工程kt15_3。此工程包含一个kt15_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的构造函数,该构造函数有三个整型的参数x,y和z,在构造函数中请将x赋值给数据成员c,将y和z分别赋值给基类A1构造函数的参数x和y。请在注释“//**3**”之后添加适当的语句。
(4)完成类A2的成员函数show的定义,该函数调用基类成员函数,输出基类数据成员a和b及类A2自身的数据成员c的值,上述三个值在输出时以空格隔开。请在注释“//**4**”之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
程序输出结果如下:
9
6
962
源程序文件kt15_3.cpp清单如下:
#include
classA
{ inta;
public:
//**1**
intgeta(){returna;} };
classA1:publicA
{ intb;
public:
//**2**
intgetb(){returnb;} };
classA2:publicA1
{ intc;
public:
//**3**
voidshow()
{ //**4** } };
voidmain()
{ A2a(2,6,9);
cout<
cout<
a.show(); }
【参考答案】
(1)A(int x) {a=x;}
(2)A1(int x,int y) : A(y){b=x;}
(3)A2(int x,int y,int z):A1(y,z){c=x;}
(4)cout<
【试题解析】
本题主要考查对继承和派生的掌握程度,涉及派生类构造函数的定义、基类成员函数的访问等内容。派生类的构造函数的格式请牢记,另外派生类构造函数及析构函数的执行顺序也是需要掌握的。
2014年计算机二级C++上机模拟试题及解析.doc
下载Word文档到电脑,方便收藏和打印[全文共2015字]
编辑推荐:
下载Word文档