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

下載本文檔

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

文檔簡介

家二級(jí)(C++)機(jī)試模擬試卷15(共4

(共165題)

國家二級(jí)(C++)機(jī)試模擬試卷第1套

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

1、一個(gè)棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入

棧,然后再依次出棧,則元素出棧的順序是()o

A、12345ABCDE

B、EDCBA54321

C、ABCDE12345

D、54321EDCBA

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

知識(shí)點(diǎn)浦析:棧是先進(jìn)后出的原則組織數(shù)據(jù),所以入棧最早的最后出棧,所以選擇

B)o

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

A、friend

namespace

C、continue

D、byte

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

知識(shí)點(diǎn)解析:本題考查C++關(guān)鍵字,屬于基本常識(shí),顯然D選項(xiàng)不正確。

3、有如下程序:#includeusingnamespacestd;classCD{public:-CD()

{coutvv'C';}private:charname[80];);intmain(){CDa,*b,d[2];return0;}執(zhí)

行這個(gè)程序的輸出結(jié)果是()。

A、CCCC

B、CCC

C、CC

D、C

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

知識(shí)點(diǎn)解析:本題考查類的析構(gòu)函數(shù),題目中定義了類的一個(gè)對(duì)象a,對(duì)象指針

*b,對(duì)象數(shù)組d[2],當(dāng)程序執(zhí)行完后,析構(gòu)函數(shù)執(zhí)行了3次,輸出“CCC”,對(duì)

象指針不會(huì)執(zhí)行析構(gòu)函數(shù)。所以本題答案為B。

4、下列關(guān)于二叉樹的敘述中,正確的是()o

A、葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)少一個(gè)

B、葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個(gè)

C、葉子結(jié)點(diǎn)數(shù)是度為2的結(jié)點(diǎn)數(shù)的兩倍

D、度為2的結(jié)點(diǎn)數(shù)是度為1的結(jié)點(diǎn)數(shù)的兩倍

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

知識(shí)點(diǎn)解析:根據(jù)二叉樹的基本性質(zhì)3:在任意一棵二叉樹中,度為0的葉子結(jié)點(diǎn)

總是比度為2的結(jié)點(diǎn)多一個(gè)。所以選擇B)

5、下列關(guān)于運(yùn)算符重載的敘述中正確的是

A、跟普通函數(shù)一樣,可以為重載的運(yùn)算符函數(shù)的參數(shù)設(shè)置默認(rèn)值

B、通過重載,可以改變一個(gè)運(yùn)算符原有的優(yōu)先級(jí)和操作數(shù)個(gè)數(shù)

C、只能重載C++中已經(jīng)有的運(yùn)算符,不能定義新運(yùn)算符

D、C++中已有的運(yùn)算符都可以重載

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

知識(shí)點(diǎn)解析:本題考查運(yùn)算符重載,重載不能改變運(yùn)算符運(yùn)算對(duì)象的個(gè)數(shù);不能改

變運(yùn)算符的優(yōu)先級(jí)別;不能改變運(yùn)算符的結(jié)合性;重載運(yùn)算符的函數(shù)不能有默認(rèn)

值,否則就改變了運(yùn)算符參數(shù)的個(gè)數(shù);不能定義新的運(yùn)算符,某些運(yùn)算符不能重

載。所以答案為C。

6、#include#includeusingnamespacestd;classMyBag{public:MyBag(string

br="ABC"):brand(br){cout<

A^MyBagarrays[2];

B、MyBag*arrays=newMyBag|2|;

C、MyBagarrays[2]={MyBag("ABC")};

D、MyBagarrays[2]={MyBag("CityLife"),MyBag("Micky")};

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

知識(shí)點(diǎn)解析:本題考查閡造函數(shù)的應(yīng)用,題目中A、B、C、D,都定義了包含兩

個(gè)元素的一維數(shù)組,A、B、C都執(zhí)行題目中的構(gòu)造函數(shù),并且輸出“ABCABC",

而D選項(xiàng)中由于構(gòu)造函數(shù)參數(shù)不為ABC,所以輸出為“CilyLifeMicky”

7、下面屬于白盒測試方法的是

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

B、邏輯覆蓋

C、邊界值分析法

D、錯(cuò)誤推測法

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

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

句覆蓋、路徑覆蓋、判定覆蓋、條件覆蓋、判斷-條件覆蓋,選擇B。其余為黑盒

測試法。

8、若要在Number類的聲明中將減法運(yùn)算符重我為成員函數(shù),下列重載函數(shù)聲明

中正確的是

A、Numbcr-(Number);

B、Numberoperator-(Number);

C^Number-operator(Number);

D、rNumbcropcrator-(Numbcr,Number);

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

知識(shí)點(diǎn)解析:本題考查重載減法運(yùn)算符,重載運(yùn)算符的一般形式為:函數(shù)類型

operato「運(yùn)算符名稱(參數(shù)列表){對(duì)運(yùn)算符的重載處理}根據(jù)定義規(guī)則,只有B選項(xiàng)

正確。

9、有如下程序片段:classTask{public:intGetVahie();private:intvalue;};class

Displayed!public:intGetValue();voidDraw();private:intvalue;);class

Satellite:publicTask,publicDisplayed!public:voidDraw();};voidfun(Satellite*

sp){sp->GetValue();//0sp->Task::GetValue();H(2)sp->Displayed::GetValue();//(3)

sp->Draw();//?)在標(biāo)注號(hào)碼的語句行中,對(duì)類中成員訪問存在二義性的是

A、①

B、②

C、③

D、@

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

知識(shí)點(diǎn)解析:本題考查派生類對(duì)基類的繼承二義性問題,類Satellite公用繼承Task

和Displayed,兩個(gè)基類中都有GelValue函數(shù),所以引起二義性,A選項(xiàng)錯(cuò)誤。

10、一個(gè)運(yùn)動(dòng)隊(duì)有多個(gè)隊(duì)員,一個(gè)隊(duì)員僅屬于一個(gè)運(yùn)動(dòng)隊(duì),一個(gè)隊(duì)一般都有一個(gè)教

練,則實(shí)體運(yùn)動(dòng)隊(duì)和隊(duì)員的聯(lián)系是

A、一1對(duì)多

B、一對(duì)一

C、多對(duì)一

D、多對(duì)多

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

知識(shí)點(diǎn)解析:一般來說,實(shí)體集之間必須通過聯(lián)系來建立聯(lián)接關(guān)系,分為三類:

對(duì)一聯(lián)系(1:1)、一對(duì)多聯(lián)系(l:m)、多對(duì)多聯(lián)系(m:n)。實(shí)體運(yùn)動(dòng)隊(duì)和隊(duì)員

的關(guān)系為l:in聯(lián)系,故A選項(xiàng)正確。

11、有如卜程序:#includeusingnamespacestd;voidfun(int&a,)

{intc;c=a;a=b;b=c;}intmain(){intx,y;x=l;y=2;fun(x,y);cout<

A、intb

B>int*b

C^int&b

D、b

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

知識(shí)點(diǎn)解析:main函數(shù)中定義兩個(gè)整型變量x=l,y=2,由輸出x,y的結(jié)果為

21,可知函數(shù)fun的功能是交換兩個(gè)實(shí)參的值,由于函數(shù)fun中未使用指針類型的

變量,所以若想通過函數(shù)fun交換實(shí)參的值,形參類型必然為引用類型,橫線處語

句為int&b,答案為C。

12、下列C++流的操作符中,能夠設(shè)置下一個(gè)數(shù)據(jù)的輸出寬度的是

A、setprecision

B、setw

C、setfill

D、showpoint

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

知識(shí)點(diǎn)解析:sclprccision設(shè)置實(shí)數(shù)的精度;sctw設(shè)置字段寬度;setfill填充字符;

showpoinl強(qiáng)制輸出浮點(diǎn)數(shù)的小數(shù)點(diǎn)和尾數(shù)0;答案為Bo

有三個(gè)關(guān)系R、S和T如下:

RST

ABCABC

a12d3■回LD

b1c31□JEJLIJ

c31f47

e45

d3■2

則由關(guān)系R和S得到關(guān)系T的操作是

13、

A、交

B、差

C、并

D^選擇

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

知識(shí)點(diǎn)解析:用于查詢的3個(gè)操作無法用傳統(tǒng)的集合運(yùn)算表示,引入的運(yùn)算為投影

運(yùn)算、選擇運(yùn)算、笛卡爾積。常用的擴(kuò)充運(yùn)算有交、除、連接及自然連接等。選

擇,從關(guān)系中找出滿足給定條件的元組的操作稱為選擇,題目中無給定條件,故D

選項(xiàng)錯(cuò)誤。差:R-S結(jié)具是屬于R但不屬于S的記錄組成的集合,T中元組“c32”同

時(shí)屬于R和S,B選項(xiàng)錯(cuò)誤。并:RUS是將S中的記錄追加到R后面,T中元組少

于R,故C選項(xiàng)錯(cuò)誤。交:RAS結(jié)果是既屬于R又屬于S的記錄組成的集合,與

題目中結(jié)果相符,故A選項(xiàng)正確。

14、有如卜.程序:#includeusingnamespacestd;intfunl(intx){return++x;)int

fun2(int&x){return++x;)intmain(){inta=O,b=O,c=O;c=fun1(a)+fun2(b);cout<

A、002

B、012

C、102

D、112

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

知識(shí)點(diǎn)解析:程序定義了兩個(gè)函數(shù),funl和fun2,功能都是對(duì)形參x自增1,然后

返回自增后的值,其中fun2的形參x為引用類型,形參x自增1的同時(shí)實(shí)參的值

也自增1;main函數(shù)中定義三個(gè)整型變量a=0,b=0,c=0,調(diào)用funl(a)返回值為

1,調(diào)用fun2(b)返回值為1,同時(shí)實(shí)參b的值被修改為1,所以c的值為1+1=2,程

序輸出a、b、c為0,1,2;答案為B。

15、要建立文件流并打開當(dāng)前目錄下的文件filed*用于輸入,下列語句中錯(cuò)誤的

是()c

A、ifstrcamfln=ifstrcam.opcn("file.dat");

B、ifstream*fin=newifslream("file.dat");

C^ifstreamfin;fin.open('file.dat'1);

D、ifstrcam*fin=ncwifstrcam();fin->opcn("filc.dat");

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

知識(shí)點(diǎn)解析:本題考查對(duì)文件流輸入的操作,可以調(diào)用文件流的成員函數(shù)pen.

般形式如下:文件流對(duì)象.open(磁盤文件名,輸入/輸出方式)。根據(jù)以上格式,可

以判斷A選項(xiàng)錯(cuò)誤。

16、有如下的類聲明:#includeusingnamespacestd;classAA{public:virtualvoid

disp(){cout?*A\}};classBB:publicAA{public:voiddisp(){coutw'B';}};class

CC:publicBB{public:virtualvoiddisp(){cout?,C,;});voidplot(AA

&a){a.dispO;}intmain(){BBbb;CCcc;BB&rb=cc;plot(bb);plot(cc);rb.dispO;

return0;)運(yùn)行這個(gè)程序M輸出是

A、AAC

B、AAB

C、BCC

D、BCB

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

知識(shí)點(diǎn)解析:程序定義了類AA,成員函數(shù)disp()為虛函數(shù);類BB公有繼承AA,

重新定義了disp。函數(shù);類CC公有繼承BB,同樣重新定義了disp()函數(shù):類BB

中,雖然disp()未用virtual修飾,但是由虛函數(shù)性質(zhì)可知,BB中的disp()函數(shù)仍然

是虛函數(shù);main。函數(shù)中,創(chuàng)建BB對(duì)象bb,CC對(duì)象cc,使用cc初始化BB類引

用rb,然后調(diào)用plol函數(shù);plol函數(shù)的形參是AA類的引用,通過AA類引用調(diào)用

disp函數(shù),滿足多態(tài)性條件,將根據(jù)引用所指對(duì)象的類型來決定調(diào)用哪個(gè)disp函

數(shù);所以plot(bb)調(diào)用類BB中的disp函數(shù),plot(cc)調(diào)用CC中的disp函數(shù);輸出

分別為:“B“、“C”;另外由于rb為BB類引用,所指對(duì)象是cc,所以運(yùn)行rb.disp。

時(shí)調(diào)用的是CC中的disp()函數(shù),輸出“C”,綜上,程序輸出為:"BCC";答案為

Co

17、結(jié)構(gòu)化程序的三種基本控制結(jié)構(gòu)是

A、順序、選擇和重復(fù)(循環(huán))

B、過程、子程序和分程序

C、順序、選擇和調(diào)用

D、調(diào)用、返回和轉(zhuǎn)移

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

知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序的三種基本控制結(jié)構(gòu):順序、選擇和重復(fù),故A選項(xiàng)正

確。

18、對(duì)于一個(gè)類定義,編譯器可能會(huì)自動(dòng)生.成的函數(shù)不包括

A、復(fù)制構(gòu)造函數(shù)

B、缺省的構(gòu)造函數(shù)

C、析構(gòu)函數(shù)

D、友元函數(shù)

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

知識(shí)點(diǎn)解析:C++中,對(duì)于一個(gè)類定義,編譯器可能會(huì)自動(dòng)生成的函數(shù)有:默認(rèn)

(缺?。?gòu)造函數(shù),復(fù)制構(gòu)造函數(shù),復(fù)制運(yùn)算符,析構(gòu)函數(shù),答案為D。

19、下列敘述中正確的是()o

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

B、隊(duì)列是“先進(jìn)后出”的線性表

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

D、有序線性表既可以采用順序存儲(chǔ)結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

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

知識(shí)點(diǎn)解析:棧是先進(jìn)后出的線性表,所以A)錯(cuò)誤:隊(duì)列是先進(jìn)先出的線性表,

所以B)錯(cuò)誤;循環(huán)隊(duì)列是線性結(jié)構(gòu)的線性表,所以C)錯(cuò)誤。

20、運(yùn)算符重載時(shí)不需要保持的性質(zhì)是()。

A、操作數(shù)個(gè)數(shù)

B、操作數(shù)類型

C、優(yōu)先級(jí)

D、結(jié)合性

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

知識(shí)點(diǎn)解析:重載運(yùn)算符的規(guī)則如下:①C++不允許用戶自己定義新的運(yùn)算符,只

能對(duì)已有的C++運(yùn)算符進(jìn)行重載;②C++不能重載的運(yùn)算符只有5個(gè);③重載不

能改變運(yùn)算符運(yùn)算對(duì)象的個(gè)數(shù);④重載不能改變運(yùn)算符的優(yōu)先級(jí)和結(jié)合性;⑤重

載運(yùn)算符的函數(shù)不能有默認(rèn)的參數(shù);⑥重載的運(yùn)算符必須和用戶定義的向定義類

型的對(duì)象一起使用,至少應(yīng)有一個(gè)是類對(duì)象,即不允許參數(shù)全部是C++的標(biāo)準(zhǔn)類

型。所以答案為B。

21、有如下類聲明:classBase{protected:intamount;public:Base(intn=0):

amount(n){)intgetAmount()const{returnamount;)};classDerived:publicBase

{protected:intvalue;public:Derived(intm,intn):value(m),Base(n){)int

getData()const{returnvalue+amount;});已知x是一個(gè)Derived對(duì)象,則下列表達(dá)

式中正確的是()。

A、x.value+x.getAmount()

B、x.getData()-x.getAmount()

C^x.getData()-x.amount

D、x.value+x.amount

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

知識(shí)點(diǎn)解析:本題考查公有繼承中派生類對(duì)象對(duì)基類的訪問屬性。在公有繼承中,

派生類對(duì)象只能訪問基類的公有成員,而不能訪問基類的保護(hù)成員和私有成員。題

中x是派生類的對(duì)象,只能訪問基類中公有的Base。和ge【Amounl()成員,而不能

訪問保護(hù)類型的amount成員,故選項(xiàng)C、D錯(cuò)誤”而類對(duì)象對(duì)類成員的訪問也存

在類似的情況,即類對(duì)象只能訪問類的公有成員,而value是Derived的保護(hù)成

員,所以A選項(xiàng)也錯(cuò)誤。故答案為B。

22、下列術(shù)語中,能表明面向?qū)ο笏枷胫饕卣鞯氖?/p>

A、封裝性

B、靈活性

C、安全性

D、可靠性

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

知識(shí)點(diǎn)解析:C++作為面向?qū)ο蟮恼Z言,具有三種特點(diǎn)封裝性、繼承性、多態(tài)性。

所以答案為Ao

23、下列關(guān)于派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的敘述中,錯(cuò)誤的是

A、如果基類中沒有缺省構(gòu)造函數(shù),那么派生類必須定義構(gòu)造函數(shù)

B、派生類的構(gòu)造函數(shù)會(huì)隱含調(diào)用基類的構(gòu)造函數(shù)

C、在建立派生類對(duì)象時(shí),先調(diào)用基類的構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)

D、在銷毀派生類對(duì)象時(shí),先調(diào)用基類的析構(gòu)函數(shù),再調(diào)用派生類的析構(gòu)函數(shù)

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

知識(shí)點(diǎn)解析:本題考查派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序,在銷毀派生類對(duì)

象時(shí),先調(diào)用派生類的沂構(gòu)函數(shù),再調(diào)用基類的析構(gòu)函數(shù),所以D選項(xiàng)錯(cuò)誤。

24、下列敘述中正確的是

A、程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)

B、程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)

C、程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量

D、以上說法均錯(cuò)誤

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

知識(shí)點(diǎn)解析:程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)、數(shù)據(jù)的邏輯結(jié)構(gòu)、程序的控制結(jié)

構(gòu)、所處理的數(shù)據(jù)量等有關(guān)。

25、有如下定義:classInner{public:voidfl(){cout?"fl";)friendvoid

f2(){cout?"f2";)};voidf3(){cout?"f3";)inlinevoidf4(){cout?"f4n;}其中的內(nèi)

聯(lián)函數(shù)包括

A、fl和f2

B、f3和小

C>f2和廿

D、fl和f4

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

知識(shí)點(diǎn)解析:在類體中定義的成員函數(shù),C++系統(tǒng)會(huì)自動(dòng)將它們作為內(nèi)聯(lián)函數(shù)處

理,而在類外定義的成員函數(shù),系統(tǒng)并不把它們默認(rèn)為內(nèi)聯(lián)函數(shù),使用inline也是

內(nèi)聯(lián)函數(shù),所以共有2個(gè)內(nèi)聯(lián)函數(shù)fl和f4,D選項(xiàng)正確。

26、有如卜程序片段:classTask{public:intGetValue();private:intvalue;};class

Displayed)public:intGctValuc();voidDraw();private:intvalue;};class

Satellite:publicTask,publicDisplayed)public:voidDraw();};voidfun(Satellite*

sp)(sp->GetValue();//(T)sp->Task::GetValue();〃②sp->Displayed::GetValue();〃③

sp->Draw();//(4))在標(biāo)注號(hào)碼的語句行中,對(duì)類中應(yīng)員訪問存在二義性的是

A①

、

B②

、

c③

、

D@一

、

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

知識(shí)點(diǎn)解析:本題考查派生類對(duì)基類的繼承二義性問題,類Satellite公用繼承Task

和Displayed,兩個(gè)基類中都有GetValue函數(shù),所以引起二義性,A選項(xiàng)錯(cuò)誤。

27、下列關(guān)于貨幣數(shù)據(jù)類型的敘述中,錯(cuò)誤的是

A、DOUBLE

ab-c

C、_5_

D、xyz

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

知識(shí)點(diǎn)解析:C++的標(biāo)識(shí)符由字母、數(shù)字和下劃線組成,其中必須以字母或下劃線

開頭。選項(xiàng)B錯(cuò)誤,答案選B。

28、某二叉樹中有15個(gè)度為1的結(jié)點(diǎn),16個(gè)度為2的結(jié)點(diǎn),則該二叉樹中總的結(jié)

點(diǎn)數(shù)為

A、32

B、46

C、48

D、49

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

知識(shí)點(diǎn)》析:在樹結(jié)構(gòu)中,一個(gè)結(jié)點(diǎn)所擁有的后件個(gè)數(shù)稱為該結(jié)點(diǎn)的度,所有結(jié)點(diǎn)

中最大的度稱為樹的度。對(duì)任何一棵二叉樹,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比

度為2的結(jié)點(diǎn)多一個(gè)。由16個(gè)度為2的結(jié)點(diǎn)可知葉子結(jié)點(diǎn)個(gè)數(shù)為17,則結(jié)點(diǎn)結(jié)點(diǎn)

總數(shù)為16+17+15=48,C選項(xiàng)正確。

29、有如下類定義:classBase{public:voidfun(){cout?"Base::fun"<

A、Base.fun();

Base->fun();

CNBase::fun();

D、fun();

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

知識(shí)點(diǎn)解析:基類Base和派生類Derived中使用同一名字的成員函數(shù)fun,所以在

派生類Derived的作用域中,派生類Derived中的fun函數(shù)會(huì)屏蔽基類Base中的

fun函數(shù),即Base的fun函數(shù)對(duì)Derived不可見,這是因?yàn)榫幾g器在查找名字fun

時(shí)?,首先在Derived中找到,這樣編譯器就不再繼續(xù)查找,所以若想在Derived中

調(diào)用Base的fun函數(shù),必須顯式的說明fun函數(shù)屬于Base,這里使用作用域運(yùn)算

符訪問被屏蔽的fun,調(diào)用語句為:Base::fun();答案為C。

30、有如下類定義:classBase{public:inta;protected:intb;private:intc;};class

Derived:publicBase{protected:intd;};若obj是類Derived的對(duì)象,以下語句編譯

正確的是

A、obj.a;

B、obj.b;

C^obj.c;

D、obj.d;

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

知識(shí)點(diǎn)解析:類Derived以public方式繼承Base,所以a在Derived中是public成

員,b在Derived中是prolecled成員,c對(duì)Derived不可見;所以對(duì)類Derived對(duì)象

obj可見的成員為a,答案為A。

31、在函數(shù)中,可以用auto、extern、register和static這四個(gè)關(guān)鍵字中的一個(gè)來說

明變量的存儲(chǔ)類型,如果不說明存儲(chǔ)類型,則默認(rèn)的存儲(chǔ)類型是()。

A、auto

B、extern

C、register

D、static

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

知識(shí)點(diǎn)解析:變量的存儲(chǔ)方法分為靜態(tài)存儲(chǔ)和動(dòng)態(tài)存儲(chǔ)兩大類,包含4種:自動(dòng)的

(auto)、靜態(tài)的(static)、寄存器的(register)、外部的(extern)。變量如果沒有說明存儲(chǔ)

類型,那么默認(rèn)就是au【o。

32、有如下程序:#includeusingnamespacestd;classMusic{public:void

setTitle(char*str){strcpy(litle,str);}protected:chartype[10];private:chartitle

[20];};classJazz:publicMusic{public:voidset(char*str){strcpy(type,"Jazz");

〃①strcpy(title,str);〃②});下列敘述中正確的是()。

A、程序編譯正確

B、程序編譯時(shí)語句①出錯(cuò)

C、程序編譯時(shí)語句②出錯(cuò)

D、程序編譯時(shí)語句①和②都出錯(cuò)

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

知識(shí)點(diǎn)解析:本題考查公用繼承和保護(hù)繼承對(duì)基類成員的訪問屬性。公用繼承中,

基類的公用成員和保護(hù)成員在派生類中保持原有訪問屬性,其私有成員仍為基類私

有。保護(hù)成員不能被類外訪問,但是可以被派生類的成員函數(shù)訪問。Type成為派

生類的保護(hù)成員,可以被派生類訪問,liUe仍為基類私有,派生類不能直接訪問。

所以答案為C。

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

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

A、枚舉常量YELLOW的值為1

B、枚舉常量RED的值為6

C、枚舉常量BLACK的值為10

D、枚舉常量WHITE的值為1

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

知識(shí)點(diǎn)解析:C++語言規(guī)定枚舉常量的默認(rèn)值依次等于0,1,…,n-1。也可以給

枚舉常量賦初值,方法是:在枚舉常量的后面跟上”二整型常量”,在給枚舉常量賦

初值時(shí),如果給其中任何一個(gè)枚舉常量賦初值,則其后的枚舉常量將按自然數(shù)的規(guī)

則依次賦初值。所以本題答案為D。

34、有如下類定義:classCup{public:Cup(doublevaLstring

cr="rcd"):pricc(val),color(cr){)Z/(T)~Cup();〃②private:stringcolor;〃③double

price=5.8;〃④);在標(biāo)注號(hào)碼的語句行中存在語法錯(cuò)誤的是

A①

、

B②

、

c③

、

D@一

、

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

知識(shí)點(diǎn)解析:本題考查如何初始化對(duì)象,其中類的數(shù)據(jù)成員是不能再聲明類時(shí)初始

化的,所以D選項(xiàng)錯(cuò)誤,在定義類的同時(shí)對(duì)數(shù)據(jù)成員price進(jìn)行賦值是錯(cuò)誤的。

35、負(fù)責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是()。

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

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

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

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

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

知識(shí)點(diǎn)解析:數(shù)據(jù)定義語言:負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操

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

據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等功能。

36、如果派生類以protected方式繼承基類,則原基類的protected成員和public成

員在派生類中的訪問屬性分別是

A^public和public

B、publicprotected

C、protectedflpublic

D、protectedfllprotected

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

知識(shí)點(diǎn)解析:本題考查繼承與派生,派生類中的成員訪問基類中的成員由派生方式

決定,派生類保護(hù)繼承基類,那么基類中的私有成員不可訪問,基類的保護(hù)成員和

公用成員變成了派生類的保護(hù)成員。所以D選項(xiàng)正確。

37、對(duì)長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方

法是()。

A、快速排序

B、冒泡排序

C、直接插入排序

D、堆排序

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

知識(shí)點(diǎn)解析:除了堆排序算法的比較次數(shù)是O(nk)g2n),其他的都是n(n—1)/2。

38、有如下類聲明和函數(shù)聲明classBase{intm;public:intn;protected:intp;);class

Derived:publicBase{intk;friendvoidf(Derivedd););則在函數(shù)f中通過d可訪問類

數(shù)據(jù)成員的個(gè)數(shù)是

A、1

B、2

C、3

D、4

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

知識(shí)點(diǎn)解析:公有繼承中,派生類不改變基類的成員訪問權(quán)限(private成員除外),

即基類的public成員在派生類中是public成員,基類的protected成員在派生類中

是protected成員;另外友元函數(shù)可以訪問類的private成員、protected成員和

public成員,所以f函數(shù)中d可以訪問的數(shù)據(jù)成員有:n、p、k;m對(duì)派生類不可

見;答案為C。

二、基本操作題(本題共1題,每題1.0分,共1分0)

39、請(qǐng)使用VC6或使用【答題】菜單打開考生文件夾projl下的工程projl,其中

有矩形類Rectangle、函數(shù)show和主函數(shù)main的定義。程序中位于每個(gè)“//

ERROR****found****''下一行的語句有錯(cuò)誤,請(qǐng)力11以改正。改正后程序的輸出

結(jié)果應(yīng)該是:Upperleft=(1,8),downright:(5,2),areal=24.注意:只修改每個(gè)

“//ERROR****found****”下的那一行,不要改動(dòng)程序中的其他內(nèi)容。include

#includeusingnamespacestd;classRectangle{doublexltyl;//左上角坐標(biāo)

doublex2,y2;//右下角坐標(biāo)public://ERROR**********found**********

Rectangle(doublex1,yl:doublex2,y2){this->xl=xl;this->yl=yl;

thiS->x2=x2;this->y2=y2;)doubIegetXl()const{returnxl;}

doiiblegefYl()const{returny1;)doiihlegetX2()const{returnx2:}

doublegetY2()const{returny2;}doublegetHeight()const(returnfabs(y1—y2);}

doublegetWidth()constfreturnfabs(xl-x2);)

doublearea()const(returngetHeight()*getWidth():}};//

ERROR**********found**********

voidshow(Rectangler)const{cout?"Upperleft=(M;//

F1^01^**********[**********coul<

標(biāo)準(zhǔn)答案:(1)Rectangle(doublexl,doubleyl,doublex2,doubley2){(2)void

show(Rectangler){(3)cout?r.getX1()?",n?r.getYl()?H),downright=("?

r.getX2()?n,"?r.getY2();

知識(shí)點(diǎn)解析:(I)主要考杳考生對(duì)構(gòu)造函數(shù)的掌握,函數(shù)的參數(shù)要使用;隔開,不能使

用「。(2)主要考查考生對(duì)const函數(shù)的掌握,程序中調(diào)用函數(shù)r.area。,該函數(shù)修改了

成員值,因此不能使用consto(3)主要考查考生對(duì)成員函數(shù)的掌握,類外函數(shù)不能直

接調(diào)用類的私7J.成員,只能通過成員函數(shù)調(diào)用。

三、簡單應(yīng)用題(本題共[題,每題7.0分,共I分0)

40、請(qǐng)使用VC6或使用【答題】菜單打開考生文件夾prog2下的工程prog2,比工

程中包含一個(gè)程序文件mmn.epp,其中有“班級(jí)”類Class和“學(xué)生”類Student的定

義,還有主函數(shù)main的定義。在主函數(shù)中定義了兩個(gè)“學(xué)生”對(duì)象,他們屬于同一

班級(jí)。程序展示,當(dāng)該班級(jí)換教室后,這兩個(gè)人的教室也同時(shí)得到改變。請(qǐng)?jiān)跈M線

處填寫適當(dāng)?shù)拇a,然后刪除橫線,以實(shí)現(xiàn)上述類定義。此程序的正確輸出結(jié)果應(yīng)

為:改換教室前:學(xué)號(hào):0789姓名:張三班級(jí):062113教室:521學(xué)號(hào):0513姓

名:李四班級(jí):062113教室:521改換教室后:學(xué)號(hào):0789姓名:張三班級(jí):

062113教室:311學(xué)號(hào):0513姓名:李四班級(jí):062113教室:311注意:只能在

橫線處填寫適當(dāng)?shù)拇a,不要改動(dòng)程序中的其他內(nèi)容。include

usingnamespacestd;classClass(//“班級(jí)”類public:Class(constchar*id,

constchar*room){strcpy(classid,id);f}**********found**********)

constchar*getClassID()const{returnclassid;}//返回班號(hào)//

*********玨014[記**********constchar*getQassroom()const{}//返回所

在教室房號(hào)voidchangeRoomTo(constchar*newroom){//改換到另一個(gè)指定房號(hào)的

教室strcpy(classroom,new_room);}private:charclassid[20];//班號(hào)

charclassroom[20];//所在教室房號(hào)};classStudcnt{//“學(xué)生"類

charmyid|10|;//學(xué)號(hào)charmyname[20];//姓名Class&myclass;//所在教室

public://**********found**********Student(constchar*theid,const

char*thc_name,Class&the_class):;strcpy(my_id,the_id);

strcpy(my_name,the_name);}constchar*getlD()const{returnmy_id;}

constchar*getName()const{returnmy_name;}

ClassgctClassOconst{rcturnmy_class;});voidshowStudcnt(Studcnt*stu)(cout?"

號(hào):"vgelID()?”";cout<<”姓名:,'<getName()?,,n;couivv”班級(jí):

"<getClass().getClassID()?"";cout<<"教室:"<getClass().getClassroom()<

標(biāo)準(zhǔn)答案:(l)strcpy(classroom,room);(2)rcturnclassroom;(3)my_class(thc_class)

(4)cla.changeRoomTo("31ln);

知識(shí)點(diǎn)解析:(1)主要考查考生對(duì)strcpy函數(shù)的掌握情況,根據(jù)上一條語句:

strcpy(class_id,id);可知,這條語句要復(fù)制字符串room,因此使用strcpy函數(shù)復(fù)

制,即slrcpy(c1assroom,room);。(2)主要考查考生對(duì)函數(shù)返回值的掌握情況,根

據(jù)函數(shù)要求:返回所在教室房號(hào)及函數(shù)要求返回的類型為constchar*,可以得出這

里直接使用return語句返回classroom即可。(3)主要考查考生對(duì)構(gòu)造函數(shù)的掌握情

況,先看函數(shù)體中:strcpy(my_id,the_id);strcpy(my_name,the_name);可知只

有參數(shù)Class&the_class於使用,因此在這里使用晟員列表初始化給my_class賦初

始值。(4)主要考查考生對(duì)成員函數(shù)調(diào)用的掌握,程序要求062113班的教室由521

改換到311。在類Class中已經(jīng)定義了函數(shù):

voidehangeRoomTo(constchar*new_room),因此直接調(diào)用函數(shù)changeRoomTo即

可。

四、綜合應(yīng)用題(本題共[題,每題1.0分,共I分。)

41、請(qǐng)使用VC6或使用【答題】菜單打開考生文件夾proj3下的工程pros3,其中

聲明/ValArray類,該類在內(nèi)部維護(hù)一個(gè)動(dòng)態(tài)分配的立型數(shù)組v。ValArray類的成

員函數(shù)equals用于判斷兩個(gè)對(duì)象是否相等。兩個(gè)ValArray對(duì)象相等,當(dāng)且僅當(dāng)兩

者的元素個(gè)數(shù)size相等,并且整型數(shù)組v的對(duì)應(yīng)元素分別相等。如果兩個(gè)對(duì)象相

等,則equals返回true,否則返回false。請(qǐng)編寫成員函數(shù)equals。在main函數(shù)中

給出了一組測試數(shù)據(jù),此種情況下程序的輸出結(jié)果應(yīng)為:vl=(l,2,3,4,5)

v2={1,2,3,4}v3={1,2,3,4,6}v4={L2,3,4,5)vl!=v2vl!=v3vl=v4

要求:補(bǔ)充編制的內(nèi)容寫在“//**********333***********與"http://

**********666******”**”之間,不得修改程序的其他部分。注意:程序最后將

結(jié)果輸出到文件out.dat中。輸出函數(shù)writeToFile已經(jīng)編譯為obj文件,并且在本

程序中調(diào)用。//VatArray.h#includeusingnamespacestd;classValArray{int*v;

intsize;public:ValArray(constint*p,intn):size(n){v=newint|size|;for(inti=0;

i

標(biāo)準(zhǔn)答案:if(size!=other.size)〃判斷數(shù)組長度returnfalse;for(inti=0;i<size;

i++)〃判斷數(shù)組元素if(v[i]!=othcr.v[i])returnfalse;returntrue;

知識(shí)點(diǎn)解析:主要考查考生對(duì)數(shù)組的掌握,函數(shù)boolValArray::equals(const

ValArray&other)要求判斷兩個(gè)數(shù)組是否相等,先判斷數(shù)組長度,如果長度相同再根據(jù)

數(shù)組元素依次判斷。

國家二級(jí)(C++)機(jī)試模擬試卷第2套

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

1、if語句的語法格式可描述為:格式1:if(<條件〉)<語句〉或格式2:if(<條件>)

(語句1>elsev語句2>關(guān)于上面的語法格式,下列表述中錯(cuò)誤的是()。

A、〈條件>部分可以是一個(gè)if語句,例如if(if(a=0)…)…

B、<語句)部分可以是一個(gè)if語句,例如if(…)if(...)…

C、如果在<條件>前加上邏輯非運(yùn)算符!并交換<語句和<語句2>的位置,語句功

能不變

〈語句〉部分可以是一個(gè)循環(huán)語句,例如if(…)while(…)…

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

知識(shí)點(diǎn)解析:本題考查if語句,if語句的條件部分不能嵌套if語句,所以A選項(xiàng)

錯(cuò)誤;B選項(xiàng)就是if語句嵌套;C選項(xiàng)其實(shí)就是將判斷條件顛倒,然后執(zhí)行語句也

顛倒,所以效果一樣;D選項(xiàng)也正確。

2、有如下程序:#includeusingnamespacestd;classBase{public:voidfun()

{cout?"Base::fun"<

A^Base.fun();

B、Base::fun();

C、Base->fun();

D^fun();

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

知識(shí)點(diǎn)解析:本題考直公用繼承對(duì)基類成員的訪問屬性。在公用繼承中,基類的公

用成員和保護(hù)成員在派生類中保持原有的訪問屬性,其私有成員仍為基類私有。本

題中想要輸出Base::fun,則必須調(diào)用基類的公用成員函數(shù)fun,所以使用

Base::fun();來調(diào)用基類的成員函數(shù)fun。

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

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

B、棧

C、隊(duì)列

D、二叉樹

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

知識(shí)點(diǎn)解析:棧是按先進(jìn)后出的原則組織數(shù)據(jù)的。隊(duì)列是先進(jìn)先出的原則組織數(shù)

據(jù)。

4、已知函數(shù)卜A調(diào)用函數(shù)卜B若要把這兩個(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)解析:如果使用用戶自己定義的函數(shù),而該函數(shù)與調(diào)用它的函數(shù)(即主調(diào)用

函數(shù))在同一程序單元中,且位置在主調(diào)用函數(shù)之后,則必須在調(diào)用此函數(shù)之前對(duì)

被調(diào)用的函數(shù)作聲明。

5、有如下類定義:classTV{public:TV(ints=41,stringbr="TCL"):size(s),brand(br)

{)~TV(){}private:intsize;stringbrand;};若執(zhí)行語句TVli,*net[2],company[3];則

TV類的構(gòu)造函數(shù)被調(diào)用的次數(shù)是

A、6次

B、4次

C、3次

D、2次

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

知識(shí)點(diǎn)解析:本題考查溝造函數(shù)和析構(gòu)函數(shù),題中定義了一個(gè)對(duì)象,以及對(duì)象數(shù)

組,那么構(gòu)造函數(shù)需要執(zhí)行4次,而*nct|2]并不執(zhí)行構(gòu)造函數(shù),所以答案為民

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

應(yīng)用軟件的是()o

A、學(xué)生成績管理系統(tǒng)

B、C語言編譯程序

C、UNIX操作系統(tǒng)

D、數(shù)據(jù)庫管理系統(tǒng)

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

知識(shí)點(diǎn)解析:軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件、支撐軟件。操作系統(tǒng)、

編譯程序、匯編程序、網(wǎng)絡(luò)軟件、數(shù)據(jù)庫管理系統(tǒng)都屬于系統(tǒng)軟件。所以B)、

C)、D)都是系統(tǒng)軟件,只有A)是應(yīng)用軟件。

7、有如下程序:#include#includeusingnamespacestd;classWheel{public:

Wheel(strings="W"):nan^s){cout<

A、G

B、RG

C、WRG

D、RWG

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

知識(shí)點(diǎn)解析:定義Bicyclebike時(shí),執(zhí)行Wheel的構(gòu)造函數(shù)輸出W,然后執(zhí)行

Bicycle的構(gòu)造函數(shù)輸出RG,最終輸出WRG,選項(xiàng)C正確。

8、下面不屬于軟件測試實(shí)施步驟的是

A、集成測試

B、回歸測試

C、確認(rèn)測試

D、單元測試

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

知識(shí)點(diǎn)解析:軟件測試主要包括單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試。

9、有如下函數(shù)定義:voidswap(inta,inf^rh){intc=a;a=h;h=c;)若執(zhí)行語句序列

intx=0,y=1;swap(x,y);則變量x和y的值分別是

Ao和

、0

Bo和

、1

c1和

、

和0

D1

、1

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

知識(shí)點(diǎn)解析:參數(shù)傳遞有三種:傳值(value),傳址(address),和傳引用(reference)

傳值時(shí)子函數(shù)(被調(diào)用者)復(fù)制父函數(shù)(調(diào)用者)傳遞的值,這樣子函數(shù)無法改變

父函數(shù)變量的值。函數(shù)swap的第一個(gè)參數(shù)就是傳值調(diào)用,所以它的值不會(huì)改變傳

址時(shí)父函數(shù)將變量的地址傳遞給了函數(shù),這樣子函數(shù)可以能過改寫地址里的內(nèi)容改

變父函數(shù)中的變量傳引用則是一種看起來像傳值調(diào)用,而實(shí)際上功能同傳址一樣

的傳遞方式。子函數(shù)可以改寫父函數(shù)的變量值。函數(shù)swap的第二個(gè)參數(shù)就是傳引

用調(diào)用,可以改變其值,所以執(zhí)行完函數(shù)后,b值與a值相同,即都是0,A選項(xiàng)

正確。

10、有如下類聲明:classHow{intk;public:friendvoidshow(););則類How所擁有

的構(gòu)造函數(shù)的數(shù)量是

A、I

B、2

C、3

D、4

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

知識(shí)點(diǎn)解析:類How的定義體中沒有定義任何構(gòu)造函數(shù),所以編譯器需要自動(dòng)生

成一個(gè)默認(rèn)構(gòu)造函數(shù)和復(fù)制構(gòu)造函數(shù),答案為B。

11、當(dāng)數(shù)據(jù)庫中數(shù)據(jù)總體邏輯結(jié)構(gòu)發(fā)生變化,而應(yīng)用程序不受影響,稱為數(shù)據(jù)的

A、邏輯獨(dú)立性

B、物理獨(dú)立性

C、應(yīng)用獨(dú)立性

D、空間獨(dú)立性

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

知識(shí)點(diǎn)解析:數(shù)據(jù)獨(dú)立性包括物理獨(dú)立性和邏輯獨(dú)立性,物理獨(dú)立性指數(shù)據(jù)的物理

結(jié)構(gòu)的改變,不會(huì)影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),也不會(huì)引起應(yīng)用程序的改動(dòng);邏輯獨(dú)立

性指數(shù)據(jù)庫的總體邏輯結(jié)構(gòu)的改變,不會(huì)導(dǎo)致相應(yīng)的應(yīng)用程序的改變。故A選項(xiàng)

正確。

12、有如卜程序:#includeusingnamespacestd;classA{public:staticinta;void

init(){a=10;)A(inta=5){init();a+=10;)};intA::a=0;Aobj;intmain(){cout?

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

A、0

R、5

C、15

D、10

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

知識(shí)點(diǎn)解析:靜態(tài)數(shù)據(jù)成員獨(dú)立于任何對(duì)象而存在,不是類對(duì)象的組成部分,普通

成員函數(shù)可以引用靜態(tài)數(shù)據(jù)成員。程序定義了類A,并在A的定義體外初始化A

的靜態(tài)數(shù)據(jù)成員a=0,構(gòu)造函數(shù)A(int)中的形參a與A::a屬于不同的變量,在函數(shù)

A(int)中,形參a屏蔽了A::a,所以A(int)中引用的變量a是形參,而不是A::a,對(duì)

a的任何操作都不影響A::a,而成員函數(shù)init中引用的是A::a,語句a=10是將A::a

賦值為10,所以輸出obj.a其實(shí)是輸出A::a,結(jié)果為10;答案為D。

13、在下列枚舉符號(hào)中,用來定位文件開始位置的方式是

A、ios_base::cur

B、ios_base::beg

C、ios_basc::out

D、iosbase::end

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

知識(shí)點(diǎn)解析:ios_base::cur是指文件的當(dāng)前位置;ios_base::cnd指向文件尾部;

ios_base::beg指向文件開始;ios_base::oul文件操作的文件模式;答案為B。

14、有如下程序:intx=3;do{x-=2;cout<

A、1

B、30

C、1-2

D、死循環(huán)

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

知識(shí)點(diǎn)解析:本題考查do...while語句,執(zhí)行do...while語句時(shí),先執(zhí)行循環(huán)體內(nèi)的

語句,然后判斷while中表達(dá)式的值,表達(dá)式為非零時(shí),返回重新執(zhí)行循環(huán)體語

句。在本題中,先執(zhí)行循環(huán)體內(nèi)的語句,輸出1,然后判斷表達(dá)式,為非零,且此

時(shí)x為0;再次執(zhí)行循環(huán)體時(shí),輸出-2,然后判斷表達(dá)式為0,不執(zhí)行,退出,所

以答案為C。

15、有如下類定義:classMyClass{public:MyClass(doubled=0.0):val(d){}

〃類型轉(zhuǎn)換運(yùn)算符double的定義private:doubleval;);若要使語句

序列MyClassx(2.l);cout<

A^operatordouble()const{returnval;}

B、fricndopcratordoublc()const{returnval;}

C、doubleoperator()const{returnval;}

D、frienddoubleoperator()const{returnval;}

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

知識(shí)點(diǎn)解析:題目需要定義類型轉(zhuǎn)換運(yùn)算符double,類型轉(zhuǎn)換運(yùn)算符是一種特殊的

類成員函數(shù),它定義將類類型的值轉(zhuǎn)變?yōu)槠渌愋椭?,由于轉(zhuǎn)換函數(shù)必須是成員函

數(shù),選項(xiàng)B、D錯(cuò)誤;另外轉(zhuǎn)換函數(shù)不能指定返回類型,并且形參列表必須為空,

選項(xiàng)C錯(cuò)誤;所以double類型轉(zhuǎn)換運(yùn)算符的定義為:

operatordouble()const{returnval;};答案為A。

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

A、iomanip

B、fstream

CNstrstream

D、cstdlib

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

知識(shí)點(diǎn)解析:iomanip是I/O流控制頭文件;strstream是輸入輸出字符串流頭文

件;csldlib是常用函數(shù)庫,提供一些函數(shù)和符號(hào)常量;選項(xiàng)A、C、D錯(cuò)誤;

fstream是輸入輸出文件流頭文件,答案為B。

17、將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)的遞歸函數(shù)定義如下:voidd2b(unsignedintn){if

((n=0)||(n==l))cout<

A、1

B、2

C、3

D、4

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

知識(shí)點(diǎn)解析:遞歸函數(shù)d2b,首先判斷參數(shù)n是否為0或1,若是,則輸出n,函

數(shù)調(diào)用結(jié)束;否則遞歸調(diào)用自身,將n/2當(dāng)做新的參數(shù)傳入。所以d2b被調(diào)用時(shí),

參數(shù)分別是:10,5,2,1。所以函數(shù)d2b被調(diào)用4次。答案為D。

18、有如下程序#includeusingnamespacestd;classAA{charc;public:

AA():c('X'){}AA(charch):c(ch){}AA(AA&aa):c(aa.c){}~AA(){cout?3;}char

value()const{returnc;}};voidfl(AAa){cout<

A、X3Y3

B、XY33

C、Y3X3

D、YX33

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

知識(shí)點(diǎn)解析:main函數(shù)中,調(diào)用fl函數(shù),創(chuàng)建局部對(duì)象AA(,Y)此時(shí)形參a就

是AA(Y)對(duì)象,輸出a.value。,即“Y”,tl函數(shù)執(zhí)行完之后,需要銷毀AA(Y)對(duì)

象,調(diào)用AA類的析構(gòu)函數(shù)?AA(),輸出“3”;接著程序調(diào)用f2函數(shù),f2函數(shù)創(chuàng)建

局部對(duì)象的引用a并初始化指向AA(),此時(shí)引用a所指對(duì)象的成員c值為“X",輸

出為“X“,f2函數(shù)執(zhí)行完之后,需要銷毀a所指對(duì)象AA(),調(diào)用AA類的析構(gòu)函數(shù)

~AA(),輸出“3”,程序結(jié)束;運(yùn)行結(jié)果為:"Y3X3",答案為C。

19^有如下程序段:inti=0,j=1;int&r=i;//(T)r=j;//@int*p=&i;//(3)=

&r;//?其中會(huì)產(chǎn)生編譯錯(cuò)誤的語句是()。

A、?

B、③

C、②

D、?

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

知識(shí)點(diǎn)解析:本題考查書針和引用。①為引用,使用正確;④中&r表示一個(gè)地

址,而*p已經(jīng)是一個(gè)值了,不能將一個(gè)指針賦值給一個(gè)值,所以編譯錯(cuò)誤。

20有如下程序:#includeusingnamespacestd;classtest{private:inta;public:test()

{cout?"constructor"<

A、3

B、constructordestructor

C、copyconstructordestructor

D、3destructor

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

知識(shí)點(diǎn)解析:本題考查默認(rèn)構(gòu)造函數(shù)和帶參數(shù)的構(gòu)造函數(shù)以及析構(gòu)函數(shù),本題中定

義了一個(gè)對(duì)象A(3),對(duì)象帶著參數(shù),所以執(zhí)行帶參數(shù)的構(gòu)造函數(shù),輸出3,然后執(zhí)

行析構(gòu)函數(shù),輸出destructor。所以本題答案為D。

21、軟件生命周期是指()。

A、軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程

B、軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測試完成的過程

C、軟件的開發(fā)過程

D、軟件的運(yùn)行維護(hù)過程

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

知識(shí)點(diǎn)解析:通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱

為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用

為止的整個(gè)時(shí)期都屬于軟件生命周期。

22、在C++中,編譯系統(tǒng)自動(dòng)為一個(gè)類生成默認(rèn)構(gòu)造函數(shù)的條件是

A、該類沒有定義任何有參構(gòu)造函數(shù)

B、該類沒有定義任何無參構(gòu)造函數(shù)

C、該類沒有定義任何構(gòu)造函數(shù)

D、該類沒有定義任何成員函數(shù)

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

知識(shí)點(diǎn)解析:本題考查默認(rèn)構(gòu)造函數(shù),如果用戶定義的類中沒有顯式的定義任何構(gòu)

造函數(shù),編譯器就會(huì)自動(dòng)為該類型生成默認(rèn)構(gòu)造函數(shù),稱為合成的構(gòu)造函數(shù)。C選

項(xiàng)正確。

23、在定義一個(gè)類模板時(shí),模板形參表是用一對(duì)括號(hào)括起來的,所采用的括號(hào)是

A、()

B、口

C、<>

D、(}

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

知識(shí)點(diǎn)解析:本題考查模板的定義,使用的括號(hào)為所以答案為C選項(xiàng)。

24、if(表達(dá)式1)語句1else語句2只有A選項(xiàng)是正確的要定義整型數(shù)組x,使

之包括初值均為1的三個(gè)元素,下列語句正確的是

A、staticintx[3]={1};

intx[]={1);

C>intx[3]={1,1,1);

D、intx={1,1,1};

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

知識(shí)點(diǎn)解析:本題考查一維數(shù)組及其初始化,A選項(xiàng)中為靜態(tài)一維數(shù)組,三個(gè)元素

必須全部初始化,B選沒有指明是三個(gè)元素,D選項(xiàng)賦值錯(cuò)誤,C選項(xiàng)正確。

25、有如下程序:#includeusingnamespacestd;classTV{public:TV(int

s=41):size(s){)TV(constTV&r):size(r.size){)~TV(){}private:intsize;);TV

fun(TV&u){TVt=u;returnt;}intmain(){TVx,y;x=fun(y);return0;}則TV類的

復(fù)制構(gòu)造函數(shù)被調(diào)用的次數(shù)是

A1次

、

B2次

c3次

、

D4次

、

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

知識(shí)點(diǎn)解析:拷貝構(gòu)造函數(shù),是一種特殊的構(gòu)造函數(shù),它由編譯器調(diào)用來完成一些

基于同一類的其他對(duì)象的構(gòu)建及初始化??截悩?gòu)造函數(shù)要調(diào)用基類的拷貝構(gòu)造函數(shù)

和成員函數(shù)。本題中調(diào)用fun函數(shù)時(shí)調(diào)用了一次復(fù)制構(gòu)造函數(shù),函數(shù)返回執(zhí)行

x=「un(y)時(shí)又調(diào)用了一次復(fù)制構(gòu)造函數(shù),所以總共2次。B選項(xiàng)正確。

26、結(jié)構(gòu)化程序設(shè)計(jì)中,下面對(duì)got。語句使用描述正確的是

A、禁止使用goto語句

B、使用goto語句程序效率高

C、應(yīng)避免濫用goto語句

D、以上說法均錯(cuò)誤

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

知識(shí)點(diǎn)3析:結(jié)構(gòu)化程序設(shè)計(jì)中,要注意盡量避免got。語句的使用,故選C。

27、下列關(guān)于模板的表述中,錯(cuò)誤的是

A、模板形參表的兩邊使用尖括號(hào)括起來

模板以關(guān)鍵字template開始

C、模板聲明中的關(guān)鍵字class都可以用關(guān)鍵字typename替代

D、模板的形參表中可以有多個(gè)參數(shù)

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

知識(shí)點(diǎn)解析:模板定義以關(guān)鍵字template開始,后接模板形參表,模板形參表是用

尖括號(hào)括住的一個(gè)或多個(gè)模板形參的列表,形參之間用逗號(hào)分隔,選項(xiàng)A、B、D

正確;至于選項(xiàng)C,一般關(guān)鍵字class和typename在模板形參表中,是沒有區(qū)別

的,但是關(guān)于類模板,類定義的關(guān)鍵字也是class,這里class是不可用typename替

代的,答案為C。

28、以下關(guān)鍵字用來聲明類的訪問權(quán)限的是

A、const

B、static

C>protected

D、case

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

知識(shí)點(diǎn)解析:C++中,關(guān)鍵字public、protectedprivate用來聲明類的訪問權(quán)限,

答案為C。

29、下列關(guān)于函數(shù)模板的表述中,正確的是

A、當(dāng)函數(shù)形參表為空時(shí),可以省略兩邊的括號(hào)

B、當(dāng)函數(shù)形參表為空時(shí),可以省略兩邊的括號(hào)

C、模板實(shí)參表要用圓括號(hào)括起來

D、在一定條件下模板實(shí)參表可以被省略

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

知識(shí)點(diǎn)解析:函數(shù)形參表即使為空,兩邊的括號(hào)也不能省略,選項(xiàng)A錯(cuò)誤;函數(shù)

的實(shí)參表要用圓括號(hào)括起來,模板的實(shí)參表要用尖括號(hào)括起來,選項(xiàng)B、C錯(cuò)誤;

模板實(shí)參表在一定條件下可以省略,選項(xiàng)D正確;答案為D。

30、下列枚舉類型的定義中,包含枚舉值5的是

A、enumtest{LEFT,UP,RIGHT,DOWN};

B、enumtest{LEFT,UP=3,RIGHT,DOWN);

C、enumtest{LEFT=-1,UPRIGHT,DOWN};

D、enumtest{LEFT,UP,RIGHT=6,DOWN);

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

知識(shí)點(diǎn)解析:枚舉類型中枚舉成員是常量,可以顯式初始化,也可以隱式初始化;

默認(rèn)的情況下第一個(gè)枚舉成員賦值為0,每個(gè)枚舉成員值比前面一個(gè)枚舉變量大

1;所以各個(gè)選項(xiàng)中枚舉成員值分別如下:A:0,1,2,3;B:0,345;C:-1,0,1,2;

D:04,6,7;答案為B。

31、有如下類定義:classB{public:voidfun1(){)private:voidfun2(){}protected:

voidfun3(){});classD:publicB{protected:voidfun4(){}};若obj是類D的對(duì)

象,則下列語句中不違反訪問控制權(quán)限的是()。

A、o

溫馨提示

  • 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. 人人文庫網(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)論