- 相關(guān)推薦
2016最新計(jì)算機(jī)二級(jí)C++上機(jī)試題及答案
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í)行這個(gè)程序的輸出結(jié)果是( )。
A.BB.BAC.ABD.BB
參考答案:C
參考解析:本題考查派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù).在定義一個(gè)派生類的對(duì)象時(shí),先調(diào)用基類的構(gòu)造函數(shù),然后再執(zhí)行派生類的構(gòu)造函數(shù);對(duì)象釋放時(shí),先執(zhí)行派生類的析構(gòu)函數(shù),再執(zhí)行基類的析構(gòu)函數(shù)。本題中定義了一個(gè)派生類對(duì)象d1,首先執(zhí)行基類的構(gòu)造函數(shù),輸出A;然后執(zhí)行派生類的構(gòu)造函數(shù),輸出B。所以答案為c。
2下列符號(hào)中能夠作為C++標(biāo)識(shí)符的是( )。
A.CoflstB.2aC._shapeD..Count
參考答案:C
參考解析:本題考查c++標(biāo)識(shí)符的命名規(guī)則,其規(guī)則有如下幾點(diǎn):①所有標(biāo)識(shí)符必須由字母、數(shù)字或下畫線組成,且必須由字母或下畫線開頭;②所有標(biāo)識(shí)符不能使用c++已有的關(guān)鍵字;③大、小寫字母表示不同意義,即代表不同的標(biāo)識(shí)符。選項(xiàng)A是關(guān)鍵字,選項(xiàng)B不能以數(shù)字開頭,選項(xiàng)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:
}
其中有語(yǔ)法錯(cuò)誤的語(yǔ)句是( )。
A.①②③④B.①②③C.②③④D.①④
參考答案:B
考解析:本題考查保護(hù)繼承中派生類對(duì)基類的訪問(wèn)屬性,受保護(hù)繼承中,基類的公用成員和保護(hù)成員在派生類中成了保護(hù)成員,其私有成員仍為基類私有,保護(hù)基類的所有成員在派生類中都被保護(hù)起來(lái),在類外不能訪問(wèn),所以①②③錯(cuò)誤。
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.語(yǔ)句“Insturment*P=0;”編譯時(shí)出錯(cuò)
B.語(yǔ)句“Instnunent s;”編譯時(shí)出錯(cuò)
C.類Pian0中的Display函數(shù)不是虛函數(shù)
D.類Instrument是一個(gè)虛基類
參考答案:B
參考解析:本題考查純虛函數(shù)和抽象類,純虛函數(shù)是在聲明虛函數(shù)時(shí)被“初始化”為0的函數(shù),包含純虛函數(shù)的類為抽象類,抽象類不能被實(shí)例化,所以語(yǔ)句“Instrmnent s;”在編譯時(shí)出錯(cuò)。
5如下函數(shù)模板:
templateT square(T x){return x*x;} 其中T是( )。
A.函數(shù)形參B.函數(shù)實(shí)參C.模板形參D.模板實(shí)參
參考答案:C
參考解析:本題考查模板函數(shù)的基本概念,根據(jù)模板函數(shù)的定義,T是模板形參,所以答案為C。
6為了提高函數(shù)調(diào)用的實(shí)際運(yùn)行速度,可以將較簡(jiǎn)單的函數(shù)定義為( )。
A.內(nèi)聯(lián)函數(shù)B.重載函數(shù)C.遞歸函數(shù)D.函數(shù)模板
參考答案:A
參考解析:一般函數(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)替換,一般只將{將規(guī)模很小而使用頻繁的函數(shù)聲明為內(nèi)聯(lián)函數(shù),可以避免函數(shù)調(diào)用時(shí)間開銷,從而提高運(yùn)行速度。
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í)行這個(gè)程序的輸出結(jié)果是( )。
A.3B.4C.6D.7
參考答案:C
參考解析:本題考查默認(rèn)構(gòu)造函數(shù).題目中定義.個(gè)對(duì)象A、B以及對(duì)象數(shù)組Point[3],又定義了對(duì)象C,共執(zhí)行6次構(gòu)造函數(shù),number變?yōu)榱?,所以本題答案為C。
8有三個(gè)關(guān)系R、S和T如下.
2016年9月計(jì)算機(jī)二級(jí)C++上機(jī)考試沖刺試題(2)
由關(guān)系R和s通過(guò)運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為( )。
A.并B.自然連接C.笛卡爾積D.交
參考答案:D
參考解析:自然連接是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉,所以8錯(cuò)誤。笛卡爾積是用R集合中元素為第一元素,s集合中元素為第二元素構(gòu)成的有序?qū),所以C錯(cuò)誤。根據(jù)關(guān)系T可以很明顯地看出是從關(guān)系R 與關(guān)系s中取得相同的關(guān)系組所以取得是交運(yùn)算,選擇D。
9下列符號(hào)中,正確的c++標(biāo)識(shí)符是( )。
A.enumB.2bC.f00一9D._32
參考答案:D
參考解析:本題考查c++標(biāo)識(shí)符的命名規(guī)則,規(guī)定如下:①所有標(biāo)識(shí)符可以由字母、數(shù)字和下畫線組成,且必須以字母或F畫線開頭;②c++的關(guān)鍵字不能作為標(biāo)識(shí)符;③大、小寫字母表示不同意義,即代表不同的標(biāo)識(shí)符,如mun和Mu0。A選項(xiàng)是C++的關(guān)鍵字,B選項(xiàng)不能以數(shù)字開頭,C選項(xiàng)“一”不能用于組成標(biāo)識(shí)符。
10下列關(guān)于C++預(yù)定義流對(duì)象的敘述中,正確的是( )。
A.Cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象
B.Cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類
C.Cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象
D.Cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類
參考答案:A
參考解析:cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象,tOUt是C++預(yù)定義的標(biāo)準(zhǔn)輸出流對(duì)象。
11下列情況中,不會(huì)調(diào)用拷貝構(gòu)造函數(shù)的是( )。
A.用一個(gè)對(duì)象去初始化同一類的另一個(gè)新對(duì)象時(shí)
B.將類的一個(gè)對(duì)象賦值給該類的另一個(gè)對(duì)象時(shí)
C.函數(shù)的形參是類的對(duì)象,調(diào)用函數(shù)進(jìn)行形參和實(shí)參結(jié)合時(shí)
D.函數(shù)的返回值是類的對(duì)象,函數(shù)執(zhí)行返回調(diào)用時(shí)
參考答案:B
參考解析:本題考查復(fù)制構(gòu)造函數(shù),在以下3種情況下使用:①程序中需要新建立一個(gè)對(duì)象,并用另一個(gè)對(duì)象對(duì)它初始化;②函數(shù)的參數(shù)為類的對(duì)象;③函數(shù)的返回值是類的對(duì)象。其中B選項(xiàng)是由賦值運(yùn)算符重載實(shí)現(xiàn)的。
12下列敘述中正確的是( )。
A.線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間是相同的
B.線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要多于順序存儲(chǔ)結(jié)構(gòu)
C.線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)
D.線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)在存儲(chǔ)空間的需求上沒有可比性
參考答案:B
參考解析:線性鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中每個(gè)結(jié)點(diǎn)都由數(shù)據(jù)域與指針域兩部分組成,增加了存儲(chǔ)空間,所以一般要多于順序存儲(chǔ)結(jié)構(gòu)。
13類的析構(gòu)函數(shù)的作用是( )。
A.一般成員函數(shù)的初始化B.類的初始化C.對(duì)象的初始化D.刪除類創(chuàng)建的對(duì)象
參考答案:D
參考解析:析構(gòu)函數(shù)就是用來(lái)釋放對(duì)象的.它的調(diào)用完成之后,對(duì)象也就消失了,相應(yīng)的內(nèi)存空間也被釋放了。
14下列運(yùn)算符不能重載為友元函數(shù)的是( )。
A.=()( )->B. + - ++ --C.> < >= <=D.+= -= *=/=
參考答案:A
參考解析:關(guān)于運(yùn)算符重載為友元函數(shù)有如下規(guī)定:①一般情況下,單目運(yùn)算符最好重載為類的成員函數(shù),雙目運(yùn)算符則最好重載為類的友元函數(shù);②雙目運(yùn)算符“=、()、[]、->”不能重載為類的友元函數(shù)。所以本題答案為A。
15下面關(guān)于運(yùn)算符重載的描述錯(cuò)誤的是( )。
A.運(yùn)算符重載不能改變操作數(shù)的個(gè)數(shù)、運(yùn)算符的優(yōu)先級(jí)、運(yùn)算符的結(jié)合性和運(yùn)算符的語(yǔ)法結(jié)構(gòu)
B.不是所有的運(yùn)算符都可以進(jìn)行重載
C.運(yùn)算符函數(shù)的調(diào)用必須使用關(guān)鍵字operat。
D.在C+十語(yǔ)言中不可通過(guò)運(yùn)算符重載創(chuàng)造出新的運(yùn)算符
參考答案:C
參考解析:例如“::”運(yùn)算符就不能被重載;通過(guò)重載可以創(chuàng)造新的運(yùn)算方式,但是不能臆造新的運(yùn)算符;定義的時(shí)候必須使用關(guān)鍵字0perator,而調(diào)用時(shí)可直接使用運(yùn)算符。
16當(dāng)使用fstream流類定義一個(gè)流對(duì)象并打開一個(gè)磁盤文件時(shí),文件的隱含打開方式為( )。
A.ios::inB.ios::0utC.ios::in I ios::0utD.以上都不對(duì)
參考答案:D
參考解析:
使用fstream類建立文件流必須定義打開方式,否則編譯器無(wú)法判斷該文件流是讀還是寫。
17由于常對(duì)象不能被更新,因此( )。
A.通過(guò)常對(duì)象只能調(diào)用它的常成員函數(shù)
B.通過(guò)常對(duì)象只能調(diào)用靜態(tài)成員函數(shù)
C.常對(duì)象的成員都是常成員
D.通過(guò)常對(duì)象可以調(diào)用任何不改變對(duì)象值的成員函數(shù)
參考答案:A
參考解析:本題考查常對(duì)象的基本知識(shí),常對(duì)象只能調(diào)用它的常成員函數(shù),而不能調(diào)用非const函數(shù),常對(duì)象的成員函數(shù)不一定都是常成員函數(shù),只需保證其數(shù)據(jù)成員是常數(shù)據(jù)成員即可。所以本題選A。
18支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是( )。
A.棧B.樹C.隊(duì)列D.二叉樹
參考答案:A
參考解析:棧支持子程序調(diào)用棧是一種只能在一端進(jìn)行插入或刪除的線性表,在主程序凋用子函數(shù)時(shí)要首先保存主程序當(dāng)前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子程序.最終把子程序的執(zhí)行結(jié)果返回到主程序中調(diào)用子程序的位置,繼續(xù)向下執(zhí)行,這種調(diào)用符合棧的特點(diǎn),因此本題的答案為A。
19有如下類定義:
class B
{
public:void funl(){}
private:void fun2(){}
protected:void fun3(){}
};
class D:public B
j
protected:void fun4(){}
};
若obj是類D的對(duì)象,則下列語(yǔ)句中不違反訪問(wèn)控制權(quán)限的是( )。
A.obj.fun1();B.obj.fun2();C.obj.tim3();D.ohj.fun4();
參考答案:A
參考解析:本題考查公用繼承對(duì)基類成員的訪問(wèn)屬性。在公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有的訪問(wèn)屬性,其私有成員仍為基類私有。所以在本題中,在類外引用成員函數(shù)時(shí),派生對(duì)象只能引用基類的公用成員函數(shù)fun1,故本題答案為A。
20有如下語(yǔ)句序列:
Char str[10];Cin>>str;
當(dāng)從鍵盤輸入“I love this game”時(shí),str中的字符串是( )。
A.”I love this game”B.”I love thi”C.”I love”D.”I”
參考答案:D
參考解析:cin是c++預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象,cin用來(lái)接收字符串時(shí),遇“空格”、“TAB”、“回車”時(shí)都會(huì)結(jié)束。所以本題答案為D。
21繼承機(jī)制的作用是( )。
A.信息隱藏B.數(shù)據(jù)封裝C.定義新類D.數(shù)據(jù)抽象
參考答案:C
參考解析:數(shù)據(jù)封裝就是數(shù)據(jù)抽象,即信息隱藏;而繼承是實(shí)現(xiàn)程序復(fù)用的基礎(chǔ)。
)22模板對(duì)類型的參數(shù)化提供了很好的支持,因此( )。
A.類模板的主要作用是生成抽象類
B.類模板實(shí)例化時(shí),編譯器將根據(jù)給出的模板實(shí)參生成一個(gè)類
C.在類模板中的數(shù)據(jù)成員都具有同樣類型
D.類模板中的成員函數(shù)都沒有返回值
參考答案:B
參考解析:本題考查類模板的基本概念。類模板的定義和聲明都以關(guān)鍵字template開頭。關(guān)鍵字后面是一個(gè)用逗號(hào)分隔的模板參數(shù)表,用尖括號(hào)“<>”括起來(lái),這個(gè)表被稱為類模板的模板參數(shù)表。類模板是類的抽象,類是類模板的實(shí)例。類模板使類中的一些數(shù)據(jù)成員和成員函數(shù)的參數(shù)或返回值可以取任意的數(shù)據(jù)類型。所以B選項(xiàng)正確。
23if語(yǔ)句的語(yǔ)法格式可描述為:
格式l:if(<條件>)<語(yǔ)句>
或
格式2:if(<條件>)<語(yǔ)句l>
else<語(yǔ)句2>
關(guān)于上面的語(yǔ)法格式,下列表述中錯(cuò)誤的是( )。
A.<條件>部分可以是一個(gè)if語(yǔ)句,例如if(if(a==0)…)…
B.<語(yǔ)句>部分可以是一個(gè)if語(yǔ)句,例如if(…)if(…)…
C.如果在<條件>前加上邏輯非運(yùn)算符!并交換<語(yǔ)句l>和<語(yǔ)句2>的位置,語(yǔ)句功能不變
D.<語(yǔ)句>部分可以是一個(gè)循環(huán)語(yǔ)句,例如if(…)while(…)…
參考答案:A
參考解析:本題考查if語(yǔ)句,if語(yǔ)句的條件部分不能嵌套if語(yǔ)句,所以A選項(xiàng)錯(cuò)誤;B選項(xiàng)就是if語(yǔ)句嵌套;C選項(xiàng)其實(shí)就是將判斷條件顛倒,然后執(zhí)行語(yǔ)句也顛倒,所以效果一樣;D選項(xiàng)也正確。
24下面的程序中,錯(cuò)誤的語(yǔ)句是( )。
①#inClude
、趘oid main()
③{
、 int *p=new int[1];
、郟=9;
、辌out<<.*P<
、遜elete[]p;
、鄛
A.④B.⑤C.⑥D(zhuǎn).⑦
參考答案:B
參考解析:本題考查的是指針的使用,P是指向int 型的指針,若想給它指向的元素賦值,應(yīng)使用*符號(hào),贏接賦值相當(dāng)于改變了原來(lái)P存儲(chǔ)的地址。
25下面有關(guān)for循環(huán)的正確描述是( )。
A.for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況B.for循環(huán)是先執(zhí)行循環(huán)體語(yǔ)句,后判斷表達(dá)式C.在for循環(huán)中,不能用break語(yǔ)句跳出循環(huán)體D.在for循環(huán)的循環(huán)體語(yǔ)句中,可以包含多條語(yǔ)句,但必須用花括號(hào)括起來(lái)
參考答案:D
參考解析:選項(xiàng)A中for循環(huán)可以用于循環(huán)次數(shù)不確定的情況;選項(xiàng)8中for循環(huán)是先判斷表達(dá)式,后執(zhí)行循環(huán)體語(yǔ)句;選項(xiàng)c中for循環(huán)可以用break語(yǔ)句跳出循環(huán)體,從而接著執(zhí)行循環(huán)體后面的語(yǔ)句。
26下列敘述中正確的是( )。
A.算法就是程序
B.設(shè)計(jì)算法時(shí)只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)
C.設(shè)計(jì)算法時(shí)只需要考慮結(jié)果的可靠性
D.以上三種說(shuō)法都不對(duì)
參考答案:D
參考解析:算法是指解題方案的準(zhǔn)確而完整的描述,算法不等于程序,也不等于計(jì)算方法,所以A錯(cuò)誤。設(shè)計(jì)算法時(shí)不僅要考慮對(duì)數(shù)據(jù)對(duì)象的運(yùn)算和操作,還要考慮算法的控制結(jié)構(gòu)。
27由于常對(duì)象不能被更新,因此( )。
A.通過(guò)常對(duì)象只能調(diào)用它的常成員函數(shù)
B.通過(guò)常對(duì)象只能調(diào)用靜態(tài)成員函數(shù)
C.常對(duì)象的成員都是常成員
D.通過(guò)常對(duì)象可以調(diào)用任何不改變對(duì)象值的成員函數(shù)
參考答案:A
參考解析:本題考查常對(duì)象的基本知識(shí),常對(duì)象只能調(diào)用它的常成員函數(shù),而不能調(diào)用非const函數(shù),常對(duì)象的成員函數(shù)不一定都是常成員函數(shù),只需保證其數(shù)據(jù)成員是常數(shù)據(jù)成員即可。所以本題選A。
28有如下程序:
#include
using namespace std;
class MyClass{
public:
MyClass(){cout<<’A’;}
MyClass(char C.{cout<
~MyClass(){cout<<’B’;}
};
int main(){
MyClass pl,+p2;
p2=new MyClass(’X’);
delete p2;
return 0;
}
執(zhí)行這個(gè)程序的輸出結(jié)果是( )。
A.ABXB.ABXBC.AXBD.AXBB
參考答案:D
參考解析:構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序?yàn)橄葮?gòu)造的后析構(gòu),后構(gòu)造的先析構(gòu)。所以本題答案為D。
29有如下程序:
#include
using namespace std;
class Pair{
int m,n;
public:
Pair(int j,int k):m(j),n(k){}
int get(){return m;}
int get()const{return m+n;}
};
int main(){
Pair a(3,5);
const Pair b(3,5);
tout<
return U:
}
執(zhí)行這個(gè)程序的輸出結(jié)果是( )。
A.33B.38C.83D.88
參考答案:B
參考解析:本題考查常對(duì)象、常成員函數(shù)及構(gòu)造函數(shù)。常對(duì)象只能調(diào)用常成員函數(shù),所以本題中,對(duì)象a為普通對(duì)象,執(zhí)行a.get()后,會(huì)執(zhí)行默認(rèn)構(gòu)造函數(shù),輸出3;對(duì)象b為常對(duì)象,執(zhí)行b.get()后,會(huì)執(zhí)行常構(gòu)造函數(shù),輸出8。
30執(zhí)行下列語(yǔ)句段后,輸出字符“*”的個(gè)數(shù)是( )。
for(int i=50;i>1;--i) Cout<<'*':
A.48B.49C.50D.51
參考答案:B
參考解析:本題考查for循環(huán)語(yǔ)句,--i表示用之前先減1,那么這個(gè)for循環(huán)語(yǔ)句只有50到2時(shí)才會(huì)輸出“*”,所以總共輸出49次。
【最新計(jì)算機(jī)二級(jí)C++上機(jī)試題及答案】相關(guān)文章:
2016計(jì)算機(jī)等級(jí)考試二級(jí)C++上機(jī)模擬試題及答案03-08
計(jì)算機(jī)二級(jí)VB上機(jī)試題及答案03-14
計(jì)算機(jī)二級(jí)考試C++試題及答案03-27
2016年9月計(jì)算機(jī)二級(jí)C++上機(jī)考試沖刺試題及答案03-13
計(jì)算機(jī)二級(jí)C語(yǔ)言考試上機(jī)沖刺試題及答案03-03
計(jì)算機(jī)二級(jí)C上機(jī)考試試題及答案03-05
2016年計(jì)算機(jī)二級(jí)JAVA上機(jī)試題及答案03-05