國(guó)家二級(jí)C機(jī)試(選擇題)模擬試卷16_第1頁
國(guó)家二級(jí)C機(jī)試(選擇題)模擬試卷16_第2頁
國(guó)家二級(jí)C機(jī)試(選擇題)模擬試卷16_第3頁
國(guó)家二級(jí)C機(jī)試(選擇題)模擬試卷16_第4頁
國(guó)家二級(jí)C機(jī)試(選擇題)模擬試卷16_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷

第1套

一、選擇題(本題共18題,每題1.0分,共18分。)

1有如下程序:#includeusingnamespacestd;classBase(private:void

funl()const{cout?t4fun}protected:voidIiin2()const{coutvv"fun2'';)public:

voidfUn3()const{coutvv“fiin3'':}}:classDerived:pmtectedBase{public:void

fun40connt{cout<<“fun4";));intmain(){Derivedobi;obj.funl();//①

obj.fun2();//②obj.fun3();//③obj.fun4();//(4)return0;}其中有

語法錯(cuò)誤的語句是()。

A、①②③④

B、?@?

C、②③④

D、①④

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:本題考查保護(hù)繼承中派生類對(duì)基類的訪問屬性,受保護(hù)繼承中,基類

的公用成員和保護(hù)成員在派生類中成了保護(hù)成員,其私有成員仍為基類私有,保護(hù)

基類的所有成員在派生類中都被保護(hù)起來,在類外不能訪問,所以①②③錯(cuò)誤。

2、軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬

于系統(tǒng)軟件的是()。

A、編輯軟件

B、操作系統(tǒng)

C、教務(wù)管理系統(tǒng)

D、瀏覽器

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:軟件根據(jù)應(yīng)用目標(biāo)的不同,是多種多樣的。軟件按功能可以分為:應(yīng)

用軟件、系統(tǒng)軟件、支承軟件(或工具軟件)。應(yīng)用軟件是為解決特定領(lǐng)域的應(yīng)用而

開發(fā)的軟件。系統(tǒng)軟件是計(jì)算機(jī)管理自身資源,提高計(jì)算機(jī)使用效率并為計(jì)算機(jī)用

戶提供各種服務(wù)的軟件。支撐軟件是介于系統(tǒng)軟件和應(yīng)用軟件之間,協(xié)助用戶開發(fā)

軟件的工具性軟件,包后輔助和支持開發(fā)和維護(hù)應(yīng)用軟件的工具軟件,還包括輔助

管理人員控制開發(fā)進(jìn)程和項(xiàng)目管理的工具軟件。

3、已知函數(shù)fun的原型為intfun(int,int,int);下列重載函數(shù)原型中錯(cuò)誤的是

()。

A^charfun(int,int);

B>doublefun(int,int,double);

*

C、intfun(int,char);

D、floatfun(int,int,int);

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:重載函數(shù)至少要在參數(shù)個(gè)數(shù)或參數(shù)類型上不同。而選項(xiàng)D中的函數(shù)

與原函數(shù)只是函數(shù)類型不同,而其他完全相同(參數(shù)個(gè)數(shù)及類型),則不能作為重載

函數(shù)來使用。

4、關(guān)于this指針的說法不正確的是()。

A、不能在程序中修改this指針

B、ihis指針可以給其他指針賦值,但不能修改this指針

C、靜態(tài)成員函數(shù)中沒有this指針

D、this指針可以被賦值

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:this指針不能在程序中修改,不能被幅值;靜態(tài)成員沒有this指針,

因?yàn)轭愔兄挥幸粋€(gè)靜態(tài)成員函數(shù)實(shí)例,使用this指針無意義。

5、有如下程序:#includeusingnamespacestd;classA{public:A(inti=0):

rl(i){}voidprini(){coui?'Ey*rl?'-';}voidprint(int}

private:intrl;);intmain(){Aal;constAa2(4);al.print(2);a2.print。;

return0;}運(yùn)行時(shí)的輸出結(jié)果是()。

A、P8-E4

B、P8-C16-

C、P0-E4-

D、P0-C16-

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:在主函數(shù)中創(chuàng)建al對(duì)象時(shí),調(diào)用類A的默認(rèn)構(gòu)造函數(shù),其數(shù)據(jù)成員

rl的值等于0。當(dāng)執(zhí)行al.prin《2)語句時(shí),調(diào)用帶參數(shù)的print成員函數(shù),所以輸

出結(jié)果為pO-,對(duì)象a2為常成員,所以其成員變量rl的值等于4,因?yàn)槌?duì)象只

能調(diào)用常成員函數(shù),所以當(dāng)執(zhí)行語句a2.print。語句時(shí),輸出結(jié)果為C14-。

6、有如下程序:#includeusingnamespacestd;className{charname[20];

public:Name(){strcpy(name,"");cout<<4?\)

Name(char*fname){strcpy(name,fname);cout<<t7,;));intmain(){Name

names[3]={Name("張三)Name(“李四")};return0:}運(yùn)行此程序輸出符號(hào)?的個(gè)

數(shù)是()。

A、0

B、1

C、2

D、3

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:類Name有兩個(gè)構(gòu)造函數(shù),在默認(rèn)構(gòu)造函數(shù)中,給字符數(shù)組。Flame

賦窄值,并輸出一個(gè)?;在帶有字符指針的構(gòu)造函數(shù)中,把字符指針fname所指的

字符串賦給字符數(shù)組name,并輸出一個(gè)?。所以在主函數(shù)中,定義了Name的三個(gè)

對(duì)象,F(xiàn)lamelOhname|lhname|2|,在創(chuàng)建這三個(gè)對(duì)象時(shí),會(huì)調(diào)用構(gòu)造帶參數(shù)的

函數(shù)對(duì)前兩個(gè)對(duì)象賦值,調(diào)用默認(rèn)的構(gòu)造函數(shù)把name[2]的值賦為空值。這時(shí)會(huì)輸

出j個(gè)“?”符號(hào)。

7、下列字符串中不能作為C++標(biāo)識(shí)符使用的是()。

A、WHILE

B>user

C^_lvar

D、9stars

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:在C++中變量名的命名必須遵循一定的原則,其中之一即是第一個(gè)

字符必須是字母或者下劃線。

8、下列符號(hào)中不屬于C++關(guān)鍵字的是()。

A、friend

B、namespace

C、continue

D^byte

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:此題考查的是C++語言的關(guān)鍵字。Friend是聲明友元函數(shù)或友元類時(shí)

用到的關(guān)鍵字:namespace是定義或使用名字空間時(shí)用到的關(guān)鍵字;conlinue是終

止本次循環(huán)直接開始下一次循環(huán)所用到的關(guān)鍵字:byte是字節(jié)的意思,它不是C++

語言中的關(guān)鍵字。

9、下列說法中錯(cuò)誤的是()。

A、公有繼承時(shí)基類中的public成員在派生類中仍是public的

B、公有繼承時(shí)基類中的private成員在派生類中是public的

C、私有繼承時(shí)基類中的public成員在派生類中是private的

D、保護(hù)繼承時(shí)基類中的public成員在派生類中是protected的

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:公有繼承中,基類的公有成員和保護(hù)成員在派生類中保持原有訪問屬

性,其私有成員仍為基類私有。所以B是錯(cuò)誤的,即選擇B。

10、己知函數(shù)FA調(diào)用FB,若要把這兩個(gè)函數(shù)定義在同一個(gè)文件中,則()。

A、FA必須定義在FB之前

B、FB必須定義在FA之前

C、若FA定義在FB之后,則FA的原型必須出現(xiàn)在FB的定義之前

D、若FB定義在FA之后,則FB的原型必須出現(xiàn)在FA的定義之前

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:在C++中,在調(diào)用任何函數(shù)之前,必須確保它已有原型說明。函數(shù)

原型說明通常放在程序文件的頭部,以使得該文件中所有函數(shù)都能調(diào)用它們。在本

題中,當(dāng)函數(shù)FA調(diào)用FB時(shí),,函數(shù)FB可以定義在FA的后面,但是FB的原型必

須出現(xiàn)在FA的定義之前,因而選項(xiàng)D)為正確答案。

11、有如下程序:#includeusingnamespacestd;classComplex{doublere,im;

public:Complex(doubler,doublei):re(r),im(i){|doublereal()const[returnre;}

doubleimage()const{returnim;)Complex&operator-I-=(Complexa){re+=a.re;

*

im+=a.im;returnthis;));ostream&operator?(ostream&s,const

Complex&z){returns?,(,<

A、(1,-2)

B、(2,3)

C>(3,5)

D、(3,1)

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:此題考查了運(yùn)算符重載應(yīng)用。因?yàn)閤和y都是Complex類的對(duì)象,

Complex類中已經(jīng)重載了+=運(yùn)算符,表達(dá)式x+二丫就等價(jià)與x.operator+=

(y),執(zhí)行后得到(3,1);接著計(jì)算cout?(x+=y),其等價(jià)于調(diào)用

opcrator?(cout,(x十一y)),最后輸出結(jié)果是(3,1)。

12、有如下類定義:classMyClass{intb;chara;doublec;public:MyClass():

c(0.0),b(0),a(L,){}}:創(chuàng)建這個(gè)類的對(duì)象時(shí),數(shù)據(jù)成員的初始化順序是()。

A、a,b,c

B、c,b,a

C、b,a,c

D、c,a,b

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)解析:類的成員初始化順序與成員變量在構(gòu)造函數(shù)中的位置先后順序無關(guān),

只與成員變量在類中定義的先后順序有關(guān)。

13、執(zhí)行下列語句段后,輸出字符“*”的個(gè)數(shù)是()。for(inti=50;i>l;I-

=2)cout?,*';

A、24

B、25

C、26

D、50

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:此題考查的是for循環(huán)語句。執(zhí)行循環(huán)語句,變量i從50遞減,每次

減2,所以循環(huán)會(huì)執(zhí)行25次,輸出25個(gè),*L

14、有如下類定義:classPoint{private;staticinthow_many;);

how_many=0:要初始彳七Point類的靜態(tài)成員how_many,下劃線處應(yīng)填

入的內(nèi)容是()。

A、ing

B、staticint

C>intPoint::

D、staticintPoint::

標(biāo)準(zhǔn)答案:c

知識(shí)點(diǎn)解析:此題考查的是靜態(tài)數(shù)據(jù)成員的初始化。靜態(tài)數(shù)據(jù)成員應(yīng)在類體外進(jìn)行

初始化,且初始化的一股格式為:數(shù)據(jù)類型類名::靜態(tài)數(shù)據(jù)成員名二初始值,

15、下列函數(shù)原型聲明中,錯(cuò)誤的是()。

A、intfunction(intm,intn);

B、intfunction(int,int):

C>intfunction(intm=3,intn);

D、intfunction(int&m,int&n);

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)解析:在C++中,函數(shù)在使用之前要預(yù)先聲明。這種聲明在標(biāo)準(zhǔn)C++中稱

為函數(shù)原型,函數(shù)原型給出了函數(shù)名、返回類型以及在調(diào)用函數(shù)時(shí)必須提供的參數(shù)

個(gè)數(shù)和類型。其語法為:(返回類型><函數(shù)名>(〈形參列表>);使用函數(shù)原型說明

有兩種形式:①直接使用函數(shù)定義的頭部,并在后面加上一個(gè)分號(hào);②在函數(shù)原

型說明中省略參數(shù)列表中的形參變量名,僅給出函數(shù)名、函數(shù)類型、參數(shù)個(gè)數(shù)及次

序。在選項(xiàng)C)中,給出了形參變量m的初值。

16、下列有關(guān)繼承和派生的敘述中,正確的是()。

A、如果一個(gè)派生類私有繼承其基類,則該派生類對(duì)象不能訪問基類的保護(hù)成員

B、派生類的成員函數(shù)可以訪問基類的所有成員

C、基類對(duì)象可以賦值給派生類對(duì)象

D、如果派生類沒有實(shí)現(xiàn)基類的一個(gè)純虛函數(shù),則該派生類是一個(gè)抽象類

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:此題考查的是繼承和派生。無論是哪種繼承方式,派生類都能夠訪問

基類的公有和保護(hù)成員,而不能訪問基類的私有成員,故選項(xiàng)A和B錯(cuò)誤:公有

繼承時(shí),基類的對(duì)象不可作為派生類的對(duì)象處理,即基類對(duì)象不可賦值給派生類對(duì)

象,所以選項(xiàng)C錯(cuò)誤。

17、有如下4個(gè)語句:①coutVV'A'VVsetfW('*')VVleftVVsetw⑺VVEV

<endl;@cout<<setfi11(left<<setw(7)<<'A'<<,B,<<endl;(3)cout

<<'A'VVserfill('*')V〈rightVVsetw⑺VV'B'<<endl;?cout<Vsetfilf*')

VVrightVVsetw(7)V<'A'VV'B'VVendl;其口能顯示A******B的是()。

A、①和③

B、①和④

C、②和③

D、②和④

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)解析:此題考查C++流的使用。setfill。作用是設(shè)置填充字符;left是使輸出

數(shù)據(jù)在指定寬度內(nèi)左對(duì)齊:fighl是使輸出數(shù)據(jù)在指定寬度內(nèi)右對(duì)齊。

18、為類Matrix重載下列運(yùn)算符時(shí),只能作為Matrix類成員函數(shù)重載的運(yùn)算符是

()o

A、+

B、=

C、<<

D^++

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:在C++中,=、小()、以及所有的類型轉(zhuǎn)換運(yùn)算符只能作為成員

函數(shù)重載。

國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷

第2套

一、選擇題(本題共25題,每題1.0分,共25分。)

1、下列選項(xiàng)可以做C++標(biāo)識(shí)符的是()。

A、_256

B、fxt/pig

C、delete

D、5char

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:標(biāo)識(shí)符的命名規(guī)則:①所有標(biāo)識(shí)符必須由一個(gè)字母(a?z或A?Z)或

下劃線0開頭:②標(biāo)識(shí)符的其他部分可以用字母、下劃線或數(shù)字(0?9)組成;③大

小寫字母表示不同意義,即代表不同的標(biāo)識(shí)符,如gout和Cout。

2、下列枚舉類型的定義中,包含枚舉值3的是()。

A、enumtest(RED,YELLOW,BLUE,BLACK);

B、enumtest{RED,YELLOW=4,BLUE,BLACK);

C、enumtest{RED=-l,YELLOW,BLUE,BLACK);

D、enumtest(RED,YELLOW=6,BLUE,BLACK(:

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:聲明枚舉類型的語法格式為:enum<類型名>{〈枚舉值表>};<枚舉

值表,包含多個(gè)枚舉值,它們用逗號(hào)隔開,每個(gè)枚舉值就是一個(gè)枚舉常量。枚舉值

有兩種定義形式:一是《值名〉;二是〈值名>=<整型常量>。關(guān)于枚舉類型有以下

4點(diǎn)說明:①一個(gè)enum類型實(shí)際上是int類型的一個(gè)子集,其每一個(gè)枚舉值代表

一個(gè)整數(shù)。②n個(gè)枚舉值全部未賦常量值時(shí),它們自左至右分別與整數(shù)0,1,…n

-1對(duì)應(yīng)。③若第i個(gè)枚舉值賦常量值為m,則其未賦常量值的后續(xù)枚舉值分別與

整數(shù)m+1,m+2…對(duì)應(yīng),直到下一個(gè)賦了值的枚舉值或結(jié)束。因此,為枚舉值賦

的整型常量值應(yīng)從左到右遞增。④枚舉類型的聲明也可作為組聲明若干整型符號(hào)

常量的方法。也就是說,把每個(gè)要聲明的符號(hào)常量作為一個(gè)枚舉值,將各個(gè)枚舉值

合在一起定義成一個(gè)枚舉類型。對(duì)于本題來說,在選項(xiàng)A中,對(duì)4個(gè)枚舉值沒有

賦常量值,所以它們從左到右與整數(shù)0,1,2,3相對(duì)應(yīng)。因而選項(xiàng)A為正確選

項(xiàng)。

3、對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是()。

A、隊(duì)頭指針是固定不變的

B、隊(duì)頭指針一定大于隊(duì)尾指針

C、隊(duì)頭指針一定小于隊(duì)尾指針

D、隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:所謂循環(huán)隊(duì)列,就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位置繞到第一個(gè)位

置,形成邏輯_1_的環(huán)狀空間,供隊(duì)列循環(huán)使用。在循環(huán)隊(duì)列中,用隊(duì)尾指針rear

指向隊(duì)列中的隊(duì)尾元素,用隊(duì)頭指針front指向隊(duì)頭元素的前一個(gè)位置。循環(huán)隊(duì)列

的主要操作是:入隊(duì)運(yùn)算和退隊(duì)運(yùn)算。每進(jìn)行一次入隊(duì)運(yùn)算,隊(duì)尾指針就進(jìn)一。每

進(jìn)行一次退隊(duì)運(yùn)算,隊(duì)頭指針就進(jìn)一。當(dāng)rear或front等于隊(duì)列的長(zhǎng)度加1時(shí),就

把rear或front值置為1。所以在循環(huán)隊(duì)列中,隊(duì)頭指針可以大于隊(duì)尾指針,也可

以小于隊(duì)尾指針。

4、下列敘述中正確的是()。

A、棧是一種先進(jìn)先出的線性表

R、隊(duì)列是一種后進(jìn)先出的線忤表

C、棧與隊(duì)列都是非線性結(jié)構(gòu)

D、棧與隊(duì)列都是線性結(jié)構(gòu)

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:棧是先進(jìn)后出,隊(duì)列是先進(jìn)先出。棧和隊(duì)列都是一種線性表,屬于線

性結(jié)構(gòu)。

5、下列敘述中正確的是

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、上述三種說法都不對(duì)

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:線性表的存儲(chǔ)分為順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)。在順序存儲(chǔ)中,所有元素所

占的存儲(chǔ)空間是連續(xù)的,各數(shù)據(jù)元素在存儲(chǔ)空間中是按邏輯順序依次存放的。所以

每個(gè)元素只存儲(chǔ)其值就可以了,而在鏈?zhǔn)酱鎯?chǔ)的方式中,將存儲(chǔ)空間的每一個(gè)存儲(chǔ)

結(jié)點(diǎn)分為兩部分,一部分用于存儲(chǔ)數(shù)據(jù)元素的值,稱為數(shù)據(jù)域:另一部分用于存儲(chǔ)

下一個(gè)元素的存儲(chǔ)序號(hào),稱為指針域。所以線性表的鏈?zhǔn)酱鎯?chǔ)方式比順序存儲(chǔ)方式

的存儲(chǔ)空間要大一些。

6、軟件生命周期可分為定義階段、開發(fā)階段和維護(hù)階段,下面不屬于開發(fā)階段任

務(wù)的是()。

A、測(cè)試

B、設(shè)計(jì)

C、可行性研究

D、實(shí)現(xiàn)

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)解析:軟件生命周期是指軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用、維護(hù)到停止使用退

役的過程。其中,定義階段包括可行性研究與計(jì)劃制定和需求分析。測(cè)試、概要設(shè)

計(jì)、詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)屬于開發(fā)階段。

7、設(shè)表的長(zhǎng)度為n。在下列結(jié)構(gòu)所對(duì)應(yīng)的算法中,最壞情況下時(shí)間復(fù)雜度最低的

A、堆排序

B、有序鏈表查找

C、希爾排序

D、循環(huán)鏈表中尋找最大項(xiàng)

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:在循環(huán)鏈表中尋找最大項(xiàng)算法是,首先取出第一個(gè)數(shù)作為最大數(shù),然

后和后面的所有項(xiàng)進(jìn)行比較查找。囚此,比較次數(shù)為n-1。

8、數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。

A、控制流

B、事件驅(qū)動(dòng)

C、模塊調(diào)用

D、數(shù)據(jù)流

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的

移動(dòng)變換過程。其中帶箭頭的線段表示數(shù)據(jù)流,沿箭頭方向傳遞數(shù)據(jù)的通道,一般

在旁邊標(biāo)注數(shù)據(jù)流名。

9、下列說法中錯(cuò)誤的是()。

A、公有繼承時(shí)基類中的public成員在派生類中仍是public的

B、公有繼承時(shí)基類中的private成員在派生類中仍是private的

C、私有繼承時(shí)基類中的public成員在派生類中是private的

D、保護(hù)繼承時(shí)基類中的public成員在派生類中是protected的

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:此題考查的是繼承時(shí)基類成員屬性改變。選項(xiàng)B中,公有繼承時(shí)基

類中的private成員在派生類中不是private的,而是不可訪問的。所以選項(xiàng)B錯(cuò)

誤;其他選項(xiàng)敘述均正確。

10、下列給字符數(shù)組進(jìn)行初始化中,正確的是()。

A、charsl[]=n12345abcd";

chars2131=nxyz";

C、chars3[][3]={,a,,C',V};

D、chars412131={"xyz',"mnp");

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)解析:在C++中定義二維數(shù)組時(shí)并賦值,則數(shù)組的行數(shù)可以省略不寫。選

項(xiàng)A)、B)、D)均是字符字符串初始化。。

II、若實(shí)體A和B是一對(duì)多的聯(lián)系,實(shí)體B和C是一對(duì)一的聯(lián)系,則實(shí)體A和C

的聯(lián)系是()。

A、一對(duì)一

B、一對(duì)多

C、多對(duì)一

D、多對(duì)多

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:由于B和C有一一對(duì)應(yīng)的聯(lián)系,而A和B只間有一對(duì)多的聯(lián)系,則

通過關(guān)系之間的傳遞,則A和C之間也是一對(duì)多的聯(lián)系。

12、下列語句中錯(cuò)誤的是()。

A、constinta;

B、constinta=10;

C、constint*point=0;

D、constint*point=newint(10;)

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:由關(guān)鍵字const聲明符號(hào)常量的同時(shí)必須為其賦初值。

13、有如下程序:#includeusingnamespacestd;intmain(){charstr[100],*p;

cout?"Pleaseinputastring:”;cin:str:p=str;for(inti=0;*p!=,\0';

p++,i++);cout?"i"<

A、7

B、12

C、13

D、100

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:此題考查的是默認(rèn)輸入格式。本題輸入數(shù)據(jù)類型為char,因此輸入的

數(shù)據(jù)是“從第一個(gè)非空白字符開始到下一個(gè)空白字符結(jié)束”,而輸入數(shù)據(jù)為abcdefg

abed,其中abcdefg后有空格。所以輸入后str中的字符串為"abedefg”:主函數(shù)中

接卜來for語句的作用是計(jì)算字符串p的長(zhǎng)度,故最終輸出字符串“abcdefg”的長(zhǎng)度

7o

14>已知數(shù)組arr的定義如下:intan[5]={1,2,3,4,5);下列語句中輸出結(jié)

果不是2的是()。

A、cout<<*arr+1<<endl:

cout<<*(arr+1)<<endl;

C、cout<<arr[1]<<endl;

D、cout<<*art<<endl;

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:因?yàn)橐痪S數(shù)組ard5]的首地址是第一數(shù)組元素的地址,所以選項(xiàng)D

中,輸出*arr的值就是數(shù)組art[5]中第一數(shù)組元素1。其他選項(xiàng)都輸出數(shù)組art[5]的

第二元素2o

15、已知枚舉類型聲明語句為:enumCOLOR{WHITE,YELLOW,GREEN=5,

RED,BLACK=10}:則下列說法中錯(cuò)誤的是()。

A、枚舉常量YELLOW的值為1

B、枚舉常量RED的值為6

C、枚舉常量BLACK的值為10

D、枚舉常量WHITE的值為I

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:此題考查的是枚舉類型的聲明。聲明枚舉類型的語法形式為:enum

類型名{枚舉值表}。需注意的是:當(dāng)n個(gè)枚舉值全部未賦常量值時(shí),它們自左至右

分別與整數(shù)0、1、2、對(duì)應(yīng);若第i個(gè)枚舉值賦常量值為m,則其未賦常量

值的后續(xù)枚舉值分別與整數(shù)m+1、m+2…對(duì)應(yīng),直到下一個(gè)賦了值的枚舉值或結(jié)

束。

16、下列語句中,錯(cuò)誤的是()。

A、constintbuffer=256;

B、constinttemp;

C、constdouble*point;

D、constdouble*rt=newdouble(5.5);

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:此題考查的是符號(hào)常量的概念。符號(hào)常量必須在聲明的同時(shí)賦初值,

故選項(xiàng)B錯(cuò)誤:選項(xiàng)c定義的是一個(gè)指向常量的指針變量,即通過指針不能改變

它所指向的內(nèi)容,而它自己的內(nèi)容是可以改變的,C選項(xiàng)正確。

17、有如下程序:#include<iostream>usingnamespacescd;classXA{inta;

public:staticintb:XA(intaa):a(aa){b++;)~XA(){)intget()(returna;}};int

XA::b=0;intmain()XAdl(2),<12(3);cout<<dl.get()+d2.get()+XA::b

<<endl;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。

A、5

B、6

C、7

D、8

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)解析:執(zhí)行XA類的實(shí)例變量dl(2)時(shí),成員函數(shù)dl.gel()的返回值等于

2,XA.b的值等于1,執(zhí)行XA類的實(shí)例變量d2(3)時(shí),成員函數(shù)di.get()的返回

值等于3,XA.b的值等于2,所以輸出結(jié)果為2+3+2=7。

18、關(guān)于關(guān)鍵字class和typename,下列表述中正確的是()。

A、程序中的typenamc都可以替換為class

B、程序中的class都可以替換為typename

C、在模板形參表中只能用typename來聲明參數(shù)的類型

D、在模板形參表中只能用class或typename來聲明參數(shù)的類型

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:此題考查的是class和typename兩個(gè)關(guān)鍵字。關(guān)鍵字class除了能用

來定義類以外還能用來聲明模板的虛擬類型參數(shù)。在用作聲明虛擬類型參數(shù)時(shí)

lypename與class可以互換,但不能使用l)rpename來定義類;在模板形參表中除了

可以用typename和class聲明虛擬類型參數(shù)外,還可以使用普通類型聲明常規(guī)函

數(shù),故選項(xiàng)C錯(cuò)誤。

19、已知類Myclass的定義如bclassMyClass{public:voidfunctionI(MyClass&

c){cout<<c.data:)staticvoidfunction2(MyClass&c){cout<<c.data;}void

function3(){cout<<data;}staricvoidfunction4()(cout<<data;}private:int

data;);其中有編譯錯(cuò)誤的函數(shù)是()0

A^function1

B、function?

C、functions

D、function4

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:funcyion4()函數(shù)作為類的靜態(tài)成員函數(shù),不能直接訪問類中說明的非

靜態(tài)成員,即coutVVdata在編譯時(shí)會(huì)出錯(cuò)。

20、關(guān)于函數(shù)重載,下列敘述中錯(cuò)誤的是()。

A、重載函數(shù)的函數(shù)名必須相同

B、重載函數(shù)必須在參數(shù)個(gè)數(shù)或類型上有所不同

C、重載函數(shù)的返回值類型必須相同

D、重載函數(shù)的函數(shù)體可以有所不同

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)解析:此題考查的是函數(shù)重載。在C++語言中,允許定義一系列函數(shù)名相

同,但形參的個(gè)數(shù)和類型不完全相同的函數(shù),即函數(shù)的重載。重載函數(shù)對(duì)返回值類

型不做要求,返回值類型也不參與區(qū)分函數(shù)的重載形式。

21、在公有繼承的情況下,允許派生類直接訪問的基類成員包括()。

A^公有成員

B、公有成員和保護(hù)成員

C、公有成員、保護(hù)成員和私有成員

D、保護(hù)成員

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:此題考查的是派生類對(duì)基類成員的訪問?;惖某蓡T有公有、保護(hù)和

私有三種訪問屬性:類的繼承方式也有公有繼承、保護(hù)繼承和私有繼承三種。無論

那種繼承方式,派生類中的成員都不能訪問基類中的私有成員,但可以訪問基類中

的公有成員和保護(hù)成員。

22、下列關(guān)于派生類和基類的描述中,正確的是(),

A、派生類成員函數(shù)只能訪問基類的公有成員

B、派生類成員函數(shù)只能訪問基類的公有和保護(hù)成員

C、派生類成員函數(shù)可以訪問基類的所有成員

D、派生類對(duì)基類的默認(rèn)繼承方式是公有繼承

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:派生類不論是采用那種繼承方式繼承基類,它的成員函數(shù)只能訪問基

類的公有成員和保護(hù)成員。

23、虛函數(shù)支持多態(tài)調(diào)用,一個(gè)基類的指針可以指向派生類的對(duì)象,而且通過這樣

的指針調(diào)用虛函數(shù)時(shí),被調(diào)用的是指針?biāo)傅膶?shí)際對(duì)象的虛函數(shù)。而非虛函數(shù)不支

持多態(tài)調(diào)用。有如下程序:#include<iostrcam>usingnamespacestd:classBase

{public:virtualvoidf(){cout<<,'fO+";}voidgO{cout<<,'gO+H;}};class

Derived:publicBase{public:Voidg(){cont<<"f+";}voidgo{cout.<

};main{Derivedd;Base*p==&d;p—>f();P—>g();

retumO;}運(yùn)行時(shí)輸出的結(jié)果是()。

A、f+g+

B、fU+g+

C、f+gO+

D、fO+gO+

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)解析:此題考查的是虛函數(shù)和多態(tài)性。此題中,因?yàn)閒()是虛函數(shù)具有多態(tài)

性,所以通過指針p調(diào)用的f()是派生類Derived中定義的f():而g。不是虛函數(shù),

通過指針p調(diào)用的是Base中的g()o

24、要利用C++流實(shí)現(xiàn)輸入輸出的各種格式控制,必須在程序中包含的頭文件是

()。

A、fstream

B、istreara

C、ostream

D、iomanip

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:要使用seiw、fixed等操作符,須包含iomanip這個(gè)文件。

25、模板對(duì)類型的參數(shù)叱提供了很好的支持,因此()。

A、類模板的主要作用是生成抽象類

B、類模板實(shí)例化時(shí),編譯器將根據(jù)給出的模板實(shí)參生成一個(gè)類

C、在類模板中的數(shù)據(jù)成員都具有同樣類型

D、類模板中的成員函數(shù)都沒有返回值

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:此題考查了類模板的概念。在定義對(duì)象的過程中,系統(tǒng)會(huì)自動(dòng)地根據(jù)

需要生成相應(yīng)的類定義,這種依據(jù)類模板生成具體類的過程稱為類模板的實(shí)例化。

國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷

第3套

一、選擇題(本題共22題,每題1.0分,共22分。)

1、按照“后進(jìn)先出原見組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。

A^隊(duì)列

B、棧

C、雙向鏈表

D、二叉樹

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:棧是限定在一端進(jìn)行插入與刪除的線性表。在棧中,允許插入與刪除

的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入

的元素,也是最先被刪除的元素:棧底元素總是最先被插入的元素,也是最后才能

被刪除的元素。即棧是按照“后進(jìn)先出”(LastlnFirstOut,簡(jiǎn)稱LIFO)或“先進(jìn)后

出”(FirstInLastOut,簡(jiǎn)稱FILO)的原則組織數(shù)據(jù)的。因此,棧也稱為“后進(jìn)先出

表”或“先進(jìn)后出”表。

2、下列敘述中正確的是()。

A、循環(huán)隊(duì)列是隊(duì)列的一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

B、循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu)

C、循環(huán)隊(duì)列是非線性結(jié)構(gòu)

D、循環(huán)隊(duì)列是一種邏輯結(jié)構(gòu)

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:本題主要考查循環(huán)隊(duì)列的概念,循環(huán)隊(duì)列作為隊(duì)列的種也應(yīng)該是線性

結(jié)構(gòu)。隊(duì)列是一種邏輯結(jié)構(gòu),而循環(huán)隊(duì)列是一種順序存儲(chǔ)結(jié)構(gòu)的隊(duì)列。

3、某系統(tǒng)總體結(jié)構(gòu)圖如下圖所示:上以該系統(tǒng)總體

結(jié)構(gòu)圖的深度是()。

A、7

B、6

C、3

D、2

標(biāo)準(zhǔn)答案:c

知識(shí)點(diǎn)》析:這個(gè)系統(tǒng)總體結(jié)構(gòu)圖是一棵樹結(jié)構(gòu),在樹結(jié)構(gòu)中,根結(jié)點(diǎn)在第1層,

同一層上所有子結(jié)點(diǎn)都在下一層,由系統(tǒng)總體結(jié)構(gòu)圖可知,這棵樹共3層。在樹結(jié)

構(gòu)中,樹的最大層次稱為樹的深度。所以這棵樹的深度為3。

4、對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為()。

A、log2n

B、n/2

C^n

D、n+1

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)露析:在進(jìn)行順序查找過程中,如果被查的元素是線性表中的最后一個(gè)元

素,或者被查元素根本不在線性表中,則為了查找這個(gè)元素需要與線性表中的所有

元素進(jìn)行比較,這是順序查找的最壞情況,需要比較的次數(shù)為n次。

5、T列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是

A、順序存儲(chǔ)的有序線性表

R、線性鏈表

C、二叉鏈表

D、有序線性鏈表

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:二分法查找只適應(yīng)于順序存儲(chǔ)的有序表。有序表是指線性表中的元素

按值非遞減排序(即從小到大,但允許相鄰元素值相等)的表。

6、度為3的一棵樹共有30個(gè)結(jié)點(diǎn),其中度為3、1的結(jié)點(diǎn)個(gè)數(shù)分別為3、4?則該

樹中的葉子結(jié)點(diǎn)數(shù)為

A、14

B、15

C、16

D、不可能有這樣的樹

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:根據(jù)題目可知本樹中還有度為2的結(jié)點(diǎn)。樹的總結(jié)點(diǎn)=(度1*個(gè)數(shù)十度

2*個(gè)數(shù)…)+1,這里我僅設(shè)度為2的結(jié)點(diǎn)數(shù)為x,那么

30=3*3+2*x+l*4+l=2*x+14,由此可計(jì)算出x=8。樹的葉子結(jié)點(diǎn)數(shù)等于總結(jié)點(diǎn)減去

所有度不為0的結(jié)點(diǎn),也就是30?3-8?4=15。

7、軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬

于應(yīng)用軟件的是()。

A、編譯程序

B、操作系統(tǒng)

C、教務(wù)管理系統(tǒng)

D、匯編程序

標(biāo)準(zhǔn)答案:c

知識(shí)點(diǎn)解析:編譯軟件、操作系統(tǒng)、匯編程序都屬于系統(tǒng)軟件,只有c教務(wù)管理系

統(tǒng)才是應(yīng)用軟件。

8、下列有關(guān)函數(shù)重載的敘述中,錯(cuò)誤的是()。

A、函數(shù)重載就是用相同的函數(shù)名定義多個(gè)函數(shù)

B、重載函數(shù)的參數(shù)列表必須不同

C,重載函數(shù)的返回值類型必須不同

D、重載函數(shù)的參數(shù)可以帶有默認(rèn)值

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)解析:所謂函數(shù)重載是指同一個(gè)函數(shù)名可以對(duì)應(yīng)著多個(gè)函數(shù)的實(shí)現(xiàn)。每種實(shí)

現(xiàn)對(duì)應(yīng)著一個(gè)函數(shù)體,這些函數(shù)的名字相同,但是函數(shù)參數(shù)的類型不同,還允許參

數(shù)的個(gè)數(shù)不同,但不能只有函數(shù)的返回值類型不同而參數(shù)的個(gè)數(shù)和類型相同的重

載。所以本題答案為C

9、下面屬于白盒測(cè)試方法的是()。

A、等價(jià)類劃分法

B、邏輯覆蓋

C、邊界值分析法

D、錯(cuò)誤推測(cè)法

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:白盒測(cè)試的主要方法有邏輯覆蓋、基本路徑測(cè)試等。

10、有如下程序:#includeusingnamespacestd;classCD{public:-CD0{cout<<

-C;)private:charname[80];):intmain(){CDa,*b,d[2];return0;}運(yùn)行

時(shí)的輸出結(jié)果是()。

A、CCCC

B、CCC

C、CC

D、C

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:在這個(gè)程序的主函數(shù)中定義了3個(gè)CD類的實(shí)例對(duì)象a,d[O],d[l]和

一個(gè)指向CD類對(duì)象的指針變量b,所以當(dāng)程序結(jié)貞時(shí),執(zhí)行cD的析構(gòu)函數(shù)輸出

字符C三次。

11、有如卜程序:#incluldeusingnamespacestd;classBase{private:voidfunl()

const{tout?"funr,;)protected:voidfun2()const{cout?"fun2'^;}public:void

fun30const(cout?"fun3";}};classDerived:protectedBase[public:voidfun4()

const{tout?"fun4";}};intmain(){Derivedobj;obj.funl();||①

obj.tim2();||②obj.fun3();||@obj.fun40;||(4)return0;}其中有語法錯(cuò)誤

的語句是()。

A、①②⑧④

B、①②③

C、②③④

D、@@

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:此題考查的是保護(hù)繼承。因?yàn)镈erived以protected方式繼承了Base

類,所以父類Base中的公有成員和保護(hù)成員均成了Derived類的保護(hù)成員,而

Base類的私有成員Derived類不可訪問。所以,主函數(shù)中通過Derived類的對(duì)象只

能夠訪問到Derived類的公有成員。

12、按照標(biāo)識(shí)符的要求,下列選項(xiàng)中,()符號(hào)不能組成標(biāo)識(shí)符。

A、連接符

B、下劃線

C、大小寫字母

D、數(shù)字字符

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:此題考查的是標(biāo)識(shí)符。標(biāo)識(shí)符是由數(shù)字、字母以及下劃線構(gòu)成,其第

一個(gè)字符必須是字母或下劃線,中間不能有空格:標(biāo)識(shí)符的長(zhǎng)度是任意的,但由于

編譯系統(tǒng)的限制一般不超過31個(gè)字符;標(biāo)識(shí)符中的大小寫字母是不同的;定義標(biāo)

識(shí)符時(shí)不能采用系統(tǒng)的保留字。

13、在下列關(guān)系運(yùn)算中,不改變關(guān)系表.中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是()。

A、并

B、交

C、投影

D、除

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:關(guān)系R與S經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的

有序組所組成,記為RCS,交運(yùn)算不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)

數(shù)。

14、下列枚舉類型的定義中,包含枚舉值3的是()。

A、enumtestfRED,YELLOW,BLUE,BLACK);

B、enumtest(RED,YELLOW=4,BLUE,BLACK);

C、enumtest{RED=-1,YELLOW,BLUE,BLACK):

D、enumtest{RED,YELLOW=6,BLUE,BLACK);

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:聲明枚舉類型的語法格式為:enumV類型名>{V枚舉值表>}:<

枚舉值表,包含多個(gè)枚舉值,它們用逗號(hào)隔開,每個(gè)枚舉值就是一個(gè)枚舉常量。枚

舉值有兩種定義形式:一是《值名〉;二是<值名>=<整型常量〉。關(guān)于枚舉類

型有以下4點(diǎn)說明:①一個(gè)enum類型實(shí)際上是int類型的一個(gè)子集,其每一個(gè)枚

舉值代表一個(gè)整數(shù)。②n個(gè)枚舉值全部未賦常量值時(shí),它們自左至右分別與整數(shù)

0,1,…n-1對(duì)應(yīng)。③若第i個(gè)枚舉值賦常量值為m,則其未賦常量值的后續(xù)枚舉

值分別與整數(shù)m+1,m+2…對(duì)應(yīng),直到下一個(gè)賦了值的枚舉值或結(jié)束。因此,為枚

舉值賦的整型常量值應(yīng)從左到右遞增。④枚舉類型的聲明也可作為組聲明若干整

型符號(hào)常量的方法。也就是說,把每個(gè)要聲明的符號(hào)常量作為一個(gè)枚舉值,將各個(gè)

枚舉值合在一起定義成一個(gè)枚舉類型。對(duì)于本題來說,在選項(xiàng)A中,對(duì)4個(gè)枚舉

值沒有賦常量值,所以它們從左到右與整數(shù)0。1,2,3相對(duì)應(yīng)。因而選項(xiàng)A為正

確選項(xiàng)。

15、有如卜程序:#include<iostream>usingnamespacestd;voidfunction2(int

n);voidfunctionl(intn){if(n<=0)return;function2(n一2);}voidfunction2(int

n){if(n<=0)return:functionl(n-1);}intmain(){functionl(5);return0:)下列

關(guān)于程序運(yùn)行情況的描述中,正確的是()。

functionl運(yùn)行1次,function2運(yùn)行2次

B、function1運(yùn)行2次,function?運(yùn)行1次

C^functionl運(yùn)行2次,function?運(yùn)行3次

D、functionl運(yùn)行2次,function2運(yùn)行2次

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:在土函數(shù)中執(zhí)行functionl(5)時(shí),會(huì)調(diào)用function2(3),function2

(3)又會(huì)調(diào)用functionl(2),functionl(2)又會(huì)調(diào)用function2(0),到此相互

調(diào)用結(jié)束。所以functionl。和function20各執(zhí)行了2次。

16、下列關(guān)于類和對(duì)象的敘述中,錯(cuò)誤的是()。

A、一個(gè)類只能有一個(gè)對(duì)象

B、對(duì)象是類的具體實(shí)例

C、類是對(duì)某一類對(duì)象的抽象

D、類和對(duì)象的關(guān)系是一種數(shù)據(jù)類型與變量的關(guān)系

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:此題考查的是類和對(duì)象的概念。類是用戶定義的一種數(shù)據(jù)類型,可以

使用這個(gè)類型來說明一個(gè)或多個(gè)變量,即對(duì)象。

17、有如下類定義:classPoint{private;staticinthow_many;);

how_many=0;要初始4Point類的靜態(tài)成員howmany,下劃線處應(yīng)填入

的內(nèi)容是()。

A、ing

B、staticint

C>intPoint::

D、staticintPoint::

標(biāo)準(zhǔn)答案:c

知識(shí)點(diǎn)解析:此題考查的是靜態(tài)數(shù)據(jù)成員的初始化。靜態(tài)數(shù)據(jù)成員應(yīng)在類體外進(jìn)行

初始化,且初始化的一般格式為:數(shù)據(jù)類型類名::靜態(tài)數(shù)據(jù)成員名二初始值C

18、下列關(guān)于函數(shù)模板的描述中,錯(cuò)誤的是()。

A、從模板實(shí)參表和從模板函數(shù)實(shí)參表獲得信息矛唐時(shí),,以模板實(shí)參的信息為準(zhǔn)

B、對(duì)于常規(guī)參數(shù)所對(duì)應(yīng)的模板實(shí)參,任何情況下都不能省略

C、虛擬類型參數(shù)沒有出現(xiàn)在模板函數(shù)的形參表中時(shí),不能省略模板實(shí)參

D、模板參數(shù)表不能為空

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)露析:在調(diào)用一個(gè)模板函數(shù)時(shí),如果編譯系統(tǒng)能夠從模板實(shí)參表判斷其中或

全部虛擬類型參數(shù)對(duì)應(yīng)的實(shí)際參數(shù),而且它們正好是參數(shù)表中最后的若干參數(shù),剛

模板實(shí)參表中的那幾個(gè)參數(shù)可以省略。

19^有如下程序:#include<iostream>usingnamespacestd;classA{publicvirtual

voidf(){cout<<1;)voidg(){cout<<2;});classB:PublicA{public:virtual

voidf(){cout<<3;)voidg(){cout<<4;}};voidshow(A&a){a.f();a.g();}

intmain(){Bb:show(b):return0:}運(yùn)行時(shí)的輸出結(jié)果是()。

A、12

B、34

C、14

D、32

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:在派生類classB中對(duì)基類中的虛擬成員函數(shù)virtualvoidf。和實(shí)函數(shù)

voidg()進(jìn)行了重新定義,在主函數(shù)中通過語句show(b);調(diào)用派生類中的虛函數(shù)

virtualvoidf(){coutVV3;}輸出3,調(diào)用基類的實(shí)函數(shù)voidg(){coutVV2;}輸出

2o所以選項(xiàng)D為正確答案。

20、要利用C++流進(jìn)行文件操作,必須在程序中包含的頭文件是()。

A、iostream

B、fstream

C、strstream

D、iomanip

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:要使用文件流對(duì)象進(jìn)行針對(duì)磁盤文件的I/O操作,必須包含fsirem

頭文件。

21、若要對(duì)Data類中重載的加法運(yùn)算符成員函數(shù)進(jìn)行聲明,下列選項(xiàng)中正確的是

()o

A、Data+(Data);

B、Dataoperator+{Data);

C、Data+operator{Data);

D、operator+(Data,Data);

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:是一個(gè)二元運(yùn)算符,因此作為成員函數(shù)重載時(shí)參數(shù)表中只有一個(gè)

參數(shù),對(duì)應(yīng)于第二個(gè)操作數(shù),而第一個(gè)操作數(shù)是對(duì)象本身。運(yùn)算符函數(shù)的函數(shù)名是

由運(yùn)算符前加關(guān)鍵字operator構(gòu)成的。

22、已知將運(yùn)算符和作為類Complex的成員函數(shù)重載,設(shè)cl和c2是類

Complex的對(duì)象,則表達(dá)式cl+c2*cl等價(jià)于()。

A、cl.opcrator*(c2.opcrator+(c1))

B、cl.operalor+(c2.operator*(cl))

C,cl.operator*(c1.operator+(c2))

D、c2.operator+(c1.operator*(cl))

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:表達(dá)式cl+c2*c1的含義是cl加上c2與cl的積。

國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷

第4套

一、選擇題(本題共23題,每題1.0分,共23分。)

1、下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是()。

A、循環(huán)隊(duì)列

B、棧

C、隊(duì)列

D、二叉樹

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:棧按照“先進(jìn)后出”(FILO)或,后進(jìn)先出“(LIFO)組織數(shù)據(jù);隊(duì)列是“先進(jìn)

先出”F(IFO)或“后進(jìn)后出”L(ILO)的線性表。

2、有如下程序#include<ioslream>usingnamespacestd;intmain(){chara:cin>

>a;if(a='*')coutV<?'***''<Vendl;elsecout<<4<###,,<<endl;return0:}

輸入字符+時(shí),程序的運(yùn)行結(jié)果是()。

A、***

B、###

C、***###

D、無輸出

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:本題的考點(diǎn)是雙分支選擇語句的執(zhí)行流程,答題的關(guān)鍵點(diǎn)在于選擇條

件的判定。雙分支選擇語句的執(zhí)行流程是首先計(jì)算if后表達(dá)式的值,如果表達(dá)式

的值為非零,則執(zhí)行if后面的分支,否則執(zhí)行與其匹配的else后面的分支。本題

執(zhí)行時(shí)雖然輸入變量a的值為』二但是在執(zhí)行if后括號(hào)內(nèi)表達(dá)式(a=,*,)的時(shí),由

于此表達(dá)式為賦值表達(dá)式,岡此表達(dá)式的值為賦值號(hào)右邊的值,*',其AscH碼的值

非零,執(zhí)行if后面的輸出語句“***”后回車。

3、設(shè)樹T的深度為4,其中度為1,2,3,4的結(jié)點(diǎn)個(gè)數(shù)分別為4,2,1,1。則T

中的葉子結(jié)點(diǎn)數(shù)為()。

A、8

B、7

C、6

D、5

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:深度為m二叉樹其總結(jié)點(diǎn)數(shù)為2m—1=24—1=15??偨Y(jié)點(diǎn)數(shù)減去度

為1,2,3,4的結(jié)點(diǎn)個(gè)數(shù)就是葉子結(jié)點(diǎn)數(shù)。15—4一2—1—1二7。

4、在長(zhǎng)度為n的有序線性表中進(jìn)行二分查找,最坎情況下需要比較的次數(shù)是

A、O(n)

B、O(n2)

C、O(log2n)

D、O(nlog2n)

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)解析:對(duì)于長(zhǎng)度為n的有序線性表,在最壞情況下,二分法查找只需比較

log2n次,而順序查找需要比較n次。

5、下列描述中,不符合良好程序設(shè)計(jì)風(fēng)格要求的是()。

A、程序的效率第一,清晰第二

B、程序的可讀性好

C、程序中要有必要的注釋

D、輸入數(shù)據(jù)前要有提示信息

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:一般來講,程序設(shè)計(jì)風(fēng)格是指編寫程序時(shí)所表現(xiàn)出的特點(diǎn)、習(xí)慣和邏

輯思路。程序設(shè)計(jì)風(fēng)格總體而言應(yīng)該強(qiáng)調(diào)簡(jiǎn)單和清晰,程序必須是可以理解的。著

名的“清晰第一,效率第二”的論點(diǎn)已成為當(dāng)今主導(dǎo)的程序設(shè)計(jì)風(fēng)格。

6、下面敘述錯(cuò)誤的是

A、派生類可以使用pfivate派生

B、對(duì)基類成員的訪問必須是無二義性的

C、基類成員的訪問能力在派生類中維持不變

D、賦值兼容規(guī)則也適用于多繼承的組合

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)解析:在建立派生類的時(shí)候,并不是簡(jiǎn)單地把基類的私有成員直接作為派生

類的私有成員,把基類的公用成員直接作為派生類的公用成員。涉及如何確定基類

的成員在派生類中的訪問屬性問題,不僅要考慮對(duì)基類成員所聲明的訪問屬性,還

要考慮派生類所聲明的對(duì)基類的繼承方式,根據(jù)這兩個(gè)因素共同決定基類成員在派

生類中的訪問屬性。所以本題選擇C。

7、下面程序輸出的結(jié)果為()。#tnclude<iostrcam.h>voidfun(inta,intb)(int

temp;temp=a;a=b;b二temp;)voidmain(){intm,n;m=l;n=2;fun(m,

n);cout<<m<<Hn<<n<<endl;)

A、12

B、21

C、22

D、程序有錯(cuò)誤

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:函數(shù)fun中定義的參數(shù)a和b為形式參數(shù),它們并不是實(shí)際存在的數(shù)

據(jù),只有在發(fā)生函數(shù)調(diào)用時(shí)才被分配內(nèi)存空間,結(jié)束后,形參所占有的內(nèi)存單元也

被釋放。并且函數(shù)fun沒有返回值,它做的交換操作,并不能影響實(shí)際參數(shù)m和

n.所以輸出值保持不變,仍然是1和2,即輸出:12c

8、軟件是指

A、程序

B、程序和文檔

C、算法加數(shù)據(jù)結(jié)構(gòu)

D、程序、數(shù)據(jù)與相關(guān)文檔的完整集合

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程

序、數(shù)據(jù)與相關(guān)文檔的完整集合。軟件由兩部分組成:一是機(jī)器可執(zhí)行的程序和數(shù)

據(jù);二是機(jī)器不可執(zhí)行的,與軟件開發(fā)、運(yùn)行、維護(hù)、使用等有關(guān)的文檔。

9、數(shù)據(jù)庫(kù)技術(shù)的根本E標(biāo)是要解決數(shù)據(jù)的()。

A、存儲(chǔ)問題

B、共享問題

C、安全問題

D、保護(hù)問題

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)中的數(shù)據(jù)具有“集成''、"共享’之特點(diǎn),即數(shù)據(jù)庫(kù)集中了各種應(yīng)

用的數(shù)據(jù),進(jìn)行統(tǒng)一地閡造與存儲(chǔ),而使它們能被不同的應(yīng)用程序所使用。因而數(shù)

據(jù)庫(kù)技術(shù)的根本目標(biāo)是解決數(shù)據(jù)的共享問題。

10、數(shù)據(jù)庫(kù)管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語言是()。

A、數(shù)據(jù)定義語言

13、數(shù)據(jù)管理語言

C、數(shù)據(jù)操縱語言

D、數(shù)據(jù)控制語言

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)管理系統(tǒng)一般提供相應(yīng)的數(shù)據(jù)語言,它們分別是:數(shù)據(jù)定義語

言,負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操縱語言,負(fù)責(zé)數(shù)據(jù)的操

縱,包括查詢及增、刪、改等操作:數(shù)據(jù)控制語言,負(fù)責(zé)數(shù)據(jù)完整性、安全性的定

義與檢查以及并發(fā)控制、故障恢復(fù)等功能。

11、數(shù)據(jù)庫(kù)設(shè)計(jì)中反映用戶對(duì)數(shù)據(jù)要求的模式是(),

A、內(nèi)模式

B、概念模式

C、外模式

D、設(shè)計(jì)模式

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)解析:概念模式,是由數(shù)據(jù)庫(kù)設(shè)計(jì)者綜合所有用戶的數(shù)據(jù),按照統(tǒng)一的觀點(diǎn)

構(gòu)造的全局邏輯結(jié)構(gòu),是對(duì)數(shù)據(jù)庫(kù)中全部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的總體描述,是所

有用戶的公共數(shù)據(jù)視圖(全局視圖)。它是由數(shù)據(jù)庫(kù)管理系統(tǒng)提供的數(shù)據(jù)模式描述

語言(DataDescriptionLanguage,DDL)來描述、定義的,體現(xiàn)、反映了數(shù)據(jù)庫(kù)

系統(tǒng)的整體觀。外模式對(duì)應(yīng)于用戶級(jí),它是某個(gè)或某幾個(gè)用戶所看到的數(shù)據(jù)庫(kù)的數(shù)

據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。外模式是從模式導(dǎo)出的一個(gè)子集,

也稱為子模式或用戶模式.它是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式,

它反映了用戶對(duì)數(shù)據(jù)的要求。包含模式中允許特定用戶使用的那部分?jǐn)?shù)據(jù),用戶可

以通過外模式描述語言來描述、定義對(duì)應(yīng)于用戶的數(shù)據(jù)記錄(外模式),也可以利

用數(shù)據(jù)操縱語言(DataManipulationLanguage,DML)對(duì)這些數(shù)據(jù)記錄進(jìn)行描述。

內(nèi)模式,對(duì)應(yīng)于物理級(jí),它是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的內(nèi)部表示或底層描述,是數(shù)據(jù)庫(kù)

最低一級(jí)的邏輯描述,它描述了數(shù)據(jù)在存儲(chǔ)介質(zhì)上的存儲(chǔ)方式和物理結(jié)構(gòu),對(duì)應(yīng)著

實(shí)際存儲(chǔ)在外存儲(chǔ)介質(zhì)上的數(shù)據(jù)庫(kù)。內(nèi)模式由內(nèi)模式描述語言來描述、定義,它是

數(shù)據(jù)庫(kù)的存儲(chǔ)觀。

12、下列字符串中,不可以用作C++標(biāo)識(shí)符的是()。

A、y_2006

B、TESTH

C、Return

D、SWitch

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:此題考查的是標(biāo)識(shí)符。標(biāo)識(shí)符是由數(shù)字、字母以及下劃線構(gòu)成,其第

一個(gè)字符必須是字母或下劃線,中間不能有空格:標(biāo)識(shí)符的長(zhǎng)度是任意的,但由于

編譯系統(tǒng)的限制一般不超過31個(gè)字符;標(biāo)識(shí)符中的大小寫字母是不同的;定義標(biāo)

識(shí)符時(shí)不能采用系統(tǒng)的保留字。

13、必須用對(duì)大括號(hào)括起來的程序段是()。

A、switch語句中的case標(biāo)號(hào)語句

B、if語句的分支

C、循環(huán)語句的循環(huán)體

D、函數(shù)的函數(shù)體

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:此題考查的是語句塊和函數(shù)。if語句的分支和循環(huán)語句的循環(huán)體可以

是一條語句也可以使一個(gè)語句塊,所以不是必須用一個(gè)大括號(hào)括起來;switch語句

中的case標(biāo)號(hào)語句可以是一系列語句,也可以包含語句塊,也不是必須用一對(duì)大

括號(hào)括起來:函數(shù)的函數(shù)體必須用一對(duì)大括號(hào)括起來。

14、在C++中,用于實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性的是()。

A、內(nèi)聯(lián)函數(shù)

B、重載函數(shù)

C、模板函數(shù)

D、虛函數(shù)

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:此題考查的是虛函數(shù)的概念。C++語言的多態(tài)性有兩種:函數(shù)重載

和虛函數(shù)。虛函數(shù)只有在運(yùn)行時(shí)才能被確定,稱為運(yùn)行時(shí)多態(tài)。編譯時(shí)的多態(tài)是通

過函數(shù)重載和模板實(shí)現(xiàn)的.

15、在下列原型所示的C++函數(shù)中,按“傳值”方式傳遞參數(shù)的是()。

A、voidn(intx);

voidf2(int*x);

C、voidf3(constint*x);

D、voidf4(int&x);

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:傳值方式是將實(shí)參復(fù)制到形參中,因此實(shí)參和形參是兩個(gè)不同的變

量,有各自的存儲(chǔ)空間,可以把函數(shù)的形參看做是函數(shù)的局部變量。其中BC選項(xiàng)

為按低值傳遞D選賢為按引用傳遞。

16、已知主函數(shù)中通過如卜.語句序列實(shí)現(xiàn)對(duì)函數(shù)模板swap的調(diào)用:inta|10],

b[10];swap(a,b,10):下列對(duì)函數(shù)模板swap的聲明中,會(huì)導(dǎo)致上述語句序列發(fā)

生編譯錯(cuò)誤的是()。

A、templatevoidswap(Ta|],Tb|],intsize);

templatevoidswap(intsize,Ta[],Tb[]);

C>templatevoidswap(Tla[]?T2b[],intsize);

D、templatevoidswap(Tla||,T2b[],intsize);

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:由題目中函數(shù)sW印(a,b,10)調(diào)用語句可知,在對(duì)函數(shù)模板sw叩的

聲明語句中,應(yīng)將第一、二個(gè)參數(shù)設(shè)為數(shù)組變量,第三個(gè)參數(shù)為整型變量。

17、下列關(guān)于析構(gòu)函數(shù)的描述中,錯(cuò)誤的是()。

A、析構(gòu)函數(shù)可以重載

B、析構(gòu)函數(shù)由系統(tǒng)自動(dòng)調(diào)用

C、每個(gè)對(duì)象的析構(gòu)函數(shù)只被調(diào)用一次

D、每個(gè)類都有析構(gòu)函數(shù)

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:一般情況下,析構(gòu)函數(shù)在對(duì)象的生存周期即將結(jié)束的時(shí)候由系統(tǒng)自動(dòng)

調(diào)用。在調(diào)用完成之后,對(duì)象也就消失了,相應(yīng)的內(nèi)存空間也被釋放。析構(gòu)函數(shù)沒

有參數(shù),因此析構(gòu)函數(shù)不能重載,一個(gè)類中只能定義一個(gè)析構(gòu)函數(shù)。

18、下面是重載為非成員函數(shù)的運(yùn)算符函數(shù)原型,其中錯(cuò)誤的是().

A、Fractionopcrator+(Fraction,Fraction);

B、Fractionoperator一(Fraction);

C、Fraction&operator=(Fraction&,Fraction);

D、Fraction&opcrator+=(Fraction&,Fraction);

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載。C++語言規(guī)定,“=”運(yùn)算符只能作為成員

函數(shù)重載。

19、有如下程序:#incLude<iostream>usingnamespacesld;classA{public:

A(){cout<',A,;}^A(){cout<<,C,;)j:classB:publicA{public:BO{cout<

V,G〈}?BO{couKVT;}};intmain0{Bobj;return0;}運(yùn)行這個(gè)程序的輸出結(jié)

果是()。

A、GATC

B、AGTC

C、GACT

D、AGCT

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:派生類B是由基類A公開繼承而來,所以在創(chuàng)建類B的obj對(duì)象

時(shí),首先執(zhí)行基類A的構(gòu)造函數(shù)A(),輸出A,再執(zhí)行派生類B的構(gòu)造函數(shù)B0,

輸出G,當(dāng)程序結(jié)束時(shí),首先執(zhí)行派生類的析構(gòu)函數(shù)?B0,輸出T,再執(zhí)行基類

A的析構(gòu)函數(shù)?A(),輸出C。

20有如下程序:#includeusingnamespacestd;class[nstrument{public:virtual

voidDisplay()=0:);classPiano:publicInstrument!public:voidDisplay(){/*函

數(shù)體程序略*/}};intmain(){Instruments;Instrument*p=0://…;return

0;}下列敘述中正確的是()。

A、語句“Insturment*p=():”編譯時(shí)出錯(cuò)

B、語句“Instruments;”編譯時(shí)出錯(cuò)

C、類Piano中的Display函數(shù)不是虛函數(shù)

D、類Instrument是一個(gè)虛基類

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:由于函數(shù)Display。是一個(gè)純虛函數(shù),所以類Insirumen[是抽象類,而

抽象類是不能定義對(duì)象的,因而選項(xiàng)B為正確選項(xiàng)。

21、有如下程序:#inc1ude<iostrcam>usingnamespacestd;classPair{intm;int

n;public:Pair(inti,intj):m(i),n(j){}booloperator>(Pairp)const;//須在類體外

給出定義):intmainOIPairpl(3,4),p2(4,3),p3(4,5);cout<<(pl>p2)<<(p2>pl)

<<(p2>p3)<<(p3>p2);return0;}運(yùn)算符函數(shù)。pcrator>的功能是比較兩個(gè)

Pair對(duì)象的大小

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論