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

2022年甘肅省金昌市全國(guó)計(jì)算機(jī)等級(jí)考試

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

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

一、1.選擇題(10題)

1.下列敘述中正確的是0。

A.程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)

B.程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)

C.程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量

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

2.下面不是數(shù)據(jù)庫(kù)管理系統(tǒng)常見的數(shù)據(jù)模型的是()。

A.層次模型B.關(guān)系模型C.邏輯模型D.網(wǎng)狀模型

3.下列語(yǔ)句段落將輸出字符的個(gè)數(shù)為()。include<iostream.h>Void

main(){inti=100;while(l){i—;if(i==0)break;cout<<;}}

A.98個(gè)B.99個(gè)C.100個(gè)D.101個(gè)

4.若有int(*p)[3]:則以下表述中正確的是o

A.p是一個(gè)指向具有3個(gè)元素的整型數(shù)組的指針

B.p是一個(gè)指向int型變量的指針

C.p是一個(gè)有3個(gè)元素的指針數(shù)組,每個(gè)元素是一個(gè)int型指針

D.p是一個(gè)具有3個(gè)int型元素的一維數(shù)組

5.數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS中用來(lái)定義模式、內(nèi)模式和外模式的語(yǔ)言為()

A.CB.BasicC.DDLD.DML

6.對(duì)于以下帶參數(shù)的main。函數(shù)的第二形參,voidmain(intargc,

),不可能的形式是

A.char*argv[]B.charargv[]C.char**aD.char*m[]

7.如果表達(dá)式++i*k中的“++”和“*”都是重載的非靜態(tài)成員運(yùn)算符,則

采用運(yùn)算符函數(shù)調(diào)用格式,該表達(dá)式還可表示為=O

A.operator*(i.perator++(),k)

B.operator*(operator++(i),k)

C.(i.operator++()).operator*(k)

D.k.operator*(operator++(i))

8.下列說(shuō)法中錯(cuò)誤的是

A.公有繼承時(shí)基類中的public成員在派生類中仍是public成員

B.私有繼承時(shí)基類中的protected成員在派生類中仍是protected成員

C.私有繼承時(shí)基類中的public成員在派生類中仍是private成員

D.保護(hù)繼承時(shí)基類中的public成員在派生類中仍是protected成員

9.下列敘述中正確的是

A.線性鏈表中的各元素在存儲(chǔ)空間中的位置必須是連續(xù)的

B.線性鏈表中的表頭元素一定存儲(chǔ)在其他元素的前面

C線性鏈表中的各元素在存儲(chǔ)空間中位置不一定的連續(xù)的,但表頭元素

一定存儲(chǔ)

D.線性鏈表中的各元素在存儲(chǔ)空間的位置不一定是連續(xù)的,且各元素的

存儲(chǔ)順序也是任意的

10.下面敘述錯(cuò)誤的是()

A.對(duì)基類成員的訪問(wèn)能力在private派生類中和public派生類中是相同

B.基類的private成員在public派生類中不可訪問(wèn)

C.基類中的public成員在protected派生類中是protected的

D.基類中的public成員在protected派生類中仍然是public的

二、單選題(13題)

11.下面程序的結(jié)果是#include"iostream.h"voidmain(){char*str;Str

="test!";cout<<str[5];}

A.程序錯(cuò)誤B.!C.、0,D.為空字符

12.有下列程序:

#include<stdiO.h>

voidmain()

{intx=l,y=2,z=3;

if(x>y)

if(y<z)print{("%d",++z);

elseprintf("%d",++y);

printf(,,%d\n,,>x++);

)

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

A.A.331B.41C.2D.1

13.有以下程序:

classDate

(

public:

Date(inty,intm,intd);

(

year=Y:

month=m;

day=d;

)

Date(inty=2000)

(

year=y;

month=10;

day=l;

)

Date(Date&d)

(

year=d.year;

month=d.month;

day=d.day;

voidprint()

cout?year?"."<(month?"."?day?endl;

)

private:

intyear,month,day;

};

Datefun(Dated)

(

Datetemp;

temp=d;

returntemp;

)

intmain()

(

Datedatel(2000,1,1),date2(0,0,0);

Datedate3(datel);

date2=fun(date3);

returnO;

)

程序執(zhí)行時(shí),Date類的拷貝構(gòu)造函數(shù)被調(diào)用的次數(shù)是()。

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

14.有如下函數(shù)模板定義:templateT2plus(Tltl,T3t3){retumtl+t3;}

則以下調(diào)用正確的是()。

A.plus(3,5L);

B.plus(3,5L);

C.plus(3,5L);

D.plus(3,5L);

15.

16.考慮函數(shù)原型voidtest(inib=7,charz='*'),下面的函數(shù)調(diào)用中,屬于不合

法調(diào)用的是().

A.test(5);B.test(5?8)j

C.test(6,'*');D.test(O,O.'*');

16.以下類定義中可能會(huì)引起錯(cuò)誤的語(yǔ)句是()。

classA

(

public:

~A(){}//1

inti;//2

private:

intj;//3

A(inti){i++;}//4

};

A.lB.2C.3D.4

17.有如下程序:

#include<iostream>

usingnamespacestd:

classPoint{

intx,y;

public:

Point(intxl=0,intyl=O)):X(X1),y(yl){}

intget(){returnx+y;)

);

classCircle{

Pointcenter}

intradius;

public:

Circle(intCX,intcy,intr):center(cx,cy),radius(r)

{}

intget(){retumcenter.get()+radius;}

};

intmain(){

Circlec(3,4,5);

cout?c.get()?endl;

retumO;

)

運(yùn)行時(shí)的輸出結(jié)果是()oA.5B.7C.9D.12

18.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是()。

A.程序的規(guī)模B.程序的效率C.程序設(shè)計(jì)語(yǔ)言的先進(jìn)性D.程序易讀性

19.在結(jié)構(gòu)化設(shè)計(jì)方法中生成的結(jié)構(gòu)圖(SC)中,帶有箭頭的連線表示

A.模塊之間的調(diào)用關(guān)系B.程序的組成成份C.控制程序的執(zhí)行順序D.

數(shù)據(jù)的流向

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

(Dios

(2)ios_base::aopiosase::binary

(3)iosbase::

④iosbase::out

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

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

21.下列關(guān)于C++語(yǔ)言類的描述中錯(cuò)誤的是

A.類用于描述事物的屬性和對(duì)事物的操作

B.類與類之間通過(guò)封裝而具有明確的獨(dú)立性

C.類與類之間必須是平等的關(guān)系,不能組成層次結(jié)構(gòu)

D.類與類之間可以通過(guò)一些方法進(jìn)行通信和聯(lián)絡(luò)

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

#include<iostream.h>inti=0;

classA{public:A{i++;}

};

voidmain{

Aa,b[3],*C;C=b;

cout?i?endl:

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

23.下列敘述中錯(cuò)誤的是()。

A.在程序中凡是以“#”開始的語(yǔ)句行都是預(yù)處理命令行

B.預(yù)處理命令行的最后不能以分號(hào)表示結(jié)束

C.#defineMAX是合法的宏定義命令行

D.C++中預(yù)處理命令行的處理是在程序執(zhí)行的過(guò)程中進(jìn)行的

三、2.填空題(12題)

24.CASE是一組【】的集合,可以輔助軟件開發(fā)生命周期各階段進(jìn)行

軟件開發(fā)。

25.若要訪問(wèn)指針變量p所指向的數(shù)據(jù),應(yīng)使用表達(dá)式o

26.下面程序的運(yùn)行結(jié)果為【】。

#include<iostream.h>

voidmain()

{

unsignedcharvaluer127;

inttotal=100;

value++;

total+=value;

cout<<total<<endl;

A)227B)100C)127D)27

27.類中包含了一個(gè)靜態(tài)成員函數(shù),則main函數(shù)中和P.fl(P);語(yǔ)句具

有同樣功能的語(yǔ)句為【lo

#include<iostream,h>

classM

{

public,

M(inta){A=a;B+=a;

staticvoidfl(Mm)

private:

intA;

staticintB:

)

voidM::fl(Mm)

(

cout<<"A="<<m.A<<endl;

cout<<"B="<<m.B<<endl;

)

intM::B=10,

voidmain()

(

MP(5);

P.fl(P);

}

28.面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中涉及的對(duì)象是系統(tǒng)中用來(lái)描述客觀事物

的一個(gè)【】。

29.含有純虛函數(shù)的類稱為o

30.operator是運(yùn)算符重載時(shí)必須使用的關(guān)鍵字,它和被重載的運(yùn)算符連

在一起,作為運(yùn)算符函數(shù)的專用函數(shù)名,務(wù)必把該函數(shù)說(shuō)明為的。

31.虛函數(shù)必須是類的【】。

32.若有以下定義及初始化語(yǔ)句:

inti=100;

int*ip=&i;

intk=*ip;

并假設(shè)整型數(shù)i的地址為0x12345678,指針中的地址為0x21000000,則

k的值為【】。

33.語(yǔ)句cout<<'\n'還可表示為[]0

34.寫出下列程序的運(yùn)行結(jié)果。

#include<iostream,h>

classX{public:

virtualvoiddisp(){cout<<“X類的disp函數(shù)<<"endl;}

);

classY:publicX{

public:

voiddisp(){cout<<“Y類的disp函數(shù)<<"endl;}

);

voidmain(){

Xa,*p=&a;

Yb;

p->disp();

p=&b;

p->disp();

}

運(yùn)行結(jié)果為:[]

【】

35.一個(gè)C++語(yǔ)言程序的開發(fā)步驟通常包括編輯、【】、鏈接、運(yùn)行和調(diào)

試。

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

36.使用VC++6.0打開考生文件夾下的源程序文件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ǔ)句。

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

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

試題程序:

#include<iostream.h>

#include<assert.h>

voidmain()

{

char*sl="abc":

II********error********

assert(sizeof(s1)==3):

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

chars2[10]="ab":

II********error********

assert(sizeof(s2)==2);

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

chars3=23:

II********error********

assert(sizeof(s3)=4);

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

return;

)

37.使用VC++6.0打開考生文件夾下的源程序文件1.cpp。本程序

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

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

到屏幕中。

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

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

試題程序:

#include<iostream.h>

voidmain

(

inti=O;

charstr[120];

cout?"Enterastringendwith?."?endl;

II********error********

cin.getline(str,120);

II********enor********

while(str)

II********enor********

if(str[i])=a)

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

i++;

)

cout?str?endl;

return;

38.使用VC++6.。打開考生文件夾下的源程序文件1.cpp,但該程

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

確。

程序輸出:

8

8

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

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

試題程序:

#include(iostream.h>

classCO

{

public:

I********error********/

staticintn=O:

CO

n++:

?CO

n—:

}:

!********error********/

intCO::n;

voidmain

COobj;

COobj2[7];

CO*C=NULL:

c=&obj:

I********error********

eout?C.n?endl;

cout?C0::n?endl;

)

39.使用VC++6.。打開考生文件夾下的源程序文件

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******error******白勺-|什|~。

試題程序:

#include<iostream>

#include<fstream>

II********enor********

usingstd;

voidWriteFile(char*s)

ofstreamoutl;

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

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

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

{

I/********enor********

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;

40.使用VC++6.。打開考生文件夾下的源程序文件1.cpp,該程序

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

number=1

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

(

retumnumber;

}

voidPrintconst

(

cout?"number="?number?endl;

)

private:

intnumber;

};

voidmain

IJ********error*********

TCobjl;

objl.Print;

TCobj2(3);

//********error********

objl.number=10;

I/********error*%()******

TC.SetNumber(lOO);

objl.Print;

obj2.Print;

)

41.使用VC++6.。打開考生文件夾下的源程序文件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");

)

II********error********

catch(chars)

(

cout?s?endl;

)

try

(

throw((int)0);

)

II********error********

catch

(

cout?i?endl;

)

try

(

throw(O);

throw("error");

)

II********error********

catch

(

cout?"ERROR"?endl;

returnO;

)

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

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

number=1

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

{

retumnumber;

)

voidPrintconst

(

cout?"number="?number?endl;

)

private:

intnumber;

};

voidmain

!1********error********

TCobjl;

objl.Print;

TCobj2(3);

!I********error********

objl.number=10;

II********ej*j*or*******

TC.SetNumber(lOO);

objl.Print;

obj2.Print;

)

43.使用VC++6.0打開考生文件夾下的源程序文件1.叩p,該程序

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

Constructor,i=0,

Destructor

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

可。

試題程序:

#include(iostream.h)

classTC

inti;

public:

TC;

voiddisplay;

?TC;

};

II******error******

TC:TC

{

cout?"Constructor"?",";

i=0;

)

/!******error******

TC:display

(

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

)

II******error******

TC:TC

(

COUI?"Destructor"?endl:

)

voidmain

TCa;

a.display;

)

44.使用VC++6.0打開考生文件夾下的源程序文件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********error********

cin.getline(str,120);

!1********enor********

while(str)

!1********error********

if(str[i])=a)

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

i++;

)

cout?str?endl;

return;

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

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

9,8,7,6,5

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

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

試題程序:

#include(iostream.h>

classTC

!********enor********/

TC(inti)

(

m_i=i;

)

voidprint

(

cout?—m_i?,;

)

public:

intm_i;

);

intmain

!********ej*ror********/

inti;

TC04(10);

while(i>5)

(

I********errQr********

i++:

04.print;

)

cout?endl;

retumO;

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

46.使用VC++6.。打開考生文件夾下的源程序文件3.cpp,其中定

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

求完成下列操作,將類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ǔ)句。

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

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

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

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

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

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

試題程序:

#include<iostream.h>

classCRect

(

private:

public:

II

voidSetPoints(double,double,double,double);

voidSetLeftPoint(doublem){leftPoint=m;}

voidSetRightPoint(doublem){rightPoint=m;}

voidSetTopPoint(doublem){topPoint=m;}

voidSetBottomPoint(doublem){bottomPoint=m;}

voidDisplay();

};

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

(

leftPoint=l;topPoint=t;

rightPoint=r;bottomPoint=b;

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

leftPoint=l;topPoint=t;

rightPoint=n;bottomPoint=b;

)

voidCRect::Display()

{

cout?"left-toppointis("?leftPoint<<","?top-

Point?")"?\n;

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

<<bottomPoint?")"?\n;

}

voidmain()

(

CRectrectO;

rectO.Display();

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

rectO.Display();

CRectrectl(O,0,150,150);

recti.SetTopPoint(10.5);

recti.SetLeftPoint(10.5);

!1********4********rect2Display().

47.(1)應(yīng)添力口“virtualvoidGetNamt!=0;

(2)應(yīng)添力口“constchar*GetName2”。

⑶應(yīng)添加“TC2(char*str)”。

(4)應(yīng)添加“m_str[i]=O;

【解析】本題第1處要求“在類TC1中定義接口函數(shù)GetName,為純虛

函數(shù)在C++中,在基類中用virtual聲明成員函數(shù)為虛函數(shù)。純虛

函數(shù)是在聲明虛函數(shù)時(shí)被“初始化'’為0的函數(shù),即

“virtualvoidGetName=0;"。第2處要求“函數(shù)GetName2實(shí)現(xiàn)獲得名字

的緩存,但只獲得讀允許操作這個(gè)緩存只能引用數(shù)據(jù)成員,而不能修

改,所以使用常成員函數(shù),其一般形式為“const函數(shù)類型函數(shù)名“,即

“constchar*GetName2"。第3處要求“實(shí)現(xiàn)TC2的構(gòu)造函數(shù)”。TC2的構(gòu)

造函數(shù)與類TC2的名稱應(yīng)該相同,而且第3處的大括弧中是對(duì)字符數(shù)

組str的操作,所以類TC2的構(gòu)造函數(shù)中的參數(shù)為str,即這里補(bǔ)全為

“TC2(char*str)”。第4處要求“完成TC2的構(gòu)造函數(shù),實(shí)現(xiàn)對(duì)名字的處

理”,補(bǔ)全類TC2的構(gòu)造函數(shù),構(gòu)造函數(shù)中的名字變量str對(duì)應(yīng)于類TC

中的成員變量m_str,所以這里補(bǔ)全變量賦值操作"m_str[i]=0;

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

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

test35_3.cpp,其中定義了時(shí)鐘類clock,但該類的定義并不完整。請(qǐng)按

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

(1)定義類clock的私有數(shù)據(jù)成員hour和minute,它們都是int型的數(shù)據(jù)。

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

(2)補(bǔ)充完全類clock的構(gòu)造函數(shù),私有數(shù)據(jù)成員hour和minute分別初

始化為參數(shù)h和m的值,請(qǐng)?jiān)谧⑨尅啊?*2**”之后添加適當(dāng)?shù)恼Z(yǔ)句。

(3)完成類clock的成員函數(shù)printtime,的定義,該函數(shù)以“Nowthetime

ishour:minute”的格式輸出數(shù)據(jù)成員hour和minute的值,如hour=3、

minute=59,則輸出為"Nowthetimeis03:59”,請(qǐng)?jiān)谧⑨尅啊?*3**”之后

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

(4)完成類clock的成員函數(shù)addoneminutetime的定義,該函數(shù)可將clock

類對(duì)象表示的時(shí)間加一分鐘,如現(xiàn)在hour=3、minute=59,運(yùn)行該函數(shù)

后hour=4、minute=0o請(qǐng)?jiān)谧⑨尅啊?*4**”之后添加適當(dāng)?shù)恼Z(yǔ)句。

程序的輸出結(jié)果如下:

Now,thetimeis12:59

Now,thetimeis13:00

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

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

#include<iostream.h>

classclock

(

private:

〃**]**

public:

clock(inth,intm)

{

H**2**

)

intpresenthour(){returnhour;}

intpresentminute(){returnminute;}

voidaddoneminutetime();

voidprinttime();

);

voidclock::printtime()

if(hour<10)cout<<'O';

H**3**

if(minute<10)cout<<'O';

cout<<minute<<endl;

)

v(oidclock::addoneminutetime()

〃**4**

if(minute>59)

(

minute-=60;

hour++;

)

if(hour>23)

hour=0;

)

voidmain()

{

clockc(12,59);

c.printtime();

c.addoneminutetime();

c.printtime();

)

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

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

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

⑴完成類CVector構(gòu)造函數(shù)的定義,把傳入的int型參數(shù)a和b分別賦

值給類的成員變量x和yo請(qǐng)?jiān)谧⑨尅啊?*1**”之后添加適當(dāng)?shù)恼Z(yǔ)句。

(2)完成類CVector的運(yùn)算符重載函數(shù)的定義,使Cvector類的兩個(gè)對(duì)

象相加時(shí)可以直接使用符號(hào)“+”,并且結(jié)果仍然為類Cvector的對(duì)象,請(qǐng)

在注釋“〃**2**”之后添加適當(dāng)?shù)恼Z(yǔ)句。

⑶在主函數(shù)中添加適當(dāng)?shù)恼Z(yǔ)句,把類Cvector的對(duì)象a和b相加,并且

把結(jié)果保存在對(duì)象c中,最后以“x,y”的形式輸出在屏幕上,請(qǐng)?jiān)谧⑨?/p>

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

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

#include<iostream.h>

classCVector

(

public:

intx,y;

CVector(){};

CVector(int,int);

CVectoroperator+(CVector);

);

CVector::CVector(inta,intb)

(

〃**]**

}

CVectorCVector::operater+(CVectorparam)

(

〃**2**

temp.y=y+param.y;

return(temp);

)

intmain()

(

CVectora(3,1);

CVectorb(1,2);

CVectorc;

〃**3**

return0;

)

參考答案

1.A本題考查程序效率。程序效率是指程序運(yùn)行速度和程序占用的存儲(chǔ)

空間。影響程序效率的因素是多方面的,包括程序的設(shè)計(jì)、使用的算

法、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)等。在確定數(shù)據(jù)邏輯結(jié)構(gòu)的基礎(chǔ)上,選擇一種合適

的存儲(chǔ)結(jié)構(gòu),可以使得數(shù)據(jù)操作所花費(fèi)的時(shí)間少,占用的存儲(chǔ)空間少,

即提高程序的效率。因此,本題選項(xiàng)A的說(shuō)法是正確的。

2.C解析:數(shù)據(jù)庫(kù)模型分為層次模型、網(wǎng)狀模型和關(guān)系模型,其中層次

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

3.B

4.A

5.C解析:選項(xiàng)A)、選項(xiàng)B)顯然不合題意。數(shù)據(jù)定義語(yǔ)言(Data

DefinitionLanguage,簡(jiǎn)稱DDL)負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存

取構(gòu)建;數(shù)據(jù)操縱語(yǔ)言(DataManipulationLanguage,簡(jiǎn)稱DML)負(fù)責(zé)數(shù)

據(jù)的操縱,包括查詢及增、刪、改等操作。

6.B解析:本題要考查的實(shí)際是字符數(shù)組,用于向函數(shù)傳遞參數(shù),屬于

指針或引用傳遞方式。要注意的是考生不要被名稱所迷惑,即根據(jù)A和

D是相同類別的,故可以排除。對(duì)C來(lái)說(shuō),也屬于指針傳遞方式,而B

不僅不屬于指針傳遞,而且還沒有限定數(shù)組大小,編譯器在編譯時(shí)就會(huì)

產(chǎn)生錯(cuò)誤。

7.B

8.B解析:本題考核派生類中的訪問(wèn)權(quán)限問(wèn)題。繼承方式包括:public(公

有派生),protected(保護(hù)派生)和private(私有派生)。不同的繼承方式會(huì)

導(dǎo)致原來(lái)具有不同訪問(wèn)屬性的基類成員在派生類中的訪問(wèn)屬性也有所

不同。這里的訪問(wèn)主要來(lái)自兩個(gè)方面:一是派生類中的新增成員對(duì)從基

類繼承來(lái)的成員的訪問(wèn),?二是派生類外部通過(guò)派生類對(duì)象對(duì)從基類繼承

來(lái)的成員的訪問(wèn)。私有繼承時(shí)基類中的protected成員在派生類中變成了

private成員,所以B選項(xiàng)的描述是錯(cuò)誤的。

9.D解析:性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)序號(hào)不連續(xù),且

各結(jié)點(diǎn)在存儲(chǔ)空間中的位置關(guān)系與邏輯關(guān)系也不一致。性鏈表中,各數(shù)

據(jù)元素之間的前后件關(guān)系是由各結(jié)點(diǎn)的指針域來(lái)指示的。所以,選項(xiàng)D

正確。

10.D

11.D解析:NO,輸出為不顯示,只代表一個(gè)字符串的結(jié)束。注意:C++語(yǔ)

言中各種字符轉(zhuǎn)義序列的意義和應(yīng)用。

12.D

Do【解析】C語(yǔ)言中規(guī)定,else與離它最近的if相匹配。

x=l,y=2,z=3,所以第一個(gè)if的條件(x>y)不成立,直接執(zhí)行

printf("%d\n",x+1);語(yǔ)句,輸出x的值1,再把x加1。

13.B\nBo【解析】本題考核拷貝構(gòu)造函數(shù)。上述程序中,拷貝構(gòu)造函數(shù)

一共被調(diào)用了3次:第1次是在執(zhí)行語(yǔ)句Datedate3(datel)時(shí),用已經(jīng)建

立的對(duì)象datel對(duì)正在建立的對(duì)象date3進(jìn)行初始化;第2次是在調(diào)用

fun函數(shù)時(shí),由于是傳值調(diào)用,因此實(shí)參對(duì)象date3要對(duì)形參對(duì)象d進(jìn)行

初始化;第3次是在執(zhí)行fun函數(shù)中的返回語(yǔ)句returntemp;時(shí),系統(tǒng)

初始化一個(gè)匿名對(duì)象時(shí)使用了拷貝構(gòu)造函數(shù)。

\n

14.D

Do【解析】C++中對(duì)函數(shù)模板的調(diào)用有時(shí)候只使用了函數(shù)實(shí)參,而

沒有使用模板實(shí)參,模板實(shí)參都被省略了,但模板實(shí)參的省略并不是

必然的,而是有條件的:從模板函數(shù)實(shí)參表獲得的信息有矛盾;需要

獲得特定類型的返回值,而不管參數(shù)的類型如何;虛擬類型參數(shù)不出

現(xiàn)在模板函數(shù)的形參中;函數(shù)模板含有常規(guī)形參。題中定義的函數(shù)模

板中虛擬類型參數(shù)T2沒有出現(xiàn)在模板數(shù)的形參列表中,所以在調(diào)用時(shí)

不能省略,D選項(xiàng)的調(diào)用省略了T3,這是允許的。

15.C

16.D

Do【解析】本題考查關(guān)于C++語(yǔ)言類的定義方法。在C++語(yǔ)言中

類定義中的構(gòu)造函數(shù)是私有的,但是卻調(diào)用了其中的公有變量,在實(shí)

例化時(shí)會(huì)斟現(xiàn)錯(cuò)誤。

17.D

Do【解析】簡(jiǎn)單類之間繼承關(guān)系的調(diào)用,按照通常做法便可以得到答

案。center,get函數(shù)調(diào)用后,3和4的和被返回,接著再調(diào)用Circle類

的radius成員變量5相加后得到12。

18.D結(jié)構(gòu)化程序設(shè)計(jì)由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主

張“清晰第一,效率第二”,以模塊化設(shè)計(jì)為中心,將待開發(fā)的軟件系統(tǒng)

劃分為若干個(gè)相互獨(dú)立的模塊,這樣使完成每一個(gè)模塊的工作變得單純

而明確,為設(shè)計(jì)一些較大的軟件打下了良好的基礎(chǔ)。

由于模塊相互獨(dú)立,因此,在設(shè)計(jì)其中一個(gè)模塊時(shí),不會(huì)受到其他模塊

的牽連,因而可將原來(lái)較為復(fù)雜的問(wèn)題化簡(jiǎn)為一系列簡(jiǎn)單模塊的設(shè)計(jì)。

模塊的獨(dú)立性還為擴(kuò)充已有的系統(tǒng)、建立新系統(tǒng)帶來(lái)了不少的方便,因

為可以充分利用現(xiàn)有的模塊作為積木式的擴(kuò)展。

結(jié)構(gòu)化程序設(shè)計(jì)的基本思想是采用“自頂向下,逐步求精”的程序設(shè)計(jì)方

法和“單入口單出口”的控制結(jié)構(gòu)。自頂向下、逐步求精的程序設(shè)計(jì)方法

從問(wèn)題本身開始,經(jīng)過(guò)逐步細(xì)化,將解決問(wèn)題的步驟分解為由基本程序

結(jié)構(gòu)模塊組成的結(jié)構(gòu)化程序框圖;“單入口單出口”的思想認(rèn)為一個(gè)復(fù)雜

的程序,如果它僅是由順序、選擇和循環(huán)三種基本程序結(jié)構(gòu)通過(guò)組合、

嵌套構(gòu)成,那么這個(gè)新構(gòu)造的程序一定是一個(gè)單入口單出口的程序。據(jù)

此就很容易編寫出結(jié)構(gòu)良好、易于調(diào)試的程序。

19.A解析:在結(jié)構(gòu)圖中,用帶有箭頭的連線表示模塊之間的調(diào)用關(guān)系。

箭頭由前一個(gè)模塊指向后一個(gè)模塊,表示前一個(gè)模塊調(diào)用后一個(gè)模塊。

本題的正確答案為A。

20.D

解析:ios_base::binary是作為二進(jìn)制文件打開,ios_base::out是

為輸出而打開;故因選D。

21.C解析:C++語(yǔ)言中的類是可以組成層次結(jié)構(gòu)的,類是用于描述事

物的屬性和對(duì)事物的操作,類與類之間有相對(duì)的獨(dú)立性,但其可以通過(guò)

一些方法進(jìn)行信息的通信。

22.C

外部變量i實(shí)際上記錄的是調(diào)用構(gòu)造函數(shù)的次數(shù)。

23.D

預(yù)處理命令是以“#”開始的語(yǔ)句,每一條預(yù)處理命令必須單獨(dú)占用一

行.由于不是C語(yǔ)言的語(yǔ)句。并且命令行的最后不能以分號(hào)表示結(jié)

束,定義格式為“#de-fine標(biāo)識(shí)符字符串“,預(yù)處理命令行是系統(tǒng)對(duì)源程

序進(jìn)行編譯之前進(jìn)行處理的,不是在程序執(zhí)行的過(guò)程中。

24.軟件開發(fā)工具軟件開發(fā)工具

25.*p

26.410410解析:本題主要考察C++類中靜態(tài)數(shù)據(jù)成員的使用。程序首

先定義了類count,其內(nèi)部含有private類型數(shù)據(jù)成員staticintn;同時(shí)

含有public類型構(gòu)造函數(shù)count。和靜態(tài)成員函數(shù)staticinttest(),這兩個(gè)

函數(shù)的功能分別是為對(duì)象申請(qǐng)系統(tǒng)資源并將靜態(tài)數(shù)據(jù)成員n加1和將靜

態(tài)數(shù)據(jù)成員n加4。主函數(shù)前,程序?qū)㈧o態(tài)數(shù)據(jù)成員n初始化為0,該

數(shù)據(jù)成員為所有類count的對(duì)象所共有的數(shù)據(jù)成員;主函數(shù)中程序首先

執(zhí)行靜態(tài)成員函數(shù)test()(由于test聲明為static,因此其調(diào)用時(shí)無(wú)需通過(guò)

具體對(duì)象),其執(zhí)行過(guò)程中,靜態(tài)數(shù)據(jù)成員n應(yīng)該加4變成n=4,因此此

處輸出為4;此后程序創(chuàng)建對(duì)象cl和c2,由于在每次創(chuàng)建過(guò)程中都要

調(diào)用構(gòu)造函數(shù)count。,而每次調(diào)用count。函數(shù)后,靜態(tài)數(shù)據(jù)成員n值都

會(huì)加1。因此,創(chuàng)建兩個(gè)對(duì)象之后,n值變?yōu)閚=6;再次執(zhí)行test。函數(shù)

后,n的值再次加4,因此變?yōu)閚=6+4=10。故程序全部執(zhí)行后,變量n

值變?yōu)?0,而中間程序輸出為“410”。

27.M::fl(P);M::fl(P);解析:由于fl是類M的靜態(tài)成員函數(shù),即說(shuō)明類

M的任何對(duì)象都共享一份fl,因此,不僅可以從對(duì)象那里訪問(wèn)fl,還

可以用域操作符::通過(guò)類名來(lái)訪問(wèn)。

28.實(shí)體實(shí)體解析:面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中涉及的對(duì)象是系統(tǒng)中用

來(lái)描述客觀事物的一個(gè)實(shí)體,是構(gòu)成系統(tǒng)的一個(gè)基本單位,它由一組表

示其靜態(tài)特征的屬性和它可執(zhí)行的一組操作組成。

29.抽象類抽象類

3O.public

31.成員函數(shù)成員函數(shù)解析:C++中,只有類的成員函數(shù)才能說(shuō)明為虛

函數(shù)。這是因?yàn)椋摵瘮?shù)僅適用于有繼承關(guān)系的類對(duì)象,所以普通函數(shù)

不能說(shuō)明為虛函數(shù)。

32.100

33.cout<<endl;cout<<endl;解析:\\n表示換行,endl也可表示換

行。注意:endl和'\\n,可以通用。

34.X類的disp函數(shù)Y類的disp函數(shù)X類的disp函數(shù)\r\nY類的disp函

數(shù)

35.編譯編譯解析:C++語(yǔ)言程序開發(fā)的基本步驟是編輯、編譯、鏈接、

運(yùn)行和調(diào)試。

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

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

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

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

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

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

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

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

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

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

€tassert(sizeof(s3)=1);”。

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

⑵應(yīng)改為“while(str[i])"°

⑶應(yīng)改為“if(str[i]>=a&&st巾]<=2)”。

【解析】本題中要求以輸入字符“?”為結(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è)字符是否

為小寫,若為小寫,則轉(zhuǎn)換。所以應(yīng)該修改為“while(str[i])”。第3處的

“iRstr[i]>=a)”語(yǔ)句是判斷字符str[i]是否為小寫字符,而現(xiàn)有的語(yǔ)句只

是判斷字符是否大于a,但是小寫字符應(yīng)該是a到2,所以修改為

4t,,

if(str[i]>=a&&str[i]>=z)o

38.(1)€4staticintn=O,,^Z0(^t€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;

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

(2)應(yīng)改為"outl.open("1.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類中定義的,所以“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ǔ)句修改為

“outl.put(s[i]);

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

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

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

【解析】本題第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ù),所以修改為

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

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

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

“obj2.SetNumber(lOO);

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

⑵應(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子句中沒有指定異常信息的類

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

改為“catch(…)”。

42.⑴應(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⑴;第2處處的

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

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

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

第3處叮(2.5611^11166?100);”語(yǔ)句中的T(2為類,并不是對(duì)象,這里

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

“obj2.SetNumber(lOO);

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處應(yīng)改

為“TC::TC”,默認(rèn)構(gòu)造函數(shù)沒有參數(shù)。由第2處“TC::display”后

的語(yǔ)句看,這是在類外實(shí)現(xiàn)TC函數(shù),因此也有作用域運(yùn)算符使用錯(cuò)

誤問(wèn)題,display函數(shù)返回值為void,因此第2處的語(yǔ)句應(yīng)改為

“voidTC::display”。由第3處的語(yǔ)句“TC::TC”可知,顯然這里是

在類外實(shí)現(xiàn)析構(gòu)函數(shù),析構(gòu)函數(shù)是一個(gè)特殊的函數(shù),它的名稱和類名

相同,并在前面加“?”字符,用采與構(gòu)造函數(shù)加以區(qū)別,因此第3處

的語(yǔ)句應(yīng)改為“TC::?TC”。

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

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

,,

\n⑶應(yīng)改為"if(str[i]>=a&&str[i]<=2)o

\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è)字符是否為小寫,若為小寫,

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

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

,,

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

45.(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ò)類

的對(duì)象被訪問(wèn)。故

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論