2017年全國計(jì)算機(jī)二級C++語言程序設(shè)計(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í)行這個(gè)程序的輸出結(jié)果是( )。
A.BB.BAC.ABD.BB
參考答案:C
參考解析:本題考查派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù).在定義一個(gè)派生類的對象時(shí),先調(diào)用基類的構(gòu)造函數(shù),然后再執(zhí)行派生類的構(gòu)造函數(shù);對象釋放時(shí),先執(zhí)行派生類的析構(gòu)函數(shù),再執(zhí)行基類的析構(gòu)函數(shù)。本題中定義了一個(gè)派生類對象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ī)則有如下幾點(diǎn):①所有標(biāo)識符必須由字母、數(shù)字或下畫線組成,且必須由字母或下畫線開頭;②所有標(biāo)識符不能使用c++已有的`關(guān)鍵字;③大、小寫字母表示不同意義,即代表不同的標(biāo)識符。選項(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:
}
其中有語法錯(cuò)誤的語句是( )。
A.①②③④B.①②③C.②③④D.①④
參考答案:B
考解析:本題考查保護(hù)繼承中派生類對基類的訪問屬性,受保護(hù)繼承中,基類的公用成員和保護(hù)成員在派生類中成了保護(hù)成員,其私有成員仍為基類私有,保護(hù)基類的所有成員在派生類中都被保護(hù)起來,在類外不能訪問,所以①②③錯(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.語句“Insturment*P=0;”編譯時(shí)出錯(cuò)
B.語句“Instnunent s;”編譯時(shí)出錯(cuò)
C.類Pian0中的Display函數(shù)不是虛函數(shù)
D.類Instrument是一個(gè)虛基類
參考答案:B我
參考解析:本題考查純虛函數(shù)和抽象類,純虛函數(shù)是在聲明虛函數(shù)時(shí)被“初始化”為0的函數(shù),包含純虛函數(shù)的類為抽象類,抽象類不能被實(shí)例化,所以語句“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)行速度,可以將較簡單的函數(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ù)體來替換,一般只將{將規(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è)對象A、B以及對象數(shù)組Point[3],又定義了對象C,共執(zhí)行6次構(gòu)造函數(shù),number變?yōu)榱?,所以本題答案為C。
二、填空題(每空2分,共30分)
請將每空的正確答案寫在答題卡【1】~【15】序號的橫線上,答在試卷上不得分。
注意:以命令關(guān)鍵字填空的必須拼寫完整。
1.數(shù)據(jù)管理技術(shù)發(fā)展過程經(jīng)過人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)三個(gè)階段,其中數(shù)據(jù)獨(dú)立性最高的階段是 【1】 。
【答案】數(shù)據(jù)庫系統(tǒng)
2.軟件測試分為白箱(盒)測試和黑箱(盒)測試,等價(jià)類劃分法屬于 【2】 測試。
【答案】黑盒
3.符合結(jié)構(gòu)化原則的三種基本控制結(jié)構(gòu)是:選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和 【3】 。
【答案】順序結(jié)構(gòu)
4.一棵二叉樹第六層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)數(shù)最多為 【4】 個(gè)。
【答案】32
5.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),循環(huán)隊(duì)列屬于 【5】 結(jié)構(gòu)。
【答案】存儲
6.有如下程序段:
int x=1,Y=2,z=3;
x=x^z;
y=y^z;
z=x^y;
cout<執(zhí)行這個(gè)程序段的輸出是 【6】 。
【答案】100
7.若要訪問指針變量p所指向的數(shù)據(jù),應(yīng)使用表達(dá)式 【7】 。
【答案】*P
8.已知一個(gè)函數(shù)的原型是:
int fn(double x);
若要以5.27為實(shí)參調(diào)用該函數(shù),應(yīng)使用表達(dá)式 【8】 。
【答案】fn(5.27)
9.通過使用new和delete兩個(gè)運(yùn)算符進(jìn)行的分配為 【9】 存儲分配。
【答案】【9】動(dòng)態(tài)
10.如果類B繼承了類A,則稱類A為類B的基類,類B稱為類A的 【10】 。
【答案】【10】派生類
11.將x+y中的+運(yùn)算符用友元函數(shù)重載應(yīng)寫為 【11】 。
【答案】【11】 operator+(x,y)
12.請將下列類定義補(bǔ)充完整。
class Base { public: void fun( ){ cout<<"Base::fun"<
class Derived : public Base {
public:
void fun( ) {
【12】 //顯式調(diào)用基類的fun函數(shù)
cout<<"Derived::fun"<}};
【答案】【12】Base::fun()
13.多數(shù)運(yùn)算符既能作為類的成員函數(shù)重載,也能作為類的非成員函數(shù)重載,但[ ]運(yùn)算符只能作為類的 【13】 函數(shù)重載。
【答案】【13】成員
14.表達(dá)式operator+(x,y)還可以表示為 【14】 。
【答案】【14】x+y
15.C++語言中的多態(tài)性分為編譯時(shí)的多態(tài)性和 【15】 時(shí)的多態(tài)性。
【答案】運(yùn)行
【2017年全國計(jì)算機(jī)二級C++語言程序設(shè)計(jì)考試試題】相關(guān)文章:
全國計(jì)算機(jī)二級C++語言程序設(shè)計(jì)考試大綱06-14
全國計(jì)算機(jī)二級Java語言程序設(shè)計(jì)考試試題05-24
計(jì)算機(jī)二級Java語言程序設(shè)計(jì)考試試題05-24
計(jì)算機(jī)二級考試C++試題08-27
2017計(jì)算機(jī)二級Java語言程序設(shè)計(jì)考試試題05-24
計(jì)算機(jī)二級Java語言程序設(shè)計(jì)考試試題及答案05-24