距離2016年9月全國(guó)計(jì)算機(jī)等級(jí)考試還有兩個(gè)多月的時(shí)間,希望考生們做好沖刺備考計(jì)劃,有效率的備考。下面是唯學(xué)網(wǎng)小編為大家整理的2016年計(jì)算機(jī)二級(jí)考試C++考前測(cè)試題及答案,以供各位考生備考使用。另外,還要提醒考生在規(guī)定時(shí)間內(nèi)報(bào)名。
一、選擇題(每小題1分,共40分)
1下列有關(guān)內(nèi)聯(lián)函數(shù)的敘述中,正確的是( )。
A.內(nèi)聯(lián)函數(shù)在調(diào)用時(shí)發(fā)生控制轉(zhuǎn)移
B.內(nèi)聯(lián)函數(shù)必須通過(guò)關(guān)鍵字inline來(lái)定義
C.內(nèi)聯(lián)函數(shù)是通過(guò)編譯器來(lái)實(shí)現(xiàn)的
D.內(nèi)聯(lián)函數(shù)函數(shù)體的最后一條語(yǔ)句必須是return語(yǔ)句
參考答案:C
參考解析:一般函數(shù)進(jìn)行調(diào)用時(shí),要將程序執(zhí)行權(quán)轉(zhuǎn)到被調(diào)用函數(shù)中,然后再返回到調(diào)用它的函數(shù)中;而內(nèi)聯(lián)函數(shù)在調(diào)用時(shí),是將調(diào)用表達(dá)式用內(nèi)聯(lián)函數(shù)體來(lái)替換,所以在調(diào)用時(shí)不發(fā)生控制轉(zhuǎn)移。在類(lèi)內(nèi)部實(shí)現(xiàn)的函數(shù)都是內(nèi)聯(lián)函數(shù),可以不用inline定義;只有函數(shù)外部定義的內(nèi)聯(lián)函數(shù)才必須加關(guān)鍵字inline。編譯系統(tǒng)并非對(duì)內(nèi)聯(lián)函數(shù)必須使用內(nèi)聯(lián),而且根據(jù)具體情況決定。內(nèi)聯(lián)函數(shù)不是必須要有返回值的。
2語(yǔ)句int*P=&k;定義了指針P,與這個(gè)語(yǔ)句等效的語(yǔ)句序列是( )。
A.int* p;P=&k;B.int * P;P=k;C.int * p;* P=&k;D.int * p;* P=k;
參考答案:A
參考解析:本題考查指針和地址,題目中定義了一個(gè)指向變量k的一個(gè)指針p,那么與題目中等效的表達(dá)式A選項(xiàng),即先定義一個(gè)指向整型的指針,然后指向k的地址。
3有如下程序:
#include
using namespace std;
class A
{
public:
A(){cout<<”A”;}
-A(){cout<<”-A”;}
};
class B:public A
{
A*P;
public:
B(){cout<<”B”;P=new A();}
-B(){cout<<”~B”;delete p;}
};
int main()
{
B obj;
return 0;
}
執(zhí)行這個(gè)程序的輸出結(jié)果是( )。
A.BAA~A~B~AB.ABA~B~A~AC.BAA~B~A~AD.ABA~A~B~A
參考答案:B
參考解析:本題考查派生類(lèi)的構(gòu)造函數(shù)和析構(gòu)函數(shù),在定義一個(gè)派生類(lèi)的對(duì)象時(shí),先調(diào)用基類(lèi)的構(gòu)造函數(shù),然后再執(zhí)行派生類(lèi)的構(gòu)造函數(shù)。對(duì)象釋放時(shí),先執(zhí)行派生類(lèi)的析構(gòu)函數(shù),再執(zhí)行基類(lèi)的析構(gòu)函數(shù)。所以本題答案為B。
4有如下類(lèi)定義:
class AA
{
im a:
public:
int getRef()const{return&a;}//①
int getValue()const{return a;}//②
void set(int n)const{a=n;}//③
friend void show(AA aA.const{cout<
};
其中四個(gè)函數(shù)的定義中正確的是( )。
A.①B.②C.③D.④
參考答案:B
參考解析:本題考查常成員函數(shù),常成員函數(shù)只能引用本類(lèi)中的數(shù)據(jù)成員,而不能修改它。所以本題答案為B。
5若要對(duì)Data類(lèi)中重載的加法運(yùn)算符成員函數(shù)進(jìn)行聲明,下列選項(xiàng)中正確的是( )。
A.Data+(DatA.;B.Data operator+(DatA.;C.Data+operator(DatA.;D.operator+(Data,DatA.;
參考答案:B
參考解析:根據(jù)重載加法運(yùn)算符的格式,只有B選項(xiàng)正確。
6有如下數(shù)組聲明:int num[10];,下標(biāo)值引用錯(cuò)誤的是( )。
A.num[10]B.num[5]C.num[3]D.hum[o]
參考答案:A
參考解析:數(shù)組定義中的數(shù)字指的是數(shù)組的大小,而下標(biāo)是從0開(kāi)始的,所以本題中數(shù)組的最后一個(gè)元素是num[9]。
7將前綴運(yùn)算符“--”重載為非成員函數(shù),下列原型中能正確用于類(lèi)中說(shuō)明的是( )。
A.DeCr&operator--(int);B.DeCr operator--(DeCr&,int);C.friend DeCr&operator--(DeCr&);D.friend DeCr operator--(DeCr&,int);
參考答案:C
參考解析:把“--”運(yùn)算符重載為非成員(友元)函數(shù)格式:friend<返回類(lèi)型>operator--()是前綴的格式;friend<返回類(lèi)型>operator--(int)是后綴的格式。當(dāng)然也可以有參數(shù)如題中C選項(xiàng)所示。
8如果派生類(lèi)以proteCted方式繼承基類(lèi),則原基類(lèi)的proteCted成員和publiC成員在派生類(lèi)中的訪(fǎng)問(wèn)屬性分別是( )。
A.publiC和publiCB.publiC和proteCtedC.proteCted和publiCD.proteCted和proteCted
參考答案:D
參考解析:本題考查保護(hù)繼承中派生類(lèi)對(duì)基類(lèi)的訪(fǎng)問(wèn)屬性,在受保護(hù)繼承中,基類(lèi)的公用成員和保護(hù)成員在派生類(lèi)中成了保護(hù)成員,其私有成員仍為基類(lèi)私有,所以本題答案為D。
9在函數(shù)中,可以用aut0、extem、register和static這四個(gè)關(guān)鍵字中的一個(gè)來(lái)說(shuō)明變量的存儲(chǔ)類(lèi)型,如果不說(shuō)明存儲(chǔ)類(lèi)型,則默認(rèn)的存儲(chǔ)類(lèi)型是( )。
A.autoB.externC.registerD.static
參考答案:A
參考解析:變量的存儲(chǔ)方法分為靜態(tài)存儲(chǔ)和動(dòng)態(tài)存儲(chǔ)兩大類(lèi),包含4種:自動(dòng)的(auto)、靜態(tài)的(static)、寄存器的(register)、外部的(extem)。變量如果沒(méi)有說(shuō)明存儲(chǔ)類(lèi)型,那么默認(rèn)就是aut0。
10下列程序的輸出結(jié)果是( )。
#include
int rain(iltl a,int B)
{
if(a
else retum b;
retum 0;
}
void main()
{
eout<
}
A.0B.1C.2D.3
參考答案:B
參考解析:本題考查的是函數(shù)的調(diào)用,第一次調(diào)用min(2,3),因?yàn)?<3,所以返回值為2,第二次調(diào)用min(1,2),因?yàn)閘<2,所以返回1。
|
|
||
|
|