全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C++題庫(kù)8(共17套)_第1頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C++題庫(kù)8(共17套)_第2頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C++題庫(kù)8(共17套)_第3頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C++題庫(kù)8(共17套)_第4頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C++題庫(kù)8(共17套)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(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)介

第八套

1、軟件按功能可以分為:應(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)用而開發(fā)的軟

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

件。系統(tǒng)軟件是計(jì)算機(jī)管理自身資源,提高計(jì)算機(jī)使用效率并為計(jì)算機(jī)用戶提供各種效勞的軟件。如操作系統(tǒng),編譯程

序,匯編程序,網(wǎng)絡(luò)軟件,數(shù)據(jù)庫(kù)管理系統(tǒng)等,所以選項(xiàng)B屬于系統(tǒng)軟件。

故此題答案為B。

2、數(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ǔ)、判定表和判定樹等工具,來(lái)建立一種新的、稱為結(jié)構(gòu)化規(guī)格說(shuō)明的目標(biāo)文檔。

故此題答案為C。

3、軟件(程序)調(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)試主要在

開發(fā)階段。

故此題答案為A。

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

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

5、以下表達(dá)中正確的選項(xiàng)是。

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的有序線性表,在最壞情況下,二分查找只需要比擬log2n次,而順序查找需要比擬n次。二分法查找只適用

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

故此題答案為A。

6、在學(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è)值集叫元組(或稱記錄)。在概念世界中,可以用元組表示實(shí)體,也可用它區(qū)

別不同的實(shí)體。所以在學(xué)生管理的關(guān)系數(shù)據(jù)庫(kù)中,存取一個(gè)學(xué)生信息的數(shù)據(jù)單位是元組(或記錄)。

故此題答案為D。

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、軟件生命周期可分為定義階段,開發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計(jì)屬于。

A、定義階段

B、開發(fā)階段

C、維護(hù)階段

D、上述三個(gè)階段

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

試四個(gè)活動(dòng)階段。

故此題答案為B。

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

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ù)的操縱,包括查詢及增、冊(cè)人改等操作。

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

故此題答案為A。

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

那么由關(guān)系R得到關(guān)系T的操作是。

A、選擇

B、投影

C、交

D、并

從關(guān)系中找出滿足給定條件的元組的操作稱為選擇。選擇是從行的角度進(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。

11、在C++中,cin是一個(gè)。

A、類

B、對(duì)象

C、模板

D、函數(shù)

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

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

故此題答案為B。

12、要定義整型數(shù)組x,使之包括初值為0的三個(gè)元素,以下語(yǔ)句中錯(cuò)誤的選項(xiàng)是。

A、intx[3]={0,0,0};

B、intx[]={0};

C、staticintx[3]={0};

D、intx[]={0,0,0};此題主要考查了一維數(shù)組的定義與初始化。

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

數(shù)據(jù)類型數(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ù)組,應(yīng)選項(xiàng)B錯(cuò)誤;對(duì)于數(shù)值類型數(shù)組,如果給定的數(shù)值不夠,那么沒(méi)有指定數(shù)值的元素將初始化為0,因

此選項(xiàng)C正確。

故此題答案為B。

13、假設(shè)MyClass是一個(gè)類名,且有如下語(yǔ)句序列

MyClasscl,*c2;

MyClass*c3=newMyClass;

MyClass&c4=cl;

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

A、1

B、2

C、3

D、4

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

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

指針變量,不會(huì)創(chuàng)立對(duì)象,因此第1條語(yǔ)句只定義了一個(gè)類對(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)立類對(duì)

象。因此這3條語(yǔ)句所定義的類對(duì)象的個(gè)數(shù)是2。

故此題答案為B。

14、在以下字符中,不允許作為C++標(biāo)識(shí)符的是。

A、b

B、B

C、_

D、2

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

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

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

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

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

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

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

故此題答案為D。

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

intfunl();

classTest{

public:

intfun2();

friendintfun3();

staticintfun4();

);

A、funl

B、fun2

C、fun3

D、fun4

此題主要考查了this指針。

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

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

是成員函數(shù),因此不具有隱含this指針,應(yīng)選項(xiàng)A和選項(xiàng)C不正確;靜態(tài)成員不屬于類的任何一個(gè)對(duì)象,而是屬于整個(gè)類,

因此靜態(tài)成員沒(méi)有this指針,故靜態(tài)成員函數(shù)fun4中沒(méi)有this指針,應(yīng)選項(xiàng)D錯(cuò)誤。

故此題答案為B。

16、以下代碼段聲明了3個(gè)類

classPerson{};

classStudent:publicPerson(};

classUndergraduate:Student{};

以下關(guān)于這些類之間關(guān)系的描述中,錯(cuò)誤的選項(xiàng)是。

A、類Person是類Undergraduate的基類

B、類Undergraduate從類Student公有繼承

C、類Student是類Person的派生類

D、類Undergraduate是類Person的派生類

此題主要考查了類的繼承與派生。

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

class派生類名:繼承方式基類名1,繼承方式基類名2,…,繼承方式基類名n

(

派生類成員聲明;

};

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

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

從類Student私有繼承,應(yīng)選項(xiàng)B錯(cuò)誤。

故此題答案為B。

17、以下表達(dá)中,錯(cuò)誤的選項(xiàng)是

A、false是一個(gè)邏輯型常量

B、〃b〃是一個(gè)字符型常量

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

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

此題主要考查了常量。

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

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

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

故此題答案為B

18、有如下程序

ttinclude<iostream>

usingnamespacestd;

classTest(

public:

Test(){}

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、1

C、11

D、111

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

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

對(duì)象初始化一個(gè)正在創(chuàng)立的同類對(duì)象。拷貝構(gòu)造函數(shù)在以下三種情況下都會(huì)被調(diào)用:

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

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

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

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

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

造函數(shù),輸出1,然后執(zhí)行函數(shù)fun()的第二條語(yǔ)句returnt;,函數(shù)fun()的返回值為Test類的對(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。

19、有如下程序

ttinclude<iostream>

usingnamespacestd;

classA{

public:

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

voidprint(){cout?5E,?rl?,;}

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

voidprint(intx){cout?,P5?rl*rl*rl?5;}

private:

intrl;

};

intmain(){

Aal;

constAa2(4);

al.print(2);〃不傳值

a2.print();

return0;

)

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

A、P8-E4

B、P8-C16-

C、P0-E4-

D、P0-C16-

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

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

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

據(jù)實(shí)參和形參的類型及個(gè)數(shù)的最正確匹配,自動(dòng)確定調(diào)用哪一個(gè)函數(shù),這就是函數(shù)的重載。const關(guān)鍵字可以用于對(duì)重載

函數(shù)的區(qū)分。

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

rl;第二條語(yǔ)句定義常對(duì)象a2,系統(tǒng)自動(dòng)調(diào)用類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。

20、有如下兩個(gè)類定義

classXX{

private:

doublexl;

protected:

doublex2;

public:

doublex3;

);

classYY:protectedXX{

private:

doubleyl;

protected:

doubley2;

public:

doubley3;

);

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

A、1

B、2

C、3

D、4

此題主要考查了類的繼承與派生。

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

承時(shí),基類的公有成員和保護(hù)成員在派生類中都為保護(hù)成員。此題派生類YY從基類XX保護(hù)繼承,因此基類XX的公有成員

x3和保護(hù)成員x2都成為派生類YY的保護(hù)成員,再加上派生類YY自身的保護(hù)成員y2,因此類YY中有3個(gè)保護(hù)成員。

故此題答案為C。

21、翻開文件時(shí)可單獨(dú)或組合使用以下文件翻開模式

?ios_base::app(2)ios_base::binary

(3)ios_base::in@ios_base::out

假設(shè)要以二進(jìn)制讀方式翻開一個(gè)文件,需使用的文件翻開模式為O

A、①③

B、①④

C、②③

D、②④

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

翻開一個(gè)與輸出流關(guān)聯(lián)的文件時(shí),通常要指定文件模式。ios_base::app模式的功能:以寫方式翻開文件,假設(shè)文件不存

在那么創(chuàng)立文件,假設(shè)文件已存在那么向文件尾添加數(shù)據(jù);ios_base::binary模式:以二進(jìn)制模式翻開文件(缺省為文

本模式);ios_base::in模式:以讀方式翻開文件;iosbase::out模式:以寫方式翻開文件,假設(shè)文件不存在那么創(chuàng)立,

假設(shè)文件已存在那么清空原內(nèi)容(ofstream默認(rèn)的翻開方式)。因此假設(shè)要以二進(jìn)制讀方式翻開一個(gè)文件,需使用的文

件翻開模式為:ios_base::binary|iosbase::in-

故此題答案為C。

22、以下關(guān)于函數(shù)的描述中,錯(cuò)誤的選項(xiàng)是。

A、函數(shù)可以沒(méi)有返回值

B、函數(shù)可以沒(méi)有參數(shù)

C、函數(shù)可以是一個(gè)類的成員

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

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

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

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

{

語(yǔ)句序列

無(wú)返回值的函數(shù)其類型標(biāo)識(shí)符為void。應(yīng)選項(xiàng)A正確;函數(shù)可以沒(méi)有參數(shù),當(dāng)函數(shù)定義時(shí)沒(méi)有形參,那么函數(shù)調(diào)用時(shí),〈

實(shí)參表〉亦為空,應(yīng)選項(xiàng)B正確;函數(shù)可以是類的成員,應(yīng)選項(xiàng)C正確;模板是C++支持參數(shù)化多態(tài)性的工具,函數(shù)模板實(shí)

現(xiàn)了類型參數(shù)化,將函數(shù)處理的數(shù)據(jù)類型作為參數(shù),提高了代碼的可重用性,應(yīng)選項(xiàng)D錯(cuò)誤。

故此題答案為D。

23、以下關(guān)于運(yùn)算符重載的描述中,錯(cuò)誤的選項(xiàng)是。

A、可以通過(guò)運(yùn)算符重載在C++中創(chuàng)立新的運(yùn)算符

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

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

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

此題主要考查了運(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ù)。以及所有的類型轉(zhuǎn)換運(yùn)算

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

表中,因此選項(xiàng)C正確;重載類型轉(zhuǎn)換運(yùn)算符的格式為:operator類型名(),其中"類型名”就代表了返回類型,因此重

載類型轉(zhuǎn)換運(yùn)算符時(shí)不需要聲明返回類型,因此選項(xiàng)D正確。

故此題答案為A。

24、以下關(guān)于繼承方式的描述中,錯(cuò)誤的選項(xiàng)是。

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

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

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

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

此題主要考查了類的繼承與派生。

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

方式,缺省的類繼承方式是私有(private)繼承。因此選項(xiàng)A正確;當(dāng)派生類從基類公有繼承時(shí),基類的公有成員和保

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

基類的公有成員和保護(hù)成員在派生類中都為保護(hù)成員,因此選項(xiàng)C正確;當(dāng)派生類從基類私有繼承時(shí),基類的公有成員和

保護(hù)成員在派生類中都改變?yōu)樗接谐蓡T;無(wú)論哪種繼承方式,派生類中的成員都不能訪問(wèn)基類中的私有成員,因此選項(xiàng)D

錯(cuò)誤。

故此題答案為D。

25、有如下程序:

ttinclude<iostream>

usingnamespacestd;

classBase(

public:

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

~Base(){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é)果是。

A、2332

B、2323

C、3232

D、3223

此題主要考查了派生類的構(gòu)造函數(shù)與析構(gòu)函數(shù)。

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

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

對(duì)象在類中聲明的順序〔自上而下);[3)執(zhí)行派生類的構(gòu)造函數(shù)。

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

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

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

理。

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

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

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

的值3,然后調(diào)用基類析構(gòu)函數(shù),輸出valB的值2。因此本程序運(yùn)行時(shí)的輸出結(jié)果是2332。

故此題答案為A。

26、假設(shè)MyTemp是一個(gè)只有一個(gè)虛擬類型參數(shù)的類模板,且有如下語(yǔ)句序列

MyTemp<double>p2;

MyTemp<long>p3[2];

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

A、1

B、2

C、3

D、0

此題主要考核類模板。

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

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

class類名

{類成員聲明}

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

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

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

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

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

故此題答案為B。

27、假設(shè)x和y是程序中的兩個(gè)整型變量,那么以下if語(yǔ)句中正確的選項(xiàng)是o

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

B、if(x==0)theny=lelsey=2;

C、if(x==0)y=lelsey=2;

D、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。

28、要定義一個(gè)引用變量p,使用引用類MyClass的一個(gè)對(duì)象,正確的定義語(yǔ)句是。

A、MyClassp=MyClass;

B、MyClassp=newMyClass;

C、MyClass&p=newMyClass;

D、MyClassa,&p=a;

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

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

說(shuō)明:

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

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

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

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

因此引用本身不占存儲(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。

29、將運(yùn)算符〃+〃重載為非成員函數(shù),以下原型聲明中,錯(cuò)誤的選項(xiàng)是。

A、MyClockoperator+(MyClock,long);

B、MyClockoperator+(MyClock,MyClock);

C、MyClockoperator+(long,long);

D、MyClockoperator+(long,MyClock);

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

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

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

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

因此選項(xiàng)C錯(cuò)誤。

故此題答案是C。

30、關(guān)于函數(shù)中的〈返回類型》,以下表述中錯(cuò)誤的選項(xiàng)是。

A、〈返回類型》中有可能包含關(guān)鍵字int

B、〈返回類型〉中有可能包含自定義標(biāo)識(shí)符

C、〈返回類型》中有可能包含字符*

D、〈返回類型〉中有可能包含口

此題主要考查了函數(shù)的返回類型。

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

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

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

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

的返回類型可以為指針,因此返回類型可能包含字符*,選項(xiàng)C正確;但返回類型不能為數(shù)組,因此返回類型中不可能包

含口,因此選項(xiàng)D錯(cuò)誤。

故此題答案為D。

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

A、setprecision

B、setw

C、setfill

D、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。

32、將前綴運(yùn)算符〃--〃重載為非成員函數(shù),以下原型中,能正確用于類中說(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ù):int。如果將前綴一和后綴一作為非成員函數(shù)重載,那個(gè)唯

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

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

friendDecr&operator一(Decr&);

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

friendDeeroperator一(Decr&,int);

當(dāng)運(yùn)算符重載為類的成員函數(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。

33、下面是類Shape的定義:

classShape{

public:

virtualvoidDraw()=0;

);

以下關(guān)于Shape類的描述中,正確的選項(xiàng)是。

A、類Shape是虛基類

B、類Shape是抽象類

C、類Shape中的Draw函數(shù)聲明有誤

D、語(yǔ)句"Shapes能夠建立Shape的一個(gè)對(duì)象s

此題主要考查了純虛函數(shù)和抽象類。

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

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

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

即不能定義一個(gè)抽象類的對(duì)象,因此選項(xiàng)D錯(cuò)誤。

故此題答案是B。

34、以下關(guān)于類模板的描述中,錯(cuò)誤的選項(xiàng)是。

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

B、可以為類模板參數(shù)設(shè)置默認(rèn)值

C、類模板描述了一組類

D、類模板中只允許有一個(gè)類型參數(shù)

此題主要考查了類模板。

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

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

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

class類名

{類成員聲明}

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

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

類模板的成員函數(shù)都是模板函數(shù),因此選項(xiàng)A正確。

故此題答案為D。

35、有以下程序:

#include〈iostream〉

usingnamespacestd;

classB{

public:

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

virtualvoidshow()const

{cout?count?5?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_120

B、2_120

C、l_20

D、2_20

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

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

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

行派生類的構(gòu)造函數(shù)。

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

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

它的派生類對(duì)象,而且通過(guò)這樣的指針〔或引用)調(diào)用虛函數(shù)時(shí),被調(diào)用的是該指針〔或引用)實(shí)際所指向的對(duì)象類的

那個(gè)重定義版本。

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

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

函數(shù)中,第一條語(yǔ)句通過(guò)new運(yùn)算符創(chuàng)立派生類D的對(duì)象,并把對(duì)象的首地址賦給基類指針ptr,即基類指針ptr指向派生

類對(duì)象。在創(chuàng)立派生類對(duì)象時(shí),先執(zhí)行基類B的構(gòu)造函數(shù),count的值為1,然后執(zhí)行派生類D的構(gòu)造函數(shù),count的值為2,

y的值為120;main。函數(shù)的第二條語(yǔ)句通過(guò)基類指針ptr調(diào)用虛函數(shù)show。,被調(diào)用的是該指針實(shí)際所指向的派生類對(duì)象

類的重定義版本,即輸出2」20。

故此題答案為B。

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

那么該循環(huán)隊(duì)列中共有個(gè)元素。

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

在循環(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è)元素。

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)

碼也稱為關(guān)鍵字,是表中假設(shè)干屬性的屬性組,其值惟一標(biāo)識(shí)表中的一個(gè)元組。在關(guān)系模式選課中能惟一標(biāo)識(shí)一個(gè)

元組的是學(xué)號(hào),課號(hào)。

38、一個(gè)隊(duì)列的初始狀態(tài)為空。現(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

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

頭。在隊(duì)列這種數(shù)據(jù)結(jié)構(gòu)中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除。因此,隊(duì)

列又稱為“先進(jìn)先出"或"后進(jìn)后出”的線性表。

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

對(duì)該二叉樹進(jìn)行后序遍歷的結(jié)果為。

標(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

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

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

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

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

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

41、在執(zhí)行語(yǔ)句序列

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

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

標(biāo)準(zhǔn)答案為: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。

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

此題主要考查了標(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ù)模板的定義是。

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

n){returnn*n;}

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

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

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

template〈模板形參表聲明》

函數(shù)聲明

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

式:

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

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

可以互換。

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

n){returnn*n;}。

44、請(qǐng)將下面的類Date的定義補(bǔ)充完整,使得由語(yǔ)句

DateFirstDay;

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

classDate(

public:

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

private:

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

};

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

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

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

為默認(rèn)形式的構(gòu)造函數(shù),如果類中定義構(gòu)造函數(shù),編譯系統(tǒng)將不會(huì)再為其生成默認(rèn)構(gòu)造函數(shù)。構(gòu)造函數(shù)在對(duì)象被創(chuàng)立的

時(shí)候由系統(tǒng)自動(dòng)調(diào)用。類Date中定義了一個(gè)構(gòu)造函數(shù),由類Date的構(gòu)造函數(shù)的初始化列表可知構(gòu)造函數(shù)的形參應(yīng)是三個(gè)

整型變量y,m和d,編譯系統(tǒng)將不會(huì)為類Date建立無(wú)參數(shù)的默認(rèn)構(gòu)造函數(shù)。建立類Date的對(duì)象FirstDay時(shí)沒(méi)有給出初始值,

假設(shè)要正確調(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,intm=l,intd=lo

45、在有理數(shù)類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:

in

溫馨提示

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