2021年福建省福州市全國(guó)計(jì)算機(jī)等級(jí)考試C++語(yǔ)言程序設(shè)計(jì)真題(含答案)_第1頁(yè)
2021年福建省福州市全國(guó)計(jì)算機(jī)等級(jí)考試C++語(yǔ)言程序設(shè)計(jì)真題(含答案)_第2頁(yè)
2021年福建省福州市全國(guó)計(jì)算機(jī)等級(jí)考試C++語(yǔ)言程序設(shè)計(jì)真題(含答案)_第3頁(yè)
2021年福建省福州市全國(guó)計(jì)算機(jī)等級(jí)考試C++語(yǔ)言程序設(shè)計(jì)真題(含答案)_第4頁(yè)
2021年福建省福州市全國(guó)計(jì)算機(jī)等級(jí)考試C++語(yǔ)言程序設(shè)計(jì)真題(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(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)介

2021年福建省福州市全國(guó)計(jì)算機(jī)等級(jí)考試

C++語(yǔ)言程序設(shè)計(jì)真題(含答案)

學(xué)校:班級(jí):姓名:考號(hào):

一、1.選擇題(10題)

1.有下列程序:#include<iostream>usingnamespacestd;class

TestClass{private;charc;public:TestClass(charn):c(n){}-TeStClass()

{cout<<c}};classTestClasskpublicTestClass{

A.xyB.yxC.xD.y

2.內(nèi)部靜態(tài)變量的作用域是()。

A.定義該靜態(tài)變量的文件外部B.定義該靜態(tài)變量的文件內(nèi)部C.定義

該靜態(tài)變量的函數(shù)外部D.定義該靜態(tài)變量的函數(shù)內(nèi)部

3.下面程序的運(yùn)行結(jié)果為()。#include<iostream.h>voidmain(){char

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

default:cout<<"1";}}

A.3B,321C.31D.32

4.下列敘述中正確的是()o

A.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間具有密切的關(guān)系

B.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象都是公用的

C.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間相對(duì)獨(dú)立,相互依賴性小

D.上述3種說(shuō)法都不對(duì)

5.假定MyClass為一個(gè)類,則執(zhí)行MyClassa,b(2),*p;語(yǔ)句時(shí),自動(dòng)

調(diào)用該類構(gòu)造函數(shù)()次。

A.2B.3C.4D.5

6.下面是關(guān)于派生類聲明的開(kāi)始部分,其中正確的是

A.classvirtualB:publicA

B.virtualclassB:publicA

C.classB:publicAvirtual

D.classB:virtualpublicA

7.下列是關(guān)于派生類聲明的開(kāi)始部分,其中正確的是()。

A.classvirtualB:publicA

B.virtualclassB:publicA

C.classB:publicAvirtual

D.classB:virtualpublicA

8.有如下程序:#include<iostream.h>#include<iomanip.h>using

namespacestd;classCSum{intx,y;public:CSum(intxO,int

yO):x(xO),y(yO){}friendostream&operator<<(ostream&os,constCSum&

xa){os<<setw(5)<<xa.x+xa.y;returnos;}};intmain(){CSumy(3,5);

cout<<setfill('*')<<8;cout<<y;return0;}執(zhí)行上面程序的輸出是

A.88B.****88c.****8****8D.8****8

9.有如下函數(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)

10.下列關(guān)于構(gòu)造函數(shù)說(shuō)法不正確的是

A.構(gòu)造函數(shù)必須與類同名B.構(gòu)造函數(shù)可以省略不寫C.構(gòu)造函數(shù)必須

有返回值D.在構(gòu)造函數(shù)中可以對(duì)類中的成員進(jìn)行初始化

二、單選題(13題)

11.下列枚舉類型的定義中,包含枚舉值3的是

A.enumtest{RED,YELLOW,BLUE,BLACK);

B.enumtest{RED,YELLOW=4,BLUE,BLACK);

C.enumtest{RED=-1,YELLOW,BLUE,BLACK};

D.enumtest{RED,YELLOW=6,BLUE,BLACK};

12.下面對(duì)靜態(tài)數(shù)據(jù)成員的描述中,正確的是()。

A.靜態(tài)數(shù)據(jù)成員是類的所有對(duì)象共享的數(shù)據(jù)

B.類的每個(gè)對(duì)象都有自己的靜態(tài)數(shù)據(jù)成員

C?類的不同對(duì)象有不同的靜態(tài)數(shù)據(jù)成員值

D.靜態(tài)數(shù)據(jù)成員不能通過(guò)類的對(duì)象調(diào)用

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

A.::運(yùn)算符不能重載

B.類型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載

C.將運(yùn)算符作為非成員函數(shù)重載時(shí)必須定義為友元

D.重載口運(yùn)算符應(yīng)完成“下標(biāo)訪問(wèn)”操作

14.有如下類定義:

classFoo

(

public:

Foo(intv):value(v){}//?

?Foo(){}//②

private:

Foo(){}//③

intvalue=O;//④

);

其中存在語(yǔ)法錯(cuò)誤的行是()。

A.①B.②C.③D.@

15.設(shè)函數(shù)中有整型變量n,為保證其在未賦初值的情況下初值為0,應(yīng)

選擇的存儲(chǔ)類別是()。

A.A.autoB.xegisterC.staticD.autO或register

16.下列關(guān)于虛函數(shù)的描述中,正確的是()。

A.虛函數(shù)是一個(gè)static類型的成員函數(shù)

B.虛函數(shù)是一個(gè)非成員函數(shù)

C.基類中采用virtual說(shuō)明一個(gè)虛函數(shù)后,派生類中定義相同原型的函數(shù)

時(shí)可不必加virtual說(shuō)明

D.派生類中的虛函數(shù)與基類中相同原型的虛函數(shù)具有不同的參數(shù)個(gè)數(shù)

或類型

17.已知:intn=l;在下面定義引用的語(yǔ)句中,正確的是()。

A.intx=&n;

B.int&x=n;

C.int&x;

D.int&x=&n;

18.設(shè)棧S的初始狀態(tài)為空。元素a,b,c,d,e,f依次通過(guò)棧S,若

出棧的順序?yàn)閎,d,c,f,e,a,則棧S的容量至少應(yīng)該為

A.3B.4C.5D.6

19.設(shè)有下列二叉樹(shù):對(duì)此二叉樹(shù)前序遍歷的

結(jié)果為()

A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY

20.棧通常采用的兩種存儲(chǔ)結(jié)構(gòu)是

A.A.線性存儲(chǔ)結(jié)構(gòu)和鏈表存儲(chǔ)結(jié)構(gòu)

B.散列方式和索引方式

C.鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組

D.線性存儲(chǔ)結(jié)構(gòu)和非線性存儲(chǔ)結(jié)構(gòu)

21.軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。

下列屬于應(yīng)用軟件的是()。

A.編譯程序B.操作系統(tǒng)C.教務(wù)管理系統(tǒng)D.匯編程序

22.有以下程序:

#include<iostream>

usingnamespacestd;

#defineP13.14

classPoint

{private:

intX,y;

public:

Point(inta,intb)

{x=a:

y=b;}

intgetx()

{retumX;}

intgety()

{returny;}};

classCircle:publicPoint

{private:

intr;

public:

Circle(inta,intb,intc):Point(a,b)

{r=C;}

intgetr()

{returnr;}

doublearea()

{retumPI*r*r;}};

intmain()

(Circled(5,7,10);

cout?c1.area()?endl;

returnO;}

程序執(zhí)行后的輸出結(jié)果是()oA.314B.157C.78.5D.153.86

23.軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。

下面屬于應(yīng)用軟件的是_________O

A.編譯程序B.操作系統(tǒng)C.教務(wù)管理系統(tǒng)D.匯編程序

三、2.填空題(12題)

24.若有:

inti=1000;

int*ip=&i;

void*VP;

vp=ip;

其中,vp=ip的含義是

25.設(shè)有二維數(shù)組inta[10][20];,則的地址可由首元素a⑼⑼的地

址來(lái)表達(dá),由此可得訪問(wèn)數(shù)組元素a[i]皿的表達(dá)式為【】。

26.在長(zhǎng)度為n的有序線性表中進(jìn)行二分查找,最壞的情況下需要的比

較次數(shù)為【】。

27.通過(guò)使用new和delete兩個(gè)運(yùn)算符進(jìn)行的分配為【】存儲(chǔ)分配。

28.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,類描述的是具有相似性質(zhì)的一組【】。

29.若a=12,b=14,c=0,則表達(dá)式“((y=(a>B)?a:B)>C)?y:c”的值為

[]o

30.cerr與cout的差別在于:cerr是____重定向的,cerr不能被緩沖,

它的輸出直接傳達(dá)到標(biāo)準(zhǔn)輸出設(shè)備上。

31.若有定義:doublea[3][5];那么數(shù)組a的最后一個(gè)元素是【】。

32.軟件工程研究的內(nèi)容主要包括:[]技術(shù)和軟件工程管理。

33.在一個(gè)函數(shù)的定義或聲明前加上關(guān)鍵字【】時(shí),該函數(shù)就聲明為內(nèi)

聯(lián)函數(shù)。

34.數(shù)據(jù)庫(kù)恢復(fù)是將數(shù)據(jù)庫(kù)從狀態(tài)恢復(fù)到某一已知的正確狀態(tài)。

35.若Dl={al,a2,a3},D2={bl,b2,b3},則DlxD2集合中共有個(gè)

元組。

四、程序改錯(cuò)題(10題)

36.使用VC++6.0打開(kāi)考生文件夾下的源程序文件

1.cpp,該程序運(yùn)行時(shí)有錯(cuò)誤,請(qǐng)改正程序中的錯(cuò)誤。本程序要求實(shí)現(xiàn)

的功能為從鍵盤輸入一個(gè)字符串,并將結(jié)果保存到文件1.txt中。

注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)

構(gòu),錯(cuò)誤的語(yǔ)句在

II******ei*ror******白勺~|\1|^*|

試題程序:

#include<iostream>

#include<fstream>

II********epj*or********

usingstd;

voidWriteFile(char*s)

(

ofstreamoutl;

********ex*x*or********

outl.open("l.txt",binary|app);

for(inti=0;s[i]!=0;i++)

********ex*x*or********

outl.puts(s[i]);

)

outl.close;

)

voidClearFile

(

ofstreamoutl;

outl.open("l.txt");

outl.close;

}

intmain

(

chars[1024];

ClearFile;

cout?"pleaseinputastrin9:"?endl;

cin.getline(s,1024);

WriteFile(s);

returnO;

37.使用VC++6.0打開(kāi)考生文件夾下的源程序文件1.cpp,該程序運(yùn)

行時(shí)有錯(cuò),請(qǐng)改正其中的錯(cuò)誤,使程序正常運(yùn)行,并使程序輸出的結(jié)果

為:

sizeof(Sl)=5

sizeof(s2)=10

sizeof(s3)=l

注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)

構(gòu),錯(cuò)誤的語(yǔ)句在//******error******的下面。

⑴不能刪除assert()語(yǔ)句。

⑵只能修改后面的數(shù)字。

提示:assert函數(shù)如果為假,則會(huì)產(chǎn)生一個(gè)中斷異常。

試題程序:

#include<iostream.h>

#include<assert.h>

voidmain()

(

char*sl="abc":

1I********ep^or********

assert(sizeof(sl)==3):

cout?"sizeof(sl)=5"?endl;

chars2[10]="ab":

1I********ep^or********

assert(sizeof(s2)==2);

cout?"sizeof(s2)=10"?endl;

chars3=23:

1I********ep^or********

assert(sizeof(s3)==4);

cout?"sizeof(s3)=l"?endl;

return;

38.使用VC++6.0打開(kāi)考生文件夾下的源程序文件

1.cpp,該程序運(yùn)行時(shí)有錯(cuò)誤,請(qǐng)改正程序中的錯(cuò)誤。本程序要求實(shí)

現(xiàn)的功能為從鍵盤輸入一個(gè)字符串,并將結(jié)果保存到文件1.txt中。

注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)

構(gòu),錯(cuò)誤的語(yǔ)句在

/I******en^or******白勺-?日j。

試題程序:

#include<iostream>

#include<fstream>

/I********epj*or********

usingstd;

voidWriteFile(char*s)

(

ofstreamoutl;

/I********epj*or********

outl.open("1.txt",binary|app);

for(inti=0;s[i]!=0;i++)

//********epj^or********

outl.puts(s[i]);

outl.close;

voidClearFile

(

ofstreamoutl;

outl.open("l.txt");

outl.close;

)

intmain

(

chars[1024];

ClearFile;

cout?"pleaseinputastrin9:"?endl;

cin.getline(s,1024);

WriteFile(s);

returnO;

)

39.使用VC++6.0打開(kāi)考生文件夾下的源程序文件1.cpp,該程序運(yùn)

行有問(wèn)題,請(qǐng)改正main函數(shù)中的錯(cuò)誤,使程序的輸出結(jié)果為:

number=l

number=10

number=100

注意:不要改動(dòng)main函數(shù),不能增加或刪除行。也不能更改程序的結(jié)

構(gòu),錯(cuò)誤的語(yǔ)句在//******errc)r******的下面。

試題程序:

#include<iostream.h>

classTC

public:

TC(inti)

(

number=i;

)

voidSetNumber(intm)

(

number=m;

)

intGetNumberconst

(

returnnumber;

)

voidPrintconst

(

cout?"number="?number?endl;

)

private:

intnumber;

voidmain

1I********ep^or********

TCobjl;

objl.Print;

TCobj2(3);

1I********ep^or********

objl.number=10;

II**************

TC.SetNumber(lOO);

objl.Print;

obj2.Print;

40.使用VC++6.0打開(kāi)考生文件夾下的源程序文件1.cpp,但該程

序運(yùn)行有問(wèn)題,請(qǐng)改正main函數(shù)中的錯(cuò)誤,使該程序的輸出結(jié)果正

確。

程序輸出:

8

8

注意:錯(cuò)誤的語(yǔ)句在/********error********/的下面。修改該語(yǔ)句

即可,其他的語(yǔ)句不能修改。

試題程序:

#include(iostream.h>

classCO

public:

/********ej*j*or********I

staticintn=O:

CO

n++:

CO

n—:

}:

/********ej*poj*********j

intCO::n;

voidmain

COobj;

COobj2[7];

CO*C=NULL:

c=&obj:

I********epj*or********I

eout?C.n?endl;

cout?C0::n?endl;

41.使用VC++6.0打開(kāi)考生文件夾下的源程序文件1.cpp,該程序

運(yùn)行時(shí)有錯(cuò)。請(qǐng)改正程序中的錯(cuò)誤,使程序輸出的結(jié)果為

100

37

32

注意:錯(cuò)誤的語(yǔ)句在//******error******的下面,修改該語(yǔ)句即

可。

試題程序:

#include<iostream.h>

//******ep^or******

voidmain

(

//******ej*por******

intm=0142:

//******ep^or******

intn=0X27:

intq=32;

cout<<m<<endl;

cout<<n<<endl;

cout<<q<<endl;

return;

)

42.使用VC++6.0打開(kāi)考生文件夾下的源程序文件1.cpp,該程序

運(yùn)行時(shí)有錯(cuò)誤,請(qǐng)改正錯(cuò)誤,使程序正常運(yùn)行,并且要求最后一個(gè)

catch必須拋出執(zhí)行的任何異常。

程序異常,輸出信息為

error

0

ERROR

注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)

構(gòu),錯(cuò)誤的語(yǔ)句在//******error******的下面。

試題程序:

#include<iostream.h)

intmain

(

try

(

throw("error");

/j********epj'or********

catch(chars)

(

cout?s?endl;

try

(

throw((int)0);

//********epj^or********

catch

(

cout?i?endl;

}

try

(

throw(O);

throw("error");

II********ej*j*01********

catch

cout?"ERROR"?endl;

returnO;

43.使用VC++6.0打開(kāi)考生文件夾下的源程序文件1.cpp,該程序

運(yùn)行時(shí)有錯(cuò),請(qǐng)改正其中的錯(cuò)誤,使程序正常運(yùn)行,輸出的結(jié)果為

Constructor,i=0,

Destructor

注意:錯(cuò)誤的語(yǔ)句在//******error******的下面,修改該語(yǔ)句即

可。

試題程序:

#include(iostream.h)

classTC

(

inti;

public:

TC;

voiddisplay;

?TC;

);

I/******epj^or******

TC:TC

(

cout?"Constructor"?",";

i=0;

I/******ej*j^0r******

TC:display

(

tout?"i="?i<<","?endl;

)

I/******ej^0r******

TC:TC

(

COUI?"Destructor"?endl:

)

voidmain

(

TCa;

a.display;

)

44.使用VC++6.0打開(kāi)考生文件夾下的源程序文件1.cpp,該程序

運(yùn)行有問(wèn)題,請(qǐng)改正main函數(shù)中的錯(cuò)誤,使程序的輸出結(jié)果為:

number=l

number=10

number=100

注意:不要改動(dòng)main函數(shù),不能增加或刪除行。也不能更改程序的結(jié)

構(gòu),錯(cuò)誤的語(yǔ)句在//******error******的下面。

試題程序:

#include<iostream.h>

classTC

public:

TC(inti)

number=i;

)

voidSetNumber(intm)

(

number=m;

)

intGetNumberconst

(

returnnumber;

)

voidPrintconst

(

cout?"number="?number?endl;

)

private:

intnumber;

);

voidmain

//********epj^or********

TCobjl;

objl.Print;

TCobj2(3);

//********epj^or********

objl.number=10;

I/********ej*j*0r*^^o******

TC.SetNumber(lOO);

objl.Print;

obj2.Print;

45.使用VC++6.0打開(kāi)考生文件夾下的源程序文件1-cppo本程序要

求輸入一個(gè)字符串,然后將其中的小寫字母改成大寫字母,字符可能輸

入多行,當(dāng)輸入字符“?”時(shí),默認(rèn)字符輸入結(jié)束,最后把結(jié)果輸出到屏幕

中。

注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)

構(gòu),錯(cuò)誤的語(yǔ)句在//******error******的下面。

試題程序:

#include<iostream.h>

voidmain

(

inti=O;

charstr[120];

cout?''Enterastringendwith?."?endl;

I!********ej*por********

cin.getline(str,120);

II********ep^or********

while(str)

II********ej*por********

if(str[i])=a)

str[i]=str[i]-a+A;

i++;

}

cout?str?endl;

return;

)

五、綜合應(yīng)用題(2題)

46.請(qǐng)使用VC6或使用【答題】菜單打開(kāi)考生文件夾proj3下的工程

proj3,其中聲明的DataList類,是一個(gè)用于表示數(shù)據(jù)表的類。DataList

的重載運(yùn)算符函數(shù)Operator+,其功能是求當(dāng)前數(shù)據(jù)表與另一個(gè)相同長(zhǎng)

度的數(shù)據(jù)表之和;即它返回一個(gè)數(shù)據(jù)表,其每個(gè)元素等于相應(yīng)兩個(gè)數(shù)

據(jù)表對(duì)應(yīng)元素之和。請(qǐng)編寫這個(gè)operator+函數(shù)。程序的正確輸出應(yīng)該

是:

兩個(gè)數(shù)據(jù)表:1,2,3,4,5,63,4,5,6,7,8兩個(gè)數(shù)據(jù)表之

和:

4,6,8,10,12,14要求:

補(bǔ)充編制的內(nèi)容寫在“〃********333********”與

“〃********666********”之間,不得修改程序

的其他部分。

注意:程序最后將結(jié)果輸出到文件。ut.dat中。輸出函數(shù)writeToFile

已經(jīng)編譯為。bj文件,并且在本程序中調(diào)用。

//DataList.h

#inClude<iostream>usingnamespaCestd;

ClaSSDataList{〃數(shù)據(jù)表類intfen;

double*d;public:

DataList(intlen,doubledata[]=NULL);DataList(DataList&data);

intlengthConst{returnlen;}

doublegetElement(inti)Consttreturnd[i];}

DataListoperator+(ConstDataList&list)Const;〃兩個(gè)數(shù)據(jù)表求和void

showConst;//顯示數(shù)據(jù)表

);

voidwriteToFile(Char$,ConstDataList&);//main.Cpp

#inClude,,DataList.h"

DataList::DataList(intlen,doubledata[]):len(ien){d=new

double[len];

for(inti=0;i<len;i++)

d(^)i=(data==NULL?0.0:data[i]);

)

DataList::DataList(DataList&data):len(data.len){d=new

double[len];

for(inti=0;i<len;i++)d[i]=data.d[i];

DataListDataList::0perator+(Con8tDataList&list,)Const{〃兩個(gè)數(shù)據(jù)

表求和double*dd=newdouble[list.lensth];

I/********333********

〃********666********

returnDataList(list.length,dd);}

voidDataList::showConst{〃顯示數(shù)據(jù)表fr(intoi=0;i<len-1;i++)

eout?d[i]?,\";

Cout?d[len-l]?endl;

intmain{

doublesl[]={L2,3,4,5,6);

doubles2[]={3,4,5,6,7,8);

DataListlist1(6,si),list2(6,s2);〃定義兩個(gè)數(shù)據(jù)表對(duì)象eout<<”兩個(gè)

數(shù)據(jù)表:“<<endl:

listl.show:list2.show;eout?endl<<”兩個(gè)數(shù)據(jù)表之

和:,,?endl:

(listl+list2).show;

writeToFile(,,,Slistl+list2);return0:

47.使用VC++6.0打開(kāi)考生文件夾下的源程序文件3.cpp。請(qǐng)完成

以下部分,實(shí)現(xiàn)在屏幕上輸出為

C3

C2

這個(gè)程序需要修改的部分,請(qǐng)按照以下部分實(shí)現(xiàn)。

⑴類C0不能被實(shí)例化,請(qǐng)定義一個(gè)純虛函數(shù)print,在注釋1后添加

適當(dāng)?shù)恼Z(yǔ)句。

⑵類Cl私有虛繼承類CO,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句o

(3)類C2公有繼承于CO,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。

(4)類c3公有繼承于C2與C1,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。

注意:增加代碼或者修改代碼的位置已經(jīng)用符號(hào)表示出來(lái)。請(qǐng)不要修

改其他的程序代碼。

試題程序:

#include(iostream.h)

classCO

);

//********2********

classCl:

public:

voidprint

cout<",,Cl"<<endl;

);

//********3********

classC2:

public:

voidprint

cout<<"C2"<<endl;

);

//********4***x****

classC3:

(

public:

voidprint

(

cout<<"C3"<<endl;

)

);

voidmain

(

C3Obj3;

C20bj2;

obj3.print;

obj2.print;

return;

}

六、3.綜合應(yīng)用題(2題)

48.使用VC6打開(kāi)考生文件夾下的工程testll_3o此工程包含一個(gè)

testll_3.cpp,其中定義了類CPosition,但該類的定義都并不完整。請(qǐng)按

要求完成下列操作,將類CPosition的定義補(bǔ)充完整。

(1)在類定義外完成重載的兩個(gè)構(gòu)造函數(shù)CPosition。和CPosition(double

dx,doubledy),其中前者為不帶參數(shù)的構(gòu)造函數(shù),使CPosition對(duì)象的

默認(rèn)值為x=0,y=0,后者為帶參數(shù)的構(gòu)造函數(shù),把數(shù)據(jù)成員x和y分

別初始化為參數(shù)dx和dy的值。請(qǐng)?jiān)谧⑨尅?/**1**”之后添加適當(dāng)?shù)恼Z(yǔ)句。

(2)在類體中添加函數(shù)move(doubleax,doubleay)的定義,使得點(diǎn)的坐標(biāo)

x和y分別移動(dòng)ax和ay個(gè)單位,請(qǐng)?jiān)谧⑨尅啊?*2**”之后添加適當(dāng)?shù)恼Z(yǔ)

句。

(3)完成函數(shù)doubledistance(doublebx,doubleby)的定義,該函數(shù)返回

*this和點(diǎn)(bx,by)的距離,請(qǐng)?jiān)谧⑨尅啊?*3**”之后添加適當(dāng)?shù)恼Z(yǔ)句。

注意:除在指定的位置添加語(yǔ)句外,請(qǐng)不要改動(dòng)程序中的其他語(yǔ)句。

源程序文件testll_3.cpp清單如下:

#include<iostream,h>

#include<math.h>

classCPosition

(

public:

CPosition();

CPosition(doubledx,doubledy);

doublegetx();

doublegety();

〃**2**

doubledistance(doublebx,doubleby);

private:

doublex;

doubley;

II**]**

x=0;y=0;

)

CPosition::CPosition(doubledx,doubledy)

(

x=dx;y=dy;

)

doubleCPosition::getx()

(

returnx;

)

doubleCPosition::gety()

(

returny;

)

doubleCPosition::distance(doublebx,doubleby)

**3**

voidmain()

(

doublea,b;

cout<<"Inputx,ypositionofapoint:";

cin>>a>>b;

CPositionpsA(a,b);

cout<<"Inputx,ypositionofanotherpoint:

cin>>a>>b;

cout<<"Thedistanceis"<<psA.distance(a,b)<<endl;

49.使用VC6打開(kāi)考生文件夾下的工程test36_3o此工程包含一個(gè)

test36_3.cpp,其中定義了類CRectangle,但該類的定義并不完整。請(qǐng)按

要求完成下列操作,將程序補(bǔ)充完整。

⑴定義類CRectangle的數(shù)據(jù)成員width和height,它們都是int型的數(shù)

據(jù)。請(qǐng)?jiān)谧⑨尅啊?*1**”之后添加適當(dāng)?shù)恼Z(yǔ)句。

(2)添加類CRectangle的友元函數(shù)duplicate。的聲明,其返回值類型和參

數(shù)類型均為Crectangle的,請(qǐng)?jiān)谧⑨尅啊?*2**”之后添加適當(dāng)?shù)恼Z(yǔ)句。

(3)完成類Crectangle的成員函數(shù)set_values的定義,把傳入的參數(shù)a和

b分別賦值為數(shù)據(jù)成員width和height,請(qǐng)?jiān)谧⑨尅啊?*3**”之后添加適

當(dāng)?shù)恼Z(yǔ)句。

(4)完成派生類Crectangle的友元函數(shù)duplicate的定義,把函數(shù)中的臨時(shí)

對(duì)象rectres的值返回主函數(shù),請(qǐng)?jiān)谧⑨尅啊?*4**”之后添加適當(dāng)?shù)恼Z(yǔ)句。

注意:除在指定位置添加語(yǔ)句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。

源程序文件test36_3.cpp清單如下:

#include<iostream,h>

classCRectangle

(-

〃**]**

public:

voidset_values(int,int);

intarea(void){return(width*height);}

〃**2**

);

voidCRectangle::set_values(inta,intb)

H**3**

CRectangleduplicate(CRectanglerectparam)

(-

CRectanglerectres;

rectres.width=rectparam.width*2;

rectres.height=rectparam.height*2;

II**4**

)

voidmain()

(

CRectanglerect,rectb;

rect.set_values(2,3);

rectb-duplicate(rect);

cout<<rectb.area()<<endl;

參考答案

LA解析:題目中程序TestClass為基類,TestClassl為派生類。在主函

數(shù)中定義TestClassl對(duì)象obj('x'),"TestClassl(charn):TestClass(n+l),

c(n){}",所以先輸出x,然后調(diào)用基類構(gòu)造函數(shù),k+=y,所以輸出y,

即答案為xy。

2.D解析:內(nèi)部靜態(tài)變量只被初始化一次,它在定義該變量的函數(shù)內(nèi)部

有效。

3.D解析:本題主要考查的是switch語(yǔ)句的使用,在第一個(gè)case處,因

為滿足條件所以輸出字符3,但這個(gè)分支沒(méi)有break語(yǔ)句終止,所以會(huì)

繼續(xù)執(zhí)行下面的分支語(yǔ)句,即輸出字符2,這時(shí)出現(xiàn)break語(yǔ)句,結(jié)束

整個(gè)語(yǔ)句,即輸出32。

4.C本題考查對(duì)面向?qū)ο蟮睦斫?。面向?qū)ο蟮某绦蛟O(shè)計(jì)是對(duì)象模擬問(wèn)題

領(lǐng)域中的實(shí)體,各對(duì)象之間相對(duì)獨(dú)立,相互依賴性小,通過(guò)消息來(lái)實(shí)現(xiàn)

對(duì)象之間的相互聯(lián)系。

5.A解析:C++在創(chuàng)建一個(gè)對(duì)象時(shí),會(huì)調(diào)用類的構(gòu)造函數(shù)。語(yǔ)句MyClass

ab(2),*p;創(chuàng)建了兩個(gè)對(duì)象a、b和指針p,在創(chuàng)建對(duì)象a和b后會(huì)調(diào)用構(gòu)

造函數(shù),而創(chuàng)建指針p時(shí),由于P本身不是對(duì)象,所以不調(diào)用類的構(gòu)造

函數(shù)。

6.D解析:本題考核虛基類的聲明。C++中,虛基類說(shuō)明格式如下:class

(類名>:virtual(繼承方式><基類名>。其中,virtual是虛基類的

關(guān)鍵詞。虛基類的說(shuō)明是用在定義派生類時(shí),寫在派生類名的后面。

7.D解析:聲明派生類的一般形式:class派生類名:[繼承方式]基類名。

其中繼承方式包括public,private,protectedo所以選項(xiàng)A),選項(xiàng)B)錯(cuò)

誤。而virtual為C++中的關(guān)鍵字,所以選項(xiàng)C)錯(cuò)。虛函數(shù)的使用方法

是在基類用virtual聲明成員函數(shù)為虛函數(shù)。

8.D解析:本題考核知識(shí)點(diǎn)包括:類與對(duì)象、運(yùn)算重載、I/O的格式化輸

出。語(yǔ)句'cout<<setfill(\'*\')<<8;輸出8。語(yǔ)句lout<<y:將調(diào)用運(yùn)算

符重載輸出****8,因?yàn)榍懊嬲Z(yǔ)句中設(shè)置的填充符號(hào)現(xiàn)在還有效,而數(shù)

據(jù)8的寬度不夠5,所以剩下4個(gè)字符的寬度用填充符號(hào)陽(yáng)填充。

9.B解析:本題考核函數(shù)模板的使用。引用模板函數(shù)和引用一般的函數(shù)

在語(yǔ)法形式上沒(méi)有任何區(qū)別。所有的類型替換都是編譯器在幕后悄悄進(jìn)

行的。但是要注意的是說(shuō)明一個(gè)函數(shù)模板后,當(dāng)編譯系統(tǒng)發(fā)現(xiàn)有一個(gè)對(duì)

應(yīng)的函數(shù)調(diào)用時(shí),將根據(jù)實(shí)參中的類型來(lái)確認(rèn)是否匹配函數(shù)模板中對(duì)應(yīng)

的形參。例如,本題中的B)選項(xiàng),編譯系統(tǒng)從第一個(gè)參數(shù)“3.5”獲得的

信息是"對(duì)應(yīng)于double",而從第二個(gè)參數(shù)“4”處獲得的信息是"對(duì)應(yīng)

于int”,二者相互矛盾,在編譯時(shí)會(huì)產(chǎn)生錯(cuò)誤。對(duì)于D)選項(xiàng)中緊跟在

函數(shù)名后的<double>就是模板實(shí)參表,通過(guò)它通知編譯系統(tǒng)在調(diào)用過(guò)

程中,int型的參數(shù)“4”將被自動(dòng)換成double型。

10C解析:構(gòu)造函數(shù)是一類特殊的函數(shù),其特點(diǎn)是函數(shù)名與類同名,沒(méi)

有返回值,也可以省略不寫,還可以對(duì)類中的成員進(jìn)行初始化。

11.A

12.A靜態(tài)成員表示整個(gè)類范圍共享的信息泌須對(duì)靜態(tài)數(shù)據(jù)成員進(jìn)行初

始化;靜態(tài)數(shù)據(jù)成員是屬于類的,不能通過(guò)類的對(duì)象調(diào)用。

13.C

Co【解析】除了?、*、一*、::、?:這五個(gè)運(yùn)算符外,其他運(yùn)算符

都可以重載。=、口、、一以及所有的類型轉(zhuǎn)換運(yùn)算符只能作為成員函

數(shù)重載??谧鳛槌蓡T函數(shù)重載時(shí),應(yīng)完成“下標(biāo)訪問(wèn)”操作,使得向指

定下標(biāo)處的元素賦值或取值成為可能。

14.D

解析:本題考查了類的定義。C++語(yǔ)言規(guī)定,在類體中不允許對(duì)所定

義的數(shù)據(jù)成員進(jìn)行初始化。故本題應(yīng)該選擇D。

15.C

Co【解析】在C語(yǔ)言中,未賦初值的靜態(tài)局部變量,編譯程序自動(dòng)

給它賦初值0。所以選擇C。

16.C解析:本題考核對(duì)虛函數(shù)的了解。在成員函數(shù)聲明的前面加上

virtual關(guān)鍵字修飾,即把該函數(shù)聲明為虛函數(shù)。虛函數(shù)可以是另一個(gè)類

的友元函數(shù),但不是靜態(tài)成員函數(shù)。所以A、B選項(xiàng)的描述都是錯(cuò)誤。

在派生類中可以重新定義從基類繼承下來(lái)的虛函數(shù),在派生類中重定義

虛函數(shù)時(shí),函數(shù)名、形參表和返回值類型必須保持不變,所以D選項(xiàng)是

錯(cuò)誤的。

17.B解析引用實(shí)際上就是別名,它與被引用變量擁有同一個(gè)地址空間。

選項(xiàng)A)中&m表示m的地址,而x是一個(gè)整型變量,在C++中不能從

地址值隱式轉(zhuǎn)換為整型值,故選項(xiàng)A)是錯(cuò)的。選項(xiàng)B)中其操作實(shí)際

上就是為m賦于一個(gè)別名x,因此選項(xiàng)B)是對(duì)的。選項(xiàng)C)中引用必須

要用被引用的對(duì)象,即引用必須要初始化:選項(xiàng)D)中x是一個(gè)整型引

用,而其被引用的對(duì)象卻是m的地址,存在著與選項(xiàng)A)類似的錯(cuò)誤,

因此選項(xiàng)D)也是錯(cuò)的。

18.A解析:根據(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出棧,

棧為空??梢钥闯觯M(jìn)棧的順序?yàn)閍,b,c,d,e,f,出棧的順序?yàn)閎,

d,c,f,e,a,滿足題目要求。每次進(jìn)棧操作后,棧中最多有3個(gè)元素,

所以,為了順利完成這些操作,棧的容量應(yīng)至少為3。本題的正確答案

為Ao

19.B解析:所謂二叉樹(shù)的前序遍歷(DLR)是指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子

樹(shù)與遍歷右子樹(shù)這3者中,首先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù),最后遍

歷右子樹(shù),并且,在遍歷左右子樹(shù)時(shí),上述規(guī)則同樣適用,即“根-左-右”。

故該二叉樹(shù)的前序遍歷結(jié)果為“ATBZXCYP"。對(duì)于本題,若使用后序遍

歷和中序遍歷的結(jié)果分別為“ZBTYCPXA”和“TZBACYXP”。

20.A解析:和線性表類似,棧也有兩種存儲(chǔ)方法,一是順序棧,二是鏈

式棧。棧的順序存儲(chǔ)結(jié)構(gòu)是利用一組地址連續(xù)的存儲(chǔ)單元一次存儲(chǔ)自棧

底到棧頂?shù)臄?shù)據(jù)元素,同時(shí)附設(shè)指針top指示棧頂元素的位置,由于棧

的操作是線性表操作的特例,相對(duì)而言,鏈?zhǔn)綏5牟僮鞲子趯?shí)現(xiàn)。注

意:這3種運(yùn)算方法在各種存儲(chǔ)結(jié)構(gòu)中的應(yīng)用。

21.C

Co【解析】編譯程序和匯編程序緇于開(kāi)發(fā)工具;操作系統(tǒng)屬于系統(tǒng)軟

件;而教務(wù)管理系統(tǒng)屬于應(yīng)用軟件。

22.A

Ao【解析】本程序設(shè)計(jì)了一個(gè)點(diǎn)類Point,包含了橫、縱兩個(gè)坐標(biāo)數(shù)

據(jù)x和y,由它派生出了圓類Circle,并加入了新的數(shù)據(jù)成員,即一個(gè)

半徑r和一個(gè)求圓面積的函數(shù)成員area。在主函數(shù)main中,首先定義

了一個(gè)圓Circle類的對(duì)象cl,并通過(guò)它的構(gòu)造函數(shù)初始化其數(shù)據(jù)成

員。由此可知,其半徑r的值為10,所以其面積為PI*10*10=314,即

對(duì)象cl的函數(shù)成員area的返回值為314。

23.C解析:軟件按功能可以分為:應(yīng)用軟件,系統(tǒng)軟件、支撐軟件(或工

具軟件)。應(yīng)用軟件是為解決特定領(lǐng)域的應(yīng)用而開(kāi)發(fā)的軟件。例如,事務(wù)

處理軟件、工程與科學(xué)計(jì)算軟件,實(shí)時(shí)處理軟件,嵌入式軟件,人工智

能軟件等應(yīng)用性質(zhì)不同的軟件。因此選項(xiàng)C教務(wù)管理系統(tǒng)屬于應(yīng)用軟

件。系統(tǒng)軟件是計(jì)算機(jī)管理自身資源,提高計(jì)算機(jī)使用效率并為計(jì)算機(jī)

用戶提供各種服務(wù)的軟件。如操作系統(tǒng),編譯程序,匯編程序,網(wǎng)絡(luò)軟

件,數(shù)據(jù)庫(kù)管理系統(tǒng)等。因此選項(xiàng)A、B、D都屬于系統(tǒng)軟件。

24.把整型指針賦給通用指針把整型指針賦給通用指針

25.*(&a[0][0]+20*4*i+4*j)*(&a[0][0]+20*4*i+4*j)解析:根據(jù)二維數(shù)組

的定義,它的元素的地址應(yīng)該是&a[0][0]+20*4*i+4*j,所以

元素的值是*(&a[0][0]+20*4*i+4*j)。

26.1og2nlog2n解析:在長(zhǎng)度為n的有序線性表中進(jìn)行二分查找,最壞的

情況下需要的比較次數(shù)為logzn。

27.動(dòng)態(tài)動(dòng)態(tài)解析:本題考查的是對(duì)動(dòng)態(tài)分配內(nèi)存的掌握,在C++語(yǔ)言

中,使用關(guān)鍵字Hew和delete進(jìn)行動(dòng)態(tài)內(nèi)存中請(qǐng)和釋放。

28.對(duì)象對(duì)象解析:將屬性、操作相似的對(duì)象歸為類,也就是說(shuō),類是

具有共同屬性、共同方法的對(duì)象的集合。

29.1414解析:本題考核運(yùn)算符的應(yīng)用。條件運(yùn)算符是一種在兩個(gè)表達(dá)

式中選擇一個(gè)的操作,它是C++中惟一的三元運(yùn)算符。在本題中,先計(jì)

算(a>B)?a:b,因?yàn)閍<b,所以條件表達(dá)式的值為0,因此y=b=14,

而y>c的邏輯值為真,所以表達(dá)式的值為y的值,即14。

30.不能不能

31,a[2][4]a[2][4]解析:C++中,數(shù)組每一維的下標(biāo)都是從0開(kāi)始,到n-

1結(jié)束。因此a[3][5]共有15個(gè)元素,最后一個(gè)元素是a[2][4]。

32.軟件開(kāi)發(fā)軟件開(kāi)發(fā)解析:基于軟件下程的目標(biāo),軟件工程的理論和

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

技術(shù)包括:軟件開(kāi)發(fā)方法學(xué)、開(kāi)發(fā)過(guò)程、開(kāi)發(fā)工具和軟件工程環(huán)境,其

主體內(nèi)容是軟件開(kāi)發(fā)方法學(xué)。軟件工程管理包括:軟件管理學(xué)、軟件工

程經(jīng)濟(jì)學(xué),以及軟件心理學(xué)等內(nèi)容。

33.inline

34.錯(cuò)誤。錯(cuò)誤。解析:數(shù)據(jù)庫(kù)關(guān)系系統(tǒng)中具有把數(shù)據(jù)庫(kù)從錯(cuò)誤狀態(tài)恢

復(fù)到某一已知的正確狀態(tài)(亦稱為一致?tīng)顟B(tài)或完整狀態(tài))的功能,就是數(shù)

據(jù)庫(kù)的恢復(fù)。

35.9

36.(1)應(yīng)改為"usingnamespacestd;

\n(2)應(yīng)改為"outl.open('l.txt',ios::binary|ios::app);

,5

\n(3)應(yīng)改為“outl.put(s[i]);O

\n【解析】本題第1處的“usingstd廣是在程序中引入標(biāo)準(zhǔn)命名空間std,

對(duì)于C++中弓[入標(biāo)準(zhǔn)命名空間的格式,缺少namespace,所以第1處

的語(yǔ)句修改為"usingnamespacestd;"。第2處,調(diào)用成員函數(shù)open中,

輸入、輸出方式是在ios類中定義的,所以'outl.open('l.txt',binary|

app);”語(yǔ)句缺少類ios,即第2處的語(yǔ)句修改為“outl.open('l.txt]ios::

binary|ios::app);”。第3個(gè)標(biāo)識(shí)應(yīng)該用流成員函數(shù)put輸出字符,所

以第3處的語(yǔ)句修改為“outl.put(s[i]);

37.(1)應(yīng)改為"assert(sizeof(sl)==4);

\n⑵應(yīng)改為"assert(sizeof(s2)==lO);

\n(3)應(yīng)改為"assert(sizeof(s3)==l);

\n【解析】assert函數(shù)如果為假,則會(huì)產(chǎn)生一個(gè)中斷異常。所以要讓它正

常執(zhí)行輸出結(jié)果,那么assert函數(shù)只有為真,才不會(huì)產(chǎn)生中斷異常。

ccassert(sizeof(sl)==3);"語(yǔ)句中"sizeof(sl)==3”為假,這會(huì)使程序產(chǎn)生異

常,不能正常執(zhí)行。因?yàn)閟trl的值為abc,但是它還有一個(gè)尾符,它的

長(zhǎng)度應(yīng)該是4,而不是3,所以在第1處修改為“assert(sizeof(sl)==4)

str2[10]說(shuō)明,str2的空間為10,在第2處修改為"assert(sizeof(s2)==10)

charstr3=23;語(yǔ)句說(shuō)明23是字符,所占存儲(chǔ)空間為1,所以修改為

ccassert(sizeof(s3)==l);”。

38.(1)應(yīng)改為"usingnamespacestd;"。

(2)應(yīng)改為"outl.open("1.txt",ios::binaryIios::app);"。

(3)應(yīng)改為“outl.put(s[i]);,5o

【解析】本題第1處的“usingstd;”是在程序中引入標(biāo)準(zhǔn)命名空間std,

對(duì)于C++中引入標(biāo)準(zhǔn)命名空間的格式,缺少namespace,所以第1處

的語(yǔ)句修改為"usingnamespacestd;"。第2處,調(diào)用成員函數(shù)open

中,輸入、輸出方式是在ios類中定義的,所以“outl.open("l.txt",

binaryIapp);”語(yǔ)句缺少類ios,即第2處的語(yǔ)句修改為

“outl.open("1.txt",ios::binaryIios::app);“。第3個(gè)標(biāo)識(shí)應(yīng)

該用流成員函數(shù)put輸出字符,所以第3處的語(yǔ)句修改為

,5

“outl.put(s[i]);O

39.⑴應(yīng)改為"TCobjl(l);

\n(2)應(yīng)改為“Objl.SetNumber(lO);

\n(3)應(yīng)改為“0bj2.SelNumber(lOO);"。

\n【解析】本題第1處的“TCobjl;”語(yǔ)句是聲明TC類的對(duì)象Objl,根據(jù)

TC類構(gòu)造函數(shù)的定義TC(inti),存在整型參數(shù),并且題目要求第一個(gè)輸

出結(jié)果兩1,所以補(bǔ)全參數(shù)1,即第1處的“TCobjl(l);第2處處的

“objl.number=10;”應(yīng)該是調(diào)用成員函數(shù)SetNumber賦值。在C++中

成員函數(shù)的使用形式應(yīng)該是:對(duì)象名.成員函數(shù),所以修改為

,5

“objl.SetNumber(lO);o類是對(duì)象的抽象,而對(duì)象是類的具體實(shí)例。

第3處=5561即11^1'(100);”語(yǔ)句中的正為類,并不是對(duì)象,這里

應(yīng)該使用定義的對(duì)象,即obj2,所以將語(yǔ)句修改為

“obj2,SetNumber(lOO);

40.(1)“staticintn=O"應(yīng)改為"staticintn;"。

(2)“intCO::n;”應(yīng)改為“intCO::n=0;

(3)“cout?c.n?endl;"應(yīng)改為"cout?c->n?endl;"。

【解析】本題要在屏幕上輸出兩個(gè)字符,首先要靜態(tài)變量初始化,第1

處應(yīng)改為“staticintn;”,第2處要給n賦值,第3處輸出時(shí)引用c的對(duì)

象,應(yīng)改為"cout?c->n?endl;"。

41.⑴“voidmain”。

(2)“intm=0144;

(3)“intn=OX25;”或“intn===0x25;

【解析】本題主要考查了主函數(shù)定義及幕同進(jìn)制之間的轉(zhuǎn)換,包括十

進(jìn)制到八進(jìn)制,十進(jìn)制到十六進(jìn)制。主函數(shù)定義的定義形式為

“main”,函數(shù)名之后必須是一對(duì)括號(hào),因此第1處應(yīng)改為“voidmain”。

cout輸出默認(rèn)是以十進(jìn)制方式輸出的,根據(jù)題目要求輸出的結(jié)果可發(fā)

現(xiàn)變量的初值不正確,十進(jìn)制的100對(duì)應(yīng)八進(jìn)制的144,卡進(jìn)制的37

對(duì)應(yīng)十六進(jìn)制的25,因此2和3應(yīng)分別改成“intm=0144;”,

“intn=0x25;”或“intn=0x25;

42.⑴應(yīng)改為"catch(char*s)”。

(2)應(yīng)改為"cateh(inti)”。

(3)應(yīng)改為"catch(…)”。

【解析】本題中第1個(gè)標(biāo)識(shí)前的異常拋出語(yǔ)句為“throw("error");",其

中的類型為字符串。所以對(duì)應(yīng)的異常捕捉語(yǔ)句catch中應(yīng)該符合這個(gè)類

型,而程序中給出的語(yǔ)句“catch(chars)”是字符型的,所以第1處的語(yǔ)

句修改為“catch(char*S)”。第2個(gè)標(biāo)識(shí)前的異常拋出語(yǔ)句為

“throw((int)0);”,其中的類型為int。對(duì)應(yīng)的異常捕捉語(yǔ)句catch中應(yīng)

該符合這個(gè)類型,所以補(bǔ)充catch子句中的類型,否則如果找不到匹配

的catch塊,系統(tǒng)就會(huì)調(diào)用一個(gè)系統(tǒng)函數(shù),使程序終止運(yùn)行。即第2處

的語(yǔ)句修改為"catch(inti)”。如果在catch子句中沒(méi)有指定異常信息的類

型,那么就用刪節(jié)號(hào)“…”表示它可以捕捉任何類型的異常信息,即修

改為“catch(…)”。

43.(1)應(yīng)改為“TC::TC”。

(2)應(yīng)改為"voidTC::display”。

(3)應(yīng)改為“TC::?TC”。

【解析】在類的外部定義成員函數(shù)時(shí),必須在成員函數(shù)前面加上類名

和作用域運(yùn)算符“::”,作用域運(yùn)算符用采表示某個(gè)成員屬于哪個(gè)

類,使用格式為“(類名)::〈成員函數(shù)〉((參數(shù)函數(shù))),因此第1處

溫馨提示

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