點擊查看:2015年計算機二級考試C++過關(guān)練習題及答案匯總
1[填空題]當公有派生時,基類的公有成員成為派生類的( );保護成員成為派生類的( );私有成員成為派生類的( )。當保護派生時,基類的公有成員成為派生類的( );保護成員成為派生類的( );私有成員成為派生類的( )。
參考解析:公有成員、 保護成員、不能直接訪問成員、保護成員、保護成員 、不能直接訪問成員
2[單選題]設(shè)有如圖所示的二叉樹
則對該二叉樹前序遍歷的結(jié)果是 ( )。
A.FCADBEG B.ACBDFGE C.ABDCGEF D.ACBDFEG
參考答案:A
參考解析:按照二叉樹前序遍歷的方法:在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹;并且,在遍歷左、右子樹時,仍然先訪問根結(jié)點遍歷左子樹,然后遍歷左子樹,最后遍歷右子樹。對本題中的二叉樹進行前序遍歷的結(jié)果應是FCADBEG。
3[單選題]下列關(guān)于常量成員的描述中,錯誤的是( )。
A.常量成員是用關(guān)鍵字const說明的
B.常量成員有常數(shù)據(jù)成員和常成員函數(shù)兩種
C.常量數(shù)據(jù)成員的初始化是在類體內(nèi)定義它時進行的
D.常量數(shù)據(jù)成員的值是不可以改變的
參考答案: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中保護的數(shù)據(jù)成員和成員函數(shù)的個數(shù)是( )
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轉(zhuǎn)化為整型,所以編譯會出錯。
6[單選題]在長度為n的有序線性表中進行二分查找,需要的比較次數(shù)為( )。
A.log2nB.nlog2nC.n/2D.(n+1)/2
參考答案:A
參考解析:在長度為n的有序線性表中進行二分查找,需要的比較次數(shù)為log2n。
7[單選題]
A.2,6B.3,5C.4,7D.3,6
參考答案:D
8[單選題] 要利用C++流實現(xiàn)輸入輸出的各種格式控制,必須在程序中包含的頭文件是( )。
A.fatreamB.istreamC.ostreamD.iomanip
參考答案:A
參考解析:fstream.h包含有:fstream,ifstream,of—stream和fstreambase,以及iostream.h中的所有類。
9[填空題]具有記憶作用的線性表稱為_______。
【答案】棧
10[簡答題]使用VC++6.0打開考生文件夾下的源程序文件3.cpp,要求編寫一個CMyShape類,含有求面積、周長等的純虛函數(shù),然后編寫一個CRectangle類和CCircle類繼承CMyShape,并實現(xiàn)求面積、周長的兩個函數(shù)。在main函數(shù)中測試得到下面的結(jié)果:
在CMyShape類構(gòu)造函數(shù)內(nèi)
在CCircle類構(gòu)造函數(shù)內(nèi)
在CMyShape類構(gòu)造函數(shù)內(nèi)
在CReetangle類構(gòu)造函數(shù)內(nèi)
myCircle:Area=314.159Girth=62.8319
myRectangle:Area=900Girth=120
具體要求如下:
(1)定義求面積的純虛函數(shù),請在注釋1后添加適當?shù)恼Z句。
(2)定義求周長的純虛函數(shù),請在注釋2后添加適當?shù)恼Z句。
(3)請在注釋3和注釋4后添加適當?shù)恼Z句。
注意:除在指定位置添加語句之外,不要改動程序中的其他內(nèi)容。
試題程序:
#include
#inelude #definePI3.1415926
classCMyPoint
{
public:
intX,y;
CMyPoint(inttx,intty):x(tx),y(ty){}
};
classCMyShape
{
public:
CMyShape(){cout{{"在CMyShape類構(gòu)造函數(shù)內(nèi)"
<
//********1********
//********2********
protected:
};
classCCircle:publicCMyShape
{
public:
CCircle(CMyPointi,doublej):CMyShape(),arc-
Center(i),radius(j)
{
cout<<"在CCircle類構(gòu)造函數(shù)內(nèi)"<
}
doubleGetArea()
{
returnPI*radius*radius:
}
doubleGetGirth()
{
return2*PI*radius:
}
private:
CMyPointarcCenter;
doubleradius;
};
classCRectangle:publicCMyShape
{
public:
CRectangle(CMyPointIt,CMyPomtrb):leftTop(it),
rightBottom(rb),CMyShape()
{
cout<<"在CRectangle類構(gòu)造函數(shù)內(nèi)"<
}
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="<
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |