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

下載本文檔

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

文檔簡(jiǎn)介

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

第1套

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

1、程序調(diào)試的任務(wù)是

A、設(shè)計(jì)測(cè)試用例

B、驗(yàn)證程序的正確性

C、發(fā)現(xiàn)程序中的錯(cuò)誤

D、診斷和改正程序中的錯(cuò)誤

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

知識(shí)點(diǎn)解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。它與軟件測(cè)試不同,軟

件測(cè)試是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。先要發(fā)現(xiàn)軟件的錯(cuò)誤,然后借助于一定的

調(diào)試工具去執(zhí)行并找出錯(cuò)誤的具體位置v軟件測(cè)試貫穿整個(gè)軟件生命期,調(diào)試主要

在開發(fā)階段。

2、有如下程序:usingnamespacestd;classCar{public:Car(inti):weight(i){)

friendintTotal(constCar&c,constBoat&b);||(T)private:classBoat{public:

Boat(inti):weight(i){)friendintTotal(constCar&c,constBoat&b);private:int

weight;intTotal(constCar&c,constBoat&b){||@returnc.weight+b.weight;)

intmain(){Carc(10);cout?"Thetotalweightis"<

A、程序編譯正確.

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

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

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

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

知識(shí)點(diǎn)解析:程序中定義了類Car和類Boat,在兩個(gè)類中分別定義他們的構(gòu)造函

數(shù)和友元函數(shù)friend。程序在WC6.0中編譯通過。

3、下列選項(xiàng)中,與實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性無關(guān)的是()。

A、重載函數(shù)

B、虛函數(shù)

C、指針

D、引用

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

知識(shí)點(diǎn)解析:在C++中,多態(tài)性可以分為兩類:編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)

性。編譯時(shí)的多態(tài)性是通過函數(shù)重載和模版體現(xiàn)的,運(yùn)行時(shí)的多態(tài)性是通過虛函數(shù)

體現(xiàn)的。

4、針對(duì)數(shù)組定義intdala。。];,下列表述中錯(cuò)誤的是O。

A、用*(1混@可訪問到數(shù)組的首元素

B、用data[9]可訪問到數(shù)組的末元素

C、用dala|10]訪問數(shù)組元素會(huì)超出數(shù)組邊界

D、data共有10個(gè)元素,其首元素是data[l]

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

知識(shí)點(diǎn)解析:此題考奄的是數(shù)組和指針的概念。題目中data"0]共有10個(gè)元素,

分別是data[O]、data[l]>data⑵、data[3]...data[9],首元素足data[O],所以選項(xiàng)D)

錯(cuò)誤:其他選項(xiàng)均正確。

5、關(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ù)的重載形式。

6、下列符號(hào)中可以用作C++標(biāo)識(shí)符的是()。

A^_radius

B、foo-bar

C、else

D、3room

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

知識(shí)點(diǎn)解析:此題考查的是C++語言中標(biāo)識(shí)符的定義。標(biāo)識(shí)符有字母、數(shù)字和下

劃線構(gòu)成,其第一個(gè)字母必須是字母或下劃線:定義標(biāo)識(shí)符時(shí),不要采用系統(tǒng)的保

留字。

7、在下列字符中,不允許作為C++標(biāo)識(shí)符的是()。

A^b

B、B

C、_

D、2

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

知識(shí)點(diǎn)解析:C++的標(biāo)識(shí)符是一個(gè)以字母或下劃線開頭的,由字母、數(shù)字、下劃線

組成的字符串。

8、有如下程序:#inc1tide<iostream>#inc1ude<cslring>usingnamespacestd;

classXCD{char*a;intb;public:XCD(char*aa,intbb){a=new

char[strlen(aa)+I];strcpy(a,aa),b=bb;|char*Gcta(){returna;)intGetb(){return

b;));intmain(){char*pl=',abcd",*p2=,,weirong";intdl=6,d2=8;XCD

x(pl,dl),y(p2,d2);cout<<strlen(x.Geta())+y.Getb()<<endl;return0;}運(yùn)行時(shí)

的輸出結(jié)果是()。

A、12

B、16

C、14

D、11

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

知識(shí)點(diǎn)解析:由類XCD的定義可知,成員函數(shù)Gela()返回的是字符串的長(zhǎng)度,

Gelb()返回的是參數(shù)b的值。在主函數(shù)中slrlen(x.Gela。)的值等于4,y.Gelb()的

值等于8,所以輸出兩者的和為12。

9、若有如下類聲明classMyclass{public:MyclassQ{cout<<l;)};執(zhí)行卜列語

句Myclassa,b[2],*p[2]:以后,程序的輸出結(jié)果是()。

A、11

B、111

C、1111

D、11111

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

知識(shí)點(diǎn)解析:此題考查的是對(duì)象的構(gòu)造。本題共聲明了一個(gè)MyClass對(duì)象a,一個(gè)

包含2個(gè)MyQass對(duì)象的數(shù)組b和…個(gè)包含2個(gè)MyClass對(duì)象指針的數(shù)組p,所以

一共創(chuàng)建了3個(gè)MyClass類的對(duì)象,即調(diào)用了3次構(gòu)造函數(shù)。

10、建立一個(gè)類對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用()。

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

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

C、靜態(tài)函數(shù)

D、友元函數(shù)

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

知識(shí)點(diǎn)解析:建立一個(gè)類的對(duì)象時(shí),編譯程序需要為對(duì)象分配存儲(chǔ)空間,進(jìn)行必要

的初始化。在C++中,這項(xiàng)工作是由構(gòu)造函數(shù)來完成。

11、已知有數(shù)組定義chara[3][4];下列表達(dá)式中錯(cuò)誤的是()。

A、a[2]=''WIN''

B、strcpy(a[2],''WIN')

C、a[2][3]=,W,

D、a[0][l]=a[0][l]

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

知識(shí)點(diǎn)解析:本題主要是對(duì)字符數(shù)組的考查。選項(xiàng)A中a[2]為一個(gè)地址,所以不

能用等號(hào)進(jìn)行賦值操作。

12、下列有關(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ān)鍵字inline來定義

C、內(nèi)聯(lián)函數(shù)是通過編譯器來實(shí)現(xiàn)的

D、內(nèi)聯(lián)函數(shù)函數(shù)體的最后一條語句必須是return語句

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

知識(shí)點(diǎn)解析:此題考查的是內(nèi)聯(lián)函數(shù)的概念。在調(diào)用時(shí),內(nèi)聯(lián)函數(shù)會(huì)像宏函數(shù)一樣

的展開,將調(diào)用表達(dá)式用內(nèi)聯(lián)函數(shù)體來替換所以它沒有一般函數(shù)的參數(shù)壓棧和和退

棧操作,所以選項(xiàng)A錯(cuò)誤;即使沒有使用inline說明,編譯器也會(huì)將在類的說明部

分定義的函數(shù)認(rèn)定為內(nèi)聯(lián)函數(shù),所以選項(xiàng)B錯(cuò)誤;內(nèi)聯(lián)函數(shù)只是比普通函數(shù)有更

高的執(zhí)行效率,所以選預(yù)D錯(cuò)誤。

13、有如下程序:#include<iostream>usingnamespacestd;classBase{public:

voidfun(){cout<<"Base::fun"<<endl;});classDerived:publicBase

{public:voidfun(){cout<<"Derived::fun"<<endl;}};int

main(){Derivedd:d.fun();return0;)已知其執(zhí)行后的輸出結(jié)果為:Base::

funDerived::fun則程序中下劃線處應(yīng)填入的語句是()。

A、Base.fun();

Base::fun();

C、Base->fun();

D、fun();

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

知識(shí)點(diǎn)解析:此題考查的是繼承的使用。分析題目可知,橫線處應(yīng)填入對(duì)基類成員

函數(shù)fun()的調(diào)用語句,此處只能使用作用域運(yùn)算符“::”才能調(diào)用到基類的同名

函數(shù).故選項(xiàng)RiF確.

14、有如下程序#includeusingnamespacestd;classBase{protected:

Base(){cout?'A';}Base(charc){cout<

A、B

B、BA

C、AB

D、BB

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

知識(shí)點(diǎn)3析:此題考查的是派生類對(duì)象的構(gòu)造。建立派生類對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)

行順序是:執(zhí)行基類的溝造函數(shù),調(diào)用順序按照各個(gè)基類被被繼承時(shí)聲明的順序;

執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類中聲明的順序;執(zhí)行派

生類的構(gòu)造函數(shù)。此題中,在建立派生類Derived的對(duì)象dl時(shí)會(huì)先調(diào)用基類Base

的構(gòu)造,調(diào)用的是默認(rèn)溝造函數(shù),輸出字符,A,;然后調(diào)用自身的構(gòu)造函數(shù),輸出

4B\故程序的輸出結(jié)果是:ABo

15、有如下程序:#include<iostream>usingnamespacestd;classBasel{public:

Basel(intd){cout<<d;}~Basel(){}}:classBase2{public:Base2(intd){cout<

<d;}~Base2(){}};classDerived:publicBaseLBase2[public:Derived(int

a,intb,intc,intd);Basel(b),Base2(a),bl(d),b2(c){}Private:intbl;int

b2;}:intmain(){Derivedd(l,2,3,4);return0;}運(yùn)行時(shí)的輸出結(jié)果是0。

A、1234

B、2134

C、12

D、21

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

知識(shí)點(diǎn)解析:程序在創(chuàng)建派生類對(duì)象d時(shí),分別調(diào)用基類Basel和Basel的構(gòu)迨函

數(shù)。

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

()。

A、+

B、=

C、<<

D、十十

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

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

函數(shù)重載。

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

A、函數(shù)模板是一個(gè)實(shí)例函數(shù)

B、使用函數(shù)模板定義的函數(shù)沒有返回類型

C、函數(shù)模板的類型參數(shù)與函數(shù)的參數(shù)相同

D、通過使用不同的類型參數(shù),可以從函數(shù)模板得到不同的實(shí)例函數(shù)

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

知識(shí)點(diǎn)解析:函數(shù)模板是一系列相關(guān)函數(shù)的模型或樣板,這些函數(shù)的源代碼相同,

只是所針對(duì)的數(shù)據(jù)類型不同。數(shù)據(jù)類型成了函數(shù)模板的參數(shù),所以函數(shù)模板是一種

參數(shù)化類型的函數(shù)。

18、有如下程序:#include<iostrearn>usingnamespacestd;intmain()

{cout.cout.width(6);cout.cout<<123<<endl;return

0;}執(zhí)行后的輸出結(jié)果是()。

A、###123

B、123###

C、***123

D、123***

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

知識(shí)點(diǎn)解析:此題考查的是I/O格式化輸出。函數(shù)widlh(inln)設(shè)盤輸入輸出寬

度,當(dāng)實(shí)際數(shù)據(jù)寬度小于制定的寬度時(shí),多余的位置用填充字符填滿;當(dāng)實(shí)際數(shù)據(jù)

寬度大于設(shè)置的寬度時(shí),仍按實(shí)際寬度輸出;函數(shù)fill(charc)用來設(shè)置填充字符。

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

A、從模板實(shí)參表和從模板函數(shù)實(shí)參表獲得信息矛盾時(shí),以模板實(shí)參的信息為淮

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ù)可以省略。

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

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

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

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

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

C、templatevoidswap(TIa|bT2b|],intsize);

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

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

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

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

21、如需要向一個(gè)二進(jìn)制文件尾部添加數(shù)據(jù),則該文件的打開方式為()。

A、ios_base::app

B、ios_base::binaryIlos_base::out

C>ios_base::out

D、ios_base::binaryIios_base::app

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

知識(shí)點(diǎn)解析:ios_base::binary模式是作為二進(jìn)制文件打開,ios_base::app模

式是作為添加數(shù)據(jù)而打開(總是在尾部寫)。

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

第2套

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

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

A、y_2006

B、TEST_H

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)的保留字。

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

A、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲(chǔ)結(jié)構(gòu)

B、數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)屬于非線性結(jié)構(gòu)

C、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)不影響數(shù)據(jù)處理的效

D、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率

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

知識(shí)點(diǎn)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系;

數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是在對(duì)數(shù)據(jù)進(jìn)行處理時(shí),各數(shù)據(jù)元素在計(jì)算機(jī)中的存儲(chǔ)關(guān)系。數(shù)據(jù)

的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示,一種邏輯結(jié)構(gòu)可以表示成多種

存儲(chǔ)結(jié)構(gòu);而采用不同的存儲(chǔ)結(jié)構(gòu),其數(shù)據(jù)處理的效率是不同的。

3、下列關(guān)于棧的描述中錯(cuò)誤的是()。

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

B、棧只能順序存儲(chǔ)

C、棧具有記憶作用

D、對(duì)棧的插入與刪除操作中,不需要改變棧底指針

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

知識(shí)點(diǎn)解析:棧是限定壟一端進(jìn)行插入與刪除的線性表。棧頂(top):插入數(shù)據(jù)

(即入棧)的一端:棧底(bottom):不能入棧也不能出棧的…端。棧存儲(chǔ)數(shù)據(jù)的

原則:“先進(jìn)后出”或“后進(jìn)先出”。棧的特性是具有記憶作用。

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

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

B、隊(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、下列與隊(duì)列結(jié)構(gòu)有關(guān)聯(lián)的是()。

A、函數(shù)的遞歸調(diào)用

B、數(shù)組元素的引用

C、多重循環(huán)的執(zhí)行

D、先到先服務(wù)的作業(yè)調(diào)度

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

知識(shí)點(diǎn)解析:隊(duì)列中最先插入的元素將最先被刪除,最后插入的元素將最后被刪

除。

#include<iostream>

usingnamespacestd;

intmainO{

9hera;

cin?a;

if(a-#,)cout?”《endl;

elsecout?H###w?endl;

return0;

6、有如下程序}輸入字符+時(shí),程序的運(yùn)行

結(jié)果是()。

、***

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í)行與其匹配的eke后面的分支。本題

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

于此表達(dá)式為賦值表達(dá)式,因此表達(dá)式的值為賦值號(hào)右邊的值其ASCII碼的

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

回由回X囪

7、對(duì)下列二叉樹團(tuán)囪進(jìn)行前序遍歷的結(jié)果是

A、DYBEAFCZX

B、YDEBFZXCA

C、ABDYECFXZ

D、ABCDEFXYZ

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

知識(shí)點(diǎn)露析?:二叉樹前序遍歷的簡(jiǎn)單描述:若二叉樹為空,則結(jié)束返回;否則:

①防問根結(jié)點(diǎn):②前序遍歷左子樹;③前序遍歷石子樹。可見,前序遍歷二叉樹

的過程是一個(gè)遞歸的過程。根據(jù)題目中給出的二叉樹的結(jié)構(gòu)可知前序遍歷的結(jié)果是

ABDYECFXZo

8、若有以下程序:#includc<iostrcam>usingnamespacestd;classTestClass

{public:voidwho(){tout<<"TestClass11<<endl;}};classTestClass1:public

TestClass{public:voidwho(){cout<<"TestClass1"<<endl:));intmain()

{lestClass*p;lestClasslobjl;p=&obj1;p->who();rcturnO:}則該程序運(yùn)行

后的輸出結(jié)果是()。

A^TestClass1

B、TestClass

C、0

D、無輸出

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

知識(shí)點(diǎn)解析:程序中的TestClasl為TestClass的派生類,主函數(shù)main中定義

TestClass對(duì)象*p,TestClass1對(duì)象objl,然后p引用objl,執(zhí)行p->who()則是調(diào)

用基類中的who函數(shù),輸出TesiClass。

9、下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是()。

A、源程序要文檔化

B、數(shù)據(jù)說明的次序要規(guī)范化

C、避免濫用goto語句

D、模塊設(shè)計(jì)要保證高耦合、高內(nèi)聚

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

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

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

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

好的程序設(shè)計(jì)風(fēng)格主要應(yīng)注重和考慮下列幾個(gè)因素:①源程序文檔化,包括下列

三個(gè)方面:A符號(hào)的命名應(yīng)具有一定的含義;B正確的注釋能夠幫助讀者理解程

序;C視覺組織,可以在程序中利用空格、空行、縮進(jìn)等技巧使程序?qū)哟吻逦?/p>

②數(shù)據(jù)說明的方法,包括下列三個(gè)方面:A數(shù)據(jù)說明的次序規(guī)范化;B說明語句中

變量安排有序化;C使用注釋來說明復(fù)雜數(shù)據(jù)的結(jié)構(gòu)。③語句的結(jié)構(gòu)應(yīng)該簡(jiǎn)單直

接,不應(yīng)該為提高效率而把語句復(fù)雜化。④輸入和輸出方式和風(fēng)格應(yīng)盡可能方便

用戶的使用。

10、下列選項(xiàng)中屬于面向?qū)ο笤O(shè)計(jì)方法主要特征的是()。

A、繼承

B、自項(xiàng)向下

C、模塊化

D、逐步求精

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

知識(shí)點(diǎn)解析:面向?qū)ο笤O(shè)計(jì)方法的主要特征有封裝性、繼承性和多態(tài)性。而結(jié)構(gòu)化

程序設(shè)計(jì)方法的主要原則有自頂向下,逐步求精,模塊化,限制使用got。語句。

11、軟件是指()。

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)的文檔。

12、軟件按功能可以分為:應(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)目管理的工具軟件。

13、軟件按功能可以分為:應(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)目管理的工具軟件。

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

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

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

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

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

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

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

退役的過程。

15、有如下類定義:classlest{public:l'est(){a=O;C=0;}II(J)intf(int

a)const{this.>a:a;)||@staticintg(){returna;)||(3)voidh(intb){Test::

b=b;};||?private:inta;staticintb;constintc;);intTest::b=0:在標(biāo)

注號(hào)碼的行中,能被正確編譯的是()。

A、①

B、②

C、③

D、@

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

知識(shí)點(diǎn)解析:此題考查的是類的定義。一個(gè)類的長(zhǎng)數(shù)據(jù)成員的初始化只能在成員初

始化列表中進(jìn)行,故選項(xiàng)A錯(cuò)誤;常成員函數(shù)不能更新對(duì)象的數(shù)據(jù)成員,故選項(xiàng)

B錯(cuò)誤;靜態(tài)成員函數(shù)可以直接訪問類中說明的靜態(tài)成員,但不能直接訪問類中說

明的非靜態(tài)成員,故選頊C錯(cuò)誤。

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

A、禁止使用goto語句

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

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

D、goto語句確實(shí)一無是處

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

知識(shí)點(diǎn)解析:濫用got。語句確實(shí)有害,應(yīng)盡量避免:完全避免使用got。語句并非

是明智的方法,有些地方使用got。語句會(huì)使程序流程更清楚、效率更高:爭(zhēng)論的

焦點(diǎn)不應(yīng)該放在是否取消goto語句,而應(yīng)該放在用在什么程序結(jié)構(gòu)上。

17、下列關(guān)于運(yùn)算符重載的描述中,正確的是()。

A、運(yùn)算符重載為成員函數(shù)時(shí),若參數(shù)表中無參數(shù),重載的是一元運(yùn)算符

B、一元運(yùn)算符只能作為成員函數(shù)重載

C、二元運(yùn)算符重載為非成員函數(shù)時(shí),參數(shù)表中有一個(gè)參數(shù)

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

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

知識(shí)點(diǎn)解析:運(yùn)算符重載為成員函數(shù)時(shí),會(huì)省略一個(gè)參數(shù),如果無參數(shù),表明是一

元運(yùn)算符。一元運(yùn)算符既可以作為成員函數(shù)重載,也可以作為非成員函數(shù)重載。二

元運(yùn)算符如果作為非成員函數(shù),則參數(shù)表中必須有兩個(gè)參數(shù)。C++有5個(gè)運(yùn)算符不

能重載,它們是:(成員訪問運(yùn)算符)、*(成員指針訪問運(yùn)算符)、::(域運(yùn)算符)、

sizeof(長(zhǎng)度運(yùn)算符)和?:(條件運(yùn)算符)。故本題答案為A。

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

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

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

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í)期都屬于軟件生命周期。

的操作是()。

A、自然連接

B、交

C、投影

D、并

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

知識(shí)點(diǎn)解析?:選擇是單目運(yùn)算,其運(yùn)算對(duì)象是一個(gè)表。該運(yùn)算按給定的條件,從表

中選出滿足條件的行形成一個(gè)新表作為運(yùn)算結(jié)果。投影也是單目運(yùn)算,該運(yùn)算從表

中選出指定的屬性值組成一個(gè)新表。自然連接是一種特殊的等價(jià)連接,它將表中有

相同名稱的列自動(dòng)進(jìn)行史錄匹配。自然連接不必指定任何同等連接條件。

20、下列關(guān)于虛基類的貓述中,錯(cuò)誤的是()。

A、使用虛基類可以消除由多繼承產(chǎn)生的二義性

B、構(gòu)造派生類對(duì)象時(shí),虛基類的構(gòu)造函數(shù)只被調(diào)用一次

C、聲明"classB:virtualpublicA”說明類B為虛基類

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

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

知識(shí)點(diǎn)解析:虛基類是為了消除由多重繼承產(chǎn)生的一義性而提出的。虛基類的說明

格式是:Class〈類名〉:vir【ual<繼承方式><基類名>,其中關(guān)鍵字virtual與繼承方

式的位置無關(guān),但必須位于基類名之前,且virtual只對(duì)緊隨其后基類名起作用。

對(duì)于本題來說,聲明“classB:virtualpublicA”說明類A為虛基類。

21、已知枚舉類型聲明語句為: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)解析:此題考查的是枚舉類型的聲明。聲明枚舉類型的語法形式為: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é)

束。

22、有如下程序:#includeusingnamespacestd;classA{public:virtualvoid

fo{cout?l:)voidgo{cout?2;}};classB:publicA{public:virtualvoid

f0{cout?3;)voidgO{cout?4;)};voidshow(A&a){a.fO;a.gO;)int

main(){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ù)virlualvoidf()和實(shí)函數(shù)

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

virtualvoidf(){cout?3;)輸出3,調(diào)用基類的實(shí)函數(shù)voidg(){cout?2;)輸出2。

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

23、由關(guān)系R1和R2得到關(guān)系R3的操作是

R2R3

ra

HABcEM

2rdPIA1XM1

J。1YMI

LULdL£JIcJ0yNJ

B、并

C、笛卡爾積

D、交

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

知識(shí)點(diǎn)解析:等值連接是關(guān)系運(yùn)算.連接運(yùn)算的一種常用的連接方式。是條件連接

(或稱0連接)在連接運(yùn)算符為“=”號(hào)時(shí),即8=0時(shí)的一個(gè)特例。

24、下列敘述中,錯(cuò)誤的是()。

A、false是一個(gè)邏輯型常量

B、b是一個(gè)字符型常量

C、365是一個(gè)int常量

D、3.1415926是一個(gè)double常量

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

知識(shí)點(diǎn)解析:字符常量簡(jiǎn)稱字符,它以單引號(hào)作為起止符號(hào),中問有一個(gè)或若干個(gè)

字符。或者以開頭的包括多個(gè)字符的字符序列也符合規(guī)定的字符常量。

25、下列關(guān)于模板的敘述中,正確的是()。

A、如果一個(gè)類中存在純虛函數(shù),這個(gè)類就是類模板

B、函數(shù)模板不能有形式參數(shù)表

C、類模板是一種參數(shù)化類型的類,是類的生成器

D、類模板中不能包含構(gòu)造函數(shù)

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

知識(shí)點(diǎn)解析:對(duì)于函數(shù)模板,數(shù)據(jù)類型本身成了它的參數(shù),是一種參數(shù)化類型的函

數(shù)。對(duì)于類模板,數(shù)據(jù)類型本身成了它的參數(shù),因而是一種參數(shù)化類型的類,是類

的生成器。

26、下列情況中,不會(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í)

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

知識(shí)點(diǎn)解析:此題考查的是復(fù)制構(gòu)造函數(shù)的概念。用一個(gè)已知的對(duì)象初始化一個(gè)正

在創(chuàng)建的同類對(duì)象時(shí),就會(huì)發(fā)生復(fù)制構(gòu)造函數(shù)。因此,選項(xiàng)A、C、D均會(huì)調(diào)用復(fù)

制構(gòu)造函數(shù).而只有選項(xiàng)B沒有創(chuàng)建的動(dòng)作.不調(diào)用復(fù):制構(gòu)造函數(shù).

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

A、iostream

fstream

C、strstream

D、iomanip

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

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

fstrem.頭文件。

28>有如下類定義:classXX[intxx;public:XX():xx(0)(cout?'A";}

XX(intn):xx(n){coul<<'B';});classYY:publicXX{intyy;public:

YY():yy(0){coul<

A、YYyl(0,0);

B、YYy2(l);

C>YYy3(0);

D、YYy4;

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

知識(shí)點(diǎn)解析:考查的是類的繼承。選項(xiàng)A的執(zhí)行結(jié)果為B0,建立YY的對(duì)象yl,

首先調(diào)用其構(gòu)造函數(shù),YY繼承于XX所以先調(diào)用的為XX的構(gòu)造函數(shù),根據(jù)輸入

的參數(shù)可知輸出B,然后執(zhí)行YY的構(gòu)造函數(shù)輸出0;同理,選項(xiàng)B的執(zhí)行結(jié)果為

B1,選項(xiàng)C的執(zhí)行結(jié)果為B0。

29、有如卜程序:#inc1ude<lostream>usingnamespacestd;classA{public:A(int

i){x=i;)voiddispa(){cout<<x<<,/;}private:intx;);classB:publicA

{public:B(inti):A(i+10){x=i;)voiddispb(){dispa();cout<<x<<endl;}privateint

x;);intmain(){Bb(2);b.dispb();return0;}運(yùn)行時(shí)輸出的結(jié)果是()。

A、10,2

B、12,10

C、12,2

D、2,2

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

知識(shí)點(diǎn)解析:此題考查的是派生類的構(gòu)造。主函數(shù)中,首先聲明B類的對(duì)象b,執(zhí)

行進(jìn)入B的構(gòu)造函數(shù)B(in【i)再接著執(zhí)行A的構(gòu)造函數(shù)A(in【i),形參i為12,x被

賦值12;通過對(duì)象b調(diào)用其成員函數(shù)dispb(),輸出結(jié)果12;接著執(zhí)行函數(shù)dispbO的第

2條語句輸出2,然后主函數(shù)結(jié)束。

30、有如下類定義:classSample{public;Sampleiintx):ref(x){)//①

private:Sample():ref(O){}//②staticintval=5;//(3)constintref;//

④};上述程序段中,錯(cuò)誤的語句是()。

A、①

R、②

C、@

D、?

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

知識(shí)點(diǎn)解析:靜態(tài)整型數(shù)據(jù)不能定義為類的數(shù)據(jù)成員。

31、下列運(yùn)算符不能重載為友元函數(shù)的是()。

A、=()[]->

B、+-++--

C、><>=<=

D^+=-=*=/=

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

知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載的概念。C++語言規(guī)定,=、口、()、->以

及所有的類型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載,如果要重載為友元函數(shù)就必須重

我為非成員函數(shù)。

32、有如下類定義classMyClasspublic:Private:intdata;};若要為

MyQass類重載流輸入運(yùn)算符>>,使得程序中可以“cin>>objr形式輸入

MyClass類的對(duì)象obj,則橫線處的聲明語句應(yīng)為()。

A、friendistream&operator>>(istream&is*MyClass&a);

B、friendistream&operator>>(istream&is,MyClassa);

C、istrcam&operator>>(istrcam&is,MyClass&a);

D、istream&operator>>(istream&is,MyClassa);

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

知識(shí)點(diǎn)浦析:C++的輸入運(yùn)算符>>作為非類成員函數(shù)重載。在一個(gè)類中,可將輸

入運(yùn),符>>聲明為友元函數(shù),在類MyClass重載輸入運(yùn)算符>>的形式如選項(xiàng)

A)所示。

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

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

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

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

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

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

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

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

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

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

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

34、運(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)算符重載應(yīng)該體現(xiàn)為原有運(yùn)算符的功能在新的數(shù)據(jù)類型上的延伸。

重載的運(yùn)算符保持原有運(yùn)算符的操作個(gè)數(shù)、優(yōu)先級(jí)和結(jié)合性三個(gè)最基本的特征。

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

第3套

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

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

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

A、12345ABCDE

B、EDCBA54321

C、ABCDE12345

D、54321EDCBA

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

知識(shí)點(diǎn)解析:棧是按照“先進(jìn)后出”或“后進(jìn)先出''的原則組織數(shù)據(jù)的。所以出棧順序

是EDCBA54321。

2、對(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è)位

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

指向隊(duì)列中的隊(duì)尾元素,用隊(duì)頭指制from指向隊(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ì)尾指針。

3、下列運(yùn)算符不能重載為友元函數(shù)的是()。

A、=()[]->

B、+-++--

C、><>=<=

D、+=-=*=/=

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

知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載的概念。C++語言規(guī)定,=、口、()、->以

及所有的類型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載,如果要重載為友元函數(shù)就必須重

載為非成員函數(shù)。

4、定義無符號(hào)整數(shù)類為UInt,下面可以作為類UInt實(shí)例化值的是()。

A、-369

B、369

C、0.369

D、整數(shù)集合{1,2,3,4,5)

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

知識(shí)點(diǎn)解析:UInt表示的是無符號(hào)整數(shù)類,所以它的每個(gè)實(shí)例都是一個(gè)無符號(hào)整

數(shù),所以排除選項(xiàng)A)和選項(xiàng)C),選項(xiàng)D)是整數(shù)集合,所以也排除。

5、在關(guān)系中凡能惟一標(biāo)識(shí)元組的最小屬性集稱為該表的鍵或碼。二維表中可能有

若干個(gè)鍵,它們稱為該表的()。

A、連接碼

B、關(guān)系碼

C、外碼

D、候選碼

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

知識(shí)點(diǎn)解析:在關(guān)系中凡能惟一標(biāo)識(shí)元組的最小屬性集稱為該表的鍵或碼。二維表

中可能有若干個(gè)鍵,它們稱為該表的候選碼或候選鍵。從二維表的所有候選鍵中選

取一個(gè)作為用戶使用的鍵稱為主鍵或主碼。

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

A、public

B、static

C、protected

D、private

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

知識(shí)點(diǎn)解析:類的成員訪問權(quán)限有3種:public(公用)、protected(保護(hù))、private私

有)。

7、有如下程序:#include#includeusingnamespacestd;classXCD{chara;ini

*

b;public:XCD(charaa,intbb){a=newchar[strlen(aa)+1];strcpy(a,aa):b=

bb;}charGeta(){returna;)intGetb(){returnb;});intmain(){charpT'abcd",

*p2="weirongH;intdl=6,d2=8;XCDx(pl,dl),y(p2,d2);cout<

A、12

B、16

C、14

D、11

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

知識(shí)點(diǎn)解析:由類XCD的定義可知,成員函數(shù)Gela()返回的是字符串的長(zhǎng)度,

Getb()返回的是參數(shù)b的值。在主函數(shù)中stHen(x.Geta())的值等于4,y.Getb()的

值等于8,所以輸出兩者的和為12。

8、已知函數(shù)print。沒有返回值,如果在類中將之聲明為常成員函數(shù),正確的是

()。

A、voidprint()const;

B、constvoidprint();

C^voidconstprint();

D、voidprint(const);

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

知識(shí)點(diǎn)解析:consi成員函數(shù)表示該成員函數(shù)只能讀類數(shù)據(jù)成員,而不能修改類成

員數(shù)據(jù)。定義const成員函數(shù)時(shí),把const關(guān)鍵字放在函數(shù)的參數(shù)表和函數(shù)體之

問。

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

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

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

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

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

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

知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理系統(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ù)等功能。

10、下列程序用來判斷數(shù)組中特定元素的位置所在,則輸出結(jié)果為()。#inckide<

conio.h>#includc<iostrcam.h>intfun(int*p>intn,int*j){inti;*j=0;

for(i=0;i<n;i++)if(p|*j]<p[i])*j=i;returnp[*j];)voidmain(){inta[10]={1?

3,9,O,8,7,6,5,4,2};intj;fun(a,10,&j);cout<<j<<\<<

ag}

A、2,9

B、3

C、9

D、3,9

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

知識(shí)點(diǎn)解析:由程序中的主函數(shù)main入手,調(diào)用fun函數(shù)。其中第一個(gè)實(shí)參為數(shù)

組a的名字,數(shù)組名作為實(shí)參,傳遞的是數(shù)組的起始地址。所以在fun函數(shù)中指針

p指向了數(shù)組的第一個(gè)元素a[0]”另外實(shí)參整型j隹遞的是引用,也就是j的地

址。在fun函數(shù)中在for循環(huán)中,依次將當(dāng)前元莪p[i]與j指針值為標(biāo)識(shí)的p[*j]進(jìn)

行比較,取較大的。最后循環(huán)后的結(jié)果就是p[叩存放數(shù)組中的最大值,并且指針j

為該值的標(biāo)識(shí)位。可以看出數(shù)組的最大值是9標(biāo)識(shí)位為2。

11、有如卜程序:#include<iostream>usingnamespacestd;classTestClassl

{public:TestClass1{cout<<"TestClass1";)?TeslClassl(){coutVV"~

TestClassl";}}:classTestClass2:publicTestClassl{TestClassl*p;public;

TestClass2(){cout<<"TestClass2n;p=newTestClass1();}~TestClass2(){cout<<

"~TestClass2";deletep;)};intmain(){TestClass2obj;returnO:}執(zhí)行這個(gè)程

序的輸出結(jié)果是()。

A、TestClass2TestClasslTestClass1?TestClass1?TeslClass2?TestClass1

B、TestClassiTestClass2TestClass1?TestClass2~TestClass1^TestClass1

C>TestClass2TcstClass1TestClass1~TestClass2TestClass1?TestClass1

D、TestClass1TestClasslTestClas1~TestClass1?TestClass2?TeslClass1

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

知識(shí)點(diǎn)解析:派生類中閡造函數(shù)的執(zhí)行順序是:先調(diào)用基類構(gòu)造函數(shù),對(duì)基類數(shù)據(jù)

成員初始化,然后調(diào)用子對(duì)象構(gòu)造函數(shù),對(duì)子對(duì)象數(shù)據(jù)成員初始化;最后執(zhí)行派生

類構(gòu)造函數(shù)本身,對(duì)派生類數(shù)據(jù)成員初始化。由主函數(shù)main入手,首先定義了一

個(gè)TestClass2對(duì)象objo其中TestClass2公共繼承TestClassl,對(duì)象obj可以訪問

TestClassl中的公有成員函數(shù)。TestClass2中定義了一個(gè)TestClassl的指針p,給p

分配新空間,即指向類TestClassl,輸出“TestClassl“。在TestClass2的構(gòu)造函數(shù)中

首先輸出“TestClassT',并在TestClassl構(gòu)造函數(shù)中輸出“TestClassl”。TestClass2析

構(gòu)函數(shù)中輸出“?TcstClassT',刪除指針p,輸出“?TestClassl”。析構(gòu)TestClassl

輸出“?TestClassl”。

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

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

A、自然連接

B、交

C、除

D、并

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

知識(shí)點(diǎn)解析:從關(guān)系R、S和T的結(jié)構(gòu)可以得出關(guān)系T是由關(guān)系R、S經(jīng)過除運(yùn)算

后得到的。

13、有如下程序:#includeusingnamespacestd:classVAC{public:int

f()const{return3;)intf(){return5;}};intmain(){VACvl;constVACv2;

cout<

A、53

B、35

C、55

D、33

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

知識(shí)點(diǎn)解析:本題考查常對(duì)象及常成員函數(shù)及構(gòu)造函數(shù),常對(duì)象只能調(diào)用常成員函

數(shù),所以本題中,對(duì)象VI為普通對(duì)象,執(zhí)行vl.f()后,會(huì)執(zhí)行默認(rèn)構(gòu)造函數(shù),輸

出5,對(duì)象v2為常對(duì)象,執(zhí)行v2.f()后,會(huì)執(zhí)行常構(gòu)造函數(shù),輸出3。

14、下面不屬于結(jié)構(gòu)化程序設(shè)計(jì)風(fēng)格的是

A、程序結(jié)構(gòu)良好

B、程序的易讀性

C、不濫用Got。語句

D、程序的執(zhí)行效率

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

知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)(structuredprogramming)是進(jìn)行以模塊功能和處理過

程設(shè)計(jì)為主的詳細(xì)設(shè)計(jì)的基本原則。結(jié)構(gòu)化程序設(shè)計(jì)是過程式程序設(shè)計(jì)的一個(gè)子

集,它對(duì)寫入的程序使用邏輯結(jié)構(gòu),使得理解和修改更有效更容易。

15、下列敘述中,錯(cuò)誤的是()。

A、false是一個(gè)邏輯型常量

B、b是一個(gè)字符型常量

C、365是一個(gè)血常量

D、3.1415926是一個(gè)double常量

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

知識(shí)點(diǎn)解析:字符常量簡(jiǎn)稱字符,它以單引號(hào)作為起止符號(hào),中間有一個(gè)或若干個(gè)

字符。或者以開頭的包括多個(gè)字符的字符序列也符合規(guī)定的字符常量。

16、假定MyQass為一個(gè)類,則該類的拷貝初始化構(gòu)造函數(shù)的聲明語句為()。

A^MyClass&(MyClassx):

B、MyClass(MyClassx)

C^MyClass(MyClass&x):

D、MyCIass(MyClass*x)

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

知識(shí)點(diǎn)解析:拷貝構(gòu)造函數(shù)是一個(gè)特殊的構(gòu)造函數(shù),它用一個(gè)己知的對(duì)象初始化一

個(gè)正在創(chuàng)建的同類對(duì)象,它的一般格式是:類名::類名(const類名&引用對(duì)象

名)。

17、公司中有多個(gè)部門和多名職員,每個(gè)職員只能屬于一個(gè)部門,一個(gè)部門可以有

多名職員。則實(shí)體部門和職員間的聯(lián)系是

A、1:1聯(lián)系

B、m:I聯(lián)系

C、1:m聯(lián)系

D、m:n聯(lián)系

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

知識(shí)點(diǎn)解析:一個(gè)部門可以有多名員工,所以實(shí)體部門和職員間的聯(lián)系是1:m聯(lián)

系。

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

A(){cout?nA":}~A(){cout<<"—A";});classB:publicA{A*p;public:

B(){cout?"B";P=ncwA();}—B(){cout?"?B";deletep;));intmain(){B

obj;return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。

A、BAA?A~B?A

B、ABA?B?A?A

C^BAA?B~A?A

D、ABA?A~B?A

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

知識(shí)點(diǎn)解析:此題考查的是派生類對(duì)象的構(gòu)造與析構(gòu)。建立派生類對(duì)象時(shí),構(gòu)造函

數(shù)的執(zhí)行順序如下:執(zhí)行基類的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類被定義時(shí)聲明的

順序(自左向右)一,執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類中

聲明的順序.>執(zhí)行派生類的構(gòu)造函數(shù)。所以本題在建立派生類B的對(duì)象Obj是會(huì)

先調(diào)用基類A的構(gòu)造函數(shù),然后調(diào)用自身的構(gòu)造函數(shù)。注意:B類中定義的成員p

是A類的指針而不是一個(gè)對(duì)象,故在調(diào)用自身構(gòu)造函數(shù)前不需要構(gòu)造。而在B類

構(gòu)造函數(shù)中使用new操作符動(dòng)態(tài)地構(gòu)造了一個(gè)A類的對(duì)象,所以整個(gè)構(gòu)造結(jié)果是

輸出:ABAo派生類對(duì)象的析構(gòu)與構(gòu)造嚴(yán)格相反,即先析構(gòu)自身,然后析構(gòu)自身

所包含的成員對(duì)象,最后調(diào)用基類的析構(gòu)函數(shù)。故本題中當(dāng)main。函數(shù)返回時(shí),析

構(gòu)B類的對(duì)象obj:首先調(diào)用?B(),接著再調(diào)用?A()因?yàn)樵?B()函數(shù)中釋放了動(dòng)

態(tài)創(chuàng)建的A類對(duì)象,故整個(gè)析構(gòu)所輸出的結(jié)果是?B?A?A。所以這個(gè)程序輸出

結(jié)果為ABA?B?A?A。

19、在對(duì)函數(shù)進(jìn)行原型聲明時(shí),下列語法成分中,不需要的是()。

A、函數(shù)返回類型

B、函數(shù)參數(shù)列表

C、函數(shù)名

D、函數(shù)體

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

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

函數(shù)原型。函數(shù)給出了函數(shù)名、返回類型以及在調(diào)用函數(shù)時(shí)必須指明參數(shù)個(gè)數(shù)和類

型。

20、下面是重載為非成員函數(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ù)重載。

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

()。

A、+

B、=

C、?

D、++

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

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

數(shù)重機(jī)

22、若要重載+、=、<<、=和|]運(yùn)算符,則必須作為類成員重載的運(yùn)算符是()。

A^+和=

B、=和<<

C、二和《

D、=和口

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

知識(shí)點(diǎn)解析:=、[|、()、->以及所有的類型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載,而

且不能是針地枚舉類型操作數(shù)的重載。

23、關(guān)鍵字unsigned不能修飾的類型是()。

A、char

B、int

C、float

D、longint

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

知識(shí)點(diǎn)解析:實(shí)型常量指的是float和double兩種數(shù)據(jù)類型,而signed和unsigned

只對(duì)整型數(shù)起作用,用于確定它們的數(shù)據(jù)范圍(例如16位系統(tǒng)中,一個(gè)signedint

是-32768?32767,而unsignedint是0?65535)。unsigned對(duì)浮點(diǎn)數(shù)是無意義的。

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

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

XA::b=0;intmain(){XAdl(2),d2(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.get()的返回值等于

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

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

25、若Myclass為一個(gè)類,執(zhí)行“Myclassa[4],*p[5];”語句時(shí)會(huì)自動(dòng)調(diào)用該類構(gòu)

造函數(shù)的次數(shù)是()。

A、2

B、5

C、4

D、9

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

知識(shí)點(diǎn)解析:語句MyClassa[4],*p⑸不僅定義了4個(gè)MyClass對(duì)象,分別為

a[0],a[l],a[2],a[3],而且定義了5個(gè)指向MyOass對(duì)象的指針變量,分別為

*P⑼,,"⑵,*p[3],*p|4],所以共調(diào)用MyClass的構(gòu)造函數(shù)4次。

ss

;cla

estd

espac

gnam

usin

溫馨提示

  • 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)論