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

2023年安徽省亳州市全國(guó)計(jì)算機(jī)等級(jí)考試

C++語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)

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

一、1.選擇題(10題)

1.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指()o

A.存儲(chǔ)在外存中的數(shù)據(jù)B.數(shù)據(jù)所占的存儲(chǔ)空間量C.數(shù)據(jù)在計(jì)算機(jī)中

的順序存儲(chǔ)方式D.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示

2.MyClock類(lèi)的拷貝構(gòu)造函數(shù)的聲明語(yǔ)句為()。

A.MyClock&(MyClockx)

B.MyClock(MyClockx)

C.MyClock(MyClock&x)

D.MyClock(MyClock*x)

3.數(shù)據(jù)庫(kù)系統(tǒng)的核心是()

A.數(shù)據(jù)庫(kù)B.數(shù)據(jù)庫(kù)管理系統(tǒng)C.數(shù)據(jù)模型D.軟件工具

4.當(dāng)需要將一個(gè)函數(shù)boolisnumber(charC)聲明為內(nèi)聯(lián)函數(shù)時(shí),則比內(nèi)

聯(lián)函數(shù)的函數(shù)原型為()。

A.enumboolisnumber(charC);

B.defineboolisnumber(charC);

C.inlineboolisnumber(charC);

D.externboolisnumber(chatC);

5.假定MyClass為一個(gè)類(lèi),則執(zhí)行MyClassab(2),*p;語(yǔ)句時(shí),自

動(dòng)調(diào)用該類(lèi)構(gòu)造函婁()次。

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

6.下列關(guān)于關(guān)系運(yùn)算的敘述中正確的是()。

A.投影、選擇、連接是從二維表的行的方向來(lái)進(jìn)行運(yùn)算

B.投影、選擇、連接是從二維表的列的方向來(lái)進(jìn)行運(yùn)算

C.并、交、差是從二維表的列的方向來(lái)進(jìn)行運(yùn)算

D.以上三種說(shuō)法都不對(duì)

7.下列輸出字符,A,的方法中,錯(cuò)誤的是()

A.cout<<put('A');

B.cout<<'A';

C.cout.put('A');

D.charA=,A,;cout<<A;

8.決定C++語(yǔ)言中函數(shù)的返回值類(lèi)型的是()。

A.return語(yǔ)句中的表達(dá)式類(lèi)型

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

C.調(diào)用該函數(shù)時(shí)的主調(diào)用函數(shù)類(lèi)型

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

9.下列有關(guān)繼承和派生的敘述中,正確的是

A.如果一個(gè)派生類(lèi)私有繼承其基類(lèi),則該派生類(lèi)對(duì)象不能訪問(wèn)基類(lèi)的保

護(hù)成員

B.派生類(lèi)的成員函數(shù)可以訪問(wèn)基類(lèi)的所有成員

C.基類(lèi)對(duì)象可以賦值給派生類(lèi)對(duì)象

D.如果派生類(lèi)沒(méi)有實(shí)現(xiàn)基類(lèi)的一個(gè)純虛函數(shù),則該派生類(lèi)是一個(gè)抽象類(lèi)

10.在下列關(guān)系運(yùn)算中,可能改變關(guān)系中屬性個(gè)數(shù)的是

A.并B.差C.投影D.交

二、單選題(13題)

11.關(guān)于continue語(yǔ)句敘述不正確的是()。

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

B.continue語(yǔ)句用于循環(huán)體中,它使執(zhí)行流跳出循環(huán)體中尚未執(zhí)行的語(yǔ)

句,并進(jìn)行下一循環(huán)判斷

C.continue可以用于if語(yǔ)句中

0.continue語(yǔ)句不能代替break語(yǔ)句

12.只能作為成員函數(shù)重載的是

A.=B.++C.*D.new

13.下列關(guān)于虛函數(shù)的說(shuō)明中,正確的是()。

A.從虛基類(lèi)繼承的函數(shù)都是虛函數(shù)

B.虛函數(shù)不得是靜態(tài)成員函數(shù)

C.只能通過(guò)指針或弓|用調(diào)用虛函數(shù)

D柏象類(lèi)中的成員函數(shù)都是虛函數(shù)

14.以下不能作為輸出流對(duì)象的是()。

A.文件B.內(nèi)存C.鍵盤(pán)D.顯示器

15.下列敘述中正確的是()。

A.有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)

B.只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)

C.循環(huán)鏈表是非線性結(jié)構(gòu)

D.雙向鏈表是非線性結(jié)構(gòu)

16.下列函數(shù)的運(yùn)行結(jié)果是()。

#include<iostream.h>

intadd(inta,intb);

voidmain()

(

extemintX,y;

cout?add(X,y)?endl;

}

intx(20),y(5);

intadd(inta,intb)

ints=a+b:

returns;

A.25B.30C.20D.15

17.軟件生命周期是指()o

A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程

B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過(guò)程

C.軟件的開(kāi)發(fā)過(guò)程

D.軟件的運(yùn)行維護(hù)過(guò)程

18.下列程序的運(yùn)行結(jié)果是()。

#include<iostream.h>classLocation{

private:

intX,Y:

public:voidinit(int=O,int=0);

voidvalueX(intval){X=val;}intvalueX{returnx;}

voidvalueY(intval){Y=val;}intvalueY{returnY;}};

voidLocation::init(intinitX,intinitY){X=initX;

Y=initY4}

voidmain(X

{LocationA,B;

A.init;

B.valueX(5);

cout?A.valueX?cndl?A.valueY?cndl;B.init(6,2);

B.valueY(4);

eout?B.valueX?endl?B.valueY?endl;

)

A.5064B.O064C.5062D,O062

19.考慮函數(shù)原型voidtest(inta,intb=7,charz=*),下面的函數(shù)調(diào)用中,

屬于不合法調(diào)用的是()0

A.test(5);B.test(5,8);C.test(6,#);D.test(O,0,*);

20.下列數(shù)據(jù)模型中,具有堅(jiān)實(shí)理論基礎(chǔ)的是()o

A.層次模型B.網(wǎng)狀模型C.關(guān)系模型D.以上3個(gè)都是

21.靜態(tài)成員函數(shù)沒(méi)有()。

A.返回值B.this指針C.指針參數(shù)D.返回類(lèi)型

22.下列關(guān)于運(yùn)算符重載的描述中,正確的是()。

A.運(yùn)算符重載為成員函數(shù)時(shí),若參數(shù)表中無(wú)參數(shù),重載的是一元運(yùn)算符

B.一元運(yùn)算符只能作為成員函數(shù)重載

C.二元運(yùn)算符重載為非成員函數(shù)時(shí),參數(shù)表中有一個(gè)參數(shù)

D.C++中可以重載所有的運(yùn)算符

23.下面關(guān)于數(shù)組的初始化正確的是()。

A.charstr[]={,a\'b','C'}

B.charstr[2]={,a,,B''c'}

C.charstr⑵[3]={{'a','b'},{'C','d'},{'e',f}}

D.charstr={~a,?b,~C}

三、2.填空題(12題)

24.一個(gè)模塊直接調(diào)用的其他模塊的個(gè)數(shù)稱為o

25.長(zhǎng)度為n的順序存儲(chǔ)線性表中,當(dāng)在任何位置上插入一個(gè)元素概率

都相等時(shí),插入一個(gè)元素所需移動(dòng)元素的平均個(gè)數(shù)為【】。

26.算法復(fù)雜度主要包括時(shí)間復(fù)雜度和____復(fù)雜度。

27.Jackson結(jié)構(gòu)化程序設(shè)計(jì)方法是英國(guó)的M.Jackson提出的,它是一

種面向【】的設(shè)計(jì)方法。

28.有以下程序:

#include<iostream>

usingnamespacestd;

classMyClass

(

public:

MyClass();

~MyClass();

staticints;

voidSetValue(intval);

);

intMyClass::s=0;

MyClass::MyClass()

(

?s++;}

VoidMyClass::SetValue(intv

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

30.有如下程序:

#include<iostream>

usingnamespacestd:

template<typenameT>

Ttotal(T*data){

Ts=0;

While(*data)s+=*data++;

returns;

)

intmain(){

intx[]={2,4,6,8,10,12,14,16,18};

cout<<total(x);

return0;

)

執(zhí)行上面程序的輸出是______o

31.若已定義,以下fun函數(shù)的功能是:在第一個(gè)循環(huán)中給前10個(gè)數(shù)組

元素依次賦1、2、3、4、5、6、7、8、9、10;在第二個(gè)循環(huán)中使a數(shù)

組前10個(gè)元素中的值對(duì)稱折疊,變成1、2、3、4、5、5、4、3、2、

lo請(qǐng)?zhí)羁铡?/p>

fun(intalJ)

(

inti;

for(i=l;i<=10;i++)[]=i;

for(i=0;i<5;i++)[]a[i];

1

32.執(zhí)行下列語(yǔ)句后,變量n的值是_____。

intn=0;

for(inti=l;i<=3;i++)

for(intj=l;j<<=i;j++)

n++;

33.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),循環(huán)隊(duì)列屬于結(jié)構(gòu),

34.在下面程序橫線處填上適當(dāng)內(nèi)容,使程序輸出為:55599。

#include<iostream>

usingnamespacestd;

template<classTYPE>

classHisClass

TYPEdata;

public:

HisClass(TYPEa,TYPEb,TYPEC);

TYPEgetData(){returndata;)

);

template<classTYPE>

HisClass<TYPE>::HisClass(TYPEa,TYPEb,TYPEC)

(

[];

else主f(b>C)

data=b;

else

data=c;

)

intmain()

(

HisClass<int>xl(3,4,5),x2(5,3,4),x3(4,5,3),x4(7,8,9),

x5(8,7,9);

cout<<xl.getData()<<x2.getData()<<x3.getData()

<<x4.getData()<<X5.getData();

return0;

)

35.若有以下程序:

#include<iostream>

usingnamespacestd;

classTestClass1

public:

TestClass1()

X

}

in

};

classTestClass2:virtualpublicTestClassI

(

public:

TestClass2()

(

x=10;

};

classTestClass3:virtualpublicTestClass1

(

public:

TestClass3()

(

x=20;

)

};

classTestClass4:publicTestClass2,protectedTestClass3

(};

intmain()

(

TestClass4obj;

cout<<obj.x<<endl;

return0:

該程序運(yùn)行后的輸出結(jié)果是_____O

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

36.使用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ǔ)句在//******eiror******的下面。

試題程序:

#include<iostream.h>

classTC

(

public:

TC(inti)

(

number二i;

)

voidSetNumber(intm)

(

number=m;

)

intGetNumberconst

(

returnnumber;

)

voidPrintconst

(

cout?,,number=,,?number?endl;

}

private:

intnumber;

);

voidmain

TCobjl;

objl.Print;

TCobj2(3);

l*1**1**1**1**1**1**1**4*

//小小小小小小小小「rrcr不不不不不不不不

objl.number=10;

Ii********error*%()******

TC.SetNumber(100);

objl.Print;

obj2.Print;

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

運(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");

}

/*p*i**i**i**i**r*r*r不不不不不不不不

catch(chars)

(

cout?s?endl;

}

try

(

throw((int)0);

)

/不不不不不不不不error不不不不不不不不

catch

(

coul?i?endl:

)

try

(

throw(O);

throw("error");

catch

(

cout?nERRORn?endl;

)

returnO:

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

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

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

中。

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

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

試題程序:

#include<iostrearn.h>

voidmain

(

inti=O;

charstr[120];

cout?nEnterastringendwith?.,'?endl;

//

//小小小小小小小小prrcr不不不不不不不不

cin.getline(str,120);

不不不不不不不不error不不不不不不不不

while(str)

1*1**1**1*

//汴不不PmiT*不不不不不不不不

if(strlij)=a)

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

i++;

cout?str?endl;

return;

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

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

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

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

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

II******eiTor******的下

試題程序:

#include<iostream>

#include<fstream>

//

//小小小小小小小小prrcr個(gè)不個(gè)不不予不不

usingstd;

voidWriteFile(char*s)

ofstreamoutl;

outl.opcn(nl.txt",binary|app);

for(inti=0;sli]!=0;i++)

outl.puts(s[i]);

outl.close;

voidClearFile

ofstreamoutl;

outl.open(Hl.txt");

outl.close;

}

intmain

(

chars[1024];

ClearFile;

cout?',pleaseinputastrin9:u?endl;

cin.getline(s,1024);

WriteFile(s);

returnO;

}

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

行時(shí)有錯(cuò)誤,請(qǐng)改正程序中的錯(cuò)誤,使得程序輸出:

9,8,7,6,5

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

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

試題程序:

#include(iostream.h>

classTC

7*7*7*7*7*7*7*

不不“門(mén)?門(mén)”門(mén)error干不干不干干干不

TC(inti)

m_i=i,

)

voidprint

(

cout?-m_i?,;

)

public:

intm_i;

intmain

/*£**4**4**4*/

/小小小小小小小小prrcr不不不不不不不不/

inti;

TC04(10);

while(i>5)

I********en*Or********/

i++:

04.print;

)

cout?endl;

returnO;

41.使用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ǔ)句在//******errc)r******的下面。

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

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

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

試題程序:

#include<iostream.h>

#include<assert.h>

voidmain()

chartsl=nabc":

assert(sizeof(s1)==3):

cout?Msizeof(s1)=5"?endl;

chars2[101="abH:

//^1*

Ij不不不不不不不不error不不不干不干不不

assert(sizeof(s2)==2);

cout?nsizeof(s2)=10H?endl;

chars3=23:

不不不不不不不不prrcr不干不不不不不不

assert(sizeof(s3)==4);

cout?,,sizeof(s3)=r*?endl;

return;

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

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

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

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

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

1I******error******白勺?。

試題程序:

#include<iostream>

#include<fstream>

/不不不不不不不不prrcr不不不予不干干不

usingstd;

voidWriteFile(char*s)

(

ofstreamoutl;

/年不不不不小不小error于不壽壽壽壽不不

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

for(inti=0;sfi]!=O;i++)

/*1**1??)??!?

//******汴*ermr不不不不不不不不

outl.puts(s[i]);

outl.close;

voidClearFile

(

ofstreamoutl;

outl.open(nl.txt");

outl.close;

)

intmain

(

chars[1024];

ClearFile;

cout?"pleaseinputastrin9:,,?endl;

cin.getline(s,1024);

WriteFile(s);

returnO:

)

43.使用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>

/?£*?*??*?**??*??*?

//*平*平不平prrc廣’?、不’?、*?'

voidmain

/?1??)??1???*

//******errcr不不不不不不

intm=0142:

/*1**1**1**1**1**1*?!?*1?

//小小小小?年prmr不不不不不不

intn=0X27:

intq=32;

cout<<m<<endl;

cout<<n<<endl;

cout<<q<<endl;

return;

}

44.使用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(nerrorH);

)

catch(chars)

(

cout?s?endl;

}

try

(

throw((int)0);

1

/不不不不不不不不prr()r苓不苓苓不苓不不

catch

(

cout?i?endl;

)

try

(

throw(O);

throw("error");

}

/?*?

//**軍*汴汴舉不PITOT*不予3333,.、

catch

cout?',ERROR,'?endl;

returnO:

45.使用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<iostrearn.h>

classTC

(

public:

TC(inti)

(

number=i;

)

voidSetNumber(intmi

(

number=m;

)

intGetNumberconst

(

returnnumber;

)

voidPrintconst

cout?"number="?number?endl;

private:

intnumber;

);

voidmain

TCobjl;

objl.Print;

TCobj2(3);

//-X*

//小小小小小小小小prrcr不不個(gè)不不不不不

objl.number=10;

II********error*%()******

TC.SetNumber(lOO);

objl.Print;

obj2.Print;

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

46.使用VC++6.0打開(kāi)考生文件夾下的源程序文件3.cpp,其中定

義了用于表示矩形的CRect類(lèi),但類(lèi)CRect的定義并不完整。請(qǐng)按要

求完成下列操作,將類(lèi)CRect的定義補(bǔ)充完整。

(1)定義私有數(shù)據(jù)成員leftPoint、topPoint、rightPoint>bottomPoint,分

別用于表示矩形左上角及右下角的點(diǎn)的坐標(biāo),它們都是double型的數(shù)

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

⑵完成默認(rèn)構(gòu)造函數(shù)CRect的定義,指定默認(rèn)實(shí)參為0,它們都是

double型的數(shù)據(jù)。請(qǐng)?jiān)谧⑨?之后添加適當(dāng)?shù)恼Z(yǔ)句。

⑶定義函數(shù)體為空的析構(gòu)函數(shù)。請(qǐng)?jiān)谧⑨?之后添加適當(dāng)?shù)恼Z(yǔ)句。

⑷在main函數(shù)中定義GReet類(lèi)的實(shí)例rect2,并把re-

cti的值賦給rect2。請(qǐng)?jiān)谧⑨?之后添加適當(dāng)?shù)恼Z(yǔ)句。

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

試題程序:

#include<iostream.h>

classCRect

(

private:

/*1**1**1**1**1**1**1**1*1*1**1**1*

/f|*7*

public:

/7*7*7*7**1?7*7*7*

/frj*?:??卜?卜?卜?卜t?卜?卜?卜?卜?卜?卜?卜?卜

/?1?*1??1?*1*?1??1??1??14?1??!??1??)??1?

//?4*?4*?4**4**J*

voidSetPoints(double,double,double,double);

voidSetLeftPoint(doublem){leftPoint=m;}

voidSetRightPoint(doublem){rightPoint=m;)

voidSetTopPoint(doublem){topPoint=m;}

voidSetBottomPoint(doublem){bottomPoint=ni;}

voidDisplay();

};

CReet::CRect(doublel,doublet,doubler,doubleb)

(

leftPoint=1;topPoint=t;

rightPoint=r;bottomPoint=b;

)

voidCRect::Setpoints(doublel,doublet,doubler,doubleb)

(

leftPoint=1;topPoint=t;

rightPoint=n;bottomPoint=b;

)

voidCRect::Display()

(

cout?nleft-toppointis(',?leftPoint?",H?top-

Point?")n?\n:

cout?',right-bottompointis("?rightPoint?,',"

?bottomPoint?n)n?\n;

)

voidmain()

(

CRectrectO;

rectO.Display();

rectO.SetPoints(20,20.6,30,40);

rectO.Display();

CRcctrcctRO,0,150,150);

rect1.SetTopPoint(10.5);

recti.SetLeftPoint(10.5);

II********4********rect2Display();}

47.使用VC++6.0打開(kāi)考生文件夾下的源程序文件3.cpp。其中定

義的類(lèi)不完整,按要求完成下列操作,將類(lèi)的定義補(bǔ)充完整。每賣(mài)出

一個(gè)水果,則計(jì)算水果的重量,還要計(jì)算所有賣(mài)出水果的總重量以及

總個(gè)數(shù),同時(shí)允許退貨,請(qǐng)按照以下的操作,把類(lèi)補(bǔ)充完整。

⑴定義類(lèi)TCFruit的私有靜態(tài)數(shù)據(jù)成員float型變量AllWeight和int型

變量AI1N0,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句,

(2)完成類(lèi)TCFruit的帶一個(gè)float型變量w的構(gòu)造函數(shù),并把這個(gè)w加

到AllWeight中,并且AllNo自加。請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。

(3)在析構(gòu)函數(shù)中,在AHWeight中減去weight,然后AHNo自減,請(qǐng)

在注釋3后添加適當(dāng)?shù)恼Z(yǔ)句。

(4)完成靜態(tài)成員變量的初始化為0,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。

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

他的程序代碼。

試題程序:

#include(iostream.h>

classTCFruit

(

private:

floatWeight;

7*7*7*?7卜*?7卜*?7卜*?7卜*?7卜*■?卜?卜?*卜1*?卜?*卜1*7*7*7*

staticintAHNo;

public:

TCFruit(floatw)

/*1**1**1**1**1**!**!**1??!??1?*1?

//木木木木木木木木2木木木木半木木木

AHWeight+=w:

AllNo++:

TCFruit

/

//^T?^T?^T?^T?*T?*7**T*-7**T??T?*T?^T?^T?

AllWeight-=Weight:

)

voiddisplay

(

cout?',SenaFruitwith,'?Weight?"k9"?

endl;

cout^'Allsellnumber:"?AllNo?endl;

cout?nAllsellweight:H?AllWeight?"k9,'?

endl?endl;

)

1;

//********4********

floatTCFruit::AIIWeight=O.0;

intmain

TCFruitFruitl(l.2);

Fruitl.display;

TCFruitFruit2(2.3);

Fruit2.display;

returnO;

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

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

序文件MyMain3.cpp,其中定義的類(lèi)并不完整。請(qǐng)按要求完成下列操作,

將類(lèi)的定義補(bǔ)充完整。

①定義類(lèi)Planet的保護(hù)數(shù)據(jù)成員distance和revolve,它們分別表示行星

距太陽(yáng)的距離和行星的公轉(zhuǎn)周期。其中,distance為double型,revolve

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

②定義類(lèi)Earth的構(gòu)造函數(shù)Earth(doubled,intr),并在其中計(jì)算地球繞太

陽(yáng)公轉(zhuǎn)的軌道周長(zhǎng)。假定:circumference=2*d*3.1416。請(qǐng)?jiān)谧⑨尅啊?*2**”

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

③定義類(lèi)Earth的成員show(),用于顯示所有信息。包括地球距太陽(yáng)的

距離,地球的公轉(zhuǎn)周期,以及地球繞太陽(yáng)公轉(zhuǎn)的軌道周長(zhǎng)。請(qǐng)?jiān)谧⑨?/p>

“〃**3***之后添加適當(dāng)?shù)恼Z(yǔ)句。

文件MyMain3.cpp中源程序如下:

//MyMain3.cpp

#include<iostream>

usingnamespacestd;

classPlanet

(

protected:

〃**]**

public:

Planet(doubled,intr)

(

distance=d;

revolve=r;

)

);

classEarth:publicPlanet

(

private:

doublecircumference;

public:

〃**2**

〃**3**

I;

intmain()

(

Earthobj(9300000,365);

obj.show;

return0;

)

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

test27_3.cpp,其中定義了類(lèi)ARRAY,但類(lèi)的定義并不完整。請(qǐng)按要求

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

⑴完成類(lèi)ARRAY的帶一個(gè)參數(shù)的構(gòu)造函數(shù),參數(shù)i為int型,如果i不

是正數(shù)則輸出錯(cuò)誤信息并退出,否則申請(qǐng)int型的大小為i的空間,然

后把i賦值給類(lèi)的數(shù)據(jù)成員num。請(qǐng)?jiān)谧⑨?之后添加適當(dāng)?shù)恼Z(yǔ)

句。

⑵完成類(lèi)ARRAY的拷貝初始化構(gòu)造函數(shù),注意解決重復(fù)刪除的問(wèn)題,

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

⑶完成類(lèi)ARRAY的重載的運(yùn)算符函數(shù)口,參數(shù)i為int型,如果i超界

則輸出錯(cuò)誤信息并退出,否則把下標(biāo)為i的元素返回,請(qǐng)?jiān)谧⑨尅啊?*3***

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

⑷完成類(lèi)ARRAY的重載的運(yùn)算符函數(shù)二,同樣需要注意解決重復(fù)刪除

的問(wèn)題,不能只是簡(jiǎn)單的賦值,請(qǐng)?jiān)谧⑨尅啊?*4**”之后添加適當(dāng)?shù)恼Z(yǔ)句。

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

源程序文件test27_3.cpp清單如下;

#include<iostream.h>

#include<stdlib.h>

classARRAY

(

private:

int*p,num;

public:

ARRAY(){p=newint[10],num=10;}

ARRAY(inti)

(

//**?**

(

cout<<"錯(cuò)誤!數(shù)組長(zhǎng)度應(yīng)為正。\屋;

exit(O);

)

p=newint[i];

num=i;

)

ARRAY(constARRAY&a);

int&operator[J(inti);

-ARRAY(){deletep;}

ARRAY&operator=(constARRAY&a);

friendARRAYoperator+(ARRAY&a,ARRAY&b);

friendostream&operator<<(ostream&os,ARRAY&a);

);

ARRAY::ARRAY(constARRAY&a)

for(int1=0;i<num;i++)

p[i]=a.p[i];

&ARRAY::operator[J(inti)

cout<(”越界訪問(wèn)!”;

exit(0);

}

returnp[i];

)

ARRAY&ARRAY::operator=(constARRAY&a)

(

num=a.num;

p=newint[num];

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

p[i]=a.p[i];

H**4**

)

ARRAYoperator+(ARRAY&a,ARRAY&b)

(

if(a.num!=b.hum)

(

cout<<“數(shù)組長(zhǎng)度不相同!”<<cndl;

exit(0);

}

ARRAYt(a.num);

for(inti=0;i<a.num;i++)

t.pLiJ=a.pliJ+b.pLiJ;

returnt;

ostream&operator?(ostream&os,ARRAY&a)

inti=0;

for(;i<a.num;i++)

cout<<a.p[i]<<1

if(!((i+l)%10))cout<<endl;

}

returnos;

)

voidmain()

(

ARRAYa(3);

a[0]=a[l]=a[2]=3;

cout<<'a'<<a<<end1;

ARRAYb(a);

cout<<V<<b<<endI;

ARRAYc(2);

c=a+b+b;

cout<<*c'<<c<<end1;

c=((b=(a+b))+c);

cout<<'a1<<a<<'b'<<b<<'c'<<c<<endl;

參考答案

l.D

數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)的存

儲(chǔ)結(jié)構(gòu)則是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的物理實(shí)現(xiàn),有時(shí)也稱作數(shù)據(jù)

的物理結(jié)構(gòu)。兩者的區(qū)別是數(shù)據(jù)的邏輯結(jié)構(gòu)只涉及到數(shù)據(jù)之間抽象的

數(shù)學(xué)關(guān)系。存儲(chǔ)結(jié)構(gòu)則涉及到如何在計(jì)算機(jī)中通過(guò)對(duì)數(shù)據(jù)的物理存儲(chǔ)

進(jìn)行組織來(lái)表達(dá)數(shù)據(jù)元素之間的邏輯關(guān)系。比如在線性表的順序存儲(chǔ)

中是利用物理存儲(chǔ)空間上的連續(xù)性來(lái)表達(dá)線性表中數(shù)據(jù)的前后件關(guān)

系;在線性表的鏈?zhǔn)酱鎯?chǔ)中是通過(guò)指針域構(gòu)成的邏輯鏈條來(lái)表達(dá)數(shù)據(jù)

的前后件關(guān)系。一般的,一種數(shù)據(jù)的邏輯結(jié)構(gòu)對(duì)應(yīng)的物理實(shí)現(xiàn),即數(shù)

據(jù)的存儲(chǔ)結(jié)構(gòu)不止一種。因此選項(xiàng)D正確。

2.C解析:拷貝構(gòu)造函數(shù)頭的一般形式為:〈類(lèi)名〉::〈類(lèi)名〉(const<

類(lèi)名>&<引用對(duì)象名>)。

3.B數(shù)據(jù)庫(kù)管理系統(tǒng)是對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理的系統(tǒng)軟件,它的職能是有效

地組織和存儲(chǔ)數(shù)據(jù),獲取和管理數(shù)據(jù),接受和完成用戶提出的訪問(wèn)數(shù)據(jù)

的各種請(qǐng)求,是數(shù)據(jù)庫(kù)系統(tǒng)的核心

4.C

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

\u3000MyClass\u3000a\u3000b(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)用類(lèi)的構(gòu)造函數(shù)。

6.B

\r\n

A和B是互相矛盾的,答案必然是這兩者之一。在關(guān)系模型的數(shù)據(jù)語(yǔ)言

中,常規(guī)的集合運(yùn)算(并、交、差、笛卡爾積等),是將關(guān)系(即二維

表)看成是元組的集合,這些運(yùn)算主要是從二維表的行的方向來(lái)進(jìn)行

的;投影、選擇、連接等運(yùn)算主要是從二維表的列的方向來(lái)進(jìn)行運(yùn)

算。正確答案是B。

7.A

8.D

9.D解析:如果派生類(lèi)私有繼承基類(lèi),不能訪問(wèn)基類(lèi)中的私有成員,所

以選項(xiàng)A)、B)是錯(cuò)誤的。派生類(lèi)是對(duì)基類(lèi)的具體化,所以選項(xiàng)C)精

誤。如果派生類(lèi)沒(méi)有實(shí)現(xiàn)基類(lèi)的一個(gè)純虛函數(shù),則該派生類(lèi)是一個(gè)抽

象類(lèi),即選擇選項(xiàng)D)。

10.C解析:投影運(yùn)算是在給定關(guān)系的某些域上進(jìn)行的運(yùn)算。通過(guò)投影

運(yùn)算可以從一個(gè)關(guān)系中選擇出所需要的屬性成分,并且按要求排列成

一個(gè)新的關(guān)系,而新關(guān)系的各個(gè)屬性值來(lái)自原關(guān)系中相應(yīng)的屬性值;

因此,經(jīng)過(guò)投影運(yùn)算后,會(huì)取消某些列,即投影運(yùn)算可能改變關(guān)系中

屬性韻個(gè)數(shù)。

11.A解析:continue是跳出了本次循環(huán)中尚未執(zhí)行的語(yǔ)句,重新執(zhí)行

循環(huán),但沒(méi)有終止循環(huán)。注意:注意break,continue和goto語(yǔ)句的用

法和區(qū)別。

12.A解析:運(yùn)算符重載為成員函數(shù)的形式為:函數(shù)類(lèi)型。perator運(yùn)算

符(形參表){函數(shù)體力;運(yùn)算符重載為友元函數(shù)的形式為:friend函數(shù)類(lèi)

型。peralor運(yùn)算符(形參表){函數(shù)體;}。一般來(lái)講,單目運(yùn)算符最好重

載為成員函數(shù),雙目運(yùn)算符最好重載為友元函數(shù)。二、?。ǎ?、?>以及

所有的類(lèi)型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載。

13.B

在某基類(lèi)中聲明為virtual并在一個(gè)或多個(gè)派生類(lèi)中被重新定義的成員

函數(shù)一虛函數(shù)必須是基類(lèi)的非靜態(tài)成員函數(shù),其訪問(wèn)權(quán)限可以是

protected或public。如果一個(gè)類(lèi)包含了純虛函數(shù),稱此類(lèi)為抽象類(lèi)。所

以本題答案為B。

14.C

輸出流對(duì)象包括基本的輸出設(shè)備,如顯示器,內(nèi)存和文件,而輸入流

對(duì)象則包括鍵盤(pán),文件以及其他輸入設(shè)備。

15.B

解析?:如果一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)滿足以下兩個(gè)條件:⑴有且只有一個(gè)

根結(jié)點(diǎn);(2)每個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。則稱該數(shù)

據(jù)結(jié)構(gòu)為線性結(jié)構(gòu)。如果一個(gè)數(shù)據(jù)結(jié)構(gòu)不是線性結(jié)構(gòu),則稱之為非線

性結(jié)構(gòu),故A項(xiàng)錯(cuò)誤。有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu),

如二叉樹(shù),B項(xiàng)說(shuō)法正確。循環(huán)鏈表和雙向鏈表都屬于線性鏈表。故

C、D項(xiàng)錯(cuò)誤。

16.A

Ao【解析】由主函數(shù)main入手,定義外部變量x和y,調(diào)用函數(shù)

addo因?yàn)閤,y為外部變量,所以“intx(20),y(5);”的賦值在add也是

有效的,即add函數(shù)的運(yùn)算結(jié)果為25。

17.A通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程

稱為軟件生命周期。也就是說(shuō),軟件產(chǎn)品從考慮其概念開(kāi)始,到該軟件

產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。

18.A

本題中有成員函數(shù)和它的重載函數(shù),要注意它們的不同,在本題中先

調(diào)用了init函數(shù),初始化了x、Y,都為0,valueX(5);又將x變?yōu)?/p>

5,所以輸出5和0,然后初始化init(6,2),接著又valueY(4);將x、

Y設(shè)為6和4,所以輸出6和4。

19.C解析:本題考核函數(shù)的調(diào)用。題中函數(shù)聲明帶有默認(rèn)參數(shù),那么在

C)選項(xiàng)的調(diào)用中,將會(huì)把字符型實(shí)參#賦值給整型形參b,這不符合參

數(shù)傳遞規(guī)則。

20.C在數(shù)據(jù)庫(kù)設(shè)計(jì)口,目前常用的數(shù)據(jù)模型主要有三種,分別是層次模

型、網(wǎng)狀模型和關(guān)系模型。

層次模型是數(shù)據(jù)庫(kù)系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型。我們通常把滿足以下兩

個(gè)條件的數(shù)據(jù)模型稱為層次模型。

(1)有且僅有一個(gè)結(jié)點(diǎn)無(wú)雙親,這個(gè)結(jié)點(diǎn)稱為根結(jié)點(diǎn)。

(2)其他結(jié)點(diǎn)有且僅有一個(gè)雙親。

層次模型用樹(shù)形結(jié)構(gòu)來(lái)表示各實(shí)體與實(shí)體間的聯(lián)系。實(shí)體是數(shù)據(jù)庫(kù)中數(shù)

據(jù)描述的對(duì)象,可以是一個(gè)人、一種商品等。在層次模型中,每個(gè)結(jié)點(diǎn)

表示一個(gè)記錄類(lèi)型,記錄之間的聯(lián)系用結(jié)點(diǎn)之間的連線表示,這種琰系

是父子之間一對(duì)多的聯(lián)系.記錄就是描述實(shí)體的相關(guān)數(shù)據(jù)。

如果取消層次模型中的兩個(gè)限制,即允許一個(gè)以上的結(jié)點(diǎn)無(wú)雙親,則每

一個(gè)結(jié)點(diǎn)可以有多個(gè)父結(jié)點(diǎn),便形成了網(wǎng)狀。我們把網(wǎng)狀表示實(shí)體之間

聯(lián)系的模型稱為網(wǎng)狀模型。

關(guān)系模型用表格形式表示實(shí)體類(lèi)型及其實(shí)體間的聯(lián)系。關(guān)系模型是目前

最重要的一種模型,它是建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上的,具有最堅(jiān)

實(shí)的理論基礎(chǔ)。關(guān)系模型的基本數(shù)據(jù)結(jié)構(gòu)是二維表,每一張二維表稱為

一個(gè)關(guān)系。

21.B

22.A

Ao【解析】本題考查的知識(shí)點(diǎn)是運(yùn)算符的重載。運(yùn)算符重載為成員函

數(shù)時(shí),形參個(gè)數(shù)一般為運(yùn)算符的元數(shù)減1,因?yàn)榇顺蓡T函數(shù)所屬的對(duì)象

可成為運(yùn)算符的一個(gè)運(yùn)算分量。重載為非成員函數(shù)時(shí),形參個(gè)數(shù)一般

和運(yùn)算符元數(shù)相等。所以,二元運(yùn)算符重載為非成員函數(shù)時(shí),參數(shù)表

中應(yīng)有兩個(gè)參數(shù),運(yùn)算符重載為成員函數(shù)時(shí),若參數(shù)表中無(wú)參數(shù),重

載的是一元運(yùn)算符。一元運(yùn)算符中,一取負(fù)運(yùn)算符、++增1運(yùn)算

符、■■減1等運(yùn)算符均可重載為成員函數(shù),C++中,有…*、

?>*、::、?:五個(gè)運(yùn)算符不能重載。

23.A

本題考查的是字符數(shù)組的初始化。選項(xiàng)B中用3個(gè)位素初始化大小為

2的數(shù)組,越界了;選項(xiàng)c中應(yīng)該是2行3列的數(shù)組,題中使用3行2

列初始化;選項(xiàng)D中數(shù)組合后應(yīng)用方括號(hào)。

24扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個(gè)給定模塊的模塊個(gè)數(shù)稱為扇

入,一個(gè)模塊直接調(diào)用的其他模塊個(gè)數(shù)稱為扇出。

25.n/2n/2解析:性表的任何位置插入一個(gè)元素的概率相等,即概率為

P=l/(n+l),則插入一個(gè)元素時(shí)所需移動(dòng)元素的平均次數(shù)為E=l/(n+l)

(n-i+l)=n/2o

26.空間空間解析:算法的復(fù)雜度包含時(shí)間復(fù)雜度和空間復(fù)雜度,空間

復(fù)雜度指的是程序運(yùn)行所要消耗的存儲(chǔ)空間。一個(gè)算法的優(yōu)劣主要從算

法的執(zhí)行時(shí)間和所需要的存儲(chǔ)空間兩個(gè)方面來(lái)衡量

27.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:結(jié)構(gòu)化分析方法主要包括:面向數(shù)據(jù)流的

結(jié)構(gòu)化分析方法(SAStucturedanalysis),面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法

(JSD—Jacksonsystemdevelopmentmethod)和面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)

據(jù)系統(tǒng)開(kāi)發(fā)方法(DSSD-Datastructuredsystemdevelopmentmethod)0

28.3。3。解析:本題程序中把變量s定義為靜態(tài)數(shù)據(jù)成員,它的作用

域是類(lèi)范圍。在類(lèi)MyClass的構(gòu)造函數(shù)中,每創(chuàng)建一個(gè)對(duì)象,s就增1,

由此可知s用來(lái)記錄建立對(duì)象的個(gè)數(shù)。由十創(chuàng)建對(duì)象指針p時(shí)并不會(huì)調(diào)

用構(gòu)造函數(shù),所以s最后的值是3。

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

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

30.20

31.a[i-l]a[9-i]

32.66解析:當(dāng)i=l時(shí),內(nèi)循環(huán)中的i的值為1,n目加一次,n=l;當(dāng)

i=2時(shí),內(nèi)循環(huán)中的j的值為i和2,n自加兩次,n=3,當(dāng)i=3時(shí),內(nèi)循

環(huán)中的i的值為1、2、3,n自加三次,n=6o

33.存儲(chǔ)存儲(chǔ)解析:數(shù)據(jù)結(jié)構(gòu)包括邏輯結(jié)構(gòu)和物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu)),邏輯

結(jié)構(gòu)包括集合、線性、樹(shù)、網(wǎng)絡(luò)等,而存儲(chǔ)結(jié)構(gòu)主要指的是邏輯結(jié)構(gòu)的

存儲(chǔ),包括順序、鏈表、索引、散列等。

34.if(a>b&&a>C)data=aif(a>b&&a>C)data=a解析:本題考核類(lèi)模

板的定義。其構(gòu)造函數(shù)實(shí)現(xiàn)的功能是將a、b、c中的最大值賦給私有成

員data。

35.20

36.⑴應(yīng)改為“TCobjl(l);

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

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

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

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

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

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

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

uobj1.SetNumber(lO);類(lèi)是對(duì)象的抽象,而對(duì)象是類(lèi)的具體實(shí)

例。第3處“TC.SetNumber(lOO);”語(yǔ)句中的TC為類(lèi),并不是對(duì)象,

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

“obj2.SetNumber(lOO);

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

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

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

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

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

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

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

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

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

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

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

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

改為“catch(…)”。

38.(1)應(yīng)改為“ein.getline(str,120,?);

\n(2)應(yīng)改為"while(str[i])”。

\n(3)應(yīng)改為"iRst巾]>=a&&str[i]<=2)^^。

\n【解析】本題中要求以輸入字符“?”為結(jié)束符,用于字符輸入的流成員

函數(shù)getline函數(shù)讀入一行字符,格式為“cin.getline(字符數(shù)組,字符個(gè)

數(shù),終止標(biāo)志字符咒所以第1處改為“cin.getline(str,120,?)戶。第

2處的“while(str)”語(yǔ)句應(yīng)該是判斷字符串str中的每一個(gè)字符是否為結(jié)

束符,若不是結(jié)束符.在循環(huán)中判斷每一個(gè)字符是否為小寫(xiě),若為小寫(xiě),

則轉(zhuǎn)換。所以應(yīng)該修改為“whilst巾])二第3處的“if(str[i]>=a)”語(yǔ)句是

判斷字符str[i]是否為小寫(xiě)字符,而現(xiàn)有的語(yǔ)句只是判斷字符是否大于a,

但是小寫(xiě)字符應(yīng)該是a到2,所以修改為“if(str[i]>=a&&str[i]>=zf0

39.⑴應(yīng)改為"usingnamespacestd;"。

\n(2)應(yīng)改為“outl.open(1l.txt1,ios::binary|ios::app);"。

\n(3)應(yīng)改為“outl.put(stij);

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

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

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

輸入、輸出方式是在ios類(lèi)中定義的,所以“out1.open”.txt1,binary|

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

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

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

40.(1)應(yīng)添加“public:"。

\n(2)“inti”應(yīng)改為“inti(10);

\n(3)“i++;”應(yīng)改為“i--;”。

\n【解析】本題主要考查的是成員的訪問(wèn)屬性。成員的訪問(wèn)屬性有公有、

保護(hù)和私有3種,而默認(rèn)的訪問(wèn)屬性為私有,只有公有成員才能通過(guò)類(lèi)

的對(duì)象被訪問(wèn)。故應(yīng)在構(gòu)造函數(shù)前添加“public:”,否則該類(lèi)無(wú)法被實(shí)例

化。變量的初始化可以通過(guò)』”號(hào),也可以和初始化對(duì)象一樣添加構(gòu)造

參數(shù),題目已要求使用后者。本題要求輸出5個(gè)數(shù),while的循環(huán)變量i

每次減1,在i>5時(shí)循環(huán),故i初始化應(yīng)為10。若循環(huán)中i每次增1,則

循環(huán)永遠(yuǎn)不會(huì)退出。

41.(1)應(yīng)改為"385?11區(qū)2€0心1)=4);”。

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

\n⑶應(yīng)改為"assert(sizeoRs3)==l);”。

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

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

4iassert(sizeof(sl)=3);”語(yǔ)句中“sizeof(sD==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,所以修改為

4tassert(sizeof(s3)==I);

42.(1)應(yīng)改為"usingnamespaccstd;

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

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

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

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

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

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

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

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

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

“outl.put(s[i]);

43.⑴“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;”。

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

⑵應(yīng)改為“catch(inti)”。

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

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

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

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

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

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

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

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

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

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

改為"catch(…)”。

45.(1)應(yīng)改為"TCobjl(l);

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

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

\n【解析】本題第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)論