2017年9月計算機二級C++備考試題及答案
同志們在備考計算機二級考試期間,可以適當放松,同時也要靜下心來做好接下來的復習。以下是百分網(wǎng)小編搜索整理的一份計算機二級C++備考試題及答案,供參考練習,希望對大家有所幫助!想了解更多相關(guān)信息請持續(xù)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!
1[填空題]使用class定義的表中,成員的默認訪問權(quán)限是 (1) 的;由struct定義的類中,成員的默認的訪問權(quán)限是 (2) 的。
參考答案:(1)私有、(2)公有
2[單選題]數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,( )沒有專門的軟件對數(shù)據(jù)進行管理。 Ⅰ.人工管理階段 Ⅱ.文件系統(tǒng)階段 Ⅲ.數(shù)據(jù)庫階段
A.僅ⅠB.僅ⅢC.Ⅰ和ⅡD.Ⅱ和Ⅲ
參考答案:A
參考解析:數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,只有人工管理階段,沒有操作系統(tǒng),沒有管理數(shù)據(jù)的軟件,數(shù)據(jù)處理方式是批處理。在文件系統(tǒng)階段,操作系統(tǒng)中已經(jīng)有了專門數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng)。在數(shù)據(jù)庫系統(tǒng)階段,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng),即數(shù)據(jù)庫管理系統(tǒng)。
3[單選題]下列關(guān)于類和對象的敘述中,錯誤的是( )
A.一個類只能有一個對象
B.對象是類的具體實例
C.類是對某一類對象的抽象
D.類和對象的關(guān)系是一種數(shù)據(jù)類型與變量的關(guān)系
參考答案:A
4[單選題] 下列說法正確的是( )。
A.內(nèi)聯(lián)函數(shù)在運行時將該函數(shù)的目標代碼插入每個調(diào)用該函數(shù)的地方
B.內(nèi)聯(lián)函數(shù)在編譯時將該函數(shù)的目標代碼插入每個調(diào)用該函數(shù)的地方
C.類的內(nèi)聯(lián)函數(shù)必須在類體內(nèi)定義
D.類的內(nèi)聯(lián)函數(shù)必須在類體外通過加關(guān)鍵字inline定義
參考答案:B
參考解析:本題考查的是內(nèi)聯(lián)函數(shù)的定義,引入內(nèi)聯(lián)函數(shù)是為了解決程序中函數(shù)調(diào)用的效率問題,是以目標代碼的增加為代價換取時間的節(jié)省;一般函數(shù)在運行時被調(diào)用,而調(diào)用的內(nèi)聯(lián)函數(shù)在編譯時就被替代了,如果不加in-line關(guān)鍵字,則編譯器會將在類說明部分定義的任何函數(shù)都被認定為內(nèi)聯(lián)函數(shù)。
5[單選題]
參考答案:B
6[單選題] 將x+y*z中的“+”用成員函數(shù)重載,“*”是友元函數(shù)重載應(yīng)寫為( )。
A.operator+(operator*(y,z))
B.x.operator+(operator*(y,z))
C.x.operator+(X*(y,z))
D.x+(operator*(y,z))
參考答案:B
參考解析:在定義了重載運算符后的函數(shù)后,函數(shù)operator+重載了運算符“+”。如果在類以外的其他地方定義了一個函數(shù),在類體中用friend對該函數(shù)進行聲明,此函數(shù)就稱為本類的友元函數(shù)。“*”用友元函數(shù)重載就是運算符函數(shù)不作為成員函數(shù),而把它放在類外,“*”被改寫為“operator*”。“+”為成員函數(shù)重載,X.operator+。所以“x+y*z”被改寫為“x.operator+(operator*(y,z))”。
7[單選題]對于類定義:
classA{
public:
virtualvoidfuncl(){}
voidfunc2(){}
};
classB:publicA{
public:
voidfuncl(){cout<<"classBfunc1"<
virtualvoidfunc2(){cout<<"classBfunc2"
<
};
下面正確的敘述是( )。
A.A::func2( )和B::func1( )都是虛函數(shù)
B.A::rune2( )和B::func1( )都不是虛函數(shù)
C.B::func1( )是虛函數(shù),而A::fune2( )不是虛函數(shù)
D.B::func1( )不是虛函數(shù),而A::func2( )是虛函數(shù)
參考答案:C
參考解析:基類中說明的虛函數(shù),在派生類中自然就是虛函數(shù),所以類B中funcl()是虛函數(shù);而類A中的func2()沒有被關(guān)鍵字virtual修飾;所以不是虛函數(shù)。
8[單選題] 軟件詳細設(shè)計產(chǎn)生的圖如下:
該圖是( )。
A.N—S圖B.PAD圖C.程序流程圖D.E—R圖
參考答案:C
參考解析:N—S圖提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,所以A不對。PAD圖是問題分析圖,它是繼承程序流程圖和方框圖之后提出的'又一種主要用于描述軟件詳細設(shè)計的圖形表示工具,所以B不對。E—R圖是數(shù)據(jù)庫中的用于表示E—R模型的圖示工具,所以D不對。根據(jù)圖中所示表示方法是進行軟件詳細設(shè)計時使用的程序流程圖。
9[單選題] 設(shè)int a=1,b=2;,則(a++)+b和a+++b這兩個表達式的值分別為( )。
A.3,3B.3,4C.4,3D.4,4
參考答案:A
參考解析:單目的++運算優(yōu)先級高于雙目的+運算,不過++的結(jié)合性是自右向左的,而+是自左向右的,所以上面的兩個表達式都是先計算a+b的值之后,a再自加1。
2[單選題] 若有說明:inta[3][4];則對a數(shù)組元素的非法引用是( )。
A.a[0][2*1]B.a[1][3]C.a[4-2][0]D.a[0][4]
參考答案:D
參考解析:數(shù)組的下標從0開始,至n-1為止,因此選項D是正確答案。
3[單選題]下列關(guān)于派生類敘述中,錯誤的是
A.派生類至少要有一個基類
B.派生類中包括了從基類繼承的成員
C.一個派生類可以作為另一個派生類的基類
D.基類成員被派生類繼承以后訪問權(quán)限保持不變
參考答案:D
5[單選題] 層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫劃分原則是( )。
A.己錄長度B.文件的大小C.聯(lián)系的復雜程度D.數(shù)據(jù)之間的聯(lián)系方式
參考答案:D
參考解析:層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),網(wǎng)狀模型是一個不加任何條件限制的無向圖,關(guān)系模型采用二維表來表示,所以三種數(shù)據(jù)庫的劃分原則是數(shù)據(jù)之間的聯(lián)系方式。
6[單選題]在類的定義中,用于為對象分配內(nèi)存空間,對類的數(shù)據(jù)成員進行初始化并執(zhí)行其他內(nèi)部管理操作的函數(shù)是
A.友元函數(shù) B.虛函數(shù) C.構(gòu)造函數(shù) D.析構(gòu)函數(shù)
參考答案:C
7[單選題] 下列關(guān)于運算符重載的描述中,錯誤的是( )。
A.::運算符不能重載
B.類型轉(zhuǎn)換運算符只能作為成員函數(shù)重載
C.將運算符作為非成員函數(shù)重載時必須定義為友元
D.重載口運算符應(yīng)完成“下標訪問”操作
參考答案:C
參考解析:除了·、*、→*、::、?:這五個運算符外,其他運算符都可以重載。=、[]、()、→以及所有的類型轉(zhuǎn)換運算符只能作為成員函數(shù)重載。口作為成員函數(shù)重載時,應(yīng)完成“下標訪問”操作,使得向指定下標處的元素賦值或取值成為可能。
8[單選題] 由于常對象不能被更新,因此( )。
A.通過常對象只能調(diào)用它的常成員函數(shù)
B.通過常對象只能調(diào)用靜態(tài)成員函數(shù)
C.常對象的成員都是常成員
D.通過常對象可以調(diào)用任何不改變對象值的成員函數(shù)
參考答案:A
參考解析:本題考查常對象的基本知識,常對象只能調(diào)用它的常成員函數(shù),而不能調(diào)用非const函數(shù),常對象的成員函數(shù)不一定都是常成員函數(shù),只需保證其數(shù)據(jù)成員是常數(shù)據(jù)成員即可。所以本題選A。
10[簡答題]使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運行時有錯,請改正其中的錯誤,使程序正確運行,其輸出的結(jié)果為
30
130
注意:錯誤的語句在//******error******的下面,修改該語句即可。
試題程序:
#include
inta=10;
classTC
{
public:
TC()
{
a=b=0:
}
voiddisplay()
{
//******error******
cout<
}
voidfunc(inta)
{
//******error******
a+=a:
}
voidfunc2()
{
//******error******
a+=a:
}
private:
inta,b;
};
voidmain()
{
TCobj;
obj.func(3);
obj.display();
obj.func2();
obj.display();
}
參考解析:
(1)應(yīng)改為“cout<
(2)應(yīng)改為“this->a+=a;”。
(3)應(yīng)改為“a+=::a;”。
【解析】成員函數(shù)display打印變量a和b的值,即cout輸出a和b的值,cout流中的數(shù)據(jù)是用流插入運算符“<<”順序加入的,因此“<”不正確,第1處的語句應(yīng)改成“cout
【2017年9月計算機二級C++備考試題及答案】相關(guān)文章: