版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)電子熱管理產(chǎn)品行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)產(chǎn)業(yè)園區(qū)物業(yè)管理行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)金融押運(yùn)行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)掃地機(jī)器人行業(yè)全國(guó)市場(chǎng)開(kāi)拓戰(zhàn)略制定與實(shí)施研究報(bào)告
- 銷(xiāo)售人員心態(tài)培訓(xùn)課件
- 四川省眉山市2024屆高三下學(xué)期第三次診斷考試英語(yǔ)試題
- 家用壁式電風(fēng)扇行業(yè)行業(yè)發(fā)展趨勢(shì)及投資戰(zhàn)略研究分析報(bào)告
- 中藥提取物項(xiàng)目可行性研究報(bào)告
- 推廣服務(wù)行業(yè)深度研究報(bào)告
- 廣西桂林市灌陽(yáng)縣2021-2022學(xué)年五年級(jí)上學(xué)期英語(yǔ)期末試卷
- AQ 1097-2014 井工煤礦安全設(shè)施設(shè)計(jì)編制導(dǎo)則(正式版)
- (高清版)JTGT D31-06-2017 季節(jié)性凍土地區(qū)公路設(shè)計(jì)與施工技術(shù)規(guī)范
- 六年級(jí)數(shù)學(xué)質(zhì)量分析及改進(jìn)措施
- 二年級(jí)乘除法口算題計(jì)算練習(xí)大全2000題(可直接打印)
- 2024陜西省渭南市鎮(zhèn)事業(yè)單位招聘175人公開(kāi)引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(kù)(共500題)答案詳解版
- DB29-238-2024 城市綜合管廊工程設(shè)計(jì)規(guī)范
- 宋代茶文化課件
- GB/T 43836-2024企業(yè)科技創(chuàng)新系統(tǒng)能力水平評(píng)價(jià)規(guī)范
- 高考英語(yǔ)必背688個(gè)高頻詞匯
- 《隱私計(jì)算金融應(yīng)用白皮書(shū)(2022)》
- 建筑工程招標(biāo)方案
評(píng)論
0/150
提交評(píng)論