全國(guó)計(jì)算機(jī)二級(jí)C 考題真題及答案_第1頁(yè)
全國(guó)計(jì)算機(jī)二級(jí)C 考題真題及答案_第2頁(yè)
全國(guó)計(jì)算機(jī)二級(jí)C 考題真題及答案_第3頁(yè)
全國(guó)計(jì)算機(jī)二級(jí)C 考題真題及答案_第4頁(yè)
全國(guó)計(jì)算機(jī)二級(jí)C 考題真題及答案_第5頁(yè)
已閱讀5頁(yè),還剩138頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2010年3月考試真題(第31次)

1.數(shù)據(jù)流程圖(DFD圖)是。

A、軟件概要設(shè)計(jì)的工具B、軟件詳細(xì)設(shè)計(jì)的工具

C、結(jié)構(gòu)化方法的需求分析工具D、面向?qū)ο蠓椒ǖ男枨蠓治龉ぞ?/p>

常見(jiàn)的需求分析方法有:結(jié)構(gòu)化分析方法和面向?qū)ο蟮姆治龇椒?。結(jié)構(gòu)化分析就是使用數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、結(jié)構(gòu)

化英語(yǔ)、判定表和判定樹(shù)等工具,來(lái)建立一種新的、稱(chēng)為結(jié)構(gòu)化規(guī)格說(shuō)明的目標(biāo)文檔。故本題答案為C。

2.軟件(程序)調(diào)試的任務(wù)是。

A、診斷和改正程序中的錯(cuò)誤B、盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤

C、發(fā)現(xiàn)并改正程序中的所有錯(cuò)誤D、確定程序中錯(cuò)誤的性質(zhì)

程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。它與軟件測(cè)試不同,軟件測(cè)試是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。先要發(fā)現(xiàn)軟件的錯(cuò)

誤,然后借助于一定的調(diào)試工具去執(zhí)行找出軟件錯(cuò)誤的具體位置。軟件測(cè)試貫穿整個(gè)軟件生命期,調(diào)試主要在開(kāi)發(fā)階段。故

本題答案為A。

3.軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是。

A、編輯軟件B、操作系統(tǒng)C、教務(wù)管理系統(tǒng)D、瀏覽器

軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件、支撐軟件(或工具軟件)。應(yīng)用軟件是為解決特定領(lǐng)域的應(yīng)用而開(kāi)發(fā)的軟件。例如,

事務(wù)處理軟件,工程與科學(xué)計(jì)算軟件,實(shí)時(shí)處理軟件,嵌入式軟件,人工智能軟件等應(yīng)用性質(zhì)不同的各種軟件。系統(tǒng)軟件是計(jì)算

機(jī)管理自身資源,提高計(jì)算機(jī)使用效率并為計(jì)算機(jī)用戶提供各種服務(wù)的軟件。如操作系統(tǒng),編譯程序,匯編程序,網(wǎng)絡(luò)軟件,數(shù)

據(jù)庫(kù)管理系統(tǒng)等,所以選項(xiàng)B屬于系統(tǒng)軟件。故本題答案為B。

4.軟件生命周期可分為定義階段,開(kāi)發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計(jì)屬于?

A、定義階段B、開(kāi)發(fā)階段C、維護(hù)階段D、上述三個(gè)階段

軟件生命周期可分為軟件定義、軟件開(kāi)發(fā)及軟件運(yùn)行維護(hù)三個(gè)階段。軟件開(kāi)發(fā)階段包括概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試四個(gè)活

動(dòng)階段。故本題答案為B。

5.下列敘述中正確的是.

A、對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為n

B、對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(n/2)

C、對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為Ogan)

D、對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為Slogan)

對(duì)于長(zhǎng)度為n的有序線性表,在最壞情況下,二分查找只需要比較10g2n次,而順序查找需要比較n次。二分法查找只適用于順序

存儲(chǔ)的有序表,如果采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),也只能用順序查找,所以選項(xiàng)A是正確的。

故本題答案為A。

6.有兩個(gè)關(guān)系R和T如下:

A、選擇B、投影C、交1)、并

從關(guān)系中找出滿足給定條件的元組的操作稱(chēng)為選擇。選擇是從行的角度進(jìn)行的運(yùn)算,即從水平方向抽取記錄。由圖可知關(guān)系R通過(guò)

運(yùn)算得到關(guān)系T,關(guān)系T與關(guān)系R相比,屬性的個(gè)數(shù)沒(méi)有發(fā)生變化,記錄的條數(shù)發(fā)生了變化。因此所使用的運(yùn)算應(yīng)該是選擇。故

本題答案為A。

7.算法的時(shí)間復(fù)雜度是指。

A、算法的執(zhí)行時(shí)間B、算法所處理的數(shù)據(jù)量C、算法程序中的語(yǔ)句或指令條數(shù)

D、算法在執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)

所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量。為了能夠比較客觀地反映出個(gè)算法的效率,在度量?個(gè)算法的工

作量時(shí),不僅應(yīng)該與所使用的計(jì)算機(jī)、程序設(shè)計(jì)語(yǔ)言以及程序編制者無(wú)關(guān),而且還應(yīng)該與算法實(shí)現(xiàn)過(guò)程中的許多細(xì)節(jié)無(wú)關(guān)。為此,

可以用算法在執(zhí)行過(guò)程中所需基本運(yùn)算的執(zhí)行次數(shù)來(lái)度量算法的工作量。故本題答案為D。

8.數(shù)據(jù)庫(kù)設(shè)計(jì)中,用E-R圖來(lái)描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,它屬于數(shù)據(jù)庫(kù)設(shè)計(jì)的o

A、需求分析階段B、邏輯設(shè)計(jì)階段C、概念設(shè)計(jì)階段D、物理設(shè)計(jì)階段

E-R圖是E-R模型的一種非常直觀的圖的形式表示,它描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,它是數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段的

工具。故本題答案為C。

9.在學(xué)生管理的關(guān)系數(shù)據(jù)庫(kù)中,存取一個(gè)學(xué)生信息的數(shù)據(jù)單位是___.

A、文件B、數(shù)據(jù)庫(kù)C、字段D、記錄

實(shí)體是概念世界中的基本單位,屬性附屬于實(shí)體,它本身并不構(gòu)成獨(dú)立單位。屬性有屬性域,每個(gè)實(shí)體可取屬性域內(nèi)的值。一個(gè)

實(shí)體的所有屬性取值組成了一個(gè)值集叫元組(或稱(chēng)記錄)。在概念世界中,可以用元組表示實(shí)體,也可用它區(qū)別不同的實(shí)體。所

以在學(xué)生管理的關(guān)系數(shù)據(jù)庫(kù)中,存取一個(gè)學(xué)生信息的數(shù)據(jù)單位是元組(或記錄)。故本題答案為D。

10.數(shù)據(jù)庫(kù)管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語(yǔ)言是?

A、數(shù)據(jù)定義語(yǔ)言B、數(shù)據(jù)管理語(yǔ)言C、數(shù)據(jù)操縱語(yǔ)言D、數(shù)據(jù)控制語(yǔ)言

數(shù)據(jù)定義語(yǔ)言(DDL):該語(yǔ)言負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建。

數(shù)據(jù)操縱語(yǔ)言(DML):該語(yǔ)言負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢(xún)及增、冊(cè)h改等操作。

數(shù)據(jù)控制語(yǔ)言(DCL):該語(yǔ)言負(fù)責(zé)數(shù)據(jù)完整性、安全性的定義與檢杳以及并發(fā)控制、故障恢復(fù)等功能。

故本題答案為A。

11.有如下兩個(gè)類(lèi)定義

classXX{

private:

doublexl;

protected:

doublex2;

public:

doublex3;

);

classYY:protectedXX{

private:

doubleyl;

protected:

doubley2;

public:

doubley3;

);

在類(lèi)YY中保護(hù)成員變量的個(gè)數(shù)是_____.

A、1B、2C、3D、4

本題主要考查了類(lèi)的繼承與派生。

類(lèi)的繼承方式有三種:公有(public)繼承、保護(hù)(protected)繼承和私有(private)繼承。當(dāng)派生類(lèi)從基類(lèi)保護(hù)繼承時(shí),

基類(lèi)的公有成員和保護(hù)成員在派生類(lèi)中都為保護(hù)成員。本題派生類(lèi)YY從基類(lèi)XX保護(hù)繼承,因此基類(lèi)XX的公有成員x3和保護(hù)成員x2

都成為派生類(lèi)YY的保護(hù)成員,再加上派生類(lèi)YY自身的保護(hù)成員y2,因此類(lèi)YY中有3個(gè)保護(hù)成員。故本題答案為C。

12.在C++中,cin是一個(gè)。

A、類(lèi)B、對(duì)象C、模板D、函數(shù)

本題主要考查了I/O流。

在C++中,數(shù)據(jù)的輸入與輸出是通過(guò)I/O流來(lái)實(shí)現(xiàn),cin和cout是預(yù)定義的流類(lèi)對(duì)象。

故本題答案為B。

13.若x和y是程序中的兩個(gè)整型變量,則下列if語(yǔ)句中正確的是。

A、if(x==0)y=l;elsey=2;B、if(x==0)theny=lelsey=2;

C>if(x==0)y=lelsey=2;I)、ifx==0y=l;elsey=2;

本題主要考查了if語(yǔ)句。

if語(yǔ)句的語(yǔ)法形式為:

if(表達(dá)式)語(yǔ)句1

else語(yǔ)句2

在C++中,if語(yǔ)句中沒(méi)有then,語(yǔ)句最后必須有一個(gè)分號(hào),因此選項(xiàng)A正確,選項(xiàng)B和選項(xiàng)C錯(cuò)誤;在選項(xiàng)D中,表達(dá)式x==0應(yīng)該

用圓括號(hào)括起來(lái),因此選項(xiàng)D錯(cuò)誤。故本題答案為A。

14.將運(yùn)算符”+〃重載為非成員函數(shù),下列原型聲明中,錯(cuò)誤的是___.

A^MyClockoperator+(MyClock,long):B、MyClockoperator+(MyClock,MyClock);

C、MyClockoperator+(long,long);D、MyClockoperator+(long,MyClock);

本題主要考杳了運(yùn)算符的重載。

運(yùn)算符的重載是針對(duì)新類(lèi)型數(shù)據(jù)的實(shí)際需要,對(duì)原有運(yùn)算符進(jìn)行適當(dāng)?shù)母脑?。一般?lái)講,重載的功能應(yīng)當(dāng)與原有功能類(lèi)似,

不能改變?cè)\(yùn)算符的操作對(duì)象個(gè)數(shù),同時(shí)至少要有一個(gè)操作對(duì)象是自定義類(lèi)型。選項(xiàng)A、選項(xiàng)B和選項(xiàng)D的兩個(gè)參數(shù)中至少有一個(gè)參

數(shù)是自定義類(lèi)型,因此選項(xiàng)A、選項(xiàng)B和選項(xiàng)D正確。選項(xiàng)C中兩個(gè)參數(shù)都是基本數(shù)據(jù)類(lèi)型,沒(méi)有自定義類(lèi)型,因此選項(xiàng)C錯(cuò)誤。

故本題答案是C。

15.要定義整型數(shù)組x,使之包括初值為0的三個(gè)元素,下列語(yǔ)句中錯(cuò)誤的是.

A>intx[3]={0,0,0};intx[]={0);C、staticintx[3]={0};D、intx[]={0,0,0);

本題主要考查了一維數(shù)組的定義與初始化。

一維數(shù)組的定義形式為:

數(shù)據(jù)類(lèi)型數(shù)組名[數(shù)組元素個(gè)數(shù)];

數(shù)組的初始化就是在聲明數(shù)組時(shí)給部分或全部元素賦初值。選項(xiàng)A定義了有?:個(gè)元素的整型數(shù)組x,并初始化三個(gè)元素的值為0,

因此選項(xiàng)A正確;當(dāng)聲明數(shù)組時(shí)沒(méi)有給出數(shù)組元素個(gè)數(shù),但是有初始化列表,數(shù)組元素個(gè)數(shù)由列表中元素個(gè)數(shù)來(lái)確定,因此選項(xiàng)D

正確;選項(xiàng)B沒(méi)有給出數(shù)組元素個(gè)數(shù),并且在初始化列表中只給一個(gè)元素值,因此選項(xiàng)B定義了只有一個(gè)元素的整型數(shù)組,故選項(xiàng)B

錯(cuò)誤;對(duì)于數(shù)值類(lèi)型數(shù)組,如果給定的數(shù)值不夠,則沒(méi)有指定數(shù)值的元素將初始化為0,因此選項(xiàng)C正確。故本題答案為B。

16.卜.列控制格式輸入輸出的操作符中,能夠設(shè)置浮點(diǎn)數(shù)精度的是。

A、setprecisionB、setwC、setfillD、showpoint

本題主要考杳了輸出流的格式控制。

setprecision(intn)用于控制輸出流顯示浮點(diǎn)數(shù)的精度,整數(shù)n代表顯示的浮點(diǎn)數(shù)數(shù)字的個(gè)數(shù)。因此選項(xiàng)A正確。

setw(intn)用于預(yù)設(shè)輸入輸出寬度。

setfill(charc)用于預(yù)設(shè)填充字符。

showpoint用于給浮點(diǎn)數(shù)顯示小數(shù)點(diǎn)和尾部的0。

因此選項(xiàng)B、選項(xiàng)C和選項(xiàng)D不正確。故本題答案為A。

17.若MyTemp是一個(gè)只有一個(gè)虛擬類(lèi)型參數(shù)的類(lèi)模板,且有如下語(yǔ)句序列

MyTemp<double>p2;

MyTemp<long>p3[2];

編譯系統(tǒng)在處理上面的語(yǔ)句序列時(shí),所生成的模板MyTemp的實(shí)例的個(gè)數(shù)是。

A、1B、2C、3D、0

本題主要考核類(lèi)模板。

類(lèi)模板聲明的語(yǔ)法形式為:

template〈模板參數(shù)表>

class類(lèi)名

{類(lèi)成員聲明}

使用類(lèi)模板來(lái)建立對(duì)象時(shí),應(yīng)按如下形式聲明:

類(lèi)名<模板實(shí)參表》對(duì)象名1,…,對(duì)象名n;

在定義對(duì)象的過(guò)程中,編譯系統(tǒng)會(huì)自動(dòng)地根據(jù)需要生成相應(yīng)的類(lèi)定義,這種依據(jù)類(lèi)模板生成類(lèi)定義的過(guò)程稱(chēng)為類(lèi)模板的實(shí)例

化。類(lèi)模板實(shí)例化所生成的每一個(gè)類(lèi)定義就是相應(yīng)類(lèi)模板的一個(gè)實(shí)例,因此類(lèi)模板的實(shí)例個(gè)數(shù)由類(lèi)型參數(shù)的種類(lèi)決定。本題使用

類(lèi)模板MyTemp定義對(duì)象時(shí)指定了兩種類(lèi)型參數(shù):double和long,因此所生成的實(shí)例個(gè)數(shù)是2。故本題答案為B。

18.下列代碼段聲明了3個(gè)類(lèi)

classPerson}};

classStudent:publicPerson{};

classUndergraduate:Student{};

下列關(guān)于這些類(lèi)之間關(guān)系的描述中,錯(cuò)誤的是.。

A、類(lèi)Person是類(lèi)Undergraduate的基類(lèi)B、類(lèi)Undergraduate從類(lèi)Student公有繼承

C^類(lèi)Student是類(lèi)Person的派生類(lèi)D^類(lèi)Undergraduate是類(lèi)Person的派生類(lèi)

本題主要考杳了類(lèi)的繼承與派生。

在C++中,定義派生類(lèi)的一般語(yǔ)法形式為:

class派生類(lèi)名:繼承方式基類(lèi)名1,繼承方式基類(lèi)名2,…,繼承方式基類(lèi)名n

{

派生類(lèi)成員聲明;

);

類(lèi)的繼承方式有三種:公有(public)繼承、保護(hù)(protected)繼承和私有(private)繼承。如果不顯式地給出繼承方式,

缺省的類(lèi)繼承方式是私有(private)繼承。在聲明派生類(lèi)Undergraduate時(shí)缺省繼承方式,因此類(lèi)Undergraduate從類(lèi)Student私

有繼承,故選項(xiàng)B錯(cuò)誤。故本題答案為瓦

19.將前綴運(yùn)算符〃一〃重載為非成員函數(shù),下列原型中,能正確用于類(lèi)中說(shuō)明的是。

A^Decr&,operator一(int);B、Deeroperator一(Decr&,int);

C、friendDecr&operator一(Decr&);D、friendDeeroperator―(Decr&,int);

本題主要考杳了運(yùn)算符的重載。

運(yùn)算符一既可以是前綴運(yùn)算符(前減1),又可以是后綴運(yùn)算符(后減1)。為了區(qū)分這兩種情況,重載這兩個(gè)運(yùn)算符時(shí)必須

在格式上有所區(qū)別:重載后綴一時(shí)必須多一個(gè)虛擬參數(shù):ini。如果將前綴一和后綴一作為非成員函數(shù)重裁,那個(gè)唯一的操作數(shù)必

須作為第一參數(shù)提供。又因?yàn)橐薷牡谝徊僮鲾?shù),對(duì)應(yīng)的參數(shù)必須聲明為引用。

前綴一作為非成員函數(shù)重載的一般形式為:

friendDecr&operator—(Decr&);

后綴一作為非成員函數(shù)重裁的一般形式為:

friendDeeroperator一(Decr&,int);

當(dāng)運(yùn)算符重載為類(lèi)的成員函數(shù)時(shí),函數(shù)的參數(shù)個(gè)數(shù)比原來(lái)的參數(shù)個(gè)數(shù)少一個(gè)°

前綴一作為成員函數(shù)重載的一般形式為:

Decr&operator--();

后綴一作為成員函數(shù)重載的一般形式為:

Deeroperator一(int);

因此選項(xiàng)C正確,選項(xiàng)D是后綴一作為非成員函數(shù)重載的形式。

故本題答案為C。

20.有如下程序:

ttinclude<iostream>

usingnamespacestd;

classBase{

public:

Base(intx=0):valB(x){cout?valB;}

^BaseO{cout?valB;}

private:

intvalB;

};

classDerived:publicBase{

public:

Derived(intx=0,inty=0):Base(x),valD(y){cout?valD;}

-Derived(){cout<<valD;}

private:

intvalD;

};

intmain(){

Derivedobjl2(2,3);

return0;

)

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

A、2332B、2323C、3232D、3223

本題主要考杳了派生類(lèi)的構(gòu)造函數(shù)與析構(gòu)函數(shù)。

構(gòu)造函數(shù)在對(duì)象被創(chuàng)建的時(shí)候由系統(tǒng)自動(dòng)調(diào)用,建立派生類(lèi)對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序如下:(1)執(zhí)行基類(lèi)的構(gòu)造函數(shù),

調(diào)用順序按照各個(gè)基類(lèi)被繼承時(shí)聲明的順序(自左向右);(2)執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類(lèi)中聲

明的順序(自上而下);(3)執(zhí)行派生類(lèi)的構(gòu)造函數(shù)。

析構(gòu)函數(shù)用來(lái)完成對(duì)象被刪除前的一些清理工作,在對(duì)象的生存期即將結(jié)束的時(shí)刻被系統(tǒng)自動(dòng)調(diào)用。派生類(lèi)的析構(gòu)函數(shù)在執(zhí)

行過(guò)程中也要對(duì)基類(lèi)和成員對(duì)象進(jìn)行操作,但它的執(zhí)行過(guò)程與構(gòu)造函數(shù)嚴(yán)格相反,即:(1)對(duì)派生類(lèi)新增普通成員進(jìn)行清理。(2)

調(diào)用成員對(duì)象析構(gòu)函數(shù),對(duì)派生類(lèi)新增的成員對(duì)象進(jìn)行清理。(3)調(diào)用基類(lèi)析構(gòu)函數(shù),對(duì)基類(lèi)進(jìn)行清理。

main。函數(shù)中,第一條語(yǔ)句Derivedobjl2(2,3);創(chuàng)建派生類(lèi)對(duì)象objl2時(shí),先以第一個(gè)實(shí)參2初始化基類(lèi)Base成員valB,執(zhí)行

基類(lèi)Base的構(gòu)造函數(shù),輸出valB的值2;然后以第二個(gè)實(shí)參值3初始化派生類(lèi)Derived成員valD,執(zhí)行派生類(lèi)Derived的構(gòu)造函數(shù),

輸出valD的值3:在對(duì)象objl2的生存期即將結(jié)束時(shí),先調(diào)用派生類(lèi)Derived的析構(gòu)函數(shù),輸出valD的值3,然后調(diào)用基類(lèi)析構(gòu)函數(shù),

輸出valB的值2。因此本程序運(yùn)行時(shí)的輸出結(jié)果是2332。故本題答案為A。

21.有如下程序

#include<iostream>

usingnamespacestd;

classA{

public:

A(inti=0):rl(i){}

voidprint(){cout?*E*<<rl<<,;)

voidprint()const{cout?,C"?rl*rl?,;}

voidprint(intx){cout<<'P'?rl*rl*rl?"->;}

private:

intrl;

};

intmain(){

Aal;

constAa2(4);

al.print(2);

a2.print();

return0;

)

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

A、P8-E4B,P8-C16-C、P0-E4-D、P0-C16-

本題主要考杳了函數(shù)的重載、常對(duì)象和常成員函數(shù)。

使用const關(guān)鍵字修飾的對(duì)象稱(chēng)為常對(duì)象,使用const關(guān)鍵字說(shuō)明的成員函數(shù)稱(chēng)為常成員函數(shù),通過(guò)常對(duì)象只能調(diào)用它的常成

員函數(shù),而不能調(diào)用其他成員函數(shù)。兩個(gè)以上的函數(shù),具有相同的函數(shù)名,但是形參的個(gè)數(shù)或類(lèi)型不同,編譯器根據(jù)實(shí)參和形參

的類(lèi)型及個(gè)數(shù)的最佳匹配,自動(dòng)確定調(diào)用哪一個(gè)函數(shù),這就是函數(shù)的重載。const關(guān)鍵字可以用于對(duì)重載函數(shù)的區(qū)分。

在main。函數(shù)中,第一條語(yǔ)句定義類(lèi)A的對(duì)象al,系統(tǒng)自動(dòng)調(diào)用類(lèi)A的構(gòu)造函數(shù),以默認(rèn)形參值0初始化對(duì)象al的數(shù)據(jù)成員rl;

第二條語(yǔ)句定義常對(duì)象a2,系統(tǒng)自動(dòng)調(diào)用類(lèi)A的構(gòu)造函數(shù),以實(shí)參值4初始化對(duì)象a2的數(shù)據(jù)成員rl;第三條語(yǔ)句通過(guò)對(duì)象al調(diào)用帶

一個(gè)整型形參的沒(méi)用const修飾的print。函數(shù),表達(dá)式rl*rl*rl=0*0*0=0,因此輸出P0-,第四條語(yǔ)句常對(duì)象a2調(diào)用的是用const

修飾的常成員函數(shù)print。,表達(dá)式rl*rl的值為:4*4=16,因此輸出C16-。故程序運(yùn)行時(shí)的輸出結(jié)果是P0-C16-故本

題答案為D。

22.若MyClass是一個(gè)類(lèi)名,且有如下語(yǔ)句序列

MyClasscl,*c2;

MyClass*c3=newMyClass;

MyClass&c4=cl;

上面的語(yǔ)句序列所定義的類(lèi)對(duì)象的個(gè)數(shù)是一?

A、1B、2C、3D、4

本題主要考查了對(duì)象的定義。

第1條語(yǔ)句定義了MyClass類(lèi)的對(duì)象cl和MyClass類(lèi)的對(duì)象指針變量c2。因?yàn)槎x對(duì)象指針只是得到了用于存儲(chǔ)對(duì)象地址的指針

變量,不會(huì)創(chuàng)建對(duì)象,因此第1條語(yǔ)句只定義了個(gè)類(lèi)對(duì)象cl;第2條語(yǔ)句定義了對(duì)象指針變量c3。并初始化c3指向用new運(yùn)算符動(dòng)

態(tài)創(chuàng)建的對(duì)象,因此第2條語(yǔ)句用new運(yùn)算符動(dòng)態(tài)定義了一個(gè)對(duì)象;第3條語(yǔ)句聲明了對(duì)象引用c4,并將其初始化為對(duì)象cl的一個(gè)別

名。因?yàn)閯?chuàng)建對(duì)象引用只是為已有對(duì)象創(chuàng)建別名,不會(huì)創(chuàng)建對(duì)象,因此第3條語(yǔ)句沒(méi)有創(chuàng)建類(lèi)對(duì)象。因此這3條語(yǔ)句所定義的類(lèi)對(duì)

象的個(gè)數(shù)是2。

故本題答案為B。

23.下列關(guān)于類(lèi)模板的描述中,錯(cuò)誤的是o

A、類(lèi)模板的成員函數(shù)都是模板函數(shù)B、可以為類(lèi)模板參數(shù)設(shè)置默認(rèn)值

C、類(lèi)模板描述了一組類(lèi)D、類(lèi)模板中只允許有一個(gè)類(lèi)型參數(shù)

本題主要考查了類(lèi)模板。

使用類(lèi)模板可以為類(lèi)聲明一種模式,使得類(lèi)中的某些數(shù)據(jù)成員、某些成員函數(shù)的參數(shù)、某些成員函數(shù)的返回值能取任意類(lèi)型。

因此選項(xiàng)C正確:類(lèi)模板聲明的語(yǔ)法形式為:

templateC模板參數(shù)表〉

class類(lèi)名

{類(lèi)成員聲明}

其中"模板參數(shù)表”由用逗號(hào)分隔的若干類(lèi)型標(biāo)識(shí)符或常量表達(dá)式構(gòu)成,因此選項(xiàng)D錯(cuò)誤;可以為類(lèi)模板中的類(lèi)型參數(shù)和非類(lèi)型

參數(shù)提供默認(rèn)值,如果某個(gè)類(lèi)模板參數(shù)有默認(rèn)值,該列表中的所有后續(xù)參數(shù)也都必須指定默認(rèn)值。因此選項(xiàng)B正確。類(lèi)模板的成員

函數(shù)都是模板函數(shù),因此選項(xiàng)A正確。故本題答案為D。

24.有如下程序

^include<iostream>

usingnamespacestd;

classTest{

public:

TestO{}

Test(constTest&t){cout<<l;}

);

Testfun(Test&u){Testt=u;returnt;}

intmain(){Testx,y;x=fun(y);return0;}

運(yùn)行這個(gè)程序的輸出結(jié)果是。

A、無(wú)輸出B、1C、11D、111

本題主要考杳了拷貝構(gòu)造函數(shù)。

拷貝構(gòu)造函數(shù)是一種特殊的構(gòu)造函數(shù),具有一般構(gòu)造函數(shù)的所有特性,其形參是本類(lèi)的對(duì)象的引用。作用是使用一個(gè)已知的

對(duì)象初始化一個(gè)正在創(chuàng)建的同類(lèi)對(duì)象??截悩?gòu)造函數(shù)在以F三種情況卜一都會(huì)被調(diào)用:

1)當(dāng)用類(lèi)的一個(gè)對(duì)象初始化該類(lèi)的另一個(gè)對(duì)象時(shí);

2)如果函數(shù)的形參是類(lèi)的對(duì)象,調(diào)用函數(shù)時(shí),進(jìn)行形參和實(shí)參結(jié)合時(shí);

3)如果函數(shù)的返回值是類(lèi)的對(duì)象,函數(shù)執(zhí)行完成返回調(diào)用者時(shí)。

函數(shù)fun的形參為類(lèi)Test的對(duì)象的引用,main。函數(shù)中,第二條語(yǔ)句x=fun(y);調(diào)用函數(shù)fun。。使引用u為實(shí)參y的別名,然后

執(zhí)行函數(shù)fun()的第一條語(yǔ)句Testt=u;,即用Test類(lèi)的對(duì)象u去初始化該類(lèi)的另一個(gè)對(duì)象t,系統(tǒng)將自動(dòng)調(diào)用拷貝構(gòu)造函數(shù),輸出1,

然后執(zhí)行函數(shù)fun。的第二條語(yǔ)句returnt;,函數(shù)「unO的返回值為T(mén)est類(lèi)的對(duì)象t,函數(shù)執(zhí)行完成返回調(diào)用者時(shí),系統(tǒng)將第二次

自動(dòng)調(diào)用拷貝構(gòu)造函數(shù),輸出1,程序執(zhí)行結(jié)束。故運(yùn)行這個(gè)程序的輸出結(jié)果是11。故木題答案為C。

25.要定義?個(gè)引用變量p,使用引用類(lèi)MyClass的?個(gè)對(duì)象,正確的定義語(yǔ)句是。

A、MyClassp=MyClass;B、MyClassp=newMyClass;

C>MyClass&p=newMyClass;D、MyClassa,&p=a;

本題主要考查了引用的聲明。

引用的聲明形式:類(lèi)型標(biāo)識(shí)符&引用名=目標(biāo)變量名;

說(shuō)明:

(1)&在此不是求地址運(yùn)算,而是起標(biāo)識(shí)作用。

(2)類(lèi)型標(biāo)識(shí)符是指目標(biāo)變量的類(lèi)型。

(3)聲明引用時(shí),必須同時(shí)對(duì)其進(jìn)行初始化。

(5)聲明一個(gè)引用,不是新定義了一個(gè)變量,它只表示該引用名是目標(biāo)變量名的一個(gè)別名,它本身不是一種數(shù)據(jù)類(lèi)型,因此

引用本身不占存儲(chǔ)單元,系統(tǒng)也不給引用分配存儲(chǔ)單元。

選項(xiàng)A和選項(xiàng)B在變量p的左邊沒(méi)有標(biāo)識(shí)&,不符合引用聲明形式,因此選項(xiàng)A和選項(xiàng)B錯(cuò)誤:選項(xiàng)C中,賦值號(hào)右邊不是已存在的

變量名,不符合引用聲明的語(yǔ)法形式,因此選項(xiàng)C錯(cuò)誤;選項(xiàng)D先聲名對(duì)象a,然后聲明引用為已聲明變量名a的別名,符合引用聲

明形式,因此選項(xiàng)D正確。故本題答案為D。

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

A、函數(shù)可以沒(méi)有返回值B、函數(shù)可以沒(méi)有參數(shù)C、函數(shù)可以是一個(gè)類(lèi)的成員

D、函數(shù)不能被定義為模板

本題主要考查了函數(shù)。

函數(shù)定義的語(yǔ)法形式:

類(lèi)型標(biāo)識(shí)符函數(shù)名(形式參數(shù)列表)

語(yǔ)句序列

}

無(wú)返回值的函數(shù)其類(lèi)型標(biāo)識(shí)符為void。故選項(xiàng)A正確:函數(shù)可以沒(méi)有參數(shù),當(dāng)函數(shù)定義時(shí)沒(méi)有形參,則函數(shù)調(diào)用時(shí),<實(shí)參表)

亦為空,故選項(xiàng)B正確;函數(shù)可以是類(lèi)的成員,故選項(xiàng)C正確;模板是C++支持參數(shù)化多態(tài)性的工具,函數(shù)模板實(shí)現(xiàn)了類(lèi)型參數(shù)化,

將函數(shù)處理的數(shù)據(jù)類(lèi)型作為參數(shù),提高了代碼的可重用性,故選項(xiàng)D錯(cuò)誤。故本題答案為及

27.下列程序段中包含4個(gè)函數(shù),其中具有隱含this指針的是。

intfunl();

classTest{

public:

intfun2();

friendintfun3();

staticintfun4();

);

A、funlB、fun2C、fun3D、fun4

本題主要考查了this指針。

this指針是一個(gè)隱含于每一個(gè)非靜態(tài)成員函數(shù)中的特殊指針。它是一個(gè)指向正在被該成員函數(shù)操作的對(duì)象,也就是要操作該

成員函數(shù)的對(duì)象。因此類(lèi)Test的非靜態(tài)成員函數(shù)fun2中具有隱含this指針,故選項(xiàng)B正確。函數(shù)funl和函數(shù)fun3均不是成員函數(shù),

因此不具有隱含this指針,故選項(xiàng)A和選項(xiàng)C不正確;靜態(tài)成員不屬于類(lèi)的任何一個(gè)對(duì)象,而是屬于整個(gè)類(lèi),因此靜態(tài)成員沒(méi)有this

指針,故靜態(tài)成員函數(shù)fun4中沒(méi)有this指針,故選項(xiàng)D錯(cuò)誤。故木題答案為B。

28.下面是類(lèi)Shape的定義:

classShape{

public:

virtualvoidDraw()=0;

);

下列關(guān)于Shape類(lèi)的描述中,正確的是.o

A、類(lèi)Shape是虛基類(lèi)B、類(lèi)Shape是抽象類(lèi)

C、類(lèi)Shape中的Draw函數(shù)聲明有誤I)、語(yǔ)句"Shapes能夠建立Shape的■個(gè)對(duì)象s

本題主要考杳了純虛函數(shù)和抽象類(lèi)。

聲明純虛函數(shù)的語(yǔ)法形式為:

virtual函數(shù)類(lèi)型函數(shù)名(參數(shù)表)=0;

所以函數(shù)Draw。是純虛函數(shù)。帶有純虛函數(shù)的類(lèi)是抽象類(lèi),所以類(lèi)Shape是抽象類(lèi),因此選項(xiàng)B正確;抽象類(lèi)不能實(shí)例化,即

不能定義一個(gè)抽象類(lèi)的對(duì)象,因此選項(xiàng)D錯(cuò)誤。故本題答案是B。

29.關(guān)于函數(shù)中的〈返回類(lèi)型》,下列表述中錯(cuò)誤的是___.

A、(返回類(lèi)型》中有可能包含關(guān)鍵字intB、〈返回類(lèi)型》中有可能包含自定義標(biāo)識(shí)符

C、〈返回類(lèi)型》中有可能包含字符*I)、<返回類(lèi)型>中有可能包含口

本題主要考杳了函數(shù)的返回類(lèi)型。

函數(shù)的定義形式為:

返回類(lèi)型函數(shù)名(形參列表){函數(shù)體}

返回類(lèi)型又稱(chēng)函數(shù)類(lèi)型,表示一個(gè)函數(shù)所計(jì)算(或運(yùn)行)的結(jié)果值的類(lèi)型。因?yàn)楹瘮?shù)的結(jié)果值可以為整型,因此返回類(lèi)型可

能包含關(guān)鍵字ini,選項(xiàng)A正確;函數(shù)的返回類(lèi)型可以為類(lèi),因此返回類(lèi)型可能包含自定義標(biāo)識(shí)符,選項(xiàng)B正確;函數(shù)的返回類(lèi)型可

以為指針,因此返回類(lèi)型可能包含字符*,選項(xiàng)C正確;但返回類(lèi)型不能為數(shù)組,因此返回類(lèi)型中不可能包含口,因此選項(xiàng)D錯(cuò)誤。

故本題答案為D。

30.打開(kāi)文件時(shí)可單獨(dú)或組合使用下列文件打開(kāi)模式

?ios_base::app?ios_base::binary

@ios_base::in@ios_base::out

若要以二進(jìn)制讀方式打開(kāi)一個(gè)文件,需使用的文件打開(kāi)模式為o

A、①③B、①④C、②③D、②④

本題主要考查了I/O流。

打開(kāi)一個(gè)與輸出流關(guān)聯(lián)的文件時(shí),通常要指定文件模式。ios_base::app模式的功能:以寫(xiě)方式打開(kāi)文件,若文件不存在則創(chuàng)

建文件,若文件已存在則向文件尾添加數(shù)據(jù);ios_base::binary模式:以二進(jìn)制模式打開(kāi)文件(缺省為文本模式);ios_base::in

模式:以讀方式打開(kāi)文件;iosbase::out模式:以寫(xiě)方式打開(kāi)文件,若文件不存在則創(chuàng)建,若文件已存在則清空原內(nèi)容(ofstream

默認(rèn)的打開(kāi)方式)。因此若要以二進(jìn)制讀方式打開(kāi)一個(gè)文件,需使用的文件打開(kāi)模式為:ios_base::binary|iosbase::in。

故本題答案為C。

31.下列關(guān)于繼承方式的描述中,錯(cuò)誤的是。

A、如果不顯式地指定繼承方式,缺省的繼承方式是私有(private)

B、采用公有繼承方式時(shí),基類(lèi)中的公有成員在派生類(lèi)中仍然是公有成員

C、采用保護(hù)繼承方式時(shí),基類(lèi)中的保護(hù)成員在派生類(lèi)中仍然是保護(hù)成員

D、采用私有繼承方式時(shí),基類(lèi)中的私有成員在派生類(lèi)中仍然是私有成員

本題主要考查了類(lèi)的繼承與派生。

類(lèi)的繼承方式有三種:公有(public)繼承、保護(hù)(protected)繼承和私有(private)繼承。如果不顯式地給出繼承方式,

缺省的類(lèi)繼承方式是私有(private)繼承。因此選項(xiàng)A正確;當(dāng)派生類(lèi)從基類(lèi)公有繼承時(shí),基類(lèi)的公有成員和保護(hù)成員的訪問(wèn)屬

性在派生類(lèi)中不變,仍作為派生類(lèi)的公有成員和保護(hù)成員,因此選項(xiàng)B正確;當(dāng)派生類(lèi)從基類(lèi)保護(hù)繼承時(shí),基類(lèi)的公有成員和保護(hù)

成員在派生類(lèi)中都為保護(hù)成員,因此選項(xiàng)C正確;當(dāng)派生類(lèi)從基類(lèi)私有繼承時(shí),基類(lèi)的公有成員和保護(hù)成員在派生類(lèi)中都改變?yōu)樗?/p>

有成員;無(wú)論哪種繼承方式,派生類(lèi)中的成員都不能訪問(wèn)基類(lèi)中的私有成員,因此選項(xiàng)D錯(cuò)誤。

故本題答案為D。

32.下列關(guān)于運(yùn)算符重載的描述中,錯(cuò)誤的是。

A、可以通過(guò)運(yùn)算符重載在C++中創(chuàng)建新的運(yùn)算符B、賦值運(yùn)算符只能重我為成員函數(shù)

C、運(yùn)算符函數(shù)重載為類(lèi)的成員函數(shù)時(shí),第一操作數(shù)是該類(lèi)對(duì)象

D、重載類(lèi)型轉(zhuǎn)換運(yùn)算符時(shí)不需要聲明返回類(lèi)型

本題主要考杳了運(yùn)算符重載。

”運(yùn)算符重載”是針對(duì)C++中原有運(yùn)算符進(jìn)行的,不可能通過(guò)重載創(chuàng)造出新的運(yùn)算符,因此選項(xiàng)A錯(cuò)誤;在C++中,運(yùn)算符的重載

方式有兩種:(1)重載為成員函數(shù);(2)重載為友元函數(shù)。以及所有的類(lèi)型轉(zhuǎn)換運(yùn)算符只能重載為成員

函數(shù),因此選項(xiàng)B正確;運(yùn)算符重載為成員函數(shù)時(shí),第一操作數(shù)就是對(duì)象本身,并不顯式地出現(xiàn)在參數(shù)表中,因此選項(xiàng)C正確:重

載類(lèi)型轉(zhuǎn)換運(yùn)算符的格式為:operator類(lèi)型名(),其中"類(lèi)型名”就代表了返回類(lèi)型,因此重載類(lèi)型轉(zhuǎn)換運(yùn)算符時(shí)不需要聲明返回

類(lèi)型,因此選項(xiàng)D正確。

故本題答案為A。

33.有以下程序:

4include<iostream>

usingnamespacestd;

classB{

public:

B(intxx):x(xx){++count;x+=10;}

virtualvoidshow()const

{cout?count?,?x?endl;}

protected:

staticintcount;

private:

intx;

);

classD:publicB{

public:

D(intxx,intyy):B(xx),y(yy){++count;y+=100;}

virtualvoidshow()const

{cout?count<<,J<<y<<endl;}

private:

inty;

};

intB::count=0;

intmain(){

B*ptr=newD(10,20);

ptr->show();

deleteptr;

return0;

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

A、l_120B、2」20C、l_20D、2_20

本題主要考查了派生類(lèi)的構(gòu)造函數(shù)、靜態(tài)成員函數(shù)以及虛函數(shù)。

建立派生類(lèi)對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序如下:(1)執(zhí)行基類(lèi)的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類(lèi)被繼承時(shí)聲明的順序(自

左向右):(2)執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類(lèi)中聲明的順序(自匕而下);(3)執(zhí)行派生類(lèi)的構(gòu)

造函數(shù)。

用static關(guān)鍵字聲明的數(shù)據(jù)成員為靜態(tài)數(shù)據(jù)成員,靜態(tài)成員在每個(gè)類(lèi)只有一個(gè)拷貝,由該類(lèi)的所有對(duì)象共同維護(hù)和使用。

在成員函數(shù)聲明的前面加上virtual修飾,即把該函數(shù)聲明為虛函數(shù)。在C++中,一個(gè)基類(lèi)指針(或引用)可以用于指向它的

派生類(lèi)對(duì)象,而且通過(guò)這樣的指針(或引用)調(diào)用虛函數(shù)時(shí),被調(diào)用的是該指針(或引用)實(shí)際所指向的對(duì)象類(lèi)的那個(gè)重定義版

本。

本題中,函數(shù)show在基類(lèi)B和派生類(lèi)D中都聲明為虛函數(shù)。在基類(lèi)B中把保護(hù)成員定義為靜態(tài)成員count,派生類(lèi)D以公有繼承方

式從基類(lèi)B繼承了保護(hù)成員count。它被基類(lèi)B和派生類(lèi)D的所有對(duì)象所共享,但它不屬于類(lèi)的任何一個(gè)對(duì)象。在main。函數(shù)中,第

一條語(yǔ)句通過(guò)new運(yùn)算符創(chuàng)建派生類(lèi)D的對(duì)象,并把對(duì)象的首地址賦給基類(lèi)指針即基類(lèi)指針ptr指向派生類(lèi)對(duì)象。在創(chuàng)建派生

類(lèi)對(duì)象時(shí),先執(zhí)行基類(lèi)B的構(gòu)造函數(shù),counl的值為1,然后執(zhí)行派生類(lèi)D的構(gòu)造函數(shù),count的值為2,y的值為120;main。函數(shù)的

第二條語(yǔ)句通過(guò)基類(lèi)指針ptr調(diào)用虛函數(shù)show。,被調(diào)用的是該指針實(shí)際所指向的派生類(lèi)對(duì)象類(lèi)的重定義版本,即輸出2120。

故本題答案為B。

34.下列敘述中,錯(cuò)誤的是___。

A、false是一個(gè)邏輯型常量B、"b"是一個(gè)字符型常量

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

本題主要考杳了常量。

在C++中,邏輯型常量有兩個(gè):false(假)和true(真),因此選項(xiàng)A正確;字符型常量是單引號(hào)括起來(lái)的一個(gè)字符,字符串

常量是雙引號(hào)括起來(lái)的字符序列,因此"b"是字符串,不是字符,故選項(xiàng)B錯(cuò)誤;整型常量默認(rèn)為int型,因此選項(xiàng)C正確;實(shí)型常

量默認(rèn)為double型,因此選項(xiàng)D正確。

故本題答案為B

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

A、bB、BC、D、2

本題主要考查了C++中的標(biāo)識(shí)符命名規(guī)則。

標(biāo)識(shí)符的組成要符合?定的規(guī)則:

(1)標(biāo)識(shí)符是一個(gè)以字母或下劃線開(kāi)頭的,由字母、數(shù)字、下劃線組成的字符串;

(2)標(biāo)識(shí)符不能與任意一個(gè)關(guān)鍵字同名;

(3)標(biāo)識(shí)符中的字母區(qū)分大小寫(xiě);

(4)標(biāo)識(shí)符不宜過(guò)長(zhǎng)。

在選項(xiàng)D中,標(biāo)識(shí)符的第一個(gè)字符是數(shù)字,因此不是合法的標(biāo)識(shí)符,不允許作為C++標(biāo)識(shí)符。

故本題答案為D。

36.軟件是、數(shù)據(jù)和文檔的集合。

標(biāo)準(zhǔn)答案為:程序考生答案為:函數(shù)

計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。

37.有一個(gè)學(xué)生選課的關(guān)系,其中學(xué)生的關(guān)系模式為:學(xué)生(學(xué)號(hào),姓名,班級(jí),年齡),課程的關(guān)系模式為:課程(課號(hào),課

程名,學(xué)時(shí)),其中兩個(gè)關(guān)系模式的鍵分別是學(xué)號(hào)和課號(hào),則關(guān)系模式選課可定義為:選課(學(xué)號(hào),,成績(jī))。

標(biāo)準(zhǔn)答案為:課號(hào)考生答案為:課號(hào)

碼也稱(chēng)為關(guān)鍵字,是表中若干屬性的屬性組,其值惟一標(biāo)識(shí)表中的一個(gè)元組。在關(guān)系模式選課中能惟一標(biāo)識(shí)一個(gè)元組的是學(xué)號(hào),

課號(hào)。

38.設(shè)某循環(huán)隊(duì)列的容量為50,如果頭指針front=45(指向隊(duì)頭元素的前一位置),尾指針rear=10(指向隊(duì)尾元素),則該循環(huán)

隊(duì)列中共有個(gè)元素。

標(biāo)準(zhǔn)答案為:15或十五或15考生答案為:35

在循環(huán)隊(duì)列中,用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用排頭指針front指向排頭元素的前一個(gè)位置,因此,從排頭指針front

指向的后一個(gè)位置直至隊(duì)尾指針rear指向的位置之間所有的元素均為隊(duì)列中的元素。本題中隊(duì)列的容量為50,頭指針為45,那么

從頭指針到50之間有46、47、48、49、50,共5個(gè)元素,尾指針為10,那么從1到10之間有10個(gè)元素,所以共有15個(gè)元素。

39.設(shè)二叉樹(shù)如下:

對(duì)該二叉樹(shù)進(jìn)行后序遍歷的結(jié)果為_(kāi)____.

標(biāo)準(zhǔn)答案為:EDBGHFCA或E、D、B、G、H、F、C、A或E,D,B,G,H,F,C,A或E,D,B,G,H,F,C,A

考生答案為:EDGHFCA

后序遍歷是指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先遍歷左子樹(shù),然后遍歷右子樹(shù),最后訪問(wèn)根結(jié)點(diǎn),并且,

在遍歷左、右子樹(shù)時(shí),仍然先遍歷左子樹(shù),然后遍歷右子樹(shù),最后訪問(wèn)根結(jié)點(diǎn)。

40.一個(gè)隊(duì)列的初始狀態(tài)為空?,F(xiàn)將元素人1,&口,£百,5,4,3,2,1依次入隊(duì),然后再依次退隊(duì),則元素退隊(duì)的順序?yàn)椤?/p>

標(biāo)準(zhǔn)答案為:A,B,C,D,E,F,5,4,3,2,1或A,B,C,D,E,F,5,4,3,2,1或A、B、C、D、E、F、5、4、3、2、

1或ABCDEF54321或A,B,C,D,E,F,5,4,3,2,1或A,B,C,D,E,F,5,4,3,2,1或A,B,C,D,E,F,5,4,3,

2,1或A,B,C,D,E,F,5,4,3,2,1

考生答案為:A,B,C,D,E,F,5,4,3,2,1

隊(duì)列是指允許在?端進(jìn)行插入、而在另?端進(jìn)行刪除的線性表。允許插入的?端稱(chēng)為隊(duì)尾,允許刪除的?端稱(chēng)為隊(duì)頭。在隊(duì)列這

種數(shù)據(jù)結(jié)構(gòu)中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除。因此,隊(duì)列又稱(chēng)為〃先進(jìn)先出”或〃

后進(jìn)后出〃的線性表。

41.若x和y是兩個(gè)整型變量,在執(zhí)行了語(yǔ)句序列

x=5;y=6;y+=x一;

后,x+y的值為o

標(biāo)準(zhǔn)答案為:15或15考生答案為:15

本題主要考查了后置減1運(yùn)算符。

后置減1運(yùn)算符是先使用變量,然后變量再自減。因此語(yǔ)句y+=x一;的功能相當(dāng)于y=y+x;x=xT;兩條語(yǔ)句,因此執(zhí)行語(yǔ)句序列

x=5;y=6;y+=x-;后x的值為4,y的值為11,故x+y的值為15。

42.有如卜?的函數(shù)定義:

intXfun(intx){

inty=x;

{intx=10;y+=x;)

returnx+y;

)

通過(guò)表達(dá)式Xfun⑸調(diào)用該函數(shù),則得到的返回值為o

標(biāo)準(zhǔn)答案為:20或20考生答案為:20

本題主要考杳了標(biāo)識(shí)符的作用域與可見(jiàn)性。

作用域是一個(gè)標(biāo)識(shí)符在程序正文中有效的區(qū)域。程序運(yùn)行到某一點(diǎn),能夠引用到的標(biāo)識(shí)符,就是該處可見(jiàn)的標(biāo)識(shí)符,如果在

兩個(gè)或多個(gè)具有包含關(guān)系的作用域中聲明了同名標(biāo)識(shí)符,則外層標(biāo)識(shí)符在內(nèi)層不可見(jiàn)。函數(shù)調(diào)用表達(dá)式Xfun⑸把實(shí)參5傳遞給函

數(shù)Xfun的形式參數(shù)x,形參x的作用域?yàn)檎麄€(gè)函數(shù)體。Xfun函數(shù)體的第一條語(yǔ)句定義變量y并初始化y的值為5,第二個(gè)復(fù)合語(yǔ)句中的

第一條語(yǔ)句定義同名變量x,并初始化x的值為10,在復(fù)合語(yǔ)句中外層變量x不可見(jiàn),因此執(zhí)行復(fù)合語(yǔ)句的第二條語(yǔ)句y+=x;后y的值

為15,內(nèi)層變量x的作用域結(jié)束。然后執(zhí)行語(yǔ)句returnx+y;得到函數(shù)的返回值5+15=20。

43.卜.面的函數(shù)定義是某函數(shù)模板能夠生成的函數(shù)實(shí)例

intsquare(intn)(returnn*n;}

doublesquare(doublen){returnn*n;}

由此可知,該函數(shù)模板的定義是一O

標(biāo)準(zhǔn)答案為:templateVtypenameT>Tsquare(Tn){returnn*n;}或template<classT>Tsquare(Tn){return

n*n;}

考生答案為:template<typenameT>Tsquare(Tn){returnn*n;}

本題主要考查了函數(shù)模板。

函數(shù)模板是一系列相關(guān)函數(shù)的模型或樣板,這些函數(shù)的源代碼形式相同,只是所針對(duì)的數(shù)據(jù)類(lèi)型不同。對(duì)于函數(shù)模板,數(shù)據(jù)

類(lèi)型本身成了它的參數(shù),因而是一種參數(shù)化類(lèi)型的函數(shù)。聲明一個(gè)函數(shù)模板的格式是:

template〈模板形參表聲明)

函數(shù)聲明

其中的模板形參表聲明是由一個(gè)或多個(gè)模板形參組成(如果是多個(gè),需要用逗號(hào)隔開(kāi))。每個(gè)模板形參具有下面幾種形式:

(1)typename參數(shù)名(2)class參數(shù)名(3)類(lèi)型修飾參數(shù)名

這里的參數(shù)名可以是任意的標(biāo)識(shí)符。在這三種形式中,前兩種是等價(jià)的:在聲明模板參數(shù)時(shí),關(guān)鍵字typename與class可以互

換。

因此該題函數(shù)模板定義是template<typenameT>Tsquare(Tn){returnn*n;}或template<classT>Tsquare(Tn){return

n*n;}o

44.在執(zhí)行語(yǔ)句序列

inti=0;doi++;while(i*i<10);

時(shí),do后面的循環(huán)體語(yǔ)句i++被執(zhí)行的次數(shù)為o

標(biāo)準(zhǔn)答案為:4或4或四考生答案為:4

本題主要考查了do-while循環(huán)語(yǔ)句。

第一次執(zhí)行循環(huán)體后i的值為1,i*i<10成立,繼續(xù)執(zhí)行循環(huán)體,第二次執(zhí)行循環(huán)體后i的值為2,i*i〈10成立,繼續(xù)執(zhí)行循環(huán)

體,第三次執(zhí)行循環(huán)體后i的值為3,i*i<10成立,繼續(xù)執(zhí)行循環(huán)體,第四次執(zhí)行循環(huán)體后i的值為4,i*i<10不成立,結(jié)束循環(huán)。

故循環(huán)語(yǔ)句被執(zhí)行次數(shù)為4。

45.假設(shè)Xcs是一個(gè)類(lèi),該類(lèi)中一個(gè)成員函數(shù)的原型為"Xcs*abc();”,則在類(lèi)外定義時(shí)對(duì)應(yīng)的函數(shù)頭為。

標(biāo)準(zhǔn)答案為:Xcs*Xcs::abc()考生答案為:Xcs*Xcs::abc()

本題主要考杳了成員函數(shù)的類(lèi)外定義。

在類(lèi)外定義成員函數(shù)的語(yǔ)法形式為:

返回值類(lèi)型類(lèi)名::成員函數(shù)名(參數(shù)表)

{

函數(shù)體

)

因此在類(lèi)Xcs之外定義原型為"Xcs*abc();"的成員函數(shù)對(duì)應(yīng)的函數(shù)頭為Xcs*Xcs::abc()。

46.請(qǐng)將下面的程序補(bǔ)充完整,使得程序輸出”飄是張娜的書(shū)”。

4include<iostream>

usingnamespacestd;

classBook{

public:

Book(char*str){strcpy(title,str);}

voidPrintlnfoO{cout?title?endl;}

protected:

chartitle[50];

);

classMyBook:publicBook{

public:

MyBook(char*sl,char*s2="張娜〃):

{strcpy(owner,s2);}

virtualvoidPrintlnfoO{cout?title<〈"是"<<owner<〈”的書(shū),<<endl;}

private:

charowner[10];

);

intmainO{

Book*ptr=newMyBook(〃飄〃);

ptr->Print!nfo();

return0;

}

標(biāo)準(zhǔn)答案為:virtualBook(si)考生答案為:virtual與Book(str)

本題主要考查了構(gòu)造函數(shù)、虛函數(shù)。

在成員函數(shù)聲明的前面加上virtual修飾,即把該函數(shù)聲明為虛函數(shù)。在派生類(lèi)中可以重新定義從基類(lèi)繼承卜來(lái)的虛函數(shù),從

而提供該函數(shù)的適用于派生類(lèi)的專(zhuān)門(mén)版本。本題在派生類(lèi)MyBook中重定義了虛函數(shù)Printinfo,因此第1個(gè)空應(yīng)填virtual。

派生類(lèi)的構(gòu)造函數(shù)必須要以合適的初值作為參數(shù),隱含調(diào)用基類(lèi)和新增成員對(duì)象的構(gòu)造函數(shù),用以初始化它們各自的數(shù)據(jù)成

員,然后再對(duì)新增的其他數(shù)據(jù)成員進(jìn)行初始化。派生類(lèi)構(gòu)造函數(shù)的一般格式如下:

〈派生類(lèi)名〉::<派生類(lèi)名>(<總參數(shù)表》):〈基類(lèi)名1》(參數(shù)表1),……

〈基類(lèi)名n>(〈參數(shù)表n>),

〈成員對(duì)象名1》(〈參數(shù)表n+l>),……,

〈成員對(duì)象名(〈參數(shù)表n+m>){〈派生類(lèi)構(gòu)造函數(shù)體>}

因此第二個(gè)空應(yīng)填Book(si),調(diào)用基類(lèi)的構(gòu)造函數(shù)以初始化其數(shù)據(jù)成員。

47.有如下的函數(shù)定義:

intXfun(int*a,intn){

intx=*a;

for(int*pa=a+l;pa<a+n;pa++)

if(*pa>x)x=*pa;

returnx;

)

若在執(zhí)行了語(yǔ)句

intx[5>{23,46,78,55,16);

后,通過(guò)表達(dá)式Xfun(x,5)調(diào)用該函數(shù),則得到的返回值為。

標(biāo)準(zhǔn)答案為:78或78考生答案為:

本題主要考杳了數(shù)組、指針和求最大值算法。

函數(shù)Xfun的功能是求首地址為a的n個(gè)數(shù)據(jù)的最大數(shù),并把所求的最大數(shù)作為函數(shù)的返回值。函數(shù)調(diào)用表達(dá)式Xfun(x,5)把數(shù)組

x的首地址傳遞給函數(shù)Xfun的第一個(gè)形式參數(shù)指針變量a,常數(shù)5傳遞給函數(shù)Xfun的第二個(gè)形式參數(shù)n,因此函數(shù)調(diào)用表達(dá)式Xfun(x,5)

的返回值是數(shù)組x的5個(gè)元素的最大數(shù)78。

48.請(qǐng)將下面的類(lèi)Date的定義補(bǔ)充完整,使得由語(yǔ)句

DateFirstDay;

定義的對(duì)象FirslDay的值為2010年1月1日。

classDate{

public:

Date():year(y),month(m),day(d){}

private:

intyear,month,day;〃依次表示年、月、H

);

標(biāo)準(zhǔn)答案為:inty=2010,intm=l,intd=l考生答案為:inty,intm,intd

本題主要考杳了構(gòu)造函數(shù)。

構(gòu)造函數(shù)的作用是在對(duì)象被創(chuàng)建時(shí)利用特定的值構(gòu)造對(duì)象,將對(duì)象初始化為一種特定的狀態(tài),無(wú)參數(shù)的構(gòu)造函數(shù)稱(chēng)為默認(rèn)形

式的構(gòu)造函數(shù),如果類(lèi)中定義構(gòu)造函數(shù),編譯系統(tǒng)將不會(huì)再為其生成默認(rèn)構(gòu)造函數(shù)。構(gòu)造函數(shù)在對(duì)象被創(chuàng)建的時(shí)候由系統(tǒng)自動(dòng)調(diào)

用。類(lèi)Date中定義了一個(gè)構(gòu)造函數(shù),由類(lèi)Date的構(gòu)造函數(shù)的初始化列表可知構(gòu)造函數(shù)的形參應(yīng)是三個(gè)整型變量y,m和d,編譯系統(tǒng)

將不會(huì)為類(lèi)Dale建立無(wú)參數(shù)的默認(rèn)構(gòu)造函數(shù)。建立類(lèi)Date的對(duì)象FirslDay時(shí)沒(méi)有給出初始值,若要正確調(diào)用有形參的構(gòu)造函數(shù),

使對(duì)象FirstDay的值為2010年1月1日,則構(gòu)造函數(shù)應(yīng)是帶默認(rèn)形參值,且默認(rèn)形參值為2010、1和1。故該題應(yīng)填inty=2010,int

m=l,intd=lo

49.在有理數(shù)類(lèi)Rational中重載插入運(yùn)算符以便按a/q形式輸出。請(qǐng)將"運(yùn)算符函數(shù)的定義補(bǔ)充完整。

classRational(

public:

Rational(intaa,intqq):a(aa),q(qq){}

friendoperator<<(ostream&.out,Rational&x)

(

return(out<<x.a<<*/*?x.q);

)

private:

inta,q;

);

標(biāo)準(zhǔn)答案為:ostream&考生答案為:ostream&

本題主要考杳了插入運(yùn)算符的重載。

插入運(yùn)算符只能重載為非類(lèi)成員函數(shù),一般重載為友元函數(shù)。聲明重載插入運(yùn)算符為友元函數(shù)的函數(shù)原型為:

friendostream&,operator?(ostream&,類(lèi)名);

因此該題應(yīng)填ostream&。

2009年9月考試真題(第30次)

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

A、循環(huán)隊(duì)列B、帶鏈隊(duì)列C、二叉樹(shù)D、帶鏈棧

2.對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是___。

A、隊(duì)頭指針是固定不變的B、隊(duì)頭指針一定大于隊(duì)尾指針

C、隊(duì)頭指針一定小于隊(duì)尾指針I(yè))、隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針

3.數(shù)據(jù)庫(kù)管理系統(tǒng)是。

A、操作系統(tǒng)的--部分B、在操作系統(tǒng)支持下的系統(tǒng)軟件C、一種編譯系統(tǒng)D、?種操作系統(tǒng)

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

A、可封裝B、自頂向下C、模塊化D、逐步求精

5.有三個(gè)關(guān)系R,S和T如下:

A、選擇B、投影C、交I)、并

6.在E-R圖中,用來(lái)表示實(shí)體聯(lián)系的圖形是。

A、橢圓形B、矩形C、菱形D、三角形

7.算法的空間復(fù)雜度是指.

A、算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間B、算法所處理的數(shù)據(jù)量

C、算法程序中的語(yǔ)句或指令條數(shù)D、算法在執(zhí)行過(guò)程中所需要的臨時(shí)工作單元數(shù)

8.軟件詳細(xì)設(shè)計(jì)產(chǎn)生的圖如下:

該圖是。

A、N-S圖B、PAD圖C、程序流程圖D、E-R圖

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

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

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

A、循環(huán)隊(duì)列B、棧C、隊(duì)列D、二叉樹(shù)

11.有如下程序:

#include<iostream>

usingnamespacestd;

classA{

public:

A(inti):rl(i){}

voidprint(){cout?'E'}

voidprint()const{cout?*C*<<rl*rl?,;}

private:

intrl;

);

intmain(){

Aal(2);constAa2(4);

al.print();a2.print();

return0;

)

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

A、運(yùn)行時(shí)出錯(cuò)B、E2-C16-C、C4-C16-

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論