第 1 頁:選擇題 |
第 5 頁:基本操作題 |
第 6 頁:簡單應(yīng)用題 |
第 7 頁:綜合應(yīng)用題 |
點擊查看:2016年9月計算機(jī)二級C++上機(jī)試題及答案匯總
一、選擇題(每小題1分,共40分)
1有如下程序:
#include
using namespace std;
class Base{
protected:
Base(){cout<<’A’;}
Base(char C){cout<
};
class Derived:public Base{
public:
Derived(char C){tout<
};
int main(){
Derived dl(’B’);
retum 0;
}
執(zhí)行這個程序的輸出結(jié)果是( )。
A.BB.BAC.ABD.BB
參考答案:C
參考解析:本題考查派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù).在定義一個派生類的對象時,先調(diào)用基類的構(gòu)造函數(shù),然后再執(zhí)行派生類的構(gòu)造函數(shù);對象釋放時,先執(zhí)行派生類的析構(gòu)函數(shù),再執(zhí)行基類的析構(gòu)函數(shù)。本題中定義了一個派生類對象d1,首先執(zhí)行基類的構(gòu)造函數(shù),輸出A;然后執(zhí)行派生類的構(gòu)造函數(shù),輸出B。所以答案為c。
2下列符號中能夠作為C++標(biāo)識符的是( )。
A.CoflstB.2aC._shapeD..Count
參考答案:C
參考解析:本題考查c++標(biāo)識符的命名規(guī)則,其規(guī)則有如下幾點:①所有標(biāo)識符必須由字母、數(shù)字或下畫線組成,且必須由字母或下畫線開頭;②所有標(biāo)識符不能使用c++已有的關(guān)鍵字;③大、小寫字母表示不同意義,即代表不同的標(biāo)識符。選項A是關(guān)鍵字,選項B不能以數(shù)字開頭,選項D包含了字符”一”,且不能以此字符開頭。故答案為C。
3有如下程序:
#include
using namespace std;
class Base
{
private:
void funl()const{tout<<”funl”;}
protected:
void fun2()const{tout<<”fun2”;}
public:
void fun3()const{cout<<”fhll3”;}
};
class Derived:protected Base
{
public:
void fhn4()const{cout<<”filn4”;}
};
int main()
{
Derived obj;
obj.funl();//①
obj.fun2();//②
obj.furd();//③
obj.fun4();//④
return U:
}
其中有語法錯誤的語句是( )。
A.①②③④B.①②③C.②③④D.①④
參考答案:B
考解析:本題考查保護(hù)繼承中派生類對基類的訪問屬性,受保護(hù)繼承中,基類的公用成員和保護(hù)成員在派生類中成了保護(hù)成員,其私有成員仍為基類私有,保護(hù)基類的所有成員在派生類中都被保護(hù)起來,在類外不能訪問,所以①②③錯誤。
4有如下程序:
#include
using namespace std;
class Instrument{
public:
virtual void Display()=0;
};
class Pian0:public Instrument}
public:
void Display(){/*函數(shù)體略*" >
};
intmain(){
Instrument S;
Instrument*P=0:
//…;
return 0;
}
下列敘述中正確的是( )。
A.語句“Insturment*P=0;”編譯時出錯
B.語句“Instnunent s;”編譯時出錯
C.類Pian0中的Display函數(shù)不是虛函數(shù)
D.類Instrument是一個虛基類
參考答案:B
參考解析:本題考查純虛函數(shù)和抽象類,純虛函數(shù)是在聲明虛函數(shù)時被“初始化”為0的函數(shù),包含純虛函數(shù)的類為抽象類,抽象類不能被實例化,所以語句“Instrmnent s;”在編譯時出錯。
5如下函數(shù)模板:
templateT square(T x){return x*x;} 其中T是( )。
A.函數(shù)形參B.函數(shù)實參C.模板形參D.模板實參
參考答案:C
參考解析:本題考查模板函數(shù)的基本概念,根據(jù)模板函數(shù)的定義,T是模板形參,所以答案為C。
6為了提高函數(shù)調(diào)用的實際運行速度,可以將較簡單的函數(shù)定義為( )。
A.內(nèi)聯(lián)函數(shù)B.重載函數(shù)C.遞歸函數(shù)D.函數(shù)模板
參考答案:A
參考解析:一般函數(shù)進(jìn)行調(diào)用時,要將程序執(zhí)行權(quán)轉(zhuǎn)到被調(diào)用函數(shù)中.然后再返回到調(diào)用它的函數(shù)中;而內(nèi)聯(lián)函數(shù)在調(diào)用時,是將調(diào)用表達(dá)式用內(nèi)聯(lián)函數(shù)體來替換,一般只將{將規(guī)模很小而使用頻繁的函數(shù)聲明為內(nèi)聯(lián)函數(shù),可以避免函數(shù)調(diào)用時間開銷,從而提高運行速度。
7有如下程序:
#inClude using namespaCe std; Class Point{
publiC:
statiC int number;
publiC:
Point( )t.number++;} ~Point( ){number--;}
}; , int P0int::number=0;
int main( ){
Point *ptr:
Point A,B; Point*ptr_point=new Point[3]; ptr=ptr_point;’
}
Point C;
Cout<
return 0; }
執(zhí)行這個程序的輸出結(jié)果是( )。
A.3B.4C.6D.7
參考答案:C
參考解析:本題考查默認(rèn)構(gòu)造函數(shù).題目中定義.個對象A、B以及對象數(shù)組Point[3],又定義了對象C,共執(zhí)行6次構(gòu)造函數(shù),number變?yōu)榱?,所以本題答案為C。
8有三個關(guān)系R、S和T如下.
由關(guān)系R和s通過運算得到關(guān)系T,則所使用的運算為( )。
A.并B.自然連接C.笛卡爾積D.交
參考答案:D
參考解析:自然連接是一種特殊的等值連接,它要求兩個關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉,所以8錯誤。笛卡爾積是用R集合中元素為第一元素,s集合中元素為第二元素構(gòu)成的有序?qū)Γ訡錯誤。根據(jù)關(guān)系T可以很明顯地看出是從關(guān)系R 與關(guān)系s中取得相同的關(guān)系組所以取得是交運算,選擇D。
9下列符號中,正確的c++標(biāo)識符是( )。
A.enumB.2bC.f00一9D._32
參考答案:D
參考解析:本題考查c++標(biāo)識符的命名規(guī)則,規(guī)定如下:①所有標(biāo)識符可以由字母、數(shù)字和下畫線組成,且必須以字母或F畫線開頭;②c++的關(guān)鍵字不能作為標(biāo)識符;③大、小寫字母表示不同意義,即代表不同的標(biāo)識符,如mun和Mu0。A選項是C++的關(guān)鍵字,B選項不能以數(shù)字開頭,C選項“一”不能用于組成標(biāo)識符。
10下列關(guān)于C++預(yù)定義流對象的敘述中,正確的是( )。
A.Cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對象
B.Cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類
C.Cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對象
D.Cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類
參考答案:A
參考解析:cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對象,tOUt是C++預(yù)定義的標(biāo)準(zhǔn)輸出流對象。
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |