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

下載本文檔

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

文檔簡介

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

第1套

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

1、一個(gè)棧的初始狀態(tài)為空。現(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

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

是EDCBA5432R

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

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

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

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

D、以上三種說法都不對

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

知識之解析D:棧是先進(jìn)后出的線性表,隊(duì)列是先進(jìn)先出的線性表。二者均為線性結(jié)

構(gòu)。

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

A、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)所需要的存儲空間是相同的

B、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要多于順序存儲結(jié)構(gòu)

C、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要少于順序存儲結(jié)構(gòu)

D、上述三種說法都不對

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

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

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

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

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

下一個(gè)元素的存儲序號,稱為指針域。所以線性表的鏈?zhǔn)酱鎯Ψ绞奖软樞虼鎯Ψ绞?/p>

的存儲空間要大一些。

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

eoutw'*':

A、48

B、49

C、50

D、51

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

知識點(diǎn)解析:本題考查for循環(huán)語句,一一i表示用之前先減1,那么這個(gè)for循環(huán)

語句只有50到2時(shí)才會輸出“木”,所以總共輸出49次。

5、關(guān)于靜態(tài)成員的描述中,錯(cuò)誤的是()。

A、靜態(tài)成員可分為靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)

B、靜態(tài)數(shù)據(jù)成員定義后必須在類體內(nèi)進(jìn)行初始化

C、靜態(tài)數(shù)據(jù)成員初始化不使用其構(gòu)造函數(shù)

D、靜態(tài)數(shù)據(jù)成員函數(shù)中不能直接引用非靜態(tài)成員

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

知識點(diǎn)詞析:可以在類的構(gòu)造函數(shù)中對靜態(tài)數(shù)據(jù)成員進(jìn)行初始化。

6、C++中的模板包括Ov

A、對象模板和函數(shù)模板

B、對象模板和類模板

C、函數(shù)模板和類模板

D、變量模板和對象模板

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

知識點(diǎn)解析:本題考查函數(shù)模板和類模板,所以答案為c。

7、“商品”與“顧客,兩個(gè)實(shí)體集之間的聯(lián)系一般是()。

A、一對一

B、一對多

C、多對一

D、多對多

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

知識點(diǎn)解析:實(shí)體集間的聯(lián)系的個(gè)數(shù)可以是單個(gè)也可以是多個(gè)。兩個(gè)實(shí)體集之間的

聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種關(guān)系有三種:一對一的聯(lián)系,簡記為1:

1:一對多或多對一聯(lián)系,簡記為1:m或m:1:多對多聯(lián)系,簡記為m:n。本

題中“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系是多對多聯(lián)系。因?yàn)橐环N“商品''可以被

多個(gè)“顧客”購買,而一個(gè)“顧客”也可以購買多個(gè)“商品

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

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

A、連接碼

B、關(guān)系碼

C、外碼

D、候選碼

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

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

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

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

9、有如下頭文件:imfl();staticintf2();classMA{public:intf3;();staticini

f4(););在所描述的函數(shù)中,具有隱含的this指針的是()。

A、fl

B、f2

C、f3

D、f4

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

知識點(diǎn)解析:只有類的非靜態(tài)成員函數(shù)才隱含this指針,其作用域是類內(nèi)部,當(dāng)類

的非靜態(tài)成員函數(shù)中訪問類的非靜態(tài)成員時(shí),編譯器會自動(dòng)將對象本身的地址作為

一個(gè)隱含參數(shù)傳遞給函數(shù),而不必一定寫上ihis。所以本題答案為C。

10,Windows環(huán)境下,由C++源程序文件編譯而成的目標(biāo)文件的擴(kuò)展名是().

A、cpp

B、exe

C、obj

D、lik

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

知識點(diǎn)解析:在VC6.0集成開發(fā)環(huán)境下,用戶可以使用編譯(compile)命令將一

個(gè).cpp為擴(kuò)展名的C++源程序文件轉(zhuǎn)換成一個(gè)以.obj為擴(kuò)展名的目標(biāo)文件。

11、數(shù)據(jù)庫設(shè)計(jì)的根本目標(biāo)是要解決

A、數(shù)據(jù)共享問題

B、數(shù)據(jù)安全問題

C、大量數(shù)據(jù)存儲問題

D、簡化數(shù)據(jù)維護(hù)

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

知識點(diǎn)解析:數(shù)據(jù)庫應(yīng)用系統(tǒng)中的一個(gè)核心問題就是設(shè)計(jì)一個(gè)能滿足用戶要求、性

能良好的數(shù)據(jù)庫,這就是數(shù)據(jù)庫設(shè)計(jì)。數(shù)據(jù)庫設(shè)計(jì)是在一定平臺制約下,根據(jù)信息

需求與處理需求設(shè)計(jì)出性能良好的數(shù)據(jù)模式。數(shù)據(jù)庫設(shè)計(jì)的根本目標(biāo)是要解決數(shù)據(jù)

共享的問題。

12、下列程序的輸出結(jié)果是()。#include<iostream.h>voidff(intx),ff(double

x);voidmain(){floata(88.18);ff(a);charb('a');ff(b);)voidff(intx){cout<

V''fRint):,,<<x<<endl;}voidff(doublex){cout<<,,ff((double):“VVxV

<endl;}

A、ff(doub|e):88.18ff(int):97

B、if(double)97ff(int)::88.18

C、ff(int):97ff(int)::8.18

D、ff(int):97ff(int)::88.18

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

知識點(diǎn)解析:本題主要考查函數(shù)調(diào)用時(shí)從實(shí)參到形參的類型一致性。相同類型或小

類型的實(shí)參可以傳給大類型的形參,但是不允許大類型的實(shí)參傳給小類型的形參。

13、下列關(guān)于C++預(yù)定義流對象的敘述中,正確的是()。

A、cin是C十十預(yù)定義的標(biāo)準(zhǔn)輸入流對■象

B、cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類

C^cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對象

D、cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類

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

知識點(diǎn)解析:cin為istream流類的標(biāo)準(zhǔn)輸入對象,標(biāo)準(zhǔn)輸入設(shè)備就是指鍵盤。

14、在C++中既可以用于文件輸入又可以用于文件輸出的流類是()。

A、fstream

B、ifstream

C、ofstream

D、iostream

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

知識點(diǎn)解析:文件流以磁盤文件以及其他可按文件方式進(jìn)行管理的外部設(shè)備為輸入

輸出對象。ifstream是文件輸入流類,ofstream是文件輸出流類,fsiream是文件輸

入輸出流類,當(dāng)使用cin、cout的預(yù)定義流對象進(jìn)行針對標(biāo)準(zhǔn)設(shè)備的I/O操作,則

需要使用iostream文件c

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

voidNamc();voidShow。;protected:intpage;};classBook:privateMedia]public:

voidPrint(){cout<<page<<end1;)voidShowO(Media::ShowO;)//(T)};int

rruun(){BookBible;Bible.Name。;,//@Bible.Print。;〃③Bible.Show。;〃④

return();}編譯口寸有錯(cuò)誤的是()。

A語①

B語②

、

c句③

、

D句④

、

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

知識點(diǎn)解析:類Book私有繼承自類Media,所以類Media中的公有成員函數(shù)

Name。在繼承類Book中變成了私有成員函數(shù),因而類Book的對象Bible不能訪問

私有成員函數(shù)Name()o

16、有如下程序:#include<iostream>usingnamespacestd;classA)public:

A(inti){x=i;)voiddispa,(){cout<<x<<\';)private:intx:}:classB:

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

endl;)privateintx:(: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

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

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

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

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

17、在語句cin>>data;中,cin是()。

A、C++的關(guān)鍵字

B、類名

C、對象名

D、函數(shù)名

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

知識點(diǎn)解析:此題考查的是預(yù)定義流對象。C++有4個(gè)預(yù)定義的流對象:cin—標(biāo)準(zhǔn)

輸入;cout—標(biāo)準(zhǔn)輸出;cerr—標(biāo)準(zhǔn)出錯(cuò)信息輸出:clog一帶緩沖的標(biāo)準(zhǔn)出錯(cuò)信息輸

出。

18、下列模板聲明中,有語法錯(cuò)誤的是()。

A、template<typenameT>Tfun(Tx){returnx;}

R、template<typcnameT>Tfun(Tx.intn){returnx*n:}

C、template<classT>Tfun(T*p){return*p;)

D、template<classT>TclassA{Tn;};

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

知識點(diǎn)解析:第四個(gè)選預(yù)是定義類模板的,但是class前面的T是多余的。對于第

二個(gè)選項(xiàng),同一個(gè)類的對象相乘還是同一個(gè)類的對象,但是可能要考慮溢出的問

題。

19、下列關(guān)于C++流的描述中,錯(cuò)誤的是()。

A、cout>>W表達(dá)式可輸出字符A

B、cof()函數(shù)可以檢測是否到達(dá)文件尾

C、對磁盤文件進(jìn)行流操作時(shí),必須包含頭文件fstream

D、以ios_ba$e::out模式打開的文件不存在時(shí),將自動(dòng)建立一個(gè)新文件

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

知識點(diǎn)解析:Coin是一個(gè)標(biāo)準(zhǔn)輸出流對象。>>稱之為提取運(yùn)算符,它的功能是

從輸入流中提取數(shù)據(jù)賦值給一個(gè)變量。VV為插入運(yùn)算符,其功能是把表達(dá)式的值

插入到輸出流中。當(dāng)系統(tǒng)執(zhí)行coutVVx操作時(shí),首先根據(jù)x值的類型調(diào)用相應(yīng)的

插入運(yùn)算符重載器函數(shù),把x的值傳送給對應(yīng)的形參,接著執(zhí)行函數(shù)體,把x的值

輸出到顯示器屏幕上,在當(dāng)前屏幕光標(biāo)位置處顯示出來,然后返回ostream流,以

便繼續(xù)使用插入運(yùn)算符輸出下一個(gè)表達(dá)式的值。對于本題來說,要輸出字符,A,的

值應(yīng)該寫成coulV'A,,因而選項(xiàng)A)是錯(cuò)誤的。

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

virtualvoidfunction1(){tout<<,0,;)voidtunction2(){cout<<7T;));class

Derived:publicBase{public:voidfunctionl(){lout<<,2,;)voidfunction2(){cout

<<,3,;}};intmain(){Base*p=newDerived();p->function1();p->

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

A、01

B、21

C、03

D、23

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

知識點(diǎn)解析:函數(shù)funciionl。在基類Base中定義為虛成員函數(shù),而在派生類

Dervied中重新進(jìn)行了定義,輸出字符2,函數(shù)function2()在基類Base中定義虛成

員函數(shù),在主函數(shù)中使用指向基類的指針變量p訪問function^)時(shí),輸出1。

21、在下列枚舉符號中,用來表示“相對于當(dāng)前位置”文件定位方式的是()。

A、ios_base::cur

B、ios_base::beg

C、ios_base::out

D、ios_base::end.

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

知識點(diǎn)解析:C++流的定位方式(也就是指針移動(dòng)方式)有三種,被定義為

ios_base::seek_dir中的一組枚舉符號:ios_base::beg相當(dāng)于文件首;

ios_base::curo相當(dāng)于當(dāng)前位置(負(fù)數(shù)表示當(dāng)前位置之前):ios_base::end相對

于文件尾。

22、下列關(guān)于賦值運(yùn)算符“=”重載的敘述中,正確的是()。

A、賦值運(yùn)算符只能作為類的成員函數(shù)重載

B、默認(rèn)的賦值運(yùn)算符實(shí)現(xiàn)了“深層復(fù)制上功能

C、重載的賦值運(yùn)算符函數(shù)有兩個(gè)本類對象作為形參

D、如果已經(jīng)定義了復(fù)制(拷貝)構(gòu)造函數(shù),就不能重載賦值運(yùn)算符

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

知識點(diǎn)解析:賦值運(yùn)算符只能作為成員函數(shù)重載。

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

第2套

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

1、執(zhí)行語句序列intx=l,&y=x;cout<<x<<,-,<<y<<endl;輸出結(jié)果為

()。

A^x-x

B、1-1

C、1-0

D、異常

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

知識點(diǎn)解析:程序中的“intx=l”定義x為int型變量,并賦值為1。語句“&y=x”中

為引用運(yùn)算符,&y=x語句可以理解為y具有x的地址,所以y的值也是1,

即輸出為:1-1。

2、下列關(guān)于棧的描述中正確的是()。

A、在棧中只能插入元素而不能刪除元素

B、在棧中只能刪除元素而不能插入元素

C、棧是特殊的線性表,只能在一端插入或刪除元素

D、棧是特殊的線性表,只能在一端插入元素,而在另一端刪除元素

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

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

的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。

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

A、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)所需要的存儲空間是相同的

B、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要多于順序存儲結(jié)構(gòu)

C、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要少于順序存儲結(jié)構(gòu)

D、上述三種說法都不對

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

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

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

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

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

下一個(gè)元素的存儲序號,稱為指針域。所以線性表的鏈?zhǔn)酱鎯Ψ绞奖软樞虼鎯Ψ绞?/p>

的存儲空間要大一些。

4、一個(gè)棧的初始狀態(tài)為空。現(xiàn)將元素I、2、3、4、5、A、B、C、D、E依次人

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

A、12345ABCDE

B、EDCBA54321

C、ABCDE12345

D、54321EDCBA

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

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

5、某二叉樹共有7個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有1個(gè),則該二叉樹的深度為(假設(shè)根

結(jié)點(diǎn)在第1層)()。

A、3

B、4

C、6

D、7

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

知識點(diǎn)解析:根據(jù)二義樹的性質(zhì),度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)

多一個(gè)。題目中的二叉樹的口I子結(jié)點(diǎn)為1,囚此度為2的結(jié)點(diǎn)的數(shù)目為O,故亥二

叉樹為7層,每層只有一個(gè)結(jié)點(diǎn)。

6、對下列二叉樹進(jìn)行前序遍歷的結(jié)果是()。

A、DYBEAFCZX

B、YDEBFZXCA

C、ABDYECFXZ

D、ABCDEFXYZ

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

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

①訪問根結(jié)點(diǎn);②前序遍歷左子樹;③前序遍歷右子樹??梢姡靶虮闅v二叉樹

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

ABDYECFXZo

7、設(shè)一叉樹的前序序列為ABDEGHCFIJ,中序序列為DBGEHACIFJ。則按層次

輸出(從上到下,同一層從左到右)的序列為

A、ABCDEFGH1J

B、DGHEBIJFCA

C、JIHGFEDCBA

D、GHIJDEFBCA

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

知識點(diǎn)解析:前序遍歷中,第一個(gè)字母是根結(jié)點(diǎn),也就是A是根結(jié)點(diǎn);在中序遍

歷中,根結(jié)點(diǎn)前面的是左子樹、后面的是右子樹。前序中,B在A的后面,中序

中在左予樹中,可知B為A的左結(jié)點(diǎn)。中序中D在B的前面,前序中在B的后

面,可知D為B的左結(jié)點(diǎn),GEH為B的右子樹。前序中順序?yàn)镋GH,由此可知,

E為B的右結(jié)點(diǎn),G為E的左結(jié)點(diǎn)、H為E的右結(jié)點(diǎn)。右子樹中,前序中C在最

前,因?yàn)橛易訕涓Y(jié)點(diǎn),也就是A的右結(jié)點(diǎn),根據(jù)前序中的子樹FU和中序中的

WJ子樹可知F為C的右結(jié)點(diǎn),I為F的左結(jié)點(diǎn)、J為F的右結(jié)點(diǎn)。由此可畫出這個(gè)

二叉樹,然后根據(jù)二叉樹,可知按層次輸出(從上到下,同一層從左到右)的序列

為:ABCDEFGHIJo

8、在軟件設(shè)計(jì)中,不屬于過程設(shè)計(jì)工具的是()。

A、PDL(過程設(shè)計(jì)語言)

B、PAD圖

C、N-S圖

D、DFD圖

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

知識點(diǎn)解析:DFD(數(shù)據(jù)流圖Data-Flow-Diagram)是描述數(shù)據(jù)處理過程的工具,是

需求理解的邏輯模型的圖形表示。它直接支持系統(tǒng)功能建模。在軟件詳細(xì)設(shè)計(jì)的過

程階段,要對每個(gè)模塊規(guī)定的功能以及算法的設(shè)計(jì)給出適當(dāng)?shù)乃惴枋?。常見的過

程設(shè)計(jì)工具有:?圖形工具:程序流程圖,N-S,PAD,HIPOo?表格工具:判

定表。?語言工具:PDL(偽碼)。

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

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

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

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

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

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

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

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

回值類型不做要求,返回值類型也不參與區(qū)分函數(shù)的重載形式。故選項(xiàng)C錯(cuò)誤。

10、閱讀下面的程序:#include<iostream.h>voidmain()(intx:cin>>x;

if(x++>5)cout<<x<<endl;elsecout<<x-<endl;}如果兩次執(zhí)行上述程

序,且鍵盤輸入分別為4和6,則輸出結(jié)果分別是()。

A、4,6

B、3,6

C、4,7

D、5,7

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

知識點(diǎn)解析:此題首先讀入數(shù)值4賦給變量x,因?yàn)閤++>5不成立,因?yàn)椤?+”后

綴,之后x的值變?yōu)?,執(zhí)行語句coutVVx-VVendl;輸出:5,之后x的值變?yōu)?/p>

40當(dāng)讀入的數(shù)值是6時(shí),因?yàn)閤++>5成立,所以執(zhí)行語句coutVVxVVendl;

輸出7。

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

A、_256

B、fat/pig

C、delete

D、Schar

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

知識點(diǎn)解析:標(biāo)識符的命名規(guī)則:①所有標(biāo)識符必須由一個(gè)字母(&~2或人~2)

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

③大小寫字母表示不同意義,即代表不同的標(biāo)識符,如cou【和Coul。

12、若類A和類B的定義如下:#include<malloc.h>classA{inti,j;public:

intgeti(){returni;));classB:publicA{intk;public:voidmake()

{k=i*j;));則上述定義中非法的表達(dá)式是()。

A、k=-i*j:

B、intk;

C、returni;

D、voidmake();

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

知識點(diǎn)解析:因?yàn)榕缮惒荒茉L問基類的私有成員i和j(默認(rèn)情況下,成員的屬性

為私有),所以表達(dá)式k=-i*i是非法的。其余的訪問權(quán)限都是許可的。

13、針對數(shù)組定義intdata[10];,下列表述中錯(cuò)誤的是()。

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

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

C、用data[10]訪問數(shù)組元素會超出數(shù)組邊界

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

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

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

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

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

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

不是2的是()。

A^cout<<*arr+1<<end1;

B、cout<<*(arr+l)<<endl;

C、cout<<arr[l]<<endl,

D^cout<<*art<<end1;

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

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

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

第二元素2o

15、有如下程序段:inli=O,j=l;int&r=i://①r=j//②int*p=&i;//

③*p=&t//④其中會產(chǎn)生編譯錯(cuò)誤的語句是()。

A、?

B、③

C、②

D、0

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

知識點(diǎn)解析:此題考查的是指針和引用。本題中,語句①是一條合法的引用聲明

語句,使得變量i被r引用;語句②通過引用r將變量j的值賦給變量i;語句③聲

明了指針變量P,并初始化指向變量i;語句④中,*p代表了變量i的值,要將&r

賦給*p,這會使編譯器產(chǎn)生類型不符的錯(cuò)誤提示。

16、下列關(guān)于輸入流類成員函數(shù)getline。的描述中,錯(cuò)誤的是()。

A、該函數(shù)是用來讀取鍵盤輸入的字符串的

B、該函數(shù)讀取的字符印長度是受限制的

C、該函數(shù)讀取字符串時(shí),遇到終止符便停止

D、該函數(shù)讀取字符串時(shí)二可以包含空格

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

知識點(diǎn)解析:此題考查的是getline()函數(shù)。getline。函數(shù)的原型為:

istreamjype&getline(char_type*s,streamsize,char_typedelim);。其功能是從當(dāng)前輸

入位所始提取字符存入s所指向的具有n個(gè)字節(jié)的字符空間中。遇到以下情況時(shí)

停止:已提取并存儲了n—l個(gè)字符;到流尾,無字符可取;下一個(gè)要提取的字符

等于結(jié)束標(biāo)志字符delim。故選項(xiàng)R、C、D都是iF確的cgetline。函數(shù)不僅可以用

來讀取鍵盤輸入的字符串,還可以用來讀取文件等數(shù)據(jù)流,故選項(xiàng)A錯(cuò)誤。

17、有如下程序:#inc1ude<iostream>usingnamespacestd:classTest{public:

TestO{n+=2:}-TestO(n—=3;}staticintgetNumO{returnn;}private:staticint

n;);intTest::n=l;intmain(){Test*p=newTest;deletep;cout<<"n="<

Test::getNumO<<end1;return0;)執(zhí)行后的輸出結(jié)果是()。

n=0

B、n=l

C、n=2

D^n=3

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

知識點(diǎn)解析:此題考查的是靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)。靜態(tài)數(shù)據(jù)成員是類中所

有對象共享的成員,而不是某個(gè)對象的成員。題目中的靜態(tài)數(shù)據(jù)成員n的運(yùn)算具有

疊加性,執(zhí)行“n+—2”和“n——3”后n的值為0<>

18、有如下類定義:classMyBase{intk;public:MyBase(intn=0):k(n){}int

vakie()const{returnk;});classMyDerived:MyBase{intj;public:

MyDcrivcd(inti):j(i){}intgetK()const{returnk;}intgctJ()const{returnj;}};編

譯時(shí)發(fā)現(xiàn)有一處語法錯(cuò)誤,對這個(gè)錯(cuò)誤最準(zhǔn)確的描述是()。

A、函數(shù)getK試圖訪問基類的私有成員變量k

B、在類MyDerived的定義中,基類名MyBase前缺少關(guān)鍵字public、protected或

private

C、類MyDerived缺少一個(gè)無參的構(gòu)造函數(shù)

D、類MyDerived的構(gòu)造函數(shù)沒有對基類數(shù)據(jù)成員k進(jìn)行初始化

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

知識點(diǎn)解析:此題考查的是派生類對基類成員的訪問。因?yàn)轭愔腥笔〉脑L問權(quán)限是

私有,所以本題中MyBase類中定義的成員k是私有成員。派生類中的成員只能訪

問基類中的公有成員和保護(hù)成員,不能訪問基類中的私有成員。所以派生類中函數(shù)

getK()中的語句returnk;是非法的。

19>有如下程序:#include<iostream>usingnamespacestd:classMountain{int

height;public:Mountain(inth=0):height(h){}virtualchar*GetName()

const{return"ill";)intGetHeight()const{returnheight;));classLushan:public

Mountain)Public;Lushan(intd);Mountain(d){)Char*GctNamcOconst{return"1^ill

";));intmain(){Mountain*p=newLushan(lOOO);cout<<p->GetName()<<

“海拔“<<p—>GetHeight()V<咪、return0;}運(yùn)行這個(gè)程序的輸出結(jié)果是

()。

A、廬山海拔1000米

B、廬山海拔。米

C、山海拔1000米

D、山海拔0米

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

知識點(diǎn)解析:在基類Mountain中定義了虛函數(shù)GctNamc。輸出字符串“山”,而在派

生類Lushan中對虛函數(shù)GetName。進(jìn)行了重新定義,輸出字符串“廬山在主函

數(shù)中對派生類中的虛函數(shù)GetName。進(jìn)行了多態(tài)調(diào)用,此時(shí)調(diào)用的是派生類中重新

定義的GctName。,輸已字符字符串“廬山

20、下列關(guān)于運(yùn)算符函數(shù)的描述中,錯(cuò)誤的是()。

A、運(yùn)算符函數(shù)的名稱總是以ope30r為前綴

B、運(yùn)算符函數(shù)的參數(shù)可以是對象

C、運(yùn)算符函數(shù)只能定義為類的成員函數(shù)

D、在表達(dá)式中使用重載的運(yùn)算符相當(dāng)于調(diào)用運(yùn)算符重載函數(shù)

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

知識點(diǎn)解析:C++把重載的運(yùn)算符視為特殊的函數(shù),稱為運(yùn)算符函數(shù)。編譯系統(tǒng)能

夠依據(jù)使用運(yùn)算符的不同環(huán)境,即參數(shù)(操作數(shù))的數(shù)量或類型的差異,區(qū)分同一運(yùn)

算符的不同含義。運(yùn)算符函數(shù)作為非成員函數(shù)時(shí),所有的操作數(shù)必須出現(xiàn)在參數(shù)表

中。

21、有如卜.類定義和變量定義:classA{public:AO{data=O;}~A(){}int

GetData()const{returndata;)voidSetData(intn){data=n;}private:intdata;);

constAa;Ab;下列因數(shù)調(diào)用中錯(cuò)誤的是()。

A、a.GetData();

B、a.SetData(lO);

C^b.GetData();

D、b.SetData(lO);

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

知識點(diǎn)解析:由題意可知a為常對象,因?yàn)槌ο蟛荒鼙桓?,所以通過這個(gè)常對

象只能調(diào)用它的常成員函數(shù)GelData。,而不能調(diào)隹其他成員函數(shù)SelData(lO),因

而選項(xiàng)B為本題的正確答案。

22、關(guān)于在調(diào)用模板函數(shù)時(shí)模板實(shí)參的使用,下列表述正確的是()。

A、對于虛擬類型參數(shù)所對應(yīng)的模板實(shí)參,如果能從模板函數(shù)的實(shí)參中獲得相同的

信息,則都可以省略

B、對于虛擬類型參數(shù)所對應(yīng)的模板實(shí)參,如果它們是參數(shù)表中的最后的若干個(gè)參

數(shù),則都可以省略

C、對于虛擬類型參數(shù)所對應(yīng)的模板實(shí)參,若能夠省略則必須省略

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

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

知識點(diǎn)解析:此題考查的是模板實(shí)參的省略。模板實(shí)參在以下集中情況中不能省

略:從模板函數(shù)實(shí)參表獲得的信息有矛盾;需要獲得特定類型的返回值,而不管參

數(shù)的類型如何;虛擬類型參數(shù)沒有出現(xiàn)在模板函數(shù)的形參表中;函數(shù)模板含有常規(guī)

形參。

23、若為Fraction類重載前增1運(yùn)算符++,應(yīng)在類體中將其聲明為()。

A、Fraction&operator++();

R、Fraction^operator++(int).

C、friendFraction&operator++();

D、friendFraction&operator++(int);

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

知識點(diǎn)解析:在類Fraclion中重載前增1運(yùn)算符++時(shí),其聲明形式為Fraction

&operator++();在類Fraction中重載后增1運(yùn)算符++時(shí),其聲明形式為

Fraction&operator++(int);。

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

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

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

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

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

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

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

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

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

25、若要對類BigNumber中重載的類型轉(zhuǎn)換運(yùn)算符long進(jìn)行聲明,下列選項(xiàng)中正

確的是()。

A、operatorlong()const;

B、operatorlong(bigNumber);

C、longoperatorlong()const;

D、longoperatorlong(B:gNumber);

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

知識點(diǎn)解析:在重載類型轉(zhuǎn)換符時(shí),由于運(yùn)算符本身已經(jīng)表示出返回值類型,因此

不需要返回值類型的聲明。

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

第3套

一、選擇題(本題共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

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

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

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

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

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

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

D、以上三種說法都不對

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

知識點(diǎn)解析:棧是先進(jìn)后出的線性表,隊(duì)列是先進(jìn)先出的線性表。二者均為線性結(jié)

構(gòu)。

3、有如下語句序列:inix=100,&r==x;cout<

A、100-100

B、100.0012FF7C

C、0012FF7C-100

D、0012FF7C-0012FF7C

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

知識點(diǎn)解析:在語句inix=100,&r=x;中聲明r初始化對x的引用,所以x和&r

的值都是100o

4、字面常量42、4.2、42L的數(shù)據(jù)類型分別是()。

A、long,double,int

B>long,float,int

C、int,double,long

D、int,float,long

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

知識點(diǎn)露析:此題考查的知識點(diǎn)是字面常量。對于整型字面常量,只要沒有超過

C++中整數(shù)所能表示的范圍,C++將自動(dòng)按整數(shù)來存儲此數(shù),也可以通過在整型字

面常量后添加U或1來指定無符號整數(shù)或長整數(shù)來存儲;對于實(shí)型字面常量,C++

將自動(dòng)按照雙精度數(shù)來存儲,也可以通過在實(shí)型字面常量后添加f來指定按單精度

數(shù)存儲。

5、下面程序的輸出結(jié)果為()。#include<iostream.h>voidmain(){intx;int

&y=x;//變量引用y=99;cout<<,,x=,,<<x<<endl;}

A、x=9913)x=9

B、x=0

C、異常

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

知識點(diǎn)解析:程序中的“int&y=x;”語句中的引用運(yùn)算符。&y=x語句可以理解

為y具有x的地址.所以y的值99.x的值也是99,所以答案是x=990

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

A、控制流

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

C、模塊調(diào)用

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

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

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

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

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

7、有如下程序:#includeusingnamespacestd;classPair{intm,n;public:

Pair(intj,intk):m(j),n(k){}intget(){returnm;}intgetoconst{returnm+n;}];

intmain(){Paira(3,5);constPairb(3,5);coul<<a.get()<<b.get();return

0:)運(yùn)行時(shí)的輸出結(jié)果是()。

A、33

B、38

C、83

D、88

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

知識點(diǎn)解析:在主函數(shù)中定義了類Pair的一個(gè)實(shí)例變量a,并分別對實(shí)例變量a的

數(shù)據(jù)成員m,n賦初值3,5。所以調(diào)用a.gct()成員函數(shù)時(shí),輸出3。又定義類

Pair的一個(gè)常實(shí)例變量b,并分別對實(shí)例變量b的數(shù)據(jù)成員m,n賦初值3,5。所

以調(diào)用成員函數(shù)b.get。時(shí),輸出8。

8、對于語句coutVVendlVVx;中的各個(gè)組成部分,下列敘述中錯(cuò)誤的是()。

A、“cout”是一個(gè)輸出流對象

B、“endl”的作用是輸出回車換行

C、“x”是一個(gè)變量

D、“VV”稱作提取運(yùn)算符

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

知火點(diǎn)解析:語句cout<<cndl<〈x:作用是輸出回車和變量x的值。所以題目

中選項(xiàng)A)、B)、C)的敘述均正確,只有選項(xiàng)D)敘述錯(cuò)誤,“VV”是插入運(yùn)算符。

9、數(shù)據(jù)庫設(shè)計(jì)中,用E-R圖來描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,它

屬于數(shù)據(jù)庫設(shè)計(jì)的()。

A、需求分析階段

B、邏輯設(shè)計(jì)階段

C、概念設(shè)計(jì)階段

D、物理設(shè)計(jì)階段

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

知識點(diǎn)解析:E-R模型(實(shí)體聯(lián)系模型)是將現(xiàn)實(shí)世界的要求轉(zhuǎn)化成實(shí)體、聯(lián)系、屬

性等幾個(gè)基本概念,以及它們間的兩種基本聯(lián)接關(guān)系,并且可用一種圖非常直觀地

表示出來。它屬于數(shù)據(jù)庫設(shè)計(jì)的概念設(shè)計(jì)階段。

10、下列符號中能夠作為C++標(biāo)識符的是()。

A、const

B、2a

C、_shape

D、-count

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

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

成,其第一個(gè)字符必須是字母或下劃線,中間不能有空格:標(biāo)識符的長度是任意

的,但由于編譯系統(tǒng)的限制一般不超過31個(gè)字符:標(biāo)識符中的大小寫字母是不同

的;定義標(biāo)識符時(shí)不能采用系統(tǒng)的保留字。

II、數(shù)據(jù)庫設(shè)計(jì)的根本目標(biāo)是要解決

A、數(shù)據(jù)共享問題

B、數(shù)據(jù)安全問題

C、大量數(shù)據(jù)存儲問題

D、簡化數(shù)據(jù)維護(hù)

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

知識點(diǎn)解析:數(shù)據(jù)庫應(yīng)用系統(tǒng)中的一個(gè)核心問題就是設(shè)計(jì)一個(gè)能滿足用戶要求、性

能良好的數(shù)據(jù)庫,這就是數(shù)據(jù)庫設(shè)計(jì)。數(shù)據(jù)庫設(shè)計(jì)是在一定平分制約下,根據(jù)信息

需求與處理需求設(shè)計(jì)出性能良好的數(shù)據(jù)模式。數(shù)據(jù)庫設(shè)計(jì)的根本目標(biāo)是要解決數(shù)據(jù)

共享的問題。

12、下列關(guān)于賦值運(yùn)算符『"重載的敘述中,正確的是()。

A、賦值運(yùn)算符只能作為類的成員函數(shù)重載

B、默認(rèn)的賦值運(yùn)算符實(shí)現(xiàn)了“深層復(fù)制上功能

C、重載的賦值運(yùn)算符函數(shù)有兩個(gè)本類對象作為形參

D、如果已經(jīng)定義了復(fù)制(拷貝)構(gòu)造函數(shù),就不能重載賦值運(yùn)算符

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

知識點(diǎn)解析:重載賦值運(yùn)算符必須定義為類的成員函數(shù);所以選項(xiàng)A正確。重載

賦值運(yùn)算符時(shí)應(yīng)返回一個(gè)類的對象,所以C選項(xiàng)錯(cuò)誤。如果己經(jīng)定義了復(fù)制(挑貝)

構(gòu)造函數(shù),仍然可以重載賦值運(yùn)算符,所以D選項(xiàng)錯(cuò)誤。

13^有如下程序:#inckideusingnamespacestd:classGA{public:virtualhat

f(){return1;});classGB:publicGA{public;virtualintft){return2;));void

show(GAg){cout<

A、1111

B、1211

C、1112

D、1212

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

知識點(diǎn)解析:此題考查派生類與虛函數(shù)的考杳。由主函數(shù)main入手,其中分別定

義了類GA和GB的對象a和b。首先,執(zhí)行參數(shù)a的show函數(shù)調(diào)用,其中的輸出

語句為調(diào)用GA類中的f()虛函數(shù),返回1。同理display(a)函數(shù)輸出1。show(b)函

數(shù)中調(diào)用的為GA中的f()函數(shù),display(b)調(diào)用GA中f()函數(shù),返回1,display(b)

調(diào)用GB中的f()函數(shù)返回2。所以最后輸出為1112。

14、已知Value是一個(gè)類,Value是Value的一個(gè)對象。下列以非成員函數(shù)形式重

我的運(yùn)算符函數(shù)原形中,正確的是()。

A^Valueoperator+(ValueV,inti);

B、Valueopcrator+(ValueV=valuc,inti);

C、Valueoperator+(Valuevinti=0);

D^Valueoperator+(ValueV:value,inti=0);

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

知識點(diǎn)解析:此題考查的是重載加法運(yùn)算符“+”。"+”是二元運(yùn)算符,其第一操作數(shù)

是對象本身,i為第二操作數(shù),由此可知選項(xiàng)B正確。

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

A、Fractionoperator+(Fraction,Fraction);

B、Fractionoperator—(Fraction);

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

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

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

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

函數(shù)重載。

16、將運(yùn)算符重載為非成員函數(shù),下列原型聲明中,錯(cuò)誤的是()。

A^MycloCkopcrator+(MyClock,long);

B、MycloCkoperator+(MyClock,MyClock);

C、MycloCkoperator+(long.long);

D^MycloCkopcrator+(long,MyClock);

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

知識點(diǎn)解析:運(yùn)算符重載不能有二義性,故選項(xiàng)Cj不能區(qū)分運(yùn)算符的準(zhǔn)確含義。

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

A、I

B、30

C、1-2

D、死循環(huán)

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

知識點(diǎn)解析:此題考查的是do-while循環(huán)語句。do-while循環(huán)首先執(zhí)行do語句中

的循環(huán)體,再判斷是否需要繼續(xù)執(zhí)行循環(huán)。題目中do語句“x?=2",while語句中“-

x”即x為0,取反為非0,循環(huán)繼續(xù)執(zhí)行;執(zhí)行“x-=2”和“-x”取反后,循環(huán)結(jié)束程

序退出。

18、有如下類定義:classAA{inta;public:intgetRef()const{return&aiJ//①

intgetValue()const{retuina;}//@voidset(intn)const(a=n;}//(3)friendvoid

show(AAaa)const{cout<<a;}//?);其中的四個(gè)函數(shù)定義中正確的是()。

A、①

B、②

C、@

D、@

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

知識點(diǎn)解析:此題考查了常成員函數(shù)和友元函數(shù)的概念。選項(xiàng)A中,getRef。函數(shù)

的返回值和函數(shù)函數(shù)類型不符,故錯(cuò)誤;C選項(xiàng)中set。常成員函數(shù)改變了數(shù)據(jù)成員

的值,這是不允許的;D選項(xiàng)中show。函數(shù)被同時(shí)定義成友元函數(shù)和常成員函數(shù)是

錯(cuò)誤的。

19>已知基類Employee只有一個(gè)構(gòu)造函數(shù),其定義如下:Employee::

Employee(intn):id(n){)Manager是Employee的派生類,則卜列對Manager的構(gòu)造

函數(shù)的定義中,正確的是()。

A、Manager::Manager(intn):id(n){)

B、Manager::Manager(inln){id=n;}

C、Manager::Manager(intn):Employee(n){}

D、Manager::Managcr(intn){Employcc(n);}

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

知識點(diǎn)3析:基類的構(gòu)造函數(shù)是帶有參數(shù)的,派生類從基類派生,這就需要在派生

類的構(gòu)造函數(shù)名后面顯示的調(diào)用基類的構(gòu)造函數(shù)。

20>有如卜.類定義classAnimal{public:virtualvoidName0=0;};classKoala:

publicAnimal{public:voidName(){/*函數(shù)體略*/});關(guān)于上述類定義,下列

描述中錯(cuò)誤的是()。

A、類Koala是類Animal的派生類

B、類Koala中的Name函數(shù)是一個(gè)虛函數(shù)

C、類Animal中的Name函數(shù)是一個(gè)純虛函數(shù)

D、語句“Animala;”能夠建立類Animal的一個(gè)對象a

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

知識點(diǎn)解析:在類Animal定義了純虛函數(shù)Name。,所以類Animal就是一個(gè)抽象

類,而抽象類是不能夠建立對象的。

21、下列運(yùn)算符函數(shù)中肯定不屬于類FunNumber的成員函數(shù)的是()。

A^intoperator~~(FunNumber);

FunNumberoperator~~0;

C、FunNumberopcrator-(int),

D、intoperator—(FunNumber;FunNumber);

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

知識點(diǎn)解析?:此題考查的是運(yùn)算符“一”的重載?!耙弧边\(yùn)算符有一元和二元兩種,且

均可以重載為成員函數(shù)和非成員函數(shù)。運(yùn)算符.重載為成員函數(shù)時(shí),形參個(gè)數(shù)一般為

運(yùn)算符元數(shù)減1:重載為非成員函數(shù)時(shí),形參個(gè)數(shù)一般和運(yùn)算符元數(shù)相等。所以,

運(yùn)算符重載為成員函數(shù)時(shí),參數(shù)可以是0個(gè)或1個(gè):而重載為非成員函數(shù)時(shí),

參數(shù)個(gè)數(shù)可以是1個(gè)或2個(gè)。所以D選項(xiàng),肯定是重我為非成員函數(shù)。

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

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

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

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

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

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

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

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

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

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

A、類模板的成員函數(shù)都是模板函數(shù)

B、函數(shù)模板是一種參數(shù)化類型的函數(shù)

C、滿足一定條件時(shí)可以省略模板實(shí)參

D、模板形參只能由關(guān)鍵字typename聲明

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

知識點(diǎn)解析:同一模板的聲明和定義中,模板形參的名字不必相同。每個(gè)模板類型

形參前面必須帶上關(guān)鍵字typcnamc/class,每個(gè)非類型形參前面必須帶上類型名

字。

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

第4套

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

1、支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是

A、棧

B、樹

C、隊(duì)列

D、二叉樹

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

知識點(diǎn)解析:棧是一種限定在一端進(jìn)行插入與刪除的線性表。在主函數(shù)調(diào)用子函數(shù)

時(shí),要首先保存主函數(shù)當(dāng)前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子函數(shù),把子函數(shù)的運(yùn)行結(jié)果返

回到.主函數(shù)調(diào)用子函數(shù)時(shí)的位置,主函數(shù)再接著往下執(zhí)行,這種過程符合棧的特

點(diǎn)。所以一般采用棧式存儲方式。

2、一棵二叉樹中共有80個(gè)葉子結(jié)點(diǎn)與70個(gè)度為1的結(jié)點(diǎn),則該二叉樹中的總結(jié)

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

A、219

B、229

C、230

D、231

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

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

是比度為2的結(jié)點(diǎn)多一個(gè),故總結(jié)點(diǎn)數(shù)=葉子節(jié)點(diǎn)數(shù)十度為2的節(jié)點(diǎn)數(shù)+度為1的節(jié)

點(diǎn)數(shù)=80+79+70=229。

3、冒泡排序在最壞情況下的比較次數(shù)是()。

A、n(n+l)/2

nlog2n

C、n(n-l)/2

D、n/2

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

知識點(diǎn)解析:對n個(gè)結(jié)點(diǎn)的線性表采用冒泡排序,在最壞情況下,冒泡排序需要經(jīng)

過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-

l)/2o

4、有如下程序:#includeusingnamespacestd;classtest{private:ima;public:

test。{coutvv”construclor”v

A、3

B、constructor

C、copyconstructor

D、3destructordestructordestructor

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

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

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

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

5、下列關(guān)于this指針的描述中,正確的是()。

A、類的成員函數(shù)都有this指針

B、類的友元函數(shù)都有this指針

C、任何與類相關(guān)的函數(shù)都有this指針

D、類的非靜態(tài)成員函數(shù)都有this指針

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

知識點(diǎn)解析:this是成員函數(shù)所屬對象的指針,它指向類對象的地址。成員函數(shù)通

過這個(gè)指針可以知道自己屬于哪一個(gè)對象。它隱臧于每個(gè)類的非靜態(tài)成員函數(shù)中。

6、有如下程序:#includeusingnamespacestd;classMyClass{public:

MyClass(intx):Val(x){)voidSet(intx){val=x;)voidPrint()const(cout?"val="<

A、語句1

B、語句2

C、語句3

D、語句4

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

知識點(diǎn)解析:在創(chuàng)建類對象obil(10)時(shí),前面有關(guān)鍵字consi,所以當(dāng)語句3調(diào)用

objl的成員函數(shù)試圖修改其私有成員的數(shù)值的時(shí)候,會編譯出錯(cuò)。

7>有如下程序:#include<iostream>usingnamespacestd;classXX(protected:

intk;public:XX(intn=5):k(n){};?XX(){cou【VV''XX'';)virtualvoid

f()const=0:);inlinevoidXX::f()const{cout<<k+3;};classYY:publicXX

{public:?YY(){coutVV''YY'';!voidf()const{cout<<k-3;XX::

f();}};intmain(){XX&p=*newYY:p.f();delete&p;return0;}執(zhí)行上

面的程序?qū)⑤敵?)。

A、28XX

B、28YYXX

C、33XX

D、-33XXYY

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

知識點(diǎn)解析?:類YY公有派生于類:XX,派生類對象可以替代基類對象向基類對

象的引用進(jìn)行賦值初始叱,XX&p=*newYY語句定義了XX對象p引用,并用YY

對象初始化,p并不是YY對象的別名,是XX基類對象的別名,故先調(diào)用基類

XX的構(gòu)造函數(shù)將k初始化為5,p.f()首先輸出k-3即2,然后調(diào)用XX::第輸

出k+3即8,dcleie&p刪除p,調(diào)用XX的析構(gòu)函數(shù)輸出“XX、

8、在開發(fā)一個(gè)C++程序的整個(gè)過程中,第3個(gè)步驟為()。

A、鏈接

B、運(yùn)行

C、編輯

D、編譯

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

知識點(diǎn)解析:C++程序的開發(fā)過程是編輯、編譯、鏈接、運(yùn)行和調(diào)試。

9、下面描述中不屬于數(shù)據(jù)庫系統(tǒng)特點(diǎn)的是

A、數(shù)據(jù)共享

B、數(shù)據(jù)完整性

C、數(shù)據(jù)冗余度高

D、數(shù)據(jù)獨(dú)立性高

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

知識點(diǎn)解析:數(shù)據(jù)系統(tǒng)的基本特點(diǎn)有數(shù)據(jù)的集成性、數(shù)據(jù)的高共享性與低冗余性、

數(shù)據(jù)的獨(dú)立性、數(shù)據(jù)統(tǒng)一管理與控制。

10、有如下程序:#inclu&<iostream>usingnamespacestd:intmain(){int

a[6]={23,15,64,33,40,58};intsi,s2:sl=s2=a[0];for(int*p=al+l;p<

a+6;p++){if(sl>*p)sl=*p;if(s2<*p)s2=*p;}cout<<sl+s2<<endl;return

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

A、23

B、58

C、64

D、79

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

知識點(diǎn)解析:變量si和s2的初值都等于23,那么在執(zhí)行第一次for循環(huán)時(shí),*p的

值等于15,它小于23,所以把15賦給變量si;執(zhí)行第二次for循環(huán)時(shí),*p的值等

于64,它大于23,所以把64賦給變量s2;而數(shù)組a中a[2]后面的元素的值都大于

15,小于64,因而變量si,s2的值不會再發(fā)生變化,最終值為15+64=79。

11、若字符指針P所指向的字符串為""abcdctg"',在執(zhí)行語句()。

char*ap=newchar[strlen(p)+1];之后,ap指向的字符數(shù)組的元素個(gè)數(shù)為

A、9

B、8

C、7

D、6

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

知識點(diǎn)解析:字符指針p所指向的字符串為”abcdefg,所以函數(shù)sirlen(p)的值等于

7,再加1,等于8。

12、下列類模板的定義中語法格式錯(cuò)誤的是()。

A、templateclassBuffer|/*...*/);

B、templateclassBuffer{/*...*/);

C、templateclassBuffer)/*...*/};

D、templateclassBuffer]/*...*}

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

知識點(diǎn)解析:定義類模板的一般形式是:template〈類型名參數(shù)名1,類型名參數(shù)

名2,…〉class類名(類聲明體};模板的類型參數(shù)由關(guān)鍵字class或關(guān)鍵字

typename及其后的標(biāo)識符構(gòu)成°在模板參數(shù)表中關(guān)鍵字class和typename的意義相

同。

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

private:Sample():ref(0){}//②staticintval=5;//③constintref;//

@1;①上述程序段中,錯(cuò)誤的語句是()。

A、②

B、③

C、④

D、

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

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

14、使用輸入輸出操作符selw,可以控制()。

A、輸出精度

B、輸出寬度

C、對齊方式

D、填充字符

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

知識點(diǎn)解析:此題考查的是C++流的操作符。在CH流中,操作符setw的作用是設(shè)

置輸入輸出寬度。

15、有如下類定義:ClassTest{chara;constcharb:public:Test(charc){a=c;

b=c;)//第1行voidf(chara)const{this->a=a;}//第2行voidg(charb){this->

b=b;)//第3行charh()const]returna;}//第4行};編譯時(shí)沒有錯(cuò)誤的行是

()。

A第1

、

B第2

、

c3行

D4行

、

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

知識點(diǎn)解析:類Test中的常成員函數(shù)h()返回?cái)?shù)據(jù)成員a的值。

16、有如下程序:#include<iostream>usingnamespacestd:classBase{private:

voidfun1()const{cout<<,,funr,;)protected:voidfun2()const{cout<

)public:voidfun3()const{coulVV''fun3'';!);classDerived:

protectedBase(public:voidfun4()const{cout<<*'fun4";});intmain()

{Derivedobj;obj.funl();//①obj.fura();//@obj.fun3();//③

obj.fun4();//④return。;}其中有語法錯(cuò)誤的語句是()。

A、①②③④

B、①②⑧

C、@@@

D、①④

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

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

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

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

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

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

virt

溫馨提示

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

評論

0/150

提交評論