点击查看:2015年计算机二级考试C++过关练习题及答案汇总
1[填空题]当公有派生时,基类的公有成员成为派生类的( );保护成员成为派生类的( );私有成员成为派生类的( )。当保护派生时,基类的公有成员成为派生类的( );保护成员成为派生类的( );私有成员成为派生类的( )。
参考解析:公有成员、 保护成员、不能直接访问成员、保护成员、保护成员 、不能直接访问成员
2[单选题]设有如图所示的二叉树
则对该二叉树前序遍历的结果是 ( )。
A.FCADBEG B.ACBDFGE C.ABDCGEF D.ACBDFEG
参考答案:A
参考解析:按照二叉树前序遍历的方法:在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且,在遍历左、右子树时,仍然先访问根结点遍历左子树,然后遍历左子树,最后遍历右子树。对本题中的二叉树进行前序遍历的结果应是FCADBEG。
3[单选题]下列关于常量成员的描述中,错误的是( )。
A.常量成员是用关键字const说明的
B.常量成员有常数据成员和常成员函数两种
C.常量数据成员的初始化是在类体内定义它时进行的
D.常量数据成员的值是不可以改变的
参考答案:C
4[单选题]有如下类声明:
class MyBASE{
int k;
public:
void set(int n){ k=n;}
int get( )const{ return k; }
};
class MyDERIVED: protected MyBASE{
protected:
int j;
public:
void set(int m, int n){ MyBASE::set(m); j=n;}
int get( )const{ return MyBASE::get( )+j; }
};
则类MyDERIVED中保护的数据成员和成员函数的个数是( )
A.4 B.3 C.2 D.1
参考答案:B
5[单选题] 有如下类模板定义:
template
classBigNumber{
longn;
public;
BigNumber{Ti}:n(i){}
BigNumberoperator+(BigNumberb){
returnBigNumber{n+b.n);
}
};
已知b1、b2是BigNumber的两个对象,则下列表达中踏误的是( )。
A.b1+b2B.b1+3C.3+b1D.3+3
参考答案:C
参考解析:该题考查了C++模板类和+运算符重载的知识,3+b1时,程序不能将b1转化为整型,所以编译会出错。
6[单选题]在长度为n的有序线性表中进行二分查找,需要的比较次数为( )。
A.log2nB.nlog2nC.n/2D.(n+1)/2
参考答案:A
参考解析:在长度为n的有序线性表中进行二分查找,需要的比较次数为log2n。
7[单选题]
A.2,6B.3,5C.4,7D.3,6
参考答案:D
8[单选题] 要利用C++流实现输入输出的各种格式控制,必须在程序中包含的头文件是( )。
A.fatreamB.istreamC.ostreamD.iomanip
参考答案:A
参考解析:fstream.h包含有:fstream,ifstream,of—stream和fstreambase,以及iostream.h中的所有类。
9[填空题]具有记忆作用的线性表称为_______。
【答案】栈
10[简答题]使用VC++6.0打开考生文件夹下的源程序文件3.cpp,要求编写一个CMyShape类,含有求面积、周长等的纯虚函数,然后编写一个CRectangle类和CCircle类继承CMyShape,并实现求面积、周长的两个函数。在main函数中测试得到下面的结果:
在CMyShape类构造函数内
在CCircle类构造函数内
在CMyShape类构造函数内
在CReetangle类构造函数内
myCircle:Area=314.159Girth=62.8319
myRectangle:Area=900Girth=120
具体要求如下:
(1)定义求面积的纯虚函数,请在注释1后添加适当的语句。
(2)定义求周长的纯虚函数,请在注释2后添加适当的语句。
(3)请在注释3和注释4后添加适当的语句。
注意:除在指定位置添加语句之外,不要改动程序中的其他内容。
试题程序:
#include
#inelude #definePI3.1415926
classCMyPoint
{
public:
intX,y;
CMyPoint(inttx,intty):x(tx),y(ty){}
};
classCMyShape
{
public:
CMyShape(){cout{{"在CMyShape类构造函数内"
<
//********1********
//********2********
protected:
};
classCCircle:publicCMyShape
{
public:
CCircle(CMyPointi,doublej):CMyShape(),arc-
Center(i),radius(j)
{
cout<<"在CCircle类构造函数内"<
}
doubleGetArea()
{
returnPI*radius*radius:
}
doubleGetGirth()
{
return2*PI*radius:
}
private:
CMyPointarcCenter;
doubleradius;
};
classCRectangle:publicCMyShape
{
public:
CRectangle(CMyPointIt,CMyPomtrb):leftTop(it),
rightBottom(rb),CMyShape()
{
cout<<"在CRectangle类构造函数内"<
}
doubleGetArea()
{
intwidth=abs(rightBottom.X-leftTop.x);
intheight=abs(rightBottom.y-leftTop.y);
returnwidth*height:
}
doubleGetGirth()
{
intwidth=abs(rightBottom.x-leftTop.x);
intheight=abs(rightBottom.y-leftTop.y);
return2*(width+height):
}
private:
CMyPointleftTop,rightBottom;
};
voidmain()
{
CMyShape*myShape=NULL;
CCircle*myCircle=newCCircle(CMyPoint(5,5),10);
CRectangle*myRectangle=newCRectangle(CMy—Point(0,O),CMyPoint(30,30));
//********3********
cout<<"myCircle:"<<"Area="<
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |