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

下載本文檔

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

文檔簡介

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

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

10分。)

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

{return(a>=B)?a:b;}下列對函數(shù)模板Max的調(diào)用中錯誤的是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

知識點解析:暫無解析

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

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

B、邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)

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

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

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

知識點解析:數(shù)據(jù)的存儲結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形

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

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

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

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

B、符號名的命名只要符合語法

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

D、程序的注釋可有可無

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

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

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

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

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

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

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

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

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

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

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

單元的地址,所以大小一般都是4個字節(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

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

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

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

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

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

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

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

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

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

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

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

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

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

函數(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

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

多值依賴。

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

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

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

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

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

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

知識點解析:暫無解析

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

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

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

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

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

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

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

本題的正確答案為A。

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

A、概要設(shè)計

B、需求分析

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

D、編程調(diào)試

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

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

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

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

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

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

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

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

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

有常對象才能調(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

知識點解析:此題的執(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()會

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

90

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

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

A、const

B、static

C^void

D、class

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

初始化。

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

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

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

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

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

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

知識點解析:C++中函數(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

知識點解析:暫無解析

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

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

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

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

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

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

知識點解析:暫無解析

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

承的規(guī)則()。

A、完全相同

B、完全不同

C^部分相同,部分不同

D、以上都不對

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

知識點解析:暫無解析

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

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

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

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

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

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

知識點解析:暫無解析

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

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

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

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

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

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

知識點解析:暫無解析

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

知識點解析: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

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

28、下列類的定義中,有()處語法錯誤。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

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

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

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

setvalue中對data的賦值是錯誤的。

29、下列類的定義中,有()處語法錯誤。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

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

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

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

setvalue中對data的賦值是錯誤的。

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

知識點解析:暫無解析

31、下列運算符中哪些是不能夠被重載的?

A、

++,一,new,delete?==

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

D^sizeof,new,delete,+,-

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

知識點解析:C++語言中的不能重載的操作符是:和?:。

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

()。

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

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

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

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

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

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

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

33、下列敘述中正確的是

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

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

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

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

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

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

點。

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

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

A、④

B、③

C、@

D、①

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

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

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

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

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

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

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

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

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

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

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

由此可知

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

B、這可能是一個類模板的聲明

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

D、這肯定是一個錯誤的模板聲明

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

知識點解析:類模板說明的一般形式是:template<類型形參表〉classV類名〉

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

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

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

分。)

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

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

知識點解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(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ù)表示成二維表,每一個二維表稱為。

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

知識點解析:暫無解析

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

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

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

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

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

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

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

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

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

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

知識點解析:常用的存儲表示方法有4種,順序存儲、鏈?zhǔn)酱鎯?、索引存儲、散?/p>

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

元中。

四、填空題(本題共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

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

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

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

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

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

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

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

知識點解析:多態(tài)性是指一個接口,多種方法。它分為編譯時多態(tài)性和運行時的

多念性。

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

知識點解析:暫無解析

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

標(biāo)準(zhǔ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;}則該程序運

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

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

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

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

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

46、空字符串的長度是o

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

知識點解析:暫無解析

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

和選擇排序等。

標(biāo)準(zhǔ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

知識點解析:本題的關(guān)鍵在于對變量c的賦值運算:

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

指向的對象的成員所用的運算符是【】。

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

知識點解析:本題考查的是使用對象和對象指針訪問成員所使用的符號的不同,考

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

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

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

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

知識點解析:運算符重我。

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

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

70分。)

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

A、32

B、31

C、16

D、15

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

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

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

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

節(jié)點。

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

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

A、bdgcefha

B、gdbecfha

C、bdgaechf

D、gdbehfca

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

知識點解析:前序遍歷的第一個節(jié)點a為樹的根節(jié)點;中序遍歷中a的左邊的節(jié)點

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

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

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

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

A、棧

B、堆

C、數(shù)組

D、鏈表

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

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

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

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

點。

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

A、消除軟件危機

B、軟件工程管理

C、程序設(shè)計自動化

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

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

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

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

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

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

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

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

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

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

D、計算機的并行處理能力

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

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

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

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

A、實驗性運行軟件

B、證明軟件正確

C、找出軟件中的全部錯誤

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

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

知識點解析:使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗

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

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

確功能。

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

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

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

C、數(shù)據(jù)項

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

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

知識點露析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項;由若干數(shù)據(jù)項組成數(shù)據(jù)元素;而數(shù)據(jù)是

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

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

8、索引屬于

A、模式

B、內(nèi)模式

C、外模式

D、概念模式

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

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

數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲的文件結(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ù)據(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ù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)是數(shù)據(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++語言的描述錯誤的是

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

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

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

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

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

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

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

——多態(tài)性。

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

A、++a;

B、f-;

C、c++;

D、8++;

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

知識點解析:++、一一運算符不能用于常量表達(dá)式。

13、下列程序的運行結(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

知識點解析:表達(dá)式值的類型是由操作數(shù)的類型決定的,因為本題的兩個數(shù)都是

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

分。

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

A、3,3

B、3,4

C、4,3

D、4,4

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

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

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

再自加lo

15、卜,面程序的運行結(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

知識點解析:本題主要考查的是switch語句的使用,在第一個case處,因為滿足

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

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

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

A、num|10]

R、nnrn[5]

C、num[3]

D、num|0|

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

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

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

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

是等價的?

A、x=*pa;

B、x=*(a+1);

C、x=*(pa+1);

D、x=*[1];

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

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

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

18、下面程序的運行結(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

知識點解析:本題考查的是引用調(diào)用,因為函數(shù)swap引用調(diào)用參數(shù)a,所以在

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

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

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

B、重載函數(shù)

C、遞歸函數(shù)

D、嵌套函數(shù)

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

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

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

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

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

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

B、自動變量和外部變量的作用域為整個程序

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

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

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

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

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

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

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

A^public

B、protected

C、private

D、static

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

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

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

獨修飾類的成員。

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

A、繼承實現(xiàn)

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

C、封裝實現(xiàn)

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

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

知識點解析:對象屬于某個已知的類,是類的實例,對象之間通信實際上就是通過

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

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

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

A、類創(chuàng)建時

B、創(chuàng)建對象時

C、刪除對象時

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

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

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

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

24、通常拷貝構(gòu)造函數(shù)的參數(shù)是

A、某個對象名

B、某個對象的成員名

C、某個對象的引用名

D、某個對象的指針名

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

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

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

25、下面程序的運行結(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

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

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

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

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

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

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

C、友元函數(shù)

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

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

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

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

數(shù)。

27、繼承機制的作用是

A、信息隱藏

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

C、定義新類

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

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

知識點解析:數(shù)據(jù)封裝就是數(shù)據(jù)抽象,即信息隱藏;而繼承是實現(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ù)據(jù)結(jié)構(gòu)是由基類中說明的數(shù)據(jù)成員和派生類中說明的

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

29、下面程序的運行結(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

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

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

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

30、對于類定義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ù),在派生類中自然就是虛函數(shù),所以類B中

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

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

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

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

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

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

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

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

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

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

算符。

32、與語句cout<<endl;不等價的是

A、cout<V'\n';

B、cout<V'\12';

C、cout<<,\xA,;

D、cout<V'\0';

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

知識點解析:題干表示的是回車換行,選項A),選項B)和選項C)都表示回車換

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

33、下面程序的運行結(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

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

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

34、F面程序的運行結(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

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

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

35、下列程序的運行結(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ù)的應(yīng)用,表達(dá)式int(l.l)和血(4.2)是將1.1和4.2

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

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

分。)

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

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

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

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

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

次數(shù)為0。

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

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

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

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

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

知識點解析:串s中共有9個字符,由于串中字符各不相同,則其子串中有0個字

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

6個,5個字符的5個,6個字符的4個,7個字符的3個,8個字符的2個,9個

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

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

它們總稱為。

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

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

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

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

式。

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

標(biāo)準(zhǔ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ù)定義格式。

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

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

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

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

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

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

知識點解析:長精度類型一般用于高精度的科學(xué)運算。

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

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

知識點解析:本題考察運算優(yōu)先級問題,從右向左,先括號后乘除,隨后加減,這

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

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

標(biāo)準(zhǔ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ù)的功能是求出數(shù)組中指定范圍的元素中的最大值。所以在a數(shù)組

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

47>下列程序的運行結(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ù),但是參數(shù)不同。派生關(guān)系中,只有

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

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

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

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

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

func函數(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ù)功能為計算一個字符串中包含的數(shù)字個數(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ào)用。在C++中,一個基類指針(或引用)可

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

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

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

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

義的版本,即輸出25。

50、下列程序編譯錯誤,是由于劃線處缺少某個語句,該語句是。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;

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

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

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

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

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

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

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

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

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

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

45分。)

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

A、循環(huán)隊列

B、循環(huán)隊列

C、二叉樹

D、帶鏈棧

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

知識點解析:根據(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ù)元素之間為一對一的

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

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

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

A、循環(huán)隊列

B、棧

C、隊列

D、二叉樹

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

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

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

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

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

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

A、隊頭指針是固定不變的

B、隊頭指針一定大于隊尾指針

C、隊頭指針一定小于隊尾指針

D、隊頭指針可以大于隊尾指針,也可以小于隊尾指針

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

A、可封裝

B、自頂向下

C、模塊化

D、逐步求精

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

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

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

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ù)據(jù)庫管理系統(tǒng)是指位于用戶與操作系統(tǒng)之間的數(shù)據(jù)管理軟件。數(shù)據(jù)

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

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

A、橢圓形

B、矩形

C、矩形

D、三角形

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

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

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

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

字段),用菱形表示實體關(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ù)A要調(diào)用另外一個函數(shù)B,則B的函數(shù)原型聲明一定要在

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

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

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

A、vl

B、v2

C、v3

D、v4

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

知識點。析:在本類的數(shù)據(jù)成員定義中,不能定義本類的對象,否則就出現(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類的對象包含的數(shù)據(jù)成員的個數(shù)是

A、1

B、2

C、3

D、4

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

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

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

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

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

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

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

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

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

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

為友元函數(shù)。

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

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

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

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

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

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

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

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

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

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

A、ios_bas

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論