國家二級(jí)(C++)筆試模擬試卷11(共405題)_第1頁
國家二級(jí)(C++)筆試模擬試卷11(共405題)_第2頁
國家二級(jí)(C++)筆試模擬試卷11(共405題)_第3頁
國家二級(jí)(C++)筆試模擬試卷11(共405題)_第4頁
國家二級(jí)(C++)筆試模擬試卷11(共405題)_第5頁
已閱讀5頁,還剩88頁未讀, 繼續(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++)筆試模擬試卷11(共9

套)

(共405題)

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

一、填空題(本題共14題,每題1.0分,共14分。)

1、的任務(wù)是診斷和改正程序中的錯(cuò)誤

標(biāo)準(zhǔn)答案:或程序調(diào)試(階段)或軟件調(diào)試(階段)或Debug(階段)

知識(shí)點(diǎn)解析:軟件測(cè)試的目的是發(fā)現(xiàn)程序中的錯(cuò)誤,而調(diào)試的目的是確定程序中錯(cuò)

誤的位置和引起錯(cuò)誤的原因,并加以改正。換句話說,調(diào)試的目的就是診斷和改正

程序中的錯(cuò)誤。調(diào)試不是測(cè)試,但是它總是發(fā)生在測(cè)試之后。因此,本題的正確答

案是調(diào)試(階段)或程序調(diào)試(階段)或軟件調(diào)試(階段)或Debug(階段)

2、一個(gè)關(guān)系表的行稱為。

標(biāo)準(zhǔn)答案:記錄或元組

知識(shí)點(diǎn)解析:關(guān)系是關(guān)系數(shù)據(jù)模型的核心。關(guān)系可以用一個(gè)表來直觀地表示,表的

每一列表示關(guān)系的一個(gè)屬性,每一行表示一個(gè)元組或記錄。因此,本題的正確答案

是元組或記錄。

3、按“先進(jìn)后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是_____o

標(biāo)準(zhǔn)答案:?;騍tack

知識(shí)點(diǎn)解析:棧和隊(duì)列是兩種特殊的線性表,其特殊性在于對(duì)它們的操作只能在表

的端點(diǎn)進(jìn)行。棧中的數(shù)裾按照后進(jìn)先出的原則進(jìn)行組織,而隊(duì)列中的數(shù)據(jù)按照先進(jìn)

先出的原則進(jìn)行組織。因此,本題的正確答案是棧(stack)。

4、數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊(duì)列屬于。

標(biāo)準(zhǔn)答案:線性結(jié)構(gòu)

知識(shí)點(diǎn)解析:數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和北線性結(jié)構(gòu),其中隊(duì)列是屬于線性結(jié)構(gòu)。隊(duì)

列有兩種存儲(chǔ)結(jié)構(gòu):一種是順序存儲(chǔ)結(jié)構(gòu),稱為順序隊(duì)列;另一種是鏈?zhǔn)酱鎯?chǔ)結(jié)

構(gòu),稱為鏈隊(duì)列。題目中所說的帶鏈的隊(duì)列就是指鏈隊(duì)列。無論隊(duì)列采取哪種存儲(chǔ)

結(jié)構(gòu),其本質(zhì)還是隊(duì)列,還屬于一種線性結(jié)構(gòu)。因此,本題的正確答案是線性結(jié)

構(gòu)。

5、若有定義語句:int*a,b;,則變量b的數(shù)據(jù)類型是o

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

知識(shí)點(diǎn)解析:缺數(shù)據(jù)類型。

6、已知數(shù)組a中的元素個(gè)數(shù)為n,下列語句的作用是將下標(biāo)為i的元素移動(dòng)到下標(biāo)

為i-1的單元,其中例如,當(dāng)n=4,a中原有數(shù)據(jù)為1、2、3、4時(shí),則移

動(dòng)后a中元素為2、3、4、4o請(qǐng)將語句補(bǔ)充完整:for(inti=0;i<n-l;

i++)a|i]=a。

標(biāo)準(zhǔn)答案:a[i+l]

知識(shí)點(diǎn)解析:實(shí)現(xiàn)由后面一個(gè)數(shù)組元素將前一個(gè)數(shù)組元素進(jìn)行覆蓋,故應(yīng)該為

a[i]=a[i+l]0

7、已知遞歸函數(shù)f的定義如下:intf(intn){if(nV=l)retum1;〃遞歸結(jié)束:情況

f5=5*f3=5*3*f1elsereturnn*f(n-2);〃遞歸}則函數(shù)調(diào)用語句f(5)的返回值是

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

知識(shí)點(diǎn)解析:函數(shù)遞歸調(diào)用,f(5)=5*f(3)=5*(3*f(l))=15°

8、創(chuàng)建對(duì)象數(shù)組時(shí),對(duì)數(shù)組的每一個(gè)元素都將調(diào)用一次構(gòu)造函數(shù),如果沒有顯式

給出數(shù)組元素的初值,則調(diào)用默認(rèn)構(gòu)造函數(shù),下列程序涉及對(duì)象數(shù)組的創(chuàng)建和單個(gè)

對(duì)象的創(chuàng)建,其輸出結(jié)果是o#include<iostream>usingnamespacestd;

classFoo{public:Foo(intx){eout<<,A,;)Foo(){)};intmain(){Foof[3],

g(3);return0;

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

知識(shí)點(diǎn)解析:數(shù)組f[3]調(diào)用的是無參構(gòu)造函數(shù),而g(3)調(diào)用的是第一個(gè)有參構(gòu)造函

數(shù),故打印A。

9、已知下列程序的輸出結(jié)果是42,請(qǐng)將下畫線處缺失的部分補(bǔ)充完整。include

<iostream>usingnamespacestd;classFoo{intvalue;public:Foo():value(0){)

voidsetValue(intvalue){=value;}〃給Foo的數(shù)據(jù)成員value賦值void

print())eout<<value;));intmain(){Foof;f.setValue(42);f.print();return

0;}

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

知識(shí)點(diǎn)解析:為類的數(shù)據(jù)成員賦值,將從形參傳遞來的實(shí)參賦值給類數(shù)據(jù)成員,為

區(qū)分名字可以使用ihis指針

10、有如下程序:#include<iostream>usingnamespaeestd;classONE{public:

virtualvoidf()(cout<<*'1M;));classTWO;publicONE[public;TWO()1cout

<<"2";}{;classTHREE:publicTWO{public:virtualvoidf()}TWO::f();

cout<<"3";)};intmain(){ONEaa,*P;TWObb;THREEcc:P=&cc;p-

>f();return0;)程序的輸出結(jié)果是。

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

知識(shí)點(diǎn)解析:TWObb;調(diào)用TWO的構(gòu)造函數(shù)打印2;THREEcc;調(diào)用繼承類

TWO的構(gòu)造函數(shù)打印2;p->f():調(diào)用類TREE的函數(shù)f(),先顯式調(diào)用TWO類

的函數(shù)f(),TWO中沒有重新定義f()函數(shù),所以調(diào)用TWO的基類ONE的虛函數(shù)

f();打印1,然后再打印3,故答案為2213。

11、有如下程序:#include<iostream>usingnamespacestd:class

PARENT{public:PARENT(){cout<<"PARENT";}};classSON:public

PARENT{public:SON(){coul<<"SON";){;intmain(){SONson;

PARENT*?:P=&son;return0:)程序的輸出結(jié)果是。

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

知識(shí)點(diǎn)解析:在有繼承關(guān)系的類對(duì)象構(gòu)造時(shí),先執(zhí)行基類的構(gòu)造函數(shù),然后執(zhí)行派

生類的構(gòu)造函數(shù)。所以先執(zhí)行PARENT的構(gòu)造函數(shù),然后執(zhí)行SON的構(gòu)造函數(shù)。

12、若以非成員函數(shù)形式,為類Bounce重載“!”運(yùn)算符,其操作結(jié)果為一個(gè)bool型

數(shù)據(jù),則該運(yùn)算符重載函數(shù)的原型是o

標(biāo)準(zhǔn)答案:booloperator!(Bounee);

知識(shí)點(diǎn)解析:?jiǎn)文窟\(yùn)算符重載為非成員函數(shù)的一般格式為:返回類型。pcrator操

作符(形參)其中形參類型為類名。

13、下面是復(fù)數(shù)類complex的定義,其中重載的運(yùn)算符的功能是返回一個(gè)新的

復(fù)數(shù)對(duì)象,其實(shí)部等于兩個(gè)操作對(duì)象實(shí)部之和,其虛部等于兩個(gè)操作對(duì)象虛部之

和;請(qǐng)補(bǔ)充完整。classcomplex)doublereal;〃實(shí)部doubleimag;〃虛部public:

complex(doubler,doublei):real(r),imag(i)j)complexoperator+(complexA){return

complex();}};

標(biāo)準(zhǔn)答案:real+a.real?imag+a.imag

知識(shí)點(diǎn)解析:為復(fù)數(shù)類complex以成員函數(shù)重載運(yùn)算符,虛部與虛部相加,實(shí)

部與實(shí)部相加,并返回為complex類。

14、已知一個(gè)函數(shù)模板定義為template<typenameTl.lypenaineT2>TlFUN(T2

n){returnn*5.0;}若要求以int型數(shù)據(jù)7為函數(shù)實(shí)參調(diào)用該模板函數(shù),并返回一個(gè)

double型數(shù)據(jù),則該調(diào)用應(yīng)表示為o

標(biāo)準(zhǔn)答案:FUN<double>(7)

知識(shí)點(diǎn)解析:實(shí)參類型和返回值類型不匹配時(shí),需要強(qiáng)制轉(zhuǎn)換參數(shù)類型,所以在函

數(shù)模板調(diào)用時(shí)要顯式地定義參數(shù)數(shù)據(jù)類型double,將整數(shù)7轉(zhuǎn)換為double型。

二、填空題(含2小題)(本題共3題,每題7.0分,

共3分。)

15、在下面函數(shù)的畫線處填上適當(dāng)?shù)膬?nèi)容,使該函數(shù)能夠利用遞歸方法求解字符串

str的長(zhǎng)度(不得使用系統(tǒng)提供的字符串處理函數(shù))。int

GetLen(char*str){if((6))return(7);elsereturnl+GetLen(str+l);(

知識(shí)點(diǎn)解析:一般來說,一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu),

因此,數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)不一定是一一對(duì)應(yīng)的。選項(xiàng)A中的說法是錯(cuò)誤

的。雖然計(jì)算機(jī)的存儲(chǔ)空間是向量式的存儲(chǔ)結(jié)構(gòu),但由于一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)

需要可以表示成多種存儲(chǔ)結(jié)構(gòu),例如,線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。一般來

說,在線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)序號(hào)是不連續(xù)的,并且各結(jié)點(diǎn)

在存儲(chǔ)空間中的位置關(guān)系與邏輯關(guān)系也不一致。在線性鏈表中,各數(shù)據(jù)元素之間的

前后件關(guān)系是由各結(jié)點(diǎn)的指針域來指示的。因此,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不一定是線性結(jié)

構(gòu)。選項(xiàng)B中的說法也是錯(cuò)誤的。雖然程序設(shè)計(jì)語言中的數(shù)組一般是順序存儲(chǔ)結(jié)

構(gòu),但是,利用數(shù)組也能處理非線性結(jié)構(gòu)。例如,滿二叉樹與完全二叉樹是非線性

結(jié)構(gòu),實(shí)際上也是利用了程序設(shè)計(jì)語言中的數(shù)組來處理二叉樹這樣的非線性結(jié)構(gòu)。

選項(xiàng)C中的說法也是錯(cuò)誤的。

2、在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是

A、不限制got。語句的使用

B、減少或取消注解行

C、程序越短越好

D、程序結(jié)構(gòu)應(yīng)有助于讀者理解

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

知火點(diǎn)解析:濫用goi。語句將使程序流程無規(guī)律,可讀性差,囚此A不選;注解

行有利于對(duì)程序的理解,不應(yīng)減少或取消,B也不選;程序的長(zhǎng)短要依照實(shí)際情況

而論,而不是越短越好,C也不選。

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

A、線性鏈表的各元素在存儲(chǔ)空間中的位置必須是連續(xù)的

B、線性鏈表的頭元素一定存儲(chǔ)在其他元素的前面

C、線性鏈表中的各元素在存儲(chǔ)空間中的位置不一定是連續(xù)的,但表頭元素一定存

儲(chǔ)在其他元素的前面

D、線性鏈表中的各元素在存儲(chǔ)空間中的位置不一定是連續(xù)的,且各元素的存悌順

序也是任意的

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

知識(shí)點(diǎn)解析:在線性鏈表中,各元素在存儲(chǔ)空間中的位置是任意的,各元素的順

序也是任意的,依靠指針來實(shí)現(xiàn)數(shù)據(jù)元素的前后件關(guān)系。

4、下列選項(xiàng)中不屬于軟件生命周期開發(fā)階段任務(wù)的是()。

A、軟件測(cè)試

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

C、軟件維護(hù)

D、詳細(xì)設(shè)計(jì)

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

知識(shí)點(diǎn)3析:軟件的生命周期可分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)三個(gè)階

段。其中軟件定義階段的主要工作有可行性研究與計(jì)劃制訂和需求分析等;軟件開

發(fā)階段的主要工作有概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)和測(cè)試等;軟件運(yùn)行維護(hù)階段的主要工作

是軟件的運(yùn)行及后期的維護(hù)等。

A、ABCDEF

B、DBEAFC

C、ABDECF

D、DEBFCA

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

知識(shí)點(diǎn)解析:暫無解析

6、在長(zhǎng)度為n的順序表的第i(lgiWn+l)個(gè)位置上插入一個(gè)元素,元素的移動(dòng)次數(shù)

為O

A、n-i11

B、n-i

C、i

D、i-1

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

知識(shí)點(diǎn)解析:暫無解析

7、數(shù)據(jù)處理的最小單位是

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

B、數(shù)據(jù)元素

C、數(shù)據(jù)項(xiàng)

D、數(shù)據(jù)結(jié)構(gòu)

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

知識(shí)點(diǎn)解析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項(xiàng);由若干數(shù)據(jù)項(xiàng)組成數(shù)據(jù)元素;而數(shù)據(jù)

是指能夠被計(jì)算機(jī)識(shí)別、存儲(chǔ)和加工處理的信息載體;數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)之間的相

互關(guān)系和數(shù)據(jù)運(yùn)算。故正確答案為選項(xiàng)C)。

8、用鏈表表示線性表的優(yōu)點(diǎn)是

A、便于隨機(jī)存取

B、花費(fèi)的存儲(chǔ)空間較順序存儲(chǔ)少

C、便于插入和刪除操作

D、數(shù)據(jù)元素的物理順序與邏輯順序相同

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

知識(shí)點(diǎn)解析:鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)克服了順序存儲(chǔ)結(jié)構(gòu)的缺點(diǎn):它的結(jié)點(diǎn)空間可以動(dòng)態(tài)申

請(qǐng)和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點(diǎn)的指針來指示,不需要移動(dòng)數(shù)據(jù)元素。

故鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)下的線性表便于插入和刪除操作。

9、數(shù)據(jù)字典(DD)是定義以下哪種系統(tǒng)描述工具中的數(shù)據(jù)的工具()。

A、數(shù)據(jù)流程圖

B、系統(tǒng)流程圖

C、程序流程圖

D、軟件結(jié)構(gòu)圖

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

知識(shí)點(diǎn)解析:本題考查數(shù)據(jù)字典的作用,數(shù)據(jù)字典是對(duì)數(shù)據(jù)流程圖中出現(xiàn)的被命名

的圖形元素的確切解釋。

10、在單鏈表中,增加頭結(jié)點(diǎn)的目的是

A、方便運(yùn)算的實(shí)現(xiàn)

B、使單鏈表至少有一個(gè)結(jié)點(diǎn)

C、標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置

D、說明單鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)

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

知識(shí)點(diǎn)解析:頭結(jié)點(diǎn)不僅標(biāo)識(shí)了表中首結(jié)點(diǎn)的位置,而且根據(jù)單鏈表(包含頭結(jié)點(diǎn))

的結(jié)構(gòu),只要掌握了表頭,就能夠訪問整個(gè)鏈表,因此增加頭結(jié)點(diǎn)目的是為了便于

運(yùn)算的實(shí)現(xiàn)。

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

11、有以下程序:#include<iostream>#include<math>usingnamespacestd;class

point{private:doublex;doubley;public:point(doublea,doubleb{x=a;y=b;friend

doubledistance(pointa,pointb;};doubledistance(pointa,pointbreturnsqrt((a.x-b.

x)*(a.x-b.x)+(a.x-b.x)*(a.x-b.x));)intmain(){pointpl(1,2);pointp2(5,2);cout<

<distance(pl,p2)<<end1;return0;)程序運(yùn)行后防輸出結(jié)果是

A、1

B、5

C、4

D、6

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

知識(shí)點(diǎn)解析:本題考核友元函數(shù)的應(yīng)用。分析程序:類point中定義了兩個(gè)私有成

員x和y,以及一個(gè)友元函數(shù)distance。從而,函數(shù)distance可以訪問類point中的

任何成員o在函數(shù)distance中,返回值為sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-

b.y))o由此可知,函數(shù)distance的功能是計(jì)算a、b兩點(diǎn)之間的距離。在主函數(shù)

main中,先定義兩點(diǎn):pl(l,2)和p2(5,2)。然后調(diào)用函數(shù)distance計(jì)算兩點(diǎn)之旬的

距離為4,所以程序最后輸出為4。

12、關(guān)于const修飾符的說法中,錯(cuò)誤的是

A^const既可以修飾成員函數(shù),也可以修飾數(shù)據(jù)成員,還可以修飾對(duì)象

B、若const修飾了一個(gè)對(duì)象,則該對(duì)象中的所有數(shù)據(jù)成員都無法被更新

C、常對(duì)象無法調(diào)用一般成員函數(shù)

D、常成員函數(shù)只能被常對(duì)象調(diào)用,不能被一般對(duì)象調(diào)用

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

知識(shí)點(diǎn)解析:本題考察consi修飾符的含義及其修飾不同對(duì)象的規(guī)則。常成員函數(shù)

既能被常對(duì)象調(diào)用,也能被一般對(duì)象調(diào)用,一旦const修飾了一個(gè)對(duì)象,則對(duì)象的

所有數(shù)據(jù)成員都無法更新。

13、以下選項(xiàng)中合法的實(shí)型常數(shù)是

A、5E2.0

B、E-3

C、.2E0

D、1.3E

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

知識(shí)點(diǎn)解析:本題考查實(shí)型常數(shù)的指數(shù)表示法,可以肯定的是指數(shù)不能為小數(shù)即必

須為整數(shù),故排除A。由于符號(hào)E前面必須有數(shù)字,故B也是錯(cuò)誤的。D在指數(shù)

符號(hào)后面沒有數(shù)字,是錯(cuò)誤的。答案為C。

14、為了避免嵌套的if...else語句的二義性,C++規(guī)定與else配對(duì)的是

A、縮排位置相同的if

B、在其之前未配對(duì)的if

C、在其之前未配對(duì)的最近的if

D、同一行上的if

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

知識(shí)點(diǎn)解析:C++規(guī)定else總是與之前未配對(duì)的最近的if進(jìn)行配對(duì),這樣可以避免

二義件.也便于編譯器分析c

15、類的析構(gòu)函數(shù)的作用是()。

A、一般成員函數(shù)

B、類的初始化

C、對(duì)象的初始化

D、刪除對(duì)象

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

知識(shí)點(diǎn)解析:類的析構(gòu)函數(shù)是在類的對(duì)象被釋放的時(shí)候自動(dòng)調(diào)用,它的作用是刪除

己經(jīng)創(chuàng)建完成的對(duì)象。

16、類的析構(gòu)函數(shù)的作用是。

A、一般成員函數(shù)

B、類的初始化

C、對(duì)象的初始化

D、刪除對(duì)象創(chuàng)建的所有對(duì)象

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

知識(shí)點(diǎn)解析:暫無解析

17、執(zhí)行卜歹U程序intfun(intxl,intx2){intx;xl>x2?(x=3):(x=4);return

x+xl;}voidmain(){cout<<fun(7,8);}后輸出結(jié)果是。

A、9

B、10

C、11

D、12

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

知識(shí)點(diǎn)解析:暫無解析

18、下列關(guān)于運(yùn)算符重載不正確的是

A、運(yùn)算符重我不能改變運(yùn)算符的操作數(shù)個(gè)數(shù)

B、運(yùn)算符重載不能改變運(yùn)算符的優(yōu)先級(jí)

C、運(yùn)算符重載不能改變運(yùn)算符的結(jié)合性

D、運(yùn)算符重載能改變對(duì)預(yù)定義類型數(shù)據(jù)的操作方式

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

知識(shí)點(diǎn)解析:運(yùn)算符重載的規(guī)則是重載時(shí)不能改變運(yùn)算符的操作數(shù)個(gè)數(shù),不能改變

運(yùn)算符的優(yōu)先級(jí),不能改變運(yùn)算符的結(jié)合性,不能改變對(duì)預(yù)定義類型數(shù)據(jù)的操作方

式。注意:運(yùn)算符重載的關(guān)鍵字是operator。

19、在公有派生情況下,有關(guān)派生類對(duì)象和基類對(duì)象的關(guān)系,下列敘述不正確的是

A、派生類的對(duì)象可以賦給基類的對(duì)象

B、派生類的對(duì)象可以初始化基類的引用

C、派生類的對(duì)象可以直接訪問基類中的成員

D、派生類的對(duì)象的地址可以賦給指向基類的指針

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

知識(shí)點(diǎn)解析:友元函數(shù)的定義既可以在類內(nèi)部進(jìn)行,也可以在類外部進(jìn)行。它提高

了程序的運(yùn)行效率,但破壞了類的封裝性和隱藏性,使得類的非成員函數(shù)可以訪問

類的私有成員。

20若已定義:inta[]={0,1,2,3,4,5,6,7,8,9),*p=a,i;其中0SiS9,

則對(duì)a數(shù)組元素不正確的引用是

A、a[p—a]

B、*(&a|i])

C、p[i]

D、a[10]

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

知識(shí)點(diǎn)解析:通常,引用一個(gè)數(shù)組元素可以用下標(biāo)法,如a[p-a]形式,或指針法,

如的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標(biāo)

是從。開始的。

21、C++語言對(duì)C語言做了很多改進(jìn),C++語言相對(duì)于C語言的最根本的變化是

A、增加了一些新的運(yùn)算符

B、允許函數(shù)重載,并允許設(shè)置缺省參數(shù)

C、規(guī)定函數(shù)說明符必須用原型

D、引進(jìn)了類和對(duì)象的概念

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

知識(shí)點(diǎn)解析:C++語言最重要的特點(diǎn)是其為一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,但是

C++語言也包含了全部的C語言的特征。

22、不能作為函數(shù)重載的判斷依據(jù)的是

A、const

B、返回類型

C、參數(shù)個(gè)數(shù)

D、參數(shù)類型

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

知識(shí)點(diǎn)解析:本題考核函數(shù)重載。所謂函數(shù)重載,是指同一個(gè)函數(shù)名可以對(duì)應(yīng)多個(gè)

函數(shù)的實(shí)現(xiàn)。進(jìn)行函數(shù)重載時(shí),要求同名函數(shù)在參數(shù)個(gè)數(shù)上不同,或者參數(shù)類型上

不同。即重載函數(shù)不許具有相同的形參列表。函數(shù)的返回類型不能作為函數(shù)重載的

判斷依據(jù)。const是函數(shù)的一部分參與函數(shù)的重載

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

A、連接符

B、下劃線

C、大小寫字母

D、數(shù)字字符

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

知識(shí)點(diǎn)解析:本題考核C++的標(biāo)識(shí)符定義。C++規(guī)定標(biāo)識(shí)符由大小寫字母、數(shù)字字

符(0?9)和下劃線組成,并且以字母或下劃線開始,后跟。個(gè)或多個(gè)字母、數(shù)字字

符或下劃線。由此可知A)選項(xiàng)中的連接符不能用于組成標(biāo)識(shí)符。

24、有以下程序:#include<iostrearn>usingnamespacestd;classsample

{private:intx;staticinty;public:sample(intA):staticvoidprint(sample

s);};sample::sample(intA){x=a;y+=x;)

A、x=10,y=20

B、x=20,y=30

C、x=30,y=20

D、x=30,y=30

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

知識(shí)點(diǎn)解析:本題考核靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)的應(yīng)用。類sample中定義兩

個(gè)私有成員x和y,其中y為靜態(tài)數(shù)據(jù)成員。并定義函數(shù)print。為靜態(tài)成員函數(shù)。

在主函數(shù)中,定義對(duì)象sl(10)時(shí),通過構(gòu)造函數(shù)使對(duì)象si的私有成員x=10,靜態(tài)

數(shù)據(jù)成員y=10。定義s2(20)時(shí),通過構(gòu)造函數(shù)使對(duì)象s2的私有成員x=20,靜態(tài)數(shù)

據(jù)成員y=l0+20=30o程序最后調(diào)用靜態(tài)成員函數(shù)print輸出對(duì)象s2的私有成員x

的值20,對(duì)象si、s2共享的靜態(tài)數(shù)據(jù)成員y的值30。

25、若有如下程序:#include<iostream>usingnamespacesstd;ints=O;class

sample{staticintn;public:sample(inti){n=i;}staticvoidadd(){s+=n;));int

sample::s=O;intmain(){samplea(2),b(5);sample::add();coui<<s<<encll;return

0;)程序運(yùn)行后的輸出結(jié)果是

A、2

B、5

C、7

D、3

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

知識(shí)之解析2:本題考核靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)的應(yīng)用。程序中定義一個(gè)類

sample,它包括一個(gè)靜態(tài)數(shù)據(jù)成員n和一個(gè)靜態(tài)成員函數(shù)add,并在類的構(gòu)造函數(shù)

中給類私有靜態(tài)數(shù)據(jù)成員n賦值。在主函數(shù)main中,定義對(duì)象a(2)時(shí),通過構(gòu)造

函數(shù)使靜態(tài)數(shù)據(jù)成員n的值變?yōu)?,在定義對(duì)象b(5)時(shí),通過構(gòu)造函數(shù)使靜態(tài)數(shù)據(jù)

成員n=5(覆蓋了前面的n=2),再執(zhí)行sample::add()使全局變量s=5o

26若有以下程序:#include<iostream>usingnamespacestd;intmain(){inta[4]

[4|={{1,2,3,-4},{0,?12,?13,14},{-21,23,0,-24},{-31,32,-33,0}};inti,j,s=0;for(i=0;i<

4;i++){for(j=O;j<4;j++){if(a[i][j]>=0)continue;s+=a[i][j];)}cout<<s<<

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

A、-138

B、141

C、75

D、-1

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

知識(shí)點(diǎn)解析:本題屬于綜合題,考查多個(gè)方面的知識(shí)點(diǎn)。程序首先定義了一個(gè)二維

數(shù)組a,并初始化其值。在內(nèi)層for循環(huán)體中,遇到大于等于0的數(shù),就繼續(xù)執(zhí)行

下次循環(huán),否則就執(zhí)行"s+=a[i][j『,即把其值累加并保存在變量s中。所以本題雙

重循環(huán)的功能是:計(jì)算數(shù)組中所有負(fù)數(shù)的累加和,即s=-138。

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

A、while語句構(gòu)成的循環(huán)不能用其他語句構(gòu)成的循環(huán)來代替

B、do-while語句構(gòu)成的循環(huán)只能用break語句退出

C、用while語句構(gòu)成的循環(huán),只有在while后的表達(dá)式為非0時(shí)才執(zhí)行循環(huán)

D^do-while語句構(gòu)成的循環(huán),只有在while后的表達(dá)式為0時(shí)才結(jié)束循環(huán)

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

知識(shí)點(diǎn)解析:本題考核對(duì)do-while語句、while語句基本語法的掌握。選項(xiàng)A中,

while語句構(gòu)成的循環(huán)體可由其他語句構(gòu)成的循環(huán)體代替,所以選項(xiàng)A不正確c選

項(xiàng)B中,do-while語句構(gòu)成的循環(huán),當(dāng)while的條件表達(dá)式的值為。時(shí),也可結(jié)束

循環(huán),所以選項(xiàng)B也不正確。選項(xiàng)C是正確的。選項(xiàng)D可參照選項(xiàng)B,當(dāng)使用

break語句時(shí),也可退出循環(huán)。故選項(xiàng)D也不正確。

28、一個(gè)類的友元函數(shù)或友元類可以通過成員操作符訪問該類的()。

A、私有成員

B、保護(hù)成員

C、公有成員

D、所有成員

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

知識(shí)點(diǎn)解析:在C++中,如果想讓類中的成員數(shù)據(jù)可以被其他函數(shù)訪問,可以通

過友元函數(shù)聲明來分享類中的資源。除了友元函數(shù)外,還有友元類。類的友元函數(shù)

對(duì)類的屬性和方法的訪問能力等同于類的成員函數(shù)。

29、在inta=10,*p=&a;語句中,p的值是()。

A、10

B、變量p的地址

C、變量a的地址

D、隨機(jī)數(shù)

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

知識(shí)點(diǎn)解析:暫無解析

30、下列是重載乘法運(yùn)算符的函數(shù)原型聲明,其中錯(cuò)誤的是()。

A^MyClassoperator*!double,double);

B、MyClassopcrator*(double,MyClass);

C^MyClassoperator*(MyClass,double);

D、MyClassoperator*(MyClass,MyClass);

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

知識(shí)點(diǎn)解析:此題考查的是乘法運(yùn)算符的重載函數(shù)原型聲明。因?yàn)椴僮鞯膶?duì)象是類

對(duì)象,所以重載函數(shù)的參數(shù)至少有一個(gè)是類對(duì)象。故選項(xiàng)A)中兩個(gè)參數(shù)都為

double型是錯(cuò)誤的。

31、下面說法正確的是

A、內(nèi)聯(lián)函數(shù)在運(yùn)行時(shí)是將該函數(shù)的目標(biāo)代碼插入每個(gè)調(diào)用該函數(shù)的地方

B、內(nèi)聯(lián)函數(shù)在編譯時(shí)是將該函數(shù)的目標(biāo)代碼插入每個(gè)調(diào)用該函數(shù)的地方

C、類的內(nèi)聯(lián)函數(shù)必須在類體內(nèi)定義

D、類的內(nèi)聯(lián)函數(shù)必須在類體外通過加關(guān)鍵字inline定義

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

知識(shí)點(diǎn)解析:內(nèi)聯(lián)函數(shù)用inline修飾,用于取代C語言中的宏定義。Inline是個(gè)建

議機(jī)制而不是強(qiáng)制機(jī)制,也就是說,程序員可以指定任意函數(shù)為inline函數(shù),但是

編譯器會(huì)根據(jù)系統(tǒng)情況來決定是否將其inline處理c對(duì)于較大的函數(shù),編譯器往往

會(huì)取消其inline特性。Inline:函數(shù)的特點(diǎn)之一就是執(zhí)行速度快,他實(shí)質(zhì)是在編譯

時(shí)將函數(shù)的目標(biāo)代碼插入到每個(gè)調(diào)用該函數(shù)的地方,從而沒有出棧入棧、保護(hù)現(xiàn)場(chǎng)

等開銷,提高了效率。在類體內(nèi)定義的成員函數(shù),自動(dòng)被編譯器當(dāng)做內(nèi)聯(lián)函數(shù)處

理,在類體外定義的成員函數(shù),如果用inline修飾,編譯器也認(rèn)為是一種內(nèi)聯(lián)建

議。

32、當(dāng)要求兩個(gè)變量不能同名時(shí),它是指在()的情況下。

A、同一文件中

B、同一作用域中

C、同一類的不同成員函數(shù)中

D、不同函數(shù)中

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

知識(shí)點(diǎn)解析:在同一作用域中,兩個(gè)變量不能夠重名。

33、下列是模板聲明的開始部分,其中正確的是

A^template<T>

B、template<classT1,T2>

C、template<classTl,classT2>

D、template<classTl;classT2>

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

知識(shí)點(diǎn)謁析:本題考核模板的聲明。模板聲明的開始部分為:templateV類型形參

表其中,V類型形參表〉可以包含基本數(shù)據(jù)類型,也可以包含類類型。類型形

參需要加前綴class。如果類型形參多于一個(gè),則每個(gè)類型形參都要使用class。形

參表中的參數(shù)是惟一的,而且至少在函數(shù)定義體中出現(xiàn)廠次。形參表中至少有一個(gè)

形參的類型必須用V類型形參表》中的形參來定義。所以只有C選項(xiàng)的聲明是正

確的。

34、有如下程序:#include<iostream>usingnamespacestd;

intmain(){voidfunction(doubleval);

doubleval;function(val);cout<<val;

return0:)voidfunction(doubleval)

{val=3;)編譯運(yùn)行這個(gè)程序?qū)⒊霈F(xiàn)的情況是

A、編譯出錯(cuò),無法運(yùn)行

B、輸出:3

C、輸出:3.0

D、輸出一個(gè)不確定的數(shù)

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

知識(shí)點(diǎn)解析:本題考查的是函數(shù)參數(shù)的傳遞。在C++中,函數(shù)在傳遞參數(shù)時(shí),總

是將實(shí)參值的副本傳遞(拷貝)給被調(diào)用函數(shù)的形參,即傳值調(diào)用。因此,在函數(shù)中

對(duì)形參所作的任何操作都不會(huì)改變函數(shù)外的實(shí)參。故木題function。函數(shù)不會(huì)對(duì)主

函數(shù)中的val變量造成任何改變,val也沒有被初始化,所以輸出的是一個(gè)不確定

的值:故應(yīng)該選擇D。

35、在類聲明中,緊跟在“public:"后聲明的成員的訪問權(quán)限是()。

A、私有

B、公有

C、保護(hù)

D、默認(rèn)

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

知識(shí)點(diǎn)解析:此題考查的是類的訪問權(quán)限。在C++語言中,類的訪問權(quán)限有公有

(public)、保護(hù)(protect)和私有(private)3種。

三、公共基礎(chǔ)填空題(本題共5題,每題7.0分,共5

分。)

36、問題處理方案的正確而完整的描述稱為o

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

知識(shí)點(diǎn)解析:暫無解析

37、診斷和改正程序中錯(cuò)誤的工作通常稱為。

標(biāo)準(zhǔn)答案:程序調(diào)試

知識(shí)點(diǎn)解析:暫無解析

38、有如下程序:#include<iostream>usingnamespacestd;classA{public:A(){cout

<<"A";));classB:privateA{public:B(){cout<<,B,;}};intmain(){Aa;Bb;return

0;}這個(gè)程序的輸出結(jié)果是o

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

知識(shí)點(diǎn)解析:暫無解析

39、下面是一個(gè)遞歸函數(shù),其功能是使數(shù)組中的元素反序排列,請(qǐng)將函數(shù)補(bǔ)充完

整。voidreverse(inl*a,intsize){if(size<2)relurn;intk=a[0|;a[0]=a[size-l];

a[size-l]=k;reverse(a+l.);)

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

知識(shí)點(diǎn)解析:函數(shù)體的基本功能是將大小為si,ze的數(shù)組a的首尾元素進(jìn)行交換。

交換一次后,未交換部分的首元素地址為a+1,未交換的元素個(gè)數(shù)為size-2。

40,C++是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,它充分支持面向?qū)ο笏枷胫械娜齻€(gè)主要

特征是性;性和性。

標(biāo)準(zhǔn)答案:封裝、繼承、多態(tài)

知識(shí)點(diǎn)解析:暫無解析

四、填空題(本題共10題,每題1.0分,共10分。)

41、已知遞歸函數(shù)f的定義如下:intf(intn){if(n<=l)return1;〃遞歸結(jié)束情況

elsereturnn*f(n-2);〃遞歸)則函數(shù)調(diào)用語句f(5)的返回值是。

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

知識(shí)點(diǎn)解析:此題考查的是遞歸算法。本題中f()函數(shù)在n小于等于1時(shí)返回值為

1,其余情況返回值為n*(n-2),由此分析可以得到

f(5)=5*f(3)=5*3*f(l)=5*3*l=15o

42、在下列的程序的橫線處填上適當(dāng)?shù)恼Z句,使該程序的輸出為12。#inckide<

iostream.h>usingnamespacestd;classBase{public:inta,b;Base(inti){a=

i;));classDerived:publicBase{inta;public:Derived(intx):Base(x),

b(x+1){);voidshow()(

標(biāo)準(zhǔn)答案:eout<<Base::a。

知識(shí)點(diǎn)解析:本題考查的是基類和派生類的構(gòu)造至數(shù)。派生類構(gòu)造函數(shù)的執(zhí)行順

序:首先調(diào)用基類的構(gòu)造函數(shù),調(diào)用順序按它們被繼承時(shí)說明的順序;然后調(diào)用子

對(duì)象的構(gòu)造函數(shù),調(diào)用順序按它們?cè)陬愔姓f明的順序;最后是派生類構(gòu)造函數(shù)中的

內(nèi)容。本題要求結(jié)果是輸出12,分析題目,首先調(diào)用基類的構(gòu)造函數(shù),然后是調(diào)

用子對(duì)象的構(gòu)造函數(shù),橫線處要求輸出基類成員a的值,填入toutV〈Base::a

即可。

43、下面是一個(gè)棧類的模板,其中push函數(shù)將元素i壓入棧頂,pop函數(shù)彈出棧頂

元素。棧初始為空,top值為0,棧頂元素在stack[lop-l]中,在下面橫線處填上適

當(dāng)語句,完成棧類模板的定義。templateclassTstack{enum{size=l000};T

stackfsize];inttop;public:Tstack():top(0){)voidpush(constT&i){if(top

標(biāo)準(zhǔn)答案:Stack[-top]或slack[top-=l]或stack[top=top-l]

知識(shí)點(diǎn)解析:此題考查的是堆棧數(shù)據(jù)結(jié)構(gòu)。分析題目,首先利用函數(shù)

voidpush(consa&i)將i壓入棧,然后Tpop()將元素彈出,但由于在壓入棧的時(shí)

候,top值已經(jīng)增加1;要彈出元素,須使top先減1,才能把棧頂元素彈出。

44、執(zhí)行下列程序后的瑜出結(jié)果是o#includeusingnamespacestd;int

main(){intx=3;int&y=x;y++;cout<

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

知識(shí)點(diǎn)解析:C++程序中的引用實(shí)際上是為變量起個(gè)別名,其后的任何操作都相當(dāng)

于對(duì)原變量的操作。所以最后輸出4。

45、在下面程序的橫線處填上適當(dāng)?shù)恼Z句,使程序執(zhí)行后的輸出結(jié)果為ABCD。

#includeusingnamespacestd;classA{public:A(){cout?tA\)};class

B={public:B(){cout?<B,;)};classC:{public:

C(){cout?tC,;}}:classD:publicB,publicC{public:D(){ctout?tD,;)};

voidmain(){Dobj;}

標(biāo)準(zhǔn)答案:vinualA或vinualpublicA或virtualprivaleA或virtualprotrctedA與

virtualA或virtualpublicA或virtualprivateA或virtualprotectedA

知識(shí)點(diǎn)解析:由于每執(zhí)行一次A類的構(gòu)造函數(shù),都將輸出一個(gè)字符A,輸出結(jié)果

中只有一個(gè)A,且第一個(gè)輸出為A,D繼承B,可知必有B繼承A。由題中要求c

肯定繼承某個(gè)類,所以,這里的C只能是繼承于A,保證輸出中只有一個(gè)A,A必

須為虛基類,所以本題中的空都填vmalA。

46、表達(dá)式x.operator++()還可寫成。

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

知識(shí)點(diǎn)解析:C++語言中用成員函數(shù)重載++x為x.operator++()用及元函數(shù)重載++x

為:operator++(x)(>

47>下面程序的輸出結(jié)果是[]o#include<iostream.h>intadd(inta,intb);void

main(){externintx,y;cout<<add(x,y)<<endl;)intx(20),y(5);intadd(inta,intb)

{ints=a+b;returns;}

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

知識(shí)點(diǎn)解析:暫無解析

48、下列程序段的輸出結(jié)果是【】。cout<<fixed<<509.123456789<<

endl;

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

知識(shí)點(diǎn)解析:fixed的意義是在小數(shù)點(diǎn)后保留六位,所以fixed輸出為509.123457。

49、下面程序輸出的結(jié)果是[】。#include<iostream>usingnamespacestd;

classA{public:virtualvoidshow(){cout<<"A!M;}:classB:publicA{public:void

show(){cout<<};classC:publicB{public:voidshow(){cout<<nC!n;|!;

voidshow_info(A&i){i.show();)voidmain(){Aia;Bib;Cic;

show_info(ia);show_inIoiib);shovv_info(ic);)

標(biāo)準(zhǔn)咨案;A!A!A!

知識(shí)點(diǎn)解析:由于基類中沒有聲明虛函數(shù),故調(diào)用的全部是基類的函數(shù)。

50、已知數(shù)組a中有n個(gè)元素,下列語句將數(shù)組a中從下標(biāo)xl開始的k個(gè)元素移

動(dòng)到從下標(biāo)x2開始的k個(gè)元素中,其中OV=xlVx2Vn,x2+k<n,請(qǐng)將下列語句

補(bǔ)充完整。For(inti=x1+k-1;i>=x1;i—)a[|=a|i];

標(biāo)準(zhǔn)答案:X2+k-l

知識(shí)點(diǎn)解析:此題考查的是數(shù)組的操作。a[”表示從下標(biāo)xl開始的第i個(gè)元素,若

為第一次循環(huán),貝Ui為xl+k-1,按照題目將數(shù)組a中從下標(biāo)xl開始的k個(gè)元素移動(dòng)

到從下標(biāo)x2開始的k個(gè)元素中的要求,所以將a[i]賦值給下標(biāo)為X2+k-l的元素。

家二級(jí)(C++)筆試模擬試卷第3套

一、公共基礎(chǔ)選擇題(本題共10題,每題7.0分,共

10分。)

1、下列敘述中正確的是

A、所有形態(tài)的二叉樹都只能采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

B、循環(huán)隊(duì)列是隊(duì)列的一種存儲(chǔ)方式

C、棧只能采用順序存儲(chǔ)結(jié)構(gòu)

D、循環(huán)隊(duì)列與循環(huán)鏈表都屬于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

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

知識(shí)點(diǎn)解析:一般來說,二叉樹采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),但由于完全二叉樹的特點(diǎn),采

用順序存儲(chǔ)也能方便地訪問其中的每一個(gè)元素。因此,選項(xiàng)A中的說法是不對(duì)

的。所謂循環(huán)隊(duì)列,就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位置繞到第一個(gè)位置,形成邏

輯上的環(huán)狀空間,供隊(duì)列循環(huán)使用。在循環(huán)隊(duì)列結(jié)構(gòu)中,當(dāng)存儲(chǔ)空間的最后一個(gè)位

理已被使用而再要進(jìn)行人隊(duì)運(yùn)算時(shí),只要存儲(chǔ)空間的第一個(gè)位置空閑,便可將元素

加入到第一個(gè)位置,即將存儲(chǔ)空間的第一個(gè)位置作為隊(duì)尾。因此,循環(huán)隊(duì)列是隊(duì)列

的一種順序存儲(chǔ)方式,選項(xiàng)B中的說法是正確的。棧是特殊的線性表,它既能采

用順序存儲(chǔ)結(jié)構(gòu),又能采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。因此,選項(xiàng)C中的說法也是不對(duì)的。

前面說過,循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)方式,不屬于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。因此,選

項(xiàng)D中的說法也是不對(duì)的。

2、下列敘述中正確的是

A、軟件測(cè)試的主要目的是確定程序中錯(cuò)誤的位置

B、軟件調(diào)試的主要RI的是發(fā)現(xiàn)程序中錯(cuò)誤的類型

C、程序經(jīng)調(diào)試后還應(yīng)進(jìn)行測(cè)試

D、軟件的測(cè)試與調(diào)試工作最好都由程序編制者來完成

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

知識(shí)點(diǎn)解析;軟件測(cè)試的口標(biāo)是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的借

誤,給出程序可靠性的鑒定。測(cè)試不是為了證明程序是正確的,而是在設(shè)想程序有

錯(cuò)誤的前提下進(jìn)行的,其目的是設(shè)法暴露程序中的錯(cuò)誤和缺陷。由于測(cè)試的這一特

征,一般應(yīng)當(dāng)避免由開發(fā)者測(cè)試自己的程序。測(cè)試只能說明程序有錯(cuò),而不能證明

程序無錯(cuò),希望通過有限次的測(cè)試就能發(fā)現(xiàn)程序中的所有錯(cuò)誤是不可能的,即完全

測(cè)試是不可能的。因此,選項(xiàng)A與D中的說法都是錯(cuò)誤的。調(diào)試也稱排錯(cuò)。①測(cè)

試的目的是暴露錯(cuò)誤,而調(diào)試的目的是發(fā)現(xiàn)錯(cuò)誤的位置,并改正錯(cuò)誤。②經(jīng)測(cè)試

發(fā)現(xiàn)錯(cuò)誤后,可以立即進(jìn)行調(diào)試并改正錯(cuò)誤;經(jīng)過調(diào)試后的程序還需進(jìn)行回歸測(cè)

試,以檢查調(diào)試的效果,同時(shí)也可防止在調(diào)試過程中引進(jìn)新的錯(cuò)誤。因此,選項(xiàng)B

中的說法也是錯(cuò)誤的,而選項(xiàng)C中的說法是正確的。

3、面向?qū)ο蟮拈_發(fā)方法中,類與對(duì)象的關(guān)系是

A、具體與抽象

B、抽象與具體

C、整體與部分

D、部分與整體

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

知識(shí)點(diǎn)解析:現(xiàn)實(shí)世界中的很多事件都具有相似的性質(zhì),把幾個(gè)有相似的屬性的操

作的對(duì)象歸為類,也就是說類是具有共同屬性、共同方法的對(duì)象的集合,是對(duì)對(duì)象

的抽象,它描述了該對(duì)象類型的所有對(duì)象的性質(zhì),而一個(gè)對(duì)象則是其對(duì)應(yīng)類的一個(gè)

具體實(shí)例。所以本題正確答案為B。

4、在深度為6的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為

A、64

B、63

C、32

D、31

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

知識(shí)點(diǎn)解析:二叉樹有一個(gè)性質(zhì):在二叉樹的第k層上,最多有2k-l(kNl)個(gè)給

點(diǎn)。對(duì)于滿二叉樹來說,最后一層上的葉子結(jié)點(diǎn)數(shù)正好達(dá)到最大值。因此,深度為

6的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)即是第6層上結(jié)點(diǎn)數(shù)的最大值,為2匕匕26/二32

5、下列數(shù)據(jù)結(jié)構(gòu)中按“先進(jìn)先出”原則組織數(shù)據(jù)的是

A、線性表

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

C、循環(huán)鏈表

D、雙向鏈表

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

知識(shí)點(diǎn)解析:隊(duì)列是按“先進(jìn)先出”原則組織數(shù)據(jù)的,而循環(huán)隊(duì)列只是隊(duì)列的一種存

儲(chǔ)形式。因此,循環(huán)隊(duì)列是按“先進(jìn)先出”原則組織數(shù)據(jù)的。

6、將7個(gè)數(shù)據(jù)進(jìn)行插入排序,在最壞情況下需要比較的次數(shù)是

A、42

B、6

C、7

D、21

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

知識(shí)點(diǎn)解析:對(duì)長(zhǎng)度為n的線性表進(jìn)行插入排序,在最壞情況下需要n(n-l)/2次比

較,現(xiàn)線性表的長(zhǎng)度為7,在最壞情況下需要比較的次數(shù)為7(7-1)/2=21。

C

AD

7、設(shè)有如圖所示的二叉樹四則對(duì)該二叉樹前序遍歷的結(jié)

果是

A、FCADBEG

B、ACBDFGE

C、ABDCGEF

D、ACBDFEG

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

知識(shí)點(diǎn)解析?:按照二義棚前序遍歷的方法:在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子

樹這三者中,首先訪問艱結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹;并且,在遍歷

左、右子樹時(shí),仍然先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。對(duì)本題中

的二叉樹進(jìn)行前序遍歷的結(jié)果應(yīng)是FCADBEGo

8、下列關(guān)于軟件設(shè)計(jì)基本原理的敘述中錯(cuò)誤的是

A、信息隱蔽是指在一個(gè)模塊內(nèi)的信息要使所有的模塊都能訪問得到

B、模塊的獨(dú)立程度是評(píng)價(jià)軟件設(shè)計(jì)好壞的重要標(biāo)準(zhǔn)

C、耦合性用于衡量軟件的模塊獨(dú)立性

D、內(nèi)聚性用于衡量軟件的模塊獨(dú)立性

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

知識(shí)點(diǎn)解析:所謂信息隱蔽是指,在一個(gè)模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對(duì)于不

需要這些信息的其它模塊來說是不能訪問的。因此,選項(xiàng)A中的說法是不對(duì)的。

系統(tǒng)設(shè)計(jì)的質(zhì)量主要反映在模塊的獨(dú)立性_L。評(píng)價(jià)模塊獨(dú)立性的主要標(biāo)準(zhǔn)有兩個(gè):

一是模塊之間的耦合,它表明兩個(gè)模塊之間互相獨(dú)立的程度;二是模塊內(nèi)部之間的

關(guān)系是否緊密,稱為內(nèi)聚。因此,選項(xiàng)B、C、D中的說法都是正確的。

9、數(shù)據(jù)庫概念設(shè)計(jì)中,由分散到集中的設(shè)計(jì)方法是

A、視圖設(shè)計(jì)

B、視圖集成設(shè)計(jì)

C、集中式模式設(shè)計(jì)

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

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

知識(shí)點(diǎn)解析:數(shù)據(jù)庫概念設(shè)計(jì)中,由分散到集中的設(shè)計(jì)方法是視圖集成設(shè)計(jì)。

10、在下列關(guān)系運(yùn)算中,可能改變關(guān)系中屬性個(gè)數(shù)的是

A、并

B、差

C、投影

D、交

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

知識(shí)點(diǎn)解析:投影運(yùn)算是在給定關(guān)系的某些域上進(jìn)行的運(yùn)算。通過投影運(yùn)算可以從

一個(gè)關(guān)系中選擇出所需耍的屬性成分,并且按要求排列成一個(gè)新的關(guān)系,而新關(guān)系

的各個(gè)屬性值來自原關(guān)系中相應(yīng)的屬性值。因此,經(jīng)過投影運(yùn)算后,會(huì)取消某些

列,即投影運(yùn)算可能改變關(guān)系中屬性的個(gè)數(shù)。

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

11、假定a為一個(gè)整型數(shù)組名,則元素a[4]的字節(jié)地址為

A^a+4

B、a+8

C、a+16

D^a+32

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

知識(shí)點(diǎn)解析:注意:VC編譯器分配給整數(shù)的內(nèi)存是4字節(jié)。

12、以下的for循環(huán)for(x=0,y=0;(y!=123)&&(x<4);x++);

A、是無限循環(huán)

B、循環(huán)次數(shù)不定

C、最多執(zhí)行4次

D、最多執(zhí)行3次

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

知識(shí)點(diǎn)露析:本題考察for循環(huán)的三個(gè)表達(dá)式的用法及其執(zhí)行順序,本題中for循

環(huán)的第三個(gè)表達(dá)式完成變量自增,以控制for循環(huán)的執(zhí)行次數(shù)。

13、已知inta,b;用語句scanf(,,%d%d",&a,&B);輸入a,b的值時(shí),不能作為輸入數(shù)

據(jù)分隔符的是

A、,

B、空格

C、回車

D、Tab鍵

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

知識(shí)點(diǎn)解析:C++語言規(guī)定在使用scanf輸入時(shí)可以用作數(shù)據(jù)分隔符的有空格,回

車和Tab鍵。用戶如果要從鍵盤輸入空格字符,則需要使用其他的輸入方式。

14、語句cout<<(a=2)&&(b=-2);的輸出結(jié)果是

A、無輸出

B、結(jié)果不確定

C、-1

D、1

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

知識(shí)點(diǎn)解析:邏輯表達(dá)式的值輸出結(jié)果是數(shù)字的形式。C++規(guī)定,邏輯假用數(shù)字0

表示,而邏輯真則用非零表示。注意:在C++中,如果邏輯表達(dá)式的值是非零,

則可以認(rèn)為是真。VC編譯器在編譯輸出時(shí)將邏輯真輸出為1。

15、以下選項(xiàng)中與k=n++;完全等價(jià)的表達(dá)式是

A、k=n,n=n+l;

B、n=n+l,k=n;

C、k=++n;

D、k+=n+l;

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

知識(shí)點(diǎn)解析:本題考察混合表達(dá)式的展開。

16、執(zhí)行coutVVsetw(5)VV123V<selfill(*)VV16;的輸出為

A、**12316

B、123**16

C、12316

D、12316**

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

知識(shí)點(diǎn)解析:selw()為一次有效的設(shè)置,setfill則一直有效,直到再次設(shè)置為止。

正確答案為A。

17、設(shè)有以下類的定義:classEx{intx;public:voidsetx(intt=0);};若在類外定義

成員函數(shù)setx(),以下定義形式中正確的是

A^voidsetx(int

B、voidEx::sctx(intt){...}

C、Ex::voidsetx(int

D、voidEx::setx(){...}

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

知識(shí)點(diǎn)解析:選項(xiàng)A可以排除,原因是類的成員函數(shù)的定義必須用域作用符::進(jìn)行

限定:選項(xiàng)C的限定位置不對(duì),函數(shù)的類型應(yīng)在最前面。根據(jù)上下文可以指導(dǎo),

setx為單參成員函數(shù),在定義時(shí)也必須指定參數(shù),因此選項(xiàng)D也可以排除,正確答

案為B。

18、關(guān)于const修飾符的說法中,錯(cuò)誤的是

A、const既可以修飾成員函數(shù),也可以修飾數(shù)據(jù)成員,還可以修飾對(duì)象

B、若const修飾了一個(gè)對(duì)象,則該對(duì)象中的所有數(shù)據(jù)成員都無法被更新

C、常對(duì)象無法調(diào)用一般成員函數(shù)

D、常成員函數(shù)只能被常對(duì)象調(diào)用,不能被一般對(duì)象調(diào)用

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

知識(shí)點(diǎn)解析:本題考察const修飾符的含義及其修飾不同對(duì)象的規(guī)則。常成員函數(shù)

既能被常對(duì)象調(diào)用,也能被一般對(duì)象調(diào)用,一旦const修飾了一個(gè)對(duì)象,則對(duì)象的

所有數(shù)據(jù)成員都無法更新。

19、以下不屬于構(gòu)造函數(shù)特征的是

A、構(gòu)造函數(shù)名與類名相同

B、構(gòu)造函數(shù)可以重載

C、構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù)

D、構(gòu)造函數(shù)必須指定函數(shù)類型

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

知識(shí)點(diǎn)解析:構(gòu)造函數(shù)和析構(gòu)函數(shù)一樣,是類的特殊的成員函數(shù)。其特點(diǎn)之一是不

指定返回類型,故D項(xiàng)錯(cuò)誤。

20、以下敘述正確的是

A、派生類中不可以定義與基類中同名的成員變量

B、派生類中不可以重載成員函數(shù)

C、派生類中不能調(diào)用基類中的同名函數(shù)

D、以上三項(xiàng)均不正確

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

知識(shí)點(diǎn)解析:派生類和基類之間的關(guān)系比較重要,派生類不僅可以定義同名的成員

變量,還可以調(diào)用或重載基類的同名函數(shù),這是類的多態(tài)性的基礎(chǔ)。

21、如果一個(gè)類含有一個(gè)以上的純虛函數(shù),則稱該類為

A、虛基類

B、抽象類

C、派生類

D、以上都不對(duì)

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

知識(shí)點(diǎn)解析:純虛函數(shù)一般提供派生類進(jìn)行繼承的參考,是多態(tài)性的重要保證,一

個(gè)具有純虛函數(shù)的類稱為抽象類,抽象類可以具有其他類的特點(diǎn),但它不能定義對(duì)

象,不能聲明為內(nèi)聯(lián)函數(shù)。

22、下列各類函數(shù)中,不是類的成員函數(shù)的是

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

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

C、友元函數(shù)

D、拷貝構(gòu)造函數(shù)

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

知識(shí)點(diǎn)解析:構(gòu)造函數(shù)包括默認(rèn)構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù)等,析構(gòu)函數(shù)和構(gòu)造函數(shù)

一樣屬于類的特殊的成員函數(shù)。而友元函數(shù)則是為了增加類的訪問靈活行而允許其

他類的成員函數(shù)或全局函數(shù)訪問類的內(nèi)部變量或成員函數(shù)的一種機(jī)制,其缺點(diǎn)是破

壞了類的封裝性。

23、在多繼承中,公用派生和私有派生對(duì)于基類成員在派生類中的可訪問性與單繼

承規(guī)則

A、完全相同

B、完全不同

C、部分相同,部分不同

D、以上都不對(duì)

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

知識(shí)點(diǎn)解析:C++語言中為了簡(jiǎn)化繼承關(guān)系,規(guī)定多重繼承中可訪問性規(guī)則同單繼

承規(guī)則。

24、已知類A有公用數(shù)據(jù)成員a,并重載了二運(yùn)算符,且有Aobj2;constAptr*=new

A;則下列語句錯(cuò)誤的是

A、ptr->a=100;

B、ptr=&obj2;

C^ptr++;

D、obj2=*ptr;

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

知識(shí)點(diǎn)解析:本題考察const修飾符的作用。注意:const位置不同,其修飾的部分

也是不同的。本題中consi修飾的是pir所指的對(duì)象本身,所以,pir是可以重新指

向新的對(duì)象,而ptr->a則無法被更新。

25、已知語句intm=10;則下列引用的表示中正確的是

A、int&x=m;

B、int&y=10;

C、int&z;

D、float&t=&m;

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

知識(shí)點(diǎn)解析:本題考察引用的定義既使用.引用是C++中新引入的概念.其使用

方法同變量,而其本質(zhì)同指針,具有指針的靈活性。引用必須用變量進(jìn)行賦值,不

能用常量或常數(shù)。

26、以下有關(guān)類與結(jié)構(gòu)體關(guān)系的敘述不正確的是

A、結(jié)構(gòu)體中只包含數(shù)據(jù);類中封裝了數(shù)據(jù)和操作

B、結(jié)構(gòu)體的成員對(duì)外界通常是開放的;類的成員可以被隱蔽

C^用struct不能聲明一個(gè)類型名:而class可以聲明一個(gè)類名

D、結(jié)構(gòu)體成員默認(rèn)為public;類成員默認(rèn)為private

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

知識(shí)點(diǎn)解析:可以說類來源于結(jié)構(gòu)體,兩者有相似之處。結(jié)構(gòu)也可以聲明類型名,

但類的功能更強(qiáng)大一些,不僅增加了操作,還能夠隱藏和包含其成員變量或成員函

數(shù)。

27、以下不能作為輸出流對(duì)象的是

文件

A、

內(nèi)存

B、

鍵盤

c、

顯示

D、

:C

答案

標(biāo)準(zhǔn)

輸入

件,而

和文

內(nèi)存

示器,

如顯

溫馨提示

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