國家二級(jí)(C++)筆試模擬試卷13_第1頁
國家二級(jí)(C++)筆試模擬試卷13_第2頁
國家二級(jí)(C++)筆試模擬試卷13_第3頁
國家二級(jí)(C++)筆試模擬試卷13_第4頁
國家二級(jí)(C++)筆試模擬試卷13_第5頁
已閱讀5頁,還剩86頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

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

10分。)

1、有如下函數(shù)模板聲明:template<typenameT>TMax(Ta,TB)

{return(a>=B)?a:b;}下列對(duì)函數(shù)模板Max的調(diào)用中錯(cuò)誤的是A)Max(3.5,4.5)

B)Max(3.5,4);C)Max<double>(3.5,4.5)D)Max<double>(3.5,4)

A、

B、

C、

D、

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

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

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

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

B、邏輯結(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ù)的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形

式,一種數(shù)據(jù)結(jié)構(gòu)可以艱據(jù)需要采用不同的存儲(chǔ)結(jié)構(gòu),常用的存儲(chǔ)結(jié)構(gòu)有順序和鏈

式結(jié)構(gòu)。采用不同的存儲(chǔ)結(jié)構(gòu),其處理的效率是不同的。

3、對(duì)建立良好的程序設(shè)計(jì)風(fēng)格,下面描述正確的是

A、程序應(yīng)簡單、清晰、可讀性好

B、符號(hào)名的命名只要符合語法

C、充分考慮程序的執(zhí)行效率

D、程序的注釋可有可無

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

知識(shí)點(diǎn)解析:程序設(shè)計(jì)應(yīng)該簡單易懂,語句構(gòu)造應(yīng)該簡單直接,不應(yīng)該為提高效率

而把語句復(fù)雜化。

4、下面關(guān)于指針的說法中錯(cuò)誤的是()。

A、在指針定義的同時(shí)可以對(duì)其進(jìn)行初始化

B、指針根據(jù)其所指向變量的類型的不同,所占用內(nèi)存大小也不同

C、指針中存放的是內(nèi)存單元的地址

D、相同類型的指針之間可以相互賦值

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

知識(shí)點(diǎn)解析:指針是一種用來存放其他變量地址的數(shù)據(jù)類型,它的聲明形式為:

〈類型〉+〈變量名〉,可以在聲明的時(shí)候?qū)ζ溥M(jìn)行初始化。由于其存放的是內(nèi)存

單元的地址,所以大小一般都是4個(gè)字節(jié)

5、函數(shù)定義如下:voidfun(intx,int&y){x++;y++;)如果執(zhí)行代碼段:inta=0,b=l;

fun(a,b);則變量a和b的值分別是()。

A、U和1

B、0和2

C、1和1

D、1和2

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

知識(shí)點(diǎn)解析:本題中定義了一個(gè)fun函數(shù),當(dāng)調(diào)用fun(a,b);函數(shù)時(shí),形參x和y

被初始化為實(shí)參a和b的引用,參數(shù)x為非引用類型,參數(shù)y為引用類型,在執(zhí)行

該函數(shù)時(shí),對(duì)形參x的改變不會(huì)影響到實(shí)參,形參y的改變將會(huì)影響到實(shí)參,因此

調(diào)用fun函數(shù)后,形參變量x=l,y=2,實(shí)參變量a=0,b=2o

6、對(duì)虛函數(shù)的調(diào)用()。

A、一定使用動(dòng)態(tài)聯(lián)編

B、必須使用動(dòng)態(tài)聯(lián)編

C、一定使用靜態(tài)聯(lián)編

D、不一定使用動(dòng)態(tài)聯(lián)編

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

知識(shí)點(diǎn)解析:虛函數(shù)在運(yùn)行階段和類的對(duì)象綁定在一起,這樣成為動(dòng)態(tài)聯(lián)編。虛函

數(shù)聲明只能出現(xiàn)在類聲明中虛函數(shù)原型中,而不能在成員的函數(shù)體實(shí)現(xiàn)的時(shí)候。必

須由成員函數(shù)來調(diào)用或者通過指針、引用來訪問虛函數(shù)°如果通過對(duì)象名來訪問虛

函數(shù),則聯(lián)編在編譯過程中認(rèn)為足靜態(tài)聯(lián)編。

7、人們已經(jīng)提出了許多種類型的數(shù)據(jù)依賴,其中最重要的是函數(shù)依賴和()。

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

B、多值依賴

C、單值依賴

D、數(shù)值依賴

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

知識(shí)點(diǎn)3析:人們已經(jīng)提出了許多種類型的數(shù)據(jù)依賴,其中最重要的是函數(shù)依賴和

多值依賴。

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

A、在數(shù)據(jù)庫設(shè)計(jì)的過程中,需求分析階段必須考慮具體的計(jì)算機(jī)系統(tǒng)

B、在數(shù)據(jù)庫設(shè)計(jì)的過程中,概念結(jié)構(gòu)設(shè)計(jì)與具體的數(shù)據(jù)庫管理系統(tǒng)有關(guān)

C、在數(shù)據(jù)庫設(shè)計(jì)的過程中,邏輯結(jié)構(gòu)設(shè)計(jì)與具體的數(shù)據(jù)庫管理系統(tǒng)有關(guān)

D、在數(shù)據(jù)庫設(shè)計(jì)的過程中,物理結(jié)構(gòu)設(shè)計(jì)依賴于具體的計(jì)算機(jī)系統(tǒng)

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

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

9、設(shè)棧S的初始狀態(tài)為空。元素a,b,c,d,e,f依次通過棧S,若出棧的順序

為b,d,c,f,e,a,則棧S的容量至少應(yīng)該為

A、3

B、4

C、5

D、6

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

知識(shí)點(diǎn)解析:根據(jù)題中給定的條件,可以作如下的模擬操作:①元素a,b進(jìn)棧,

棧中有2個(gè)元素,分別為a,b;②元素b出棧后,元素c,d進(jìn)棧,棧中有3個(gè)元

素,分別為a,c,d:③元素d,c出棧后,元素e,f進(jìn)棧,棧中有3個(gè)元素,分

別為a,e,f;④最后,元素f,e,a出棧,棧為空,可以看出,進(jìn)棧的順序?yàn)閍,

b,c,d,e,f,出棧的順序?yàn)閎,d,c,f,e,a,滿足題目要求。每次進(jìn)棧操作

后,棧中最多有3個(gè)元素,所以,為了順利完成這些操作,棧的容量應(yīng)至少為3。

本題的正確答案為A。

10、在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是

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

B、需求分析

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

D、編程調(diào)試

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

知識(shí)點(diǎn)解析:概要設(shè)計(jì)的任務(wù)是劃分出構(gòu)成系統(tǒng)的各物理元素以及設(shè)計(jì)出軟件的結(jié)

構(gòu)(如確定模塊及模塊間的關(guān)系).設(shè)計(jì)過程通常分為以下幾步:提出可選擇方案:

選擇合理方案;推薦最佳方案;功能分解;設(shè)計(jì)軟件結(jié)構(gòu);制定測試計(jì)劃:最后提

交概要設(shè)計(jì)文檔。軟件功能分解屬于概要設(shè)計(jì)階段。本題的正確答案為A。

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

11、設(shè)有以下程序段:inta[5]={0},*p,*q;p=a;q=a;則下列選項(xiàng)中,合法的運(yùn)算

A、p*q

B、p-q

C^p*q

D、p%q

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

15、下面程序的輸出結(jié)果是#include<iostream.h>classexample{inta;public:

example(intb){a=b++;}voidpnnt(){a=a+l;cout<<a<<"voidprint()

const{cout<<a<<"";)};voidmain(){examplex(3);constexampley(2);

x.print();y.print();}

A、22

B、43

C、42

D、32

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

知識(shí)點(diǎn)解析:“++”是右結(jié)合的,所以先賦值為3,最后輸出3+1;常成員函數(shù)只

有常對(duì)象才能調(diào)用,所以輸出2。

16、若有以下程序:#includeusingnamespacestd:classA{public:A(inti,intj)

{a=i:b=j;}voidmove(intx,inty){a+=x;b+=y;)voidshow(){cout(

A、3,4

B、6,8

C、6,9

D、4,3

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

知識(shí)點(diǎn)解析:此題的執(zhí)行過程如下:首先Bd(3,4);語句調(diào)用B類的構(gòu)造函數(shù):

B(inti,intj),B的構(gòu)造函數(shù)中調(diào)用基類A的構(gòu)造函數(shù),使得a=3,b=4;d.fun()會(huì)

調(diào)用函數(shù)move(3,5),使得(3,4)和(3,51的對(duì)應(yīng)部分分別相加,最后輸出6,

90

17、如果一個(gè)模板聲明列出了多個(gè)參數(shù),則每個(gè)參數(shù)之間必須使用逗號(hào)隔開,每個(gè)

參數(shù)都必須使用()關(guān)鍵字來修飾。

A、const

B、static

C^void

D、class

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

知識(shí)點(diǎn)解析:如果一個(gè)模板聲明列出了多個(gè)參數(shù),則每個(gè)參數(shù)之間必須使用逗號(hào)隔

開,每個(gè)參數(shù)都必須使用class關(guān)鍵字來修飾。

18、C++語言規(guī)定,函數(shù)返回值的類型是由()。

A、return語句中的表達(dá)式類型所決定

B、調(diào)用該函數(shù)時(shí)的主調(diào)函數(shù)類型所決定

C、調(diào)用該函數(shù)時(shí)系統(tǒng)臨時(shí)決定

D、在定義該函數(shù)時(shí)所指定的函數(shù)類型所決定

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

知識(shí)點(diǎn)解析:函數(shù)返回值的類型是由在定義該函數(shù)時(shí)所指定的函數(shù)類型所決定。

19、下列有關(guān)構(gòu)造函數(shù)的描述錯(cuò)誤的是()。

A、構(gòu)造函數(shù)在說明類變量時(shí)自動(dòng)執(zhí)行

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

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

D、構(gòu)造函數(shù)可以對(duì)靜態(tài)數(shù)據(jù)成員進(jìn)行初始化

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

知識(shí)點(diǎn)解析:選項(xiàng)A、選項(xiàng)B和選項(xiàng)C都是構(gòu)造函數(shù)的特征,類中的靜態(tài)數(shù)據(jù)成

員是類的所有對(duì)象共享的,所以它必須有單獨(dú)的初始化,不能由類的構(gòu)造函數(shù)進(jìn)行

初始化。

20、決定C++語言中函數(shù)的返回值類型的是()。

A、return語句中的表達(dá)式類型

B、調(diào)用該函數(shù)時(shí)系統(tǒng)隆機(jī)產(chǎn)生的類型

C、調(diào)用該函數(shù)時(shí)的主調(diào)用函數(shù)類型

D、在定義該函數(shù)時(shí)所指定的數(shù)據(jù)類型

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

知識(shí)點(diǎn)解析:C++中函數(shù)的返回值類型是由定義函數(shù)時(shí)所指定的函數(shù)類型決定的,

而不是其他內(nèi)容決定的。

21、有如下程序:#includc<iostrcam>usingnamespacestd;classBase{public:void

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

{cout<<nDerived::fun"<<end1;));intmain()

{Derivedd;D.fun();returnO;}已知其執(zhí)行后的輸出結(jié)果為:Base::funDcrivcd::fun

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

A^Base,fun():

B、Base::fun();

C、Base->fun();

D、fnn()

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

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

22、若有char*x[2]={”xyzw","XYZW");則下面的表述正確的是。

A、x數(shù)組元素酌值分別是“xyzw”和“XYZW”

B、x是指針變量,它指向含有兩個(gè)數(shù)組元素的字符型一維數(shù)組

C、x數(shù)組的兩個(gè)元素分別存放的是含有4個(gè)字符的一維字符數(shù)組的首地址

D、x數(shù)組的兩個(gè)元素中各自存放了字符X,和,X,的地址

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

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

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

承的規(guī)則()。

A、完全相同

B、完全不同

C^部分相同,部分不同

D、以上都不對(duì)

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

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

24、流程控制語句的基本控制結(jié)構(gòu)有三種,不屬于這一種結(jié)構(gòu)的是()。

A、順序結(jié)構(gòu)

B、選擇結(jié)構(gòu)

C、循環(huán)結(jié)構(gòu)

D、計(jì)算結(jié)構(gòu)

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

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

25、對(duì)虛函數(shù)的調(diào)用(),

A、一定使用動(dòng)態(tài)聯(lián)編

B、必須使用動(dòng)態(tài)聯(lián)編

C、一定使用靜態(tài)聯(lián)編

D、不一定使用動(dòng)態(tài)聯(lián)編

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

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

26、關(guān)于continue語句敘述不正確的是

A、continue語句用于循環(huán)體中,結(jié)束循環(huán)

B、continue語句用于循環(huán)體中,它使執(zhí)行流跳出循環(huán)體中尚未執(zhí)行的語句,并進(jìn)

行下一循環(huán)判斷

C>continue可以用于if語句中

D、continue語句不能代替break語句

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

知識(shí)點(diǎn)解析:continue是跳出了本次循環(huán)中尚未執(zhí)行的語句,重新執(zhí)行循環(huán),但沒

有終止循環(huán)。注意:注意break,continue和goto語句的用法和區(qū)別。

27、下面程序的結(jié)果是#includeViostream.h>classA{public:A(){cout<<

"construtA"<<endl;)virtual-A(){cout<<"destructA"<<endl;));classB:

publicA{};classC:publicA{};classD:publicB,publicC{};voidmain()

{Dd;)

A、constructAdestructA

constructAconstructAdestructAdestructA

C>constructAconstructAconstructAdestructAdestructAdestructA

D、constructAonstructAconstructAconstructAdestructAdestructAdestructA

destructA

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

知識(shí)點(diǎn)解析:類D繼承了類C和類B,所以在構(gòu)造的時(shí)候分別構(gòu)造類B和類C。

28、下列類的定義中,有()處語法錯(cuò)誤。classBase{public:Base(){)Base(inti)

{data=i;)private:intdata;};classDerive:publicBase{public:Derive():Base(O){)

Derive(intx)(d=x;}voidsetvalue(inti){data=i;)private:intd;};

A、I

B、2

C>3

D、4

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

知識(shí)點(diǎn)解析:本題考核派生類的定義和成員的訪問權(quán)限。第①處錯(cuò)誤:在派生類

的構(gòu)造函數(shù)Derive(intx)中沒有調(diào)用基類的構(gòu)造函數(shù)對(duì)基類對(duì)象初始化。第②處錯(cuò)

誤:數(shù)據(jù)da【a是基類Base的私有成員,派生類Derive不能訪問,所以在函數(shù)

setvalue中對(duì)data的賦值是錯(cuò)誤的。

29、下列類的定義中,有()處語法錯(cuò)誤。classBase{public:Base(){}Base(inti)

{data=i;}private:intdata;};classDerive:publicBase{public:Derive():Base(O){)

Derive(intx){d=x;}voidselvalue(inti){data=i;}private:d;);

A、1

B、2

C、3

D、4

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

知識(shí)點(diǎn)解析:本題考核派生類的定義和成員的訪問權(quán)限。第1處錯(cuò)誤:在派生類

的構(gòu)造函數(shù)Derive(imx)中沒有調(diào)用基類的構(gòu)造函數(shù)對(duì)基類對(duì)象初始化。第2處錯(cuò)

誤:數(shù)據(jù)data是基類Base的私有成員,派生類Derive不能訪問,所以在函數(shù)

setvalue中對(duì)data的賦值是錯(cuò)誤的。

30、」知:inla,b;下列switch語句中,()是正確的。

A、switdh(a){casea:a++;break;caseb:b++;break;)

B、switch(a+b){case1:a+b;break;case1:a-b|

C^switch(a*a)|case1?2:++a;case3,4:++b:}

D、switch(a/10+b){cases5:a/5:break:default:a+b;}

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

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

31、下列運(yùn)算符中哪些是不能夠被重載的?

A、

++,一,new,delete?==

C、sizeof,new,delete,++,—

D^sizeof,new,delete,+,-

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

知識(shí)點(diǎn)解析:C++語言中的不能重載的操作符是:和?:。

32、一個(gè)函數(shù)為voidf(int,charch='a)另一個(gè)函數(shù)為voidf(int),則它們

()。

A、不能在同一程序中定義

B、可以在同一程序中定義并可重載

C、可以在同一程序中定義,但不可以重載

D、以上三種說法均不正確

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

知識(shí)點(diǎn)解析:題目中的兩個(gè)函數(shù)參數(shù)個(gè)數(shù)不同,因此可以在同一程序中定義為重載

函數(shù)。所以,選項(xiàng)B)敘述正確。

33、下列敘述中正確的是

A、全局變量的作用域一定比局部變量的作用域范圍大

B、靜態(tài)類別變量的生存期貫穿于整個(gè)程序的運(yùn)行期間

C、函數(shù)的形參都屬于全局變量

D、未在定義語句中賦初值的auto變量和static變量的初值都是隨機(jī)值

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

知識(shí)點(diǎn)解析:本題考察的是變量的作用域及其生存期,需要掌握變量類別及其特

點(diǎn)。

34>有如下程序段inti=0,j=l;int&r=i;〃①尸j;

〃②inl*p二&i;〃③*p二&r;〃④其中會(huì)產(chǎn)生編譯錯(cuò)誤的語句是

A、④

B、③

C、@

D、①

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

知識(shí)點(diǎn)解析:本題考查的知識(shí)點(diǎn)是:指針和引用。指針聲明的一般形式為:V數(shù)

據(jù)類型>*V聲明的指針變量名〉:引用聲明的一般形式為:V數(shù)據(jù)類型》&V聲

明的引用變量名>=<被引用的變量名,;引用聲明時(shí)必須初始化,而指針則可有

可無。通過引用來改變其所引用的對(duì)象,直接賦值即可,而通過指針改變其所指對(duì)

象則須使用一元運(yùn)算符“*在本題中,語句①就是一條合法的引用聲明語句,使

變量i被r所引用。語句②通過引用r將變量j的值賦給變量i。語句③聲明了指針

變量P,并初始化指向變量i。而語句④中的*p代表了變量i,欲將&r(變量1?的地

址值)賦給*p(變量i),這會(huì)引起VC6編譯器產(chǎn)生一條類型不匹配的錯(cuò)誤”無法將類

型int*轉(zhuǎn)換為int”。故本題應(yīng)該選擇A。

35、下面是一個(gè)模板聲明的開始部分:Template<typenameT>double...

由此可知

A、這可能是一個(gè)函數(shù)模板的聲明

B、這可能是一個(gè)類模板的聲明

C、這既可能是一個(gè)函數(shù)模板的聲明,也可能是一個(gè)類模板的聲明

D、這肯定是一個(gè)錯(cuò)誤的模板聲明

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

知識(shí)點(diǎn)解析:類模板說明的一般形式是:template<類型形參表〉classV類名〉

(〃類說明體??1:函數(shù)模板的一般說明形式如下templateV模板形參表〉V返回值

類型〉〈函數(shù)名〉(模板函數(shù)形參表)〃函數(shù)定義體

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

分。)

36、數(shù)據(jù)庫系統(tǒng)中實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件是o

標(biāo)準(zhǔn)答案:數(shù)據(jù)庫管理系統(tǒng)

知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的管理機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)

據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等。

37、在關(guān)系數(shù)據(jù)庫中,石數(shù)據(jù)表示成二維表,每一個(gè)二維表稱為。

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

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

38、已知一個(gè)函數(shù)的原型足:intfn((toubiex);若要以5.27為實(shí)參調(diào)用該函數(shù),

應(yīng)使用表達(dá)式。

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

知識(shí)點(diǎn)解析:函數(shù)調(diào)用,注意形參的個(gè)數(shù)和類型的匹配問題。

39、[]是數(shù)據(jù)庫設(shè)計(jì)的核心。

標(biāo)準(zhǔn)答案:數(shù)據(jù)模型

知識(shí)點(diǎn)解析:數(shù)據(jù)模型是對(duì)客觀事物及聯(lián)系的數(shù)據(jù)描述,它反映了實(shí)體內(nèi)部及實(shí)體

與實(shí)體之間的聯(lián)系。因此,數(shù)據(jù)模型是數(shù)據(jù)庫設(shè)計(jì)的核心。

40、順序存儲(chǔ)方法是把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理位置【】的存儲(chǔ)單元中。

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

知識(shí)點(diǎn)解析:常用的存儲(chǔ)表示方法有4種,順序存儲(chǔ)、鏈?zhǔn)酱鎯?chǔ)、索引存儲(chǔ)、散列

勺儲(chǔ)。其中,順序存儲(chǔ)方法是把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理位置咀相鄰的存儲(chǔ)單

元中。

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

41>有如下程序:#include<iostream>usingnamespacestd;classCon{charID;

public:Con():ID(,A,){cout<<1;)Con(charID):ID(ID){cout<<2;)Con(Con&

c):ID(c.getID()){cout<<3;}charget1D()const{returnID;}};voidshow(Conc){coul

<<c.getID();}intmain(){Concl;show(cl);Conc2(B);show(c2);return0;}執(zhí)行

上面程序的輸出是。

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

知識(shí)點(diǎn)解析:Concl定義cl對(duì)象,調(diào)用Con的無參數(shù)構(gòu)造函數(shù),輸出1,ID值變

為A,執(zhí)行show(cl)時(shí)會(huì)調(diào)用拷貝構(gòu)造函數(shù),將cl對(duì)象的值拷貝給show。函數(shù)的

形參,此時(shí)輸出3,然后在show。中輸出cl的ID值A(chǔ),Conc2(,B,)定義c2對(duì)象,

調(diào)用Con(charlD)構(gòu)造函數(shù),輸出2,c2的ID值為B,show(c2)執(zhí)行時(shí)先調(diào)用拷貝

構(gòu)造函數(shù)輸出3,然后輸出B。因此程序輸出結(jié)果為“13A23B”。

42、多態(tài)性分為兩類:編譯時(shí)的多態(tài)性和。

標(biāo)準(zhǔn)答案:運(yùn)行時(shí)的多杰性

知識(shí)點(diǎn)解析:多態(tài)性是指一個(gè)接口,多種方法。它分為編譯時(shí)多態(tài)性和運(yùn)行時(shí)的

多念性。

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

iostream>usingnamespacestd;classBase{public:inta,b;Base(inti){a=i;});class

Derived:publicBase{inta;public:Derived(intx):Base(x),b(x+1){)voidshow()

{[];〃輸出基煌數(shù)據(jù)成員a的值。cout<<b<<endl;));intmain(){Derived

d(l);D.show();return0;}

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

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

44、C++目標(biāo)程序經(jīng)【】后生成擴(kuò)展名為exe的可執(zhí)行程序文件。

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

知識(shí)點(diǎn)解析:在過程中首先編譯為.obj文件,然后連接為可執(zhí)行文件。

45、若有以下程序:#include<ioslream>usingnamespacestd;classBase{public:

voidwho(){cout<<"classBase"<<endl;});classDerivedI:publicBase{public:

voidwho(){cout<<"classDerivedl"<<end1;));classDerived?:publicBase

{public:voidwho(){cout<<,,classDerived2'1<<end1;}};intmain(){Base*p;

Derivedlobj1;Derived2obi2;p=&objI;p=&obj2;p->who();return0;}則該程序運(yùn)

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

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

知識(shí)點(diǎn)解析:本題考核對(duì)象指針的應(yīng)用。主函數(shù)中定義了一個(gè)Base類對(duì)象指針

P,然后逐步被賦值為。bjl和。bj2,最后通過對(duì)象指針p調(diào)用函數(shù)who。,也即調(diào)

用Derived2中的函數(shù)who。,輸出classDerived2<>

46、空字符串的長度是o

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

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

47、排序是計(jì)算機(jī)程序沒計(jì)中的一種重要操作,常見的排序方法有插入排序、

和選擇排序等。

標(biāo)準(zhǔn)答案:交換排序

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

48、以F程序輸出的結(jié)果是[】°#include<ioslream.h>voidmain(){inla=5,

b=4,c=3,d;d=(a>b>C);cout<<d;)

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

知識(shí)點(diǎn)解析:本題的關(guān)鍵在于對(duì)變量c的賦值運(yùn)算:

49、在C++語言中,訪問一個(gè)對(duì)象的成員所用的運(yùn)算符是[】,訪問一個(gè)指針?biāo)?/p>

指向的對(duì)象的成員所用的運(yùn)算符是【】。

標(biāo)準(zhǔn)答案:成員選擇運(yùn)算符(或成員訪問運(yùn)算符(或“?>”)

知識(shí)點(diǎn)解析:本題考查的是使用對(duì)象和對(duì)象指針訪問成員所使用的符號(hào)的不同,考

生請(qǐng)注意它們的區(qū)別。

50、多數(shù)運(yùn)算符既能作為類的成員函數(shù)重載,也能作為類的非成員函數(shù)重載,但

運(yùn)算符只能作為類的【】函數(shù)重載。

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

知識(shí)點(diǎn)解析:運(yùn)算符重我。

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

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

70分。)

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

A、32

B、31

C、16

D、15

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

知識(shí)點(diǎn)解析:所謂滿二義樹是指這樣的一種二叉樹:除最后一層外,每一層上的所

有節(jié)點(diǎn)都有兩個(gè)葉子節(jié)點(diǎn)。這就是說,在滿二叉樹中,層上的節(jié)點(diǎn)數(shù)都達(dá)到最大

值,即在滿二叉樹的第k層上有個(gè)節(jié)點(diǎn),且深度為m的滿二叉樹有2n1一1個(gè)

節(jié)點(diǎn)。

2、若某二義樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,

則其后序遍歷的節(jié)點(diǎn)訪問順序是

A、bdgcefha

B、gdbecfha

C、bdgaechf

D、gdbehfca

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

知識(shí)點(diǎn)解析:前序遍歷的第一個(gè)節(jié)點(diǎn)a為樹的根節(jié)點(diǎn);中序遍歷中a的左邊的節(jié)點(diǎn)

為a的左子樹,a右邊的節(jié)點(diǎn)為a的右子樹;再分別對(duì)a的左右子樹進(jìn)行上述兩步處

理,直到每個(gè)節(jié)點(diǎn)都找到正確的位置。

3、一些重要的程序語言(如C語言和Pascal語言)允許過程的遞歸調(diào)用。而實(shí)現(xiàn)遞

歸調(diào)用中的存儲(chǔ)分配通常用

A、棧

B、堆

C、數(shù)組

D、鏈表

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

知識(shí)點(diǎn)解析:一些較流行的程序語言允許過程的遞歸調(diào)用。遞歸調(diào)用就是過程調(diào)用

本身。遞歸實(shí)現(xiàn)的是:當(dāng)過程每一次執(zhí)行后,都能返回到最近一次調(diào)用它的過程

中。這樣各調(diào)用點(diǎn)之間形成一種后進(jìn)先出的關(guān)系,而棧結(jié)構(gòu)正適合來存儲(chǔ)這些調(diào)用

點(diǎn)。

4、軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括軟件開發(fā)技術(shù)和

A、消除軟件危機(jī)

B、軟件工程管理

C、程序設(shè)計(jì)自動(dòng)化

D、實(shí)現(xiàn)軟件可重用

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

知識(shí)點(diǎn)解析:軟件工程的目標(biāo)是,在給定的成本、進(jìn)度的前提下,開發(fā)出具有有效

性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和

可互操作性且滿足用戶需求的產(chǎn)品。基于這一目標(biāo),軟件工程的理論和技術(shù)性研究

的內(nèi)容主要包括:軟件開發(fā)技術(shù)和軟件工程管理。

5、開發(fā)軟件時(shí)對(duì)提高開發(fā)人員工作效率至關(guān)重要的是

A、操作系統(tǒng)的資源管理功能

B、先進(jìn)的軟件開發(fā)工具和環(huán)境

C、程序人員的數(shù)量

D、計(jì)算機(jī)的并行處理能力

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

知識(shí)點(diǎn)解析:軟件工程鼓勵(lì)研制和采用各種先進(jìn)的軟件開發(fā)方法、工具和環(huán)境。工

具和環(huán)境的使用又進(jìn)一步提高了軟件的開發(fā)效率、維護(hù)效率和軟件質(zhì)量。

6、在軟件測試設(shè)計(jì)中,軟件測試的主要目的是

A、實(shí)驗(yàn)性運(yùn)行軟件

B、證明軟件正確

C、找出軟件中的全部錯(cuò)誤

D、發(fā)現(xiàn)軟件錯(cuò)誤而執(zhí)行程序

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

知識(shí)點(diǎn)解析:使用人工或自動(dòng)手段來運(yùn)行或測定某個(gè)系統(tǒng)的過程,其目的在于檢驗(yàn)

它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。軟件測試是為了

發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。測試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正

確功能。

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

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

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

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

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

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

知識(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、索引屬于

A、模式

B、內(nèi)模式

C、外模式

D、概念模式

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

知識(shí)點(diǎn)解析:內(nèi)模式(ImernalSchema)又稱物理模式(PhysicalSchema),它給出了

數(shù)據(jù)庫物理存儲(chǔ)結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲(chǔ)的文件結(jié)構(gòu)、索引、集簇及

hash等存取方式與存取路徑。

9、下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中正確的是

A、數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B、數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C、數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致

D、數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

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

知識(shí)點(diǎn)解析:數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有高共享性和低冗余性,但不能完全避免數(shù)據(jù)冗

余;數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值。

10、數(shù)據(jù)庫系統(tǒng)的核心是

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

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

C、模擬模型

D、軟件工程

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

知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)是數(shù)據(jù)

庫的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、

控制及保護(hù)和數(shù)據(jù)服務(wù)等,數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。

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

11、下面關(guān)于C++語言的描述錯(cuò)誤的是

A、C++語言支持?jǐn)?shù)據(jù)封裝

B、C++語言中引入友元,沒有破壞封裝性

C、C++語言允許函數(shù)名和運(yùn)算符重載

D、C++語言支持動(dòng)態(tài)聯(lián)編

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

知識(shí)點(diǎn)解析:數(shù)據(jù)封裝就是數(shù)據(jù)抽象;友元可以訪問類中的所有成員,是面向?qū)ο?/p>

的一個(gè)重要特征,但是破壞了封裝性;重載和動(dòng)態(tài)聯(lián)編都是面向?qū)ο蟮牧硪粋€(gè)特點(diǎn)

——多態(tài)性。

I2^設(shè)有定義inta=l;floatf=1.2;charc='a,;,則下列表示錯(cuò)誤的是

A、++a;

B、f-;

C、c++;

D、8++;

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

知識(shí)點(diǎn)解析:++、一一運(yùn)算符不能用于常量表達(dá)式。

13、下列程序的運(yùn)行結(jié)果為#include<iostream.h>voidmain(){inta=2;inib=a

+1;cout<<a/b<<endl;)

A、0.66667

B、0

C、0.7

D、0.66666666...

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

知識(shí)點(diǎn)解析:表達(dá)式值的類型是由操作數(shù)的類型決定的,因?yàn)楸绢}的兩個(gè)數(shù)都是

int型的,所以得出的結(jié)果也為int型,即去掉小數(shù)點(diǎn)后的部分,只取商的整數(shù)部

分。

14、設(shè)inta=l,b=2;,則(a++)+b和a+++b這兩個(gè)表達(dá)式的值分別為

A、3,3

B、3,4

C、4,3

D、4,4

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

知識(shí)點(diǎn)解析:單目的什運(yùn)算優(yōu)先級(jí)高于雙目的+運(yùn)算,不過抖的結(jié)合性是自右向

左的,而十是自左向右的,所以上面的兩個(gè)表達(dá)式都是先計(jì)算a+b的值之后,a

再自加lo

15、卜,面程序的運(yùn)行結(jié)果為#include<iostreain.h>voidmain(){chara='3';

switch(a){case'3':cout<<"3";case'2':coul<<"2";break;default:cout<<

」”;}}

A、3

B、321

C、31

D、32

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

知識(shí)點(diǎn)解析:本題主要考查的是switch語句的使用,在第一個(gè)case處,因?yàn)闈M足

條件所以輸出字符3,但這個(gè)分支沒有break語句終止,所以會(huì)繼續(xù)執(zhí)行下面的分

支語句,即輸出字符2,這時(shí)出現(xiàn)break語句,結(jié)束整個(gè)語句,即輸出32。

16、有如下數(shù)組聲明:ininum[10];,下標(biāo)值引用錯(cuò)誤的是

A、num|10]

R、nnrn[5]

C、num[3]

D、num|0|

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

知識(shí)點(diǎn)解析:數(shù)組定義中的數(shù)字指的是數(shù)組的大小,而下標(biāo)是從。開始的,所以題

中數(shù)組的最后一個(gè)元素是num[9]。

17、存在定義inta[10],x,*pa;,若pa=&a[0],下列的哪個(gè)選項(xiàng)和其他3個(gè)選項(xiàng)不

是等價(jià)的?

A、x=*pa;

B、x=*(a+1);

C、x=*(pa+1);

D、x=*[1];

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

知識(shí)點(diǎn)解析:本題考查的是數(shù)組和指向數(shù)組的指針之間的關(guān)系,選項(xiàng)A)中x是被

數(shù)組a的第一個(gè)元素賦值,其余的都是被數(shù)組a的第二個(gè)元素賦值。

18、下面程序的運(yùn)行結(jié)果為#inciude<iostream.h>voidswap(int&a,intb){int

temp;temp=a++;a=b;b=temp;}voidmain()inta=2,b=3;swap(a,b);cout<

<a<<";'<<b<<endl;)

A、2,3

B、3,2

C、2,2

D、3,3

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

知識(shí)點(diǎn)解析:本題考查的是引用調(diào)用,因?yàn)楹瘮?shù)swap引用調(diào)用參數(shù)a,所以在

swap函數(shù)中a的變化會(huì)改變主函數(shù)中a的值,即a自加1,但b的值并未改變。

19、一個(gè)函數(shù)功能不太復(fù)雜但要求被頻繁調(diào)用,應(yīng)選用

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

B、重載函數(shù)

C、遞歸函數(shù)

D、嵌套函數(shù)

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

知識(shí)點(diǎn)解析:本題考查的是內(nèi)聯(lián)函數(shù)的使用,它的引入是為了解決程序中函數(shù)調(diào)用

的效率問題,在編譯時(shí),編譯器將程序中出現(xiàn)的內(nèi)聯(lián)函數(shù)的調(diào)用表達(dá)式用內(nèi)聯(lián)函數(shù)

的函數(shù)體來替換。

20、下面關(guān)于C++語言變量的敘述錯(cuò)誤的是

A、C++語言中變量分為auto、static>exten】和register4種存儲(chǔ)類型

B、自動(dòng)變量和外部變量的作用域?yàn)檎麄€(gè)程序

C、內(nèi)部靜態(tài)變量的作用域是定義它的函數(shù)

D、外部靜態(tài)變量的作用域是定義它的文件

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

知識(shí)點(diǎn)解析:自動(dòng)變量是函數(shù)體或分程序內(nèi)定義的變量,它的作用域在所定義的函

數(shù)體內(nèi)或分程序體內(nèi)。

21、為了使類中的某個(gè)成員不能被類的對(duì)象通過成員操作符訪問,則不能把該成員

的訪問權(quán)限定義為

A^public

B、protected

C、private

D、static

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

知識(shí)點(diǎn)解析:本題考查點(diǎn)為類成員的訪問權(quán)限,public關(guān)鍵字修飾的類成員可以被

類的對(duì)象通過成員操作符”.”直接訪問,protected和private則不能,而static不能單

獨(dú)修飾類的成員。

22、在C++語言程序中,對(duì)象之間的相互通信通過

A、繼承實(shí)現(xiàn)

B、調(diào)用成員函數(shù)實(shí)現(xiàn)

C、封裝實(shí)現(xiàn)

D、函數(shù)重載實(shí)現(xiàn)

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

知識(shí)點(diǎn)解析:對(duì)象屬于某個(gè)已知的類,是類的實(shí)例,對(duì)象之間通信實(shí)際上就是通過

函數(shù)傳遞信息,封裝是巴數(shù)據(jù)和操作結(jié)合在一起,繼承是對(duì)于類的方法的改變和補(bǔ)

充,重載是多態(tài)性之一。

23、類的析構(gòu)函數(shù)是在什么時(shí)候調(diào)用的?

A、類創(chuàng)建時(shí)

B、創(chuàng)建對(duì)象時(shí)

C、刪除對(duì)象時(shí)

D、不自動(dòng)調(diào)用

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

知識(shí)點(diǎn)解析:析構(gòu)函數(shù)可以被函數(shù)調(diào)用,也可以系統(tǒng)調(diào)用:函數(shù)體內(nèi)的對(duì)象在函數(shù)

結(jié)束時(shí)調(diào)用析構(gòu)函數(shù)和使用delete釋放對(duì)象所占有用的資源。

24、通??截悩?gòu)造函數(shù)的參數(shù)是

A、某個(gè)對(duì)象名

B、某個(gè)對(duì)象的成員名

C、某個(gè)對(duì)象的引用名

D、某個(gè)對(duì)象的指針名

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

知識(shí)點(diǎn)解析:復(fù)制初始叱構(gòu)造函數(shù)的作用是用一個(gè)已知的對(duì)象來初始化一個(gè)被創(chuàng)建

的同類的對(duì)象,該函數(shù)只有一個(gè)參數(shù),并且是對(duì)同類的某個(gè)對(duì)象的引用。

25、下面程序的運(yùn)行結(jié)果為#include<iostream.h>ClassAstaticintn;public:A()

{n=1;}A(intnum)(n=num;Jvoidprint(){cout<<n;J};intA::n=2;voidmain()

{Aa,b(3);a.print();b.print();cout<<endl;)

A、11

B、13

C、23

D、33

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

知識(shí)點(diǎn)解析:本題考查的是靜態(tài)數(shù)據(jù)成員的使用,n為類A的靜態(tài)成員,即為類A

的所有對(duì)象共有的成員,所以,當(dāng)對(duì)象b把n初始化為3時(shí),對(duì)象a的成員n的值

也為3(這兩個(gè)n實(shí)際上是同一個(gè))。

26、下列不是描述類的成員函數(shù)的是

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

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

C、友元函數(shù)

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

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

知識(shí)點(diǎn)解析:友元函數(shù)是獨(dú)立于當(dāng)前類的外部函數(shù),但它可以訪問該類的所有對(duì)象

的成員;拷貝構(gòu)造函數(shù)是使用已存在的對(duì)象初始化正在生成的對(duì)象時(shí)調(diào)用的成員函

數(shù)。

27、繼承機(jī)制的作用是

A、信息隱藏

B、數(shù)據(jù)封裝

C、定義新類

D、數(shù)據(jù)抽象

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

知識(shí)點(diǎn)解析:數(shù)據(jù)封裝就是數(shù)據(jù)抽象,即信息隱藏;而繼承是實(shí)現(xiàn)程序復(fù)用的基

礎(chǔ)。

28、C++語言類體系中,不能被派生類繼承的有

A、轉(zhuǎn)換函數(shù)

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

C、虛函數(shù)

D、靜態(tài)成員函數(shù)

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

知識(shí)點(diǎn)解析:派生類對(duì)象的數(shù)據(jù)結(jié)構(gòu)是由基類中說明的數(shù)據(jù)成員和派生類中說明的

數(shù)據(jù)成員共同構(gòu)成,所以不能繼承基類的構(gòu)造函數(shù),必須重新定義。

29、下面程序的運(yùn)行結(jié)果是#include<iostream.h>classbase{protected:inta;

public:base(){cout<<"0";}};classbase1:virtualbase{public:baseI(){cout<

VT;});classbase2:virtualbase{public:base2(){cout<<"2,';}};classderived:

publicbase1,publicbase2{public:derived(){cout<<"3";}};voidmain()(derive

obj;cout<<endl;}

A、0123

B、3120

C、0312

D、3012

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

知識(shí)點(diǎn)解析:本題考查的是含有虛基類的繼承中構(gòu)造函數(shù)的調(diào)用順序,應(yīng)該先調(diào)用

基類的構(gòu)造函數(shù),接著是按照派生類繼承列表的順序依次調(diào)用虛基類的構(gòu)造函數(shù),

最后調(diào)用派生類自己的溝造函數(shù)。

30、對(duì)于類定義classA{public:virtualvoidfunc1(){)

voidfunc2(){}};classB:publicA{public:voidfunc1(){coui<

<"classBfunc1"<<endl;}virtualvoidfunc2(){cout<<

"classBfunc2"<<endl;});下面正確的敘述是

A、A::func2()和B::funcl()都是虛函數(shù)

A::func2()和B::funcl()都不是虛函數(shù)

C、B::funcl()是虛函數(shù),而A::func2()不是虛函數(shù)

D^B:)不是虛函數(shù),而A::func2()是虛函數(shù)

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

知識(shí)點(diǎn)解析:基類中說明的虛函數(shù),在派生類中自然就是虛函數(shù),所以類B中

funcl()是虛函數(shù);而類A中的func2沒有被關(guān)鍵字virlual修飾,所以不是虛函數(shù)。

31、下面關(guān)于運(yùn)算符重載的描述錯(cuò)誤的是

A、運(yùn)算符重載不能改變操作數(shù)的個(gè)數(shù)、運(yùn)算符的優(yōu)先級(jí)、運(yùn)算符的結(jié)合性和運(yùn)算

符的語法結(jié)構(gòu)

8、不是所有的運(yùn)算符都可以進(jìn)行重載

C、運(yùn)算符函數(shù)的調(diào)用必須使用關(guān)鍵字operator

D、在C++語言中不可通過運(yùn)算符重載創(chuàng)造出新的運(yùn)算符

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

知識(shí)點(diǎn)解析:例如“::”運(yùn)算符就不能被重載;通過重載可以創(chuàng)造新的運(yùn)算方式,但是

不能臆造新的運(yùn)算符;定義的時(shí)候必須使用關(guān)鍵字operator,而調(diào)用時(shí)可直接使用運(yùn)

算符。

32、與語句cout<<endl;不等價(jià)的是

A、cout<V'\n';

B、cout<V'\12';

C、cout<<,\xA,;

D、cout<V'\0';

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

知識(shí)點(diǎn)解析:題干表示的是回車換行,選項(xiàng)A),選項(xiàng)B)和選項(xiàng)C)都表示回車換

行。而選項(xiàng)D)是字符串的結(jié)尾標(biāo)志。

33、下面程序的運(yùn)行結(jié)果是#include<iostream.h>intfun(inta[],intn){intresult=

1;for(inti=l;i<n;i++)result=result*a[i];returnresult;}voidmain(){inia[3]=

{3,4,5};cout

A、12

B、15

C、20

D、60

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

知識(shí)點(diǎn)解析:for循環(huán)執(zhí)行2次,所以第一次for循環(huán)為result=l*a[l]=4,第二

次for循環(huán)為result=4*a[2]=20。

34、F面程序的運(yùn)行結(jié)果是#includc<ioslieain.li>voidinaiii(){inti=I;while(i<

=8)if(++i%3!=2)continue;elsecout<<i;)

A、25

B、36

C、258

D、369

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

知識(shí)點(diǎn)解析:應(yīng)該先做++運(yùn)算,然后進(jìn)行%運(yùn)算,最后比較不等式,實(shí)際上最后

輸出的結(jié)果就是被3除,余數(shù)為2的不大于8的數(shù)。

35、下列程序的運(yùn)行結(jié)果為#inciude<iostream.h>template<classTT>classFF

{TTal,a2,a3;public:FF(TTbl,TTb2,TTb3){al=bl;a2=b2;a3=b3;}TTSum()

{returnal+a2+a3;}};voidmain(){FF<int>x(int(l.l),2,3),y(int(4.2),5,6);cout

<<x.Sum()<<**<<y.Sum()<<endl;)

A、6.115.2

B、615

C、615.2

D、6.115

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

知識(shí)點(diǎn)解析:本題考查模板函數(shù)的應(yīng)用,表達(dá)式int(l.l)和血(4.2)是將1.1和4.2

強(qiáng)制轉(zhuǎn)換為整型。

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

分。)

36、冒泡排序算法在最好的情況下的元素交換次數(shù)為。

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

知識(shí)點(diǎn)解析:根據(jù)冒泡排序算法思想可知,若待排序的初始序列為“正序”序列,則

只需進(jìn)行一趟排序,在排序過程中進(jìn)行n-1次關(guān)鍵字間的比較,且不移動(dòng)和交換記

錄,這種情況是冒泡排序的最好情況,故冒泡排序算法在最好的情況下的元素交換

次數(shù)為0。

37、在最壞情況下,堆排序需要比較的次數(shù)為o

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

知識(shí)點(diǎn)解析:在最壞情況下,堆排序、需要比較的次數(shù)是O(nlog2n)。

38、若串s二"MathTypes”,則其子串的數(shù)目是。

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

知識(shí)點(diǎn)解析:串s中共有9個(gè)字符,由于串中字符各不相同,則其子串中有0個(gè)字

符的1個(gè)(空串),1個(gè)字符的9個(gè),2個(gè)字符的8個(gè),3個(gè)字符的7個(gè),4個(gè)字符的

6個(gè),5個(gè)字符的5個(gè),6個(gè)字符的4個(gè),7個(gè)字符的3個(gè),8個(gè)字符的2個(gè),9個(gè)

字符的1個(gè),共有1+2+3十4+5+6+7+8+9+1=46。

39、在軟件生命周期的各個(gè)階段都會(huì)發(fā)生一系列的文件,如手冊(cè)、數(shù)據(jù)和程序等,

它們總稱為。

標(biāo)準(zhǔn)答案:軟件配置

知識(shí)點(diǎn)解析:在軟件生命周期的各個(gè)階段會(huì)產(chǎn)生一系列的文件,包括報(bào)告、數(shù)據(jù)和

程序,它們的總稱為軟件配置。軟件配置具有時(shí)間和形態(tài)特征,它是軟件以某種形

態(tài)在某一具體時(shí)間的存在。其形態(tài)可表現(xiàn)為兩種形式,即可執(zhí)行形式和不可執(zhí)行形

式。

40、關(guān)系數(shù)據(jù)庫的關(guān)系演算語言是以為基礎(chǔ)的DML語言。

標(biāo)準(zhǔn)答案:謂詞演算

知識(shí)點(diǎn)解析:關(guān)系數(shù)據(jù)庫中的關(guān)系演算包括元組關(guān)系演算和域關(guān)系演算。二者都是

由原子公式組成的公式。而這些關(guān)系演算都是以數(shù)理邏輯中的謂詞演算為基礎(chǔ)的。

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

41、函數(shù)定義的格式是_____函數(shù)名(形式參數(shù)表)函數(shù)體。

標(biāo)準(zhǔn)答案:返回類型

知識(shí)點(diǎn)解析:本題考察基本的函數(shù)定義格式。

42、語句序列l(wèi)ongx;x=0L;可用一個(gè)語句表示為。

標(biāo)準(zhǔn)答案:longx=0L;

知識(shí)點(diǎn)解析:變量的聲明和賦值可以分別進(jìn)行也可以同時(shí)進(jìn)行。分別進(jìn)行時(shí)稱為賦

值,同時(shí)進(jìn)行是稱為初始化。

43、在C++中的實(shí)型數(shù)據(jù)分為三種類型,即單精度float、雙精度double和

標(biāo)準(zhǔn)答案:長雙精度longdouble

知識(shí)點(diǎn)解析:長精度類型一般用于高精度的科學(xué)運(yùn)算。

44、若a.b和C均是ini型變量,則表達(dá)式a=(b=4)+(c=2)執(zhí)行后,a的值為

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

知識(shí)點(diǎn)解析:本題考察運(yùn)算優(yōu)先級(jí)問題,從右向左,先括號(hào)后乘除,隨后加減,這

是基本的運(yùn)算規(guī)則。

45、多態(tài)性分兩類:編譯時(shí)的多態(tài)性和o

標(biāo)準(zhǔn)答案:運(yùn)行時(shí)的多杰性

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

46、下列程序的輸出結(jié)果是o#include<iostrcam.h>template<classT>T

max(Tx[],inin){inti;Tmaxv=x[01;fbr(i=l;i<n;i++)if(maxv<x[il)maxv=x[i];return

maxv;|voidniain(){inta口二{3,2,7,6,8,9};doubleb[]={1.2,3.4,2.5,7.3,6.8);cout<<

max(a,4)<<max(b,3)<<endl;}

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

知識(shí)點(diǎn)解析:函數(shù)的功能是求出數(shù)組中指定范圍的元素中的最大值。所以在a數(shù)組

中前四個(gè)數(shù)據(jù)中最大值為7,數(shù)組b中前3個(gè)元素中最大值為3.4。

47>下列程序的運(yùn)行結(jié)果是_____o#include<iostream.h>classBase{public:

virtualvoidfunc(inti){cout<<"classBase:n<<i<<endl;)};classDerived:public

Base{public:voidfunc(doubled){cout<<nclassDerived:n<<d<<endl;});void

main(){Basea,*p=a;Derivedb;p=&b;(*p).func(3.3);}

標(biāo)準(zhǔn)答梟:classBase:3

知識(shí)點(diǎn)解析:題中基類和派生類中有同名函數(shù),但是參數(shù)不同。派生關(guān)系中,只有

在函數(shù)類型、函數(shù)名和參數(shù)個(gè)數(shù)、參數(shù)類型完全相同時(shí),才表現(xiàn)多態(tài)性。本題中參

數(shù)不同,編譯器便認(rèn)為是兩個(gè)完全不同的函數(shù)。通過基類的指針指向派生類對(duì)象

時(shí),該指針只能訪問到派生類中具有多態(tài)性的成員函數(shù),而與基類無關(guān)的函數(shù)是無

法通過基類指針來訪問的。故調(diào)用的是base類的func函數(shù),系統(tǒng)將3.3強(qiáng)制轉(zhuǎn)化

為整型數(shù)3。如果將派生類中的func的形參改為inI型,則執(zhí)行的就會(huì)是派生類的

func函數(shù),此時(shí)表現(xiàn)為多態(tài)。

48、下列程序的輸出結(jié)果是_____o#include<iostream.h>intCalcDigital(char*str)

{if(str==NULL)return0;intnum_of_digital=0;fbr(inti=0;str{i]!=0x0;i++)if(str|i|<

='9'&&str[i]>=,0,)niimof^digital-H-;return匚digital;}voidmain(){char

a[]="Beijing200801ympic";cout<<CalcDigital(a)<<cndl;}

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

知識(shí)點(diǎn)解析:分析本題可知函數(shù)功能為計(jì)算一個(gè)字符串中包含的數(shù)字個(gè)數(shù)。字符串

中包含的數(shù)字有2008,故輸出為4。

49、F列程序的輸出結(jié)果是o#include<iostream>usingnamespacestd;

classbase{public:intn;base(intx){n=x;)virtualvoidset(intm){n=m;cout<<n<

V'';}};classdcrivcA:publicbase{public:dcrivcA(intx):basc(x){}voidsct(int

m){n+=m;coutVVnVV'';}};classderiveB:publicbase{public:deriveB(int

x):base(x){)voidset(intm){n+=m;cout<<n<<5?}};intmain(){deriveAd1(1);

dcrivcB.d2(3);basc*pbasc;pbase=&d1;phase->sct(l);pbase=&d2;phase->sct(2);

return0;}

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

知識(shí)點(diǎn)解析:本題考核虛函數(shù)的定義和調(diào)用。在C++中,一個(gè)基類指針(或引用)可

以用來指向它的派生類對(duì)象,而且通過這樣的指針(或引用)調(diào)用虛函數(shù)時(shí),被調(diào)用

的是該指針(或引用)實(shí)際所指向的時(shí)象類的那個(gè)重定義版本。題中基類成員函數(shù)

set()被定義成虛函數(shù),而且其派生類deriveA和deriveB都有函數(shù)set()的重定義版

本,所以通過指針phase的兩次調(diào)用分別調(diào)用的是派生類deriveA和deriveB中定

義的版本,即輸出25。

50、下列程序編譯錯(cuò)誤,是由于劃線處缺少某個(gè)語句,該語句是。include

<iostrcam.h>classA{private:intnuml;public:A():numl(0){}A(inti):numl(i){)

classB{private:intnum2;public:B():num2(0){)B(inti):num2(i){)intmy_math(A

obj1,Bobj2););intB::my_math(Aobj1,Bobj2){retum(obj1.numl+obj2.num2);}void

main(void){Aobjl(4);Bobj,obj2(5);cout<<uobj1+obj2:"<<

obj.my_math(obj1,obj2);}

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

知識(shí)點(diǎn)解析:在B類中出現(xiàn)了對(duì)A類中私有成員numl的直接訪問,這是不允許

的。所以必須要把類B設(shè)成類A的友員才可以通過編譯。

51、在C++語言的結(jié)構(gòu)化程序設(shè)計(jì)中,是程序的基本組成單元;在C++

語言的面向?qū)ο笤O(shè)計(jì)框架中,是程序的基本組成單元。

標(biāo)準(zhǔn)答案:函數(shù);類

知識(shí)點(diǎn)解析:函數(shù)是程序功能實(shí)現(xiàn)的主要方式,是實(shí)現(xiàn)結(jié)構(gòu)化設(shè)計(jì)(將程序分成若

干個(gè)函數(shù)實(shí)現(xiàn))的基本組成;類是一種用戶定義的類型,是實(shí)現(xiàn)數(shù)據(jù)封裝和數(shù)據(jù)抽象

的工具,是面向?qū)ο笤O(shè)計(jì)中的基本組成。

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

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

45分。)

1、下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是

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

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

C、二叉樹

D、帶鏈棧

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

知識(shí)點(diǎn)解析:根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后關(guān)系的復(fù)雜程度,一?般將數(shù)據(jù)結(jié)

構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。線性結(jié)構(gòu)表示數(shù)據(jù)元素之間為一對(duì)一的

關(guān)系,非線性結(jié)構(gòu)表示數(shù)據(jù)元素之間為一對(duì)多或者多對(duì)一的關(guān)系。根據(jù)各種結(jié)構(gòu)的

定義可知,二叉樹是一種非線性結(jié)構(gòu)。

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

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

B、棧

C、隊(duì)列

D、二叉樹

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

知識(shí)點(diǎn)解析:棧是限定只在一端進(jìn)行插入與刪除的線性表。通常稱插入、刪除的這

一端為棧頂,另一端為或底。棧頂元素總是最后被插入的元素,也是最先被刪除的

元素;棧底元素總是最先被插入的元素,也是最后才能被刪除的元素。棧是按照

“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。

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

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

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

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

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

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

知識(shí)點(diǎn)解析:循環(huán)隊(duì)列是將順序隊(duì)列首尾相連形成的,隨著插入元素或刪除元素的

進(jìn)行,其隊(duì)頭指針及隊(duì)尾指針是在不斷變化的,有時(shí)可能會(huì)出現(xiàn)隊(duì)頭指針大于隊(duì)尾

指針的情況,也可能是隊(duì)尾指針大于隊(duì)頭指針,故答案為D。

4、算法的空間復(fù)雜度是指

A、算法在執(zhí)行過程中所需要的計(jì)算機(jī)存儲(chǔ)空間

B、算法所處理的數(shù)據(jù)量

C、算法程序中的語句或命令條數(shù)

D、算法在執(zhí)行過程中所需要的臨時(shí)工作單元數(shù)

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

知識(shí)點(diǎn)解析:算法在執(zhí)行過程中所需要的臨時(shí)工作單元數(shù)

5、軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是

A、低內(nèi)聚低耦合

B、高內(nèi)聚低耦合

C、高內(nèi)聚低耦合

D、局內(nèi)聚同耦合

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

知識(shí)點(diǎn)解析:模塊劃分應(yīng)考慮的因素包括模塊之間的耦合和內(nèi)聚。一般來說,要求

模塊之間的耦合盡可能低,即模塊盡可能獨(dú)立;要求模塊的內(nèi)聚程度盡可能高,即

遵循高內(nèi)聚、低耦合的原則。

6、下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是

A、可封裝

B、自頂向下

C、模塊化

D、逐步求精

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

知識(shí)點(diǎn)解析:模塊化、自頂向下和逐步求精都是結(jié)構(gòu)化程序設(shè)計(jì)的原則;可封裝是

面向?qū)ο蟪绦蛟O(shè)計(jì)原則。

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

A、操作系統(tǒng)的一部分

B、在操作系統(tǒng)支持下的系統(tǒng)軟件

C、一種編譯系統(tǒng)

D、一種操作系統(tǒng)

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

知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理系統(tǒng)是指位于用戶與操作系統(tǒng)之間的數(shù)據(jù)管理軟件。數(shù)據(jù)

庫管理系統(tǒng)是為數(shù)據(jù)庫建立、使用和維護(hù)而配置的軟件。

8、在E-R圖中,用來表示實(shí)體聯(lián)系的圖形是

A、橢圓形

B、矩形

C、矩形

D、三角形

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

知識(shí)點(diǎn)解析:E-R圖中用矩形表示實(shí)體(等同于表),用橢圓形表示實(shí)體的屬性(等同

于表中的字段),用菱形表示實(shí)體關(guān)系(等同于外鍵)。

9、E-R圖中用矩形表示實(shí)體(等同于表),用橢圓形表示實(shí)體的屬性(等同于表中的

字段),用菱形表示實(shí)體關(guān)系(等同于外鍵)。

A、FA必須定義在FB之前

B、FB必須定義在FA之前

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

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

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

知識(shí)點(diǎn)解析:一個(gè)函數(shù)A要調(diào)用另外一個(gè)函數(shù)B,則B的函數(shù)原型聲明一定要在

A之前,但定義在前或者后都沒有關(guān)系。

10、有如下兩個(gè)類的定義:classAA{);classBB{AAvl,*v2;BBv3:

int*v4:);其中有一個(gè)成員變量的定義是錯(cuò)誤的,這個(gè)變量是

A、vl

B、v2

C、v3

D、v4

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

知識(shí)點(diǎn)。析:在本類的數(shù)據(jù)成員定義中,不能定義本類的對(duì)象,否則就出現(xiàn)了遞歸

定義,這是不允許的。

11、有如下類定義:classXX(intxdata:public:xx(intn=0):xdata(n){}}class

YY:publicXX{intydata;public:YY(intm=0,intn=0):xx(m),ydata(n){}{;

YY類的對(duì)象包含的數(shù)據(jù)成員的個(gè)數(shù)是

A、1

B、2

C、3

D、4

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

知識(shí)點(diǎn)解析:派生類繼承基類,繼承了基類的數(shù)據(jù)成員和成員函數(shù),加上派生類自

己新定義的數(shù)據(jù)成員,所以該類應(yīng)該有2個(gè)數(shù)據(jù)成員。

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

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

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

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

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

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

知識(shí)點(diǎn)解析:運(yùn)算符函數(shù)可以重載為成員函數(shù),也可以重載為非成員函數(shù),如重載

為友元函數(shù)。

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

A、模板形參表必須在關(guān)鍵字template之后

B、模板形參表必須在關(guān)鍵字template之后

C、可以用class修飾模板形參

D^可以用typename修飾模板形參

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

知識(shí)點(diǎn)解析:對(duì)函數(shù)模板,模板的一般格式為:templateVtyname類型參數(shù)〉函數(shù)

類型函數(shù)名(形參){函數(shù)體}對(duì)類模板,一般格式為:tcmplatcVcIass類型參數(shù)〉

class類名{...},類型參數(shù)是用一對(duì)<>括起來。

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

A、ios_bas

溫馨提示

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