2023年甘肅省慶陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第1頁(yè)
2023年甘肅省慶陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第2頁(yè)
2023年甘肅省慶陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第3頁(yè)
2023年甘肅省慶陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第4頁(yè)
2023年甘肅省慶陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩42頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2023年甘肅省慶陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試

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

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

一、1.選擇題(10題)

I.重載輸入流運(yùn)算符<<必須使用的原型為()。

A.ostream&operator>>(ostream&,<類(lèi)名>);

B.istream&operator>>(istream&,<類(lèi)名>&);

C.ostreamoperator>>(ostream,〈類(lèi)名〉&);

D.<類(lèi)名〉operator>>(istream&,(類(lèi)名>&);

2.在關(guān)系模型中,

A.為了建立一個(gè)關(guān)系,首先要構(gòu)造數(shù)據(jù)的邏輯關(guān)系

B.表示關(guān)系的二維表中各元組的每一個(gè)分量還可以分成若干數(shù)據(jù)項(xiàng)

C.一個(gè)關(guān)系的屬性名表稱(chēng)為關(guān)系模式

D.一個(gè)關(guān)系可以包括多個(gè)二維表

3.定義對(duì)象數(shù)組a⑵時(shí),要調(diào)用2次構(gòu)造函數(shù);生成*p的對(duì)象時(shí),要

調(diào)用一次構(gòu)造函數(shù),故答案為3。

A.使用虛基類(lèi)可以消除由多繼承產(chǎn)生的二義性

B.構(gòu)造派生類(lèi)對(duì)象時(shí),虛基類(lèi)的構(gòu)造函數(shù)只被調(diào)用一次

C.聲明“classBvirtualpublicA”說(shuō)明類(lèi)B為虛基類(lèi)

D.建立派生類(lèi)對(duì)象時(shí),首先調(diào)用虛基類(lèi)的函數(shù)

4.有以下程序:#include<iostream>usingnamespacestd;classR

{public:R(intrl,intr2){Rl=rl;R2=r2;}voidprint();voidprint()const;

private:intRl,R2;};voidR::print(){cout<<RI<<<<R2<

<endl;)voidR::print()const{cot<<RI<<'V'<<R2<<endI;}

intmain(){Ra(5,4);constRb(20,52);b.print();return0;}執(zhí)行

后的輸出結(jié)果是

A.5,4B.20,52C.0,0D.4,5

5.已知有定義constintD=5;inti=l;doublef=0.32;charc=15;

則下列選項(xiàng)錯(cuò)誤的是

A.++i,B.D—C.c++;D.--f

6.以下敘述正確的是()。

A.函數(shù)可以嵌套定義但不能嵌套調(diào)用

B.函數(shù)既可以嵌套調(diào)用也可以嵌套定義

C.函數(shù)既不可以嵌套定義也不可以嵌套調(diào)用

D.函數(shù)可以嵌套調(diào)用但不可以嵌套定義

7.下列敘述中正確的是

A.黑箱(盒)測(cè)試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征

B.黑箱(盒)測(cè)試方法主要考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征

C.白箱(盒)測(cè)試不考慮程序內(nèi)部的邏輯結(jié)構(gòu)

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

下列選項(xiàng)中,不屬于面向?qū)ο蟪绦蛟O(shè)計(jì)特征的是

A)繼承性B)多態(tài)性

8.C)類(lèi)比性D)封裝性

9.有以下程序:#include<iostream.h>voidmain(){intx=5,y=2;cout

<<!(y==x/2)<<;cout<<y!=x%3)<<",";cout<<(x>0&&y

<0)<<;cout<<(x!=yIIx>=y)<<endl:)程序執(zhí)行后的輸出結(jié)

果是()

A.O,0,0,1B.l,1,11C.0,0,1,1D.l,1,0,0

10.在C++語(yǔ)言中,打開(kāi)一個(gè)文件就是將這個(gè)文件與一個(gè)什么建立關(guān)

聯(lián)?

A.流B.類(lèi)C.結(jié)構(gòu)D.對(duì)象

二、單選題(13題)

11.有如下程序:

#include<iostream>

usingnamespacestd;

intmain(){

intf,fl=0,f2=l

for(inti=3;i<=6;i++){

f=fltf2;

fl=f2:f2=f

cout?f?endl;

returnO:

)

運(yùn)行時(shí)的輸出結(jié)果是()。A.2B.3C.5D.8

12.有如下類(lèi)定義:

classPoint{

intx_,y_;

public:

Point。:xJO),y_(0){}

Point(intx,inty=0):x_(x),y_(y){}

};

若執(zhí)行語(yǔ)句Pointa(2),b[3],*c[4]:則Point類(lèi)的構(gòu)造函數(shù)被調(diào)用的

次數(shù)是

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

13.將E-R圖轉(zhuǎn)換為關(guān)系模式時(shí),實(shí)體和聯(lián)系都可以表示為o

A.屬性B.鍵C關(guān)系D.域

14.已知chara;intb;floatC;doubled;則表達(dá)式a*b+c-d的結(jié)果為()0

A.doubleB.intC.floatD.char

15.有如下程序:

#include<iostream>

usingnamespacestd:

classPoint{

intx,y;

public:

Point(intxl=0,inty1=0)):X(XI),y(y1){}

intget(){retumx+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;

returnO;

)

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

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

#include<iostream.h>

classA

inta;

public:

A(){a=0;)

AO{intaa}

{a=aa;

cout?a++;

)

);

voidmain()

(

Ax,y(2),z(3);

cout?endl;

}

A.00B.23C.34D.25

17.支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是_______,

A.棧B.樹(shù)C.隊(duì)列D.二叉樹(shù)

18.有下列程序:

#include<stdiO.h>

voidmain()

{intal?a2charcl,c2;

scanf("%d%c%d%C”,&al,&cl,&a2,&c2);

printf("%d%c%d%C”,al,cl,a2,c2);

若想通過(guò)鍵盤(pán)輸入,使得al的值為12,a2的值為34,cl的值為字符

a,c2的值為字符b,程序輸出結(jié)果是12,a,34.

h.財(cái)正?輸入格大后(以下一代表空唱?VCR>代去的

車(chē)乂).

A.12a34b<CR>

B.12—ai'b<CK-

C.12,a,34,b<CR>

D.I2;,34'tx.XLK-

19.有如下程序:

#include+

usingnamespacestd;

#include

usingnamespacestd;

classBase

(

public:

voidfun(){cout?,,Base::fun,'<

};

classDerived:publicBase

(

public:

voidfun()

(

cout?"Derived::fun"<

intmain()

(

Derivedd;

d.fun();

return0;

)

已知其執(zhí)行后的輸出結(jié)果為:

Base::fun

Derived::fun

則程序中下劃線處應(yīng)填入的語(yǔ)句是

A.Base.fun();B.Base::fun()C.Base->fun()D.fun();

20.程序設(shè)計(jì)語(yǔ)言的工程特性之一為()。

A.軟件的可重用性B.數(shù)據(jù)結(jié)構(gòu)的描述性C.抽象類(lèi)型的描述性D.數(shù)據(jù)

庫(kù)的易操作性

21.面關(guān)于類(lèi)的靜態(tài)成員,說(shuō)法正確的是o

A.類(lèi)的靜態(tài)成員函數(shù)只能訪問(wèn)類(lèi)的靜態(tài)數(shù)據(jù)成員

B.類(lèi)的靜態(tài)成員函數(shù)可直接訪問(wèn)類(lèi)的所以數(shù)據(jù)成員

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

D.靜態(tài)數(shù)據(jù)成員只能通過(guò)“類(lèi)名::”進(jìn)行訪問(wèn)

22.以下敘述正確的是()。

A.函數(shù)可以嵌套定義但不能嵌套調(diào)用

B.函數(shù)既可以嵌套調(diào)用也可以嵌套定義

C.函數(shù)既不可以嵌套定義也不可以嵌套調(diào)用

D.函數(shù)可以嵌套調(diào)用但不可以嵌套定義

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

A.成員函數(shù)一定是內(nèi)聯(lián)函數(shù)B.成員函數(shù)可以重載C.成員函數(shù)可以設(shè)

置參數(shù)的默認(rèn)值D.成員函數(shù)可以是靜態(tài)的

三、2.填空題(12題)

24.將x+y*z中的用成員函數(shù)重載,“”用友元函數(shù)重載應(yīng)寫(xiě)為【】。

25.為了表明一個(gè)函數(shù)不帶返回值,應(yīng)在定義函數(shù)時(shí)指定該函數(shù)類(lèi)型為

[]o

26.在C++流類(lèi)庫(kù)中,根基類(lèi)為o

27.診斷和改正程序中錯(cuò)誤的工作通常稱(chēng)為o

28.數(shù)據(jù)模型按不同應(yīng)用層次分為3種類(lèi)型,它們是概念數(shù)據(jù)模型,【】

和物理數(shù)據(jù)模型。

29.在面向?qū)ο蠓椒ㄖ?,?lèi)之間共享屬性和操作的機(jī)制稱(chēng)為【

30.程序的結(jié)果為o

#includeHiostream.h"

template<typenameT>

Ttotal(T*data)

Ts=0;

while(*data)

S+=*data++;

)

returnS;

)

intmain()

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

cout<<total(x);

return0;

cout<<endl;}

31.閱讀下面程序:

#include<iostream.h>

voidfunl(chara,charb)

(

charc;

c=a;a=b;b=C;

)

voidfun2(char&a,charb)

(

charc;

c=a;a=b;b=c;

)

voidfun3(char&a,char&b)

(

charc;

c=a;a=b;b=C;

voidmain()

(

chara,b;

a='Af;b='B,;

funl(a,b);cout<<a<<b;

a='A';b='B';

fun2(a,b);cout<<a<<b;

a='A';b=B;

fun3(a,b);cout<<a<<b;

}

則該程序的輸出為【

32.類(lèi)中數(shù)據(jù)成員和成員函數(shù)的默認(rèn)類(lèi)型為o

33.頭文件【】中包含了處理用戶(hù)控制的文件操作所需的信息。

34.成本效益分析的目的是從【】角度評(píng)價(jià)開(kāi)發(fā)一個(gè)項(xiàng)目是否可行。

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

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

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

36.使用VC++6.0打開(kāi)考生文件夾下的源程序文件1.cpp,該程序運(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;

);

/小小小小4?小prrcr不不不不不不

TC:TC

cout?,^Constructor'^?'^,”

i=0;

)

/****不*error不不不不予不

TC:display

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

7*7*7*7*

?門(mén)?門(mén)”門(mén)*rerror不不干不干不

TC:TC

COUI?"DestructorM?endl:

voidmain

TCa;

a.display;

)

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

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

9,8,7,6,5

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

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

試題程序:

#include(iostream.h>

classTC

*1**1**1**1**1**1*?£??£?

不不不不不不不不error不不不不不予予不

TC(inti)

m_i=i;

voidprint

cout?—m_i?,

public:

intm_i;

intmain

/?£??£??£??&??&??&?/

/不不不不不不不不prrcr不不不不不不不不/

inti;

TC04(10);

while(i>5)

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

i++:

04.print;

)

cout?endl;

returnO;

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

/_>1*^1**1**1**1**1*

//不不不不不不error不不小不不不

voidmain

!?*??*??*??*?

//****^^pji*cr***不**

intm=0142:

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

intn=0X27:

intq=32;

cout<<m<<endl;

cout<<n<<endl;

cout<<q<<endl;

return;

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

運(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ǔ)句在//******error******的下面。

試題程序:

#include<iostream.h>

classTC

public:

TC(inti)

number』;

1

voidSetNumber(intm)

number二m;

intGetNumberconst

returnnumber;

voidPrintconst

cout?"number="?number?endl;

private:

intnumber;

};

voidmain

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

TCobjl;

objl.Print;

TCobj2⑶;

/?>1?

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

objl.number=10;

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

TC.SetNumber(l00);

objl.Print;

obj2.Print;

40.使用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ǔ)句在

!******error******F面。

試題程序:

#include<iostream>

#include<fstream>

usingstd;

voidWriteFile(char*s)

(

ofstreamout1;

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

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

outl.puts(s[i]);

outl.close;

)

voidClearFile

(

ofstreamout1;

outl.open("l.txt");

outl.close;

)

intmain

(

chars[10241;

ClearFile;

cout?npleaseinputastrin9:u?endl;

cin.getline(s,1024);

WriteFile(s);

returnO;

)

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

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

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

程序異常,輸出信息為

error

O

ERROR

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

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

試題程序:

#include<iostream.h)

intmain

(

try

(

throw(nerror");

/不不冰冰冰冰小不error不不卻亭予亭卻不

catch(chars)

(

cout?s?endl;

)

try

(

throw((int)0);

I

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

catch

(

cout?i?endl;

)

try

(

throw(O);

throw(Herrorn);

)

/*****不不*ermr*不**亭亭亭亭

catch

cout?nERRORH?cndl;

returnO;

42.使用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:

小小小小小小小小errcr不不不不不不不不/

staticintn=O:

CO

n++:

?CO

n—:

):

intCO::n;

voidmain

(

COobj;

COobj2⑺;

COCNULL:

c=&obj:

/汴*!*汴*1*舉*1*舉*1*舉*1*舉*1*舉舉Pimr?????????不????????????

eout?C.n?endl;

cout?C0::n?endl;

}

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

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

/年不小小不小error早亭亭不壽不

TC:TC

(

cout?nConstructorn?n,”;

i=0;

)

/*3*KI*KI>

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

TC:display

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

/*1**1**1**1**1**1**£**4**£**1*?£?

//小小小小小小prmr不不不不不不

TC:TC

COUI?nDestructorM?endl:

)

voidmain

TCa;

a.display;

}

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<iostream.h>

classTC

public:

TC(inti)

(

number=i;

}

voidSetNumber(intm)

(

number=m;

)

intGetNumberconst

(

returnnumber;

}

voidPrintconst

(

cout?nnumber=H?number?endl;

)

private:

intnumber;

);

voidmain

//

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

TCobjl;

objl.Print;

TCobj2(3);

1*1**1**1*

//汴不不*r不不不不不不不不

objl.number=10;

II********ci*j*0|**(/o******

TC.SetNumber(lOO);

objl.Print;

obj2.Print;

)

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

46.使用VC++6.0打開(kāi)考生文件夾下的源程序文件3.cpp。類(lèi)

People包括姓名和年齡兩個(gè)字段。函數(shù)fun獲得年齡比較大的人的姓

名,然后輸出這個(gè)姓名到屏幕。

其中定義的類(lèi)并不完整,按要求完成下列操作,將類(lèi)的定義補(bǔ)充完

整。

⑴完成類(lèi)的構(gòu)造函數(shù)功能,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。

⑵完成構(gòu)造函數(shù)對(duì)姓名的賦值,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。

⑶定義類(lèi)的友元函數(shù)fun,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。

⑷補(bǔ)充函數(shù)fun的年齡比較功能,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。

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

他的程序代碼。

試題程序:

#include<iostream.h>

classPeople

(

public:

//f1I*!**.**.?*.?

inti;

for(i=0;sUserName[il!=O;i++)

{m_UserName[i]=sUserName[i];

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

//木木木木木木小小2小小小小小小小小

m_Old=nOld;

private:

charm_UserName[32];

intm_01d;

!1********3********

};

voidfun(char*s,People&personl,People&person?

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

if

for(inti=0;personl.m_UserName[i]!=0;i+

+)

s[i]=personl.m_UserName[i];

s[i+l]=0;

)

)

else

for(inti=0;pcrson2.m_UscrNamc[i]!=0;i+

+)

{s[i]=person2.m_UserName[i];

s[i+l]=O;

)

)

}

voidmain

(

chars132J;

Peoplepl("abcH,20);

Peoplep2("def,30):

fun(S,pl,p2);

cout?s?endl:

return;

)

47.使用VC++6.0打開(kāi)源程序文件3.cpp。其中類(lèi)TC用于把文件

輸出到屏幕,然后進(jìn)行文件的分割。分割的方法如下:第一個(gè)文件的

大小是文件的前一半,另外一個(gè)文件的大小是剩余部分。此程序?qū)?/p>

in.txt文件中的內(nèi)容輸出到

屏幕,并且將文件按照以上方式分割,存于文件outl.txt和out2.txt

中。

其中定義的類(lèi)并不完整,按要求完成下列操作,將類(lèi)的定義補(bǔ)充完

整。

⑴從輸入文件中獲得一個(gè)字符,并判斷是否到文件結(jié)

尾,如果到文件結(jié)尾,則退出循環(huán)。請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。

⑵把獲得的輸入文件的內(nèi)容存儲(chǔ)到bur中,并且用len

記錄下文件的長(zhǎng)度。請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。

⑶將輸入文件的后一半內(nèi)容存儲(chǔ)在第二個(gè)文件中,請(qǐng)

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

⑷使用文件流對(duì)象打開(kāi)輸入文件in.txt,請(qǐng)?jiān)谧⑨?

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

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

改其他的程序代碼。

試題程序:

#include<iostream.h>

#include<fstream.h>

#include<stdlib.h)

classTC

(

public:

TC(char*fileName)

(

len=O;

fstreaminfile;

infile.open(fileName,ios::in);

charch;

!!********?********

while

cout?ch;

/^1**1**1**1*^1*?1**1**1**1*

/f〃??[??[??[??[?f?I,?[??[?q,?[?

)

infile,close;

}

voidsplit

(

fstreamoutfilel;

fstreamoutfile2;

outfilel.open("outl.txt”,i:out);

outfilc2.open("out2.txt”,i:out);

inti=0:

for(i=0;i<len/2;i++)

outfilel?buf[i];

)

do

/*1**1**1**1*al**1**1*

//*7*rj*?卜rj?

while(i!=len);

outfilel.close;

outfile2.close;

prwate:

intlen;

charbuff1024];

);

voidmain

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

TCobj;

obj.split;

return;

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

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

testl_3.cpp,其中定義了類(lèi)circle和column,其中column類(lèi)由circle類(lèi)

protected派生,但兩個(gè)類(lèi)的定義并不完整。請(qǐng)按要求完成下列操作,將

程序補(bǔ)充完整。

⑴定義類(lèi)circle的保護(hù)數(shù)據(jù)成員r和area,它們都是double型的數(shù)據(jù)。

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

⑵添加類(lèi)circle的無(wú)參數(shù)的構(gòu)造函數(shù),使circle對(duì)象的「默認(rèn)值為0,請(qǐng)

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

(3)添加派生類(lèi)column構(gòu)造函數(shù)的定義,傳入的參數(shù)為double型的height

和radius,并將具分別賦值給數(shù)僻成員h和基類(lèi)的r,請(qǐng)?jiān)谧⑨尅啊?*3**”

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

(4)完成派生類(lèi)column的成員函數(shù)print的定義使其以格式"r__area-_”

先輸出半徑r和底面積area,再以格式“h=_vol=_?輸出高h(yuǎn)和體積vol

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

輸山結(jié)果如下:

r=larea=3.1416

h=2vo1=6.2832

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

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

#include<iostream.h>

constdoublepi=3.1416;

classcircle

(

protected:

〃**?**

public:

circle(doubleradius){r=radius;}

voidprint()

(

area=r*r*pi;

cout<<,,r=n<<r<<"M<<',area=n<<ared<<endl;

classcolumn:protectedcircle

(

protected:

doubleh;

public:

〃**3**

voidprint()

(

〃**4**

)

};

voidmain()

(

columncol(1.0,2.0);

Col.print();

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

序文件MyMainlO.cpp。程序中定義了兩個(gè)類(lèi)Base和Derived,但類(lèi)的

定義并不完整。

請(qǐng)按要求完成下列操作,將類(lèi)的定義補(bǔ)充完成:

①類(lèi)Derived是基類(lèi)Base公有派生來(lái)的。請(qǐng)?jiān)谧⑨尅啊?*1*”之后添加

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

②完成構(gòu)造函數(shù)Derived(inti)定義,采用初始化列表的方式使基類(lèi)Base

私有成員a初始化為i+1,類(lèi)Derived的私有成員b初始化為io請(qǐng)?jiān)谧?/p>

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

③完成類(lèi)Derived的成員函數(shù)show。的類(lèi)體外的定義。函數(shù)show。中要

顯式調(diào)用基類(lèi)的show。函數(shù),然后要輸出私有成員b的值。請(qǐng)?jiān)谧⑨尅啊?

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

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

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

//MyMainlO.cpp

#include<iostream>

usingnamespacestd:

classBase

(

public:

Base(intx)

a=x

voidshow()

(

cout<<a;

)

private:

inta;

);

〃***]***

(

public:

〃***2***

voidshow();

private:

intb;

);

voidDerived::show()

(

〃***3***

)

intmain()

(

Derivedd(l),*pb;

pb=&d;

pb->show();

return0;

參考答案

1.A解析:本題考核運(yùn)算符的重載。C++中重載輸入流運(yùn)算符>〉和輸

出流運(yùn)算符<<只能作為非類(lèi)成員函數(shù)重載,且必須使用如下原形:

istream&operator>>(istream&,<類(lèi)名>&);

ostream&operator<<(ostream&,〈類(lèi)名>);

2.C解析:在關(guān)系模型中,不需要事先構(gòu)造數(shù)據(jù)的邏輯關(guān)系,只要將數(shù)

據(jù)按照一定的關(guān)系存入計(jì)算機(jī),也就是建立關(guān)系,選項(xiàng)A錯(cuò)誤。對(duì)于表

示關(guān)系的二維表,其最基本的要求是,表中元組的每一個(gè)分量必須是不

可分的數(shù)據(jù)項(xiàng),即不允許表中再有表,選項(xiàng)B和D錯(cuò)誤。本題的正確

答案是C。

3.C解析:使用虛基類(lèi)的目的就是為了解決多繼承路徑下對(duì)基類(lèi)成員的

訪問(wèn)的二義性問(wèn)題。一旦繼承虛基類(lèi),那么在構(gòu)造派生類(lèi)對(duì)象時(shí),虛基

類(lèi)構(gòu)造函數(shù)就只調(diào)用一次。派生類(lèi)對(duì)象調(diào)用構(gòu)造函數(shù)和普通類(lèi)對(duì)象一樣.

都是先調(diào)用基類(lèi)構(gòu)造函數(shù),然后調(diào)用派生類(lèi)構(gòu)造函數(shù)。

4.B解析:使用const關(guān)鍵字修飾的對(duì)象成為常對(duì)象,題中對(duì)象b被聲

明為類(lèi)R的常對(duì)象。使用const關(guān)鍵字說(shuō)明的成員函數(shù)稱(chēng)為常成員函數(shù),

類(lèi)R中用const重載了函數(shù)print。。在使用常對(duì)象和常成員函數(shù)時(shí)應(yīng)注

意的是:const是函數(shù)類(lèi)型的一個(gè)組成部分,因此在部分也要帶const關(guān)

鍵字:常成員函數(shù)不能更新對(duì)象的數(shù)據(jù)成員,也不能調(diào)用該類(lèi)中沒(méi)有用

const修飾的成員函數(shù);如果將一個(gè)對(duì)象說(shuō)明為常對(duì)象,則通過(guò)該常對(duì)象

只能調(diào)用它的常成員函數(shù),不能調(diào)用其他的成員函數(shù);const關(guān)鍵字可以

參與區(qū)分重載函數(shù)。本題中,b為類(lèi)R的常對(duì)象,通過(guò)b只能調(diào)用類(lèi)R

的常成員函數(shù)print。輸出20,52。

5.B解析:"二'運(yùn)算符不能用于常量。

6.D解析:在C語(yǔ)言中,所有的函數(shù)都是平行的,即在定義函數(shù)時(shí)是互

相獨(dú)立的,一個(gè)函數(shù)并不從屬于另一個(gè)函數(shù),即函數(shù)不能嵌套定義,但

可以互相調(diào)用,但不能調(diào)用main函數(shù)。注意:函數(shù)不能嵌套定義,但

可以嵌套調(diào)用,故選項(xiàng)A)、B)和C)中的描述都錯(cuò)誤。

7.A解析:黑箱測(cè)試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只

是根據(jù)程序功能導(dǎo)出測(cè)試用例,選項(xiàng)A是正確的,選項(xiàng)B錯(cuò)誤。白箱

測(cè)試是根據(jù)對(duì)程序內(nèi)部邏輯結(jié)構(gòu)的分析來(lái)選取測(cè)試用例,選項(xiàng)C錯(cuò)誤。

正確答案為A。

8.C解析:面向?qū)ο蠓椒ň哂蟹庋b性、繼承性、多態(tài)性幾大特點(diǎn)。就是

這幾大特點(diǎn),為軟件開(kāi)發(fā)提供了一種新的方法學(xué)。封裝性:所謂封裝就

是將相關(guān)的信息、操作與處理融合在一個(gè)內(nèi)含的部件中(對(duì)象中)。它是

面向?qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ)。繼承性:子類(lèi)具有派生它的類(lèi)的全部屬性(數(shù)

據(jù))和方法,而根據(jù)某一類(lèi)建立的對(duì)象也具有該類(lèi)的全部屬性(數(shù)據(jù))和方

法,這就是繼承性。繼承有利于提高軟件開(kāi)發(fā)效率,容易達(dá)到一致性。

多態(tài)性:多態(tài)性就是多種形式。不同的對(duì)象在接收到相同的消息時(shí),采

用不同的動(dòng)作。

9.A

10.A解析:C++的I/O系統(tǒng)是通過(guò)一種稱(chēng)為流的機(jī)制來(lái)實(shí)現(xiàn)文件和控

制臺(tái)的I/O操作的。簡(jiǎn)單地說(shuō),在C++中,輸入/輸出操作是通過(guò)流來(lái)

完成的O而文件流以磁盤(pán)文件及其他可按文件方式進(jìn)行管理的外部設(shè)備

為輸入/輸出對(duì)象。每個(gè)文件流都應(yīng)當(dāng)與一人打開(kāi)的文件相聯(lián)系;關(guān)閉一

個(gè)文件就是取消這種聯(lián)系。

11.CC?!窘馕觥垦h(huán)3次,分別每次計(jì)算出fl,已和f的值,該題比較

簡(jiǎn)單,只需要細(xì)心即可。

12.C

解析:本題考查的知識(shí)點(diǎn)是類(lèi)的構(gòu)造函數(shù)。構(gòu)造函數(shù)在對(duì)象被創(chuàng)建的

時(shí)候由系統(tǒng)自動(dòng)調(diào)用。在Point\u3000a(2),b[3],*c[4];語(yǔ)句中:a(2)

是定義一個(gè)對(duì)象并傳入構(gòu)造參數(shù)2,所以此時(shí)會(huì)調(diào)用1次構(gòu)造函數(shù):

b[3]是定義一個(gè)包含3個(gè)對(duì)象的數(shù)組,所以構(gòu)造函數(shù)會(huì)被調(diào)用3次;而

*c[4]定義的是一個(gè)包含4個(gè)Point類(lèi)對(duì)象指針的數(shù)組,它并沒(méi)有創(chuàng)建任

何Point對(duì)象,故構(gòu)造函數(shù)一次也不會(huì)被調(diào)用。故應(yīng)該選擇C。

13.C從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體與聯(lián)系都可以表

示成關(guān)系,E-\nR圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性。本題選擇C選

項(xiàng)。

14.A

Ao【解析】本題考查混合運(yùn)算表達(dá)式類(lèi)型,由表達(dá)式中具有最高優(yōu)先

級(jí)的類(lèi)型所確定,所以答案為A。

15.D

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

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

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

16.B

Bo【解析】本題考查的是對(duì)構(gòu)造函數(shù)的掌握,另外++運(yùn)算符是右結(jié)

合的,所以在進(jìn)行輸出的時(shí)候都是先把原來(lái)的輸出后再自加lo

17.A棧支持子程序調(diào)用。棧是-種只能在-端進(jìn)行插入或刪除的線性表,

在主程序調(diào)用子函數(shù)時(shí)要首先保存主程序當(dāng)前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子

程序,最終把子程序的執(zhí)行結(jié)果返回到主程序中調(diào)用子程序的位置,繼

續(xù)向下執(zhí)行,這種調(diào)用符合棧的特點(diǎn),因此本題的答案為A。

18.A

Ao【解析】從程序的輸入格式控制方法判斷,輸入時(shí)各變量之間沒(méi)有

分隔符,當(dāng)輸入相應(yīng)的變量對(duì)應(yīng)的值時(shí),相應(yīng)的變量能夠得到對(duì)應(yīng)的

值,可以輸出要求的結(jié)果。

19.B

20.A

21.A

22.D解析:在C語(yǔ)言中,所有的函數(shù)都是平行的,即在定義函數(shù)時(shí)是

互相獨(dú)立的,一個(gè)函數(shù)并不從屬于另一個(gè)函數(shù),即函數(shù)不能嵌套定義,

但可以互相調(diào)用,但不能調(diào)用main函數(shù)。注意:函數(shù)不能嵌套定義,

但可以嵌套調(diào)用,故選項(xiàng)A)、B)和C)中的描述都錯(cuò)誤。

23.A解析在C++中,成員函數(shù)可以是內(nèi)聯(lián)函數(shù),也可以是非內(nèi)聯(lián)函數(shù)。

在類(lèi)定義體內(nèi)定義和實(shí)現(xiàn)的函數(shù)都是內(nèi)聯(lián)函數(shù)。在類(lèi)定義體外實(shí)現(xiàn)的函

數(shù)可以通過(guò)在函數(shù)說(shuō)明和定義上分別加上inline來(lái)表示該函數(shù)是內(nèi)聯(lián)函

數(shù),否則就不是內(nèi)聯(lián)函數(shù)0

24.operator+(operator*(yz))operator+(operator*(y,z))解析:C++中用成員

函數(shù)重載x*y為:x.operator*(y),用友元函數(shù)重載x*y為:operator*(x,

y),用成員函數(shù)重載x+y為:x.operator+(y),用友元函數(shù)重載x+y為:

operator+(x,y)o

25.voidvoid解析:void表明該函數(shù)不帶返回值,如果沒(méi)有void,則系統(tǒng)

會(huì)返回一個(gè)默認(rèn)類(lèi)型的隨機(jī)值,這對(duì)程序可能造成不必要的問(wèn)題。

26.ios類(lèi)ios類(lèi)

27.程序調(diào)試程序調(diào)試

28.邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型解析:數(shù)據(jù)模型按不同的應(yīng)用層次分成

三種類(lèi)型,它們是概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型、物理數(shù)據(jù)模型。

29.繼承繼承解析:類(lèi)是面向?qū)ο笳Z(yǔ)言中必備的程序語(yǔ)言結(jié)構(gòu),用來(lái)實(shí)

現(xiàn)抽象數(shù)據(jù)類(lèi)型。類(lèi)與類(lèi)之間的繼承關(guān)系實(shí)現(xiàn)了類(lèi)之間的共享屬性和操

作,一個(gè)類(lèi)可以在另一個(gè)已定義的類(lèi)的基礎(chǔ)上定義,這樣使該類(lèi)型繼承

了其超類(lèi)的屬性和方法,當(dāng)然,也可以定義自己的屬性和方法。

30.20

31.ABBBBA

32.私有或private私有或private

33.fstream.h

34.經(jīng)濟(jì)經(jīng)濟(jì)

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

結(jié)構(gòu)化分析方法(SA—Stucturedanalysis),面向數(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)o

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

\n⑵應(yīng)改為"voidTC::display”。

\n(3)應(yīng)改為“TC::~TC"°

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

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

用格式為“(類(lèi)名)::〈成員函數(shù)〉((參數(shù)函數(shù))),因此第1處應(yīng)改為“TC::

TC;默認(rèn)構(gòu)造函數(shù)沒(méi)有參數(shù)。由第2處“TCrdisplay”后的語(yǔ)句看,這

是在類(lèi)外實(shí)現(xiàn)TC函數(shù),因此也有作用域運(yùn)算符使用錯(cuò)誤問(wèn)題,display

函數(shù)返回值為void,因此第2處的語(yǔ)句應(yīng)改為“voidTC=display"。由第

3處的語(yǔ)句"(:::11:”可知,顯然這里是在類(lèi)外實(shí)現(xiàn)析構(gòu)函數(shù),析構(gòu)函

數(shù)是一個(gè)特殊的函數(shù),它的名稱(chēng)和類(lèi)名相同,并在前面加“;’字符,用

采與構(gòu)造函數(shù)加以區(qū)別,因此第3處的語(yǔ)句應(yīng)改為“TC::~TC”。

37.(1)應(yīng)添加“public:

\n(2)“int『應(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)為10o若循環(huán)中i每次增1,則

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

38.(l)“voidmain”。

(2)4tintm=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;

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

(2)應(yīng)改為"ObjLSetNumber(lO):

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

【解析】本題第1處的叮Cobjl;”語(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處處

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

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

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

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

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

“obj2.SetNumber(lOO);

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

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

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

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

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

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

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

叩p);“語(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]);”。

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

⑵應(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)型的異常信息,即修

改為“catchQ..)”。

42.(l)“staticintn=O”應(yīng)改為“staticintn;

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

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

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

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

象,應(yīng)改為"coutv〈c->n<<endl;"。

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

⑵應(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ǔ)句為

€4throw((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(…)”。

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

⑵應(yīng)改為“voidTC::display”。

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

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

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

類(lèi),使用格式為“(類(lèi)名)::〈成員函數(shù)〉((參數(shù)函數(shù))),因此第1處應(yīng)改

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

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

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

uvoidTC::display”。由第3處的語(yǔ)句“TC:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論