![2023年江西省上饒市全國(guó)計(jì)算機(jī)等級(jí)考試C++語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第1頁(yè)](http://file4.renrendoc.com/view/a90ba6980bd4f9ad2db0a39a98c6621a/a90ba6980bd4f9ad2db0a39a98c6621a1.gif)
![2023年江西省上饒市全國(guó)計(jì)算機(jī)等級(jí)考試C++語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第2頁(yè)](http://file4.renrendoc.com/view/a90ba6980bd4f9ad2db0a39a98c6621a/a90ba6980bd4f9ad2db0a39a98c6621a2.gif)
![2023年江西省上饒市全國(guó)計(jì)算機(jī)等級(jí)考試C++語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第3頁(yè)](http://file4.renrendoc.com/view/a90ba6980bd4f9ad2db0a39a98c6621a/a90ba6980bd4f9ad2db0a39a98c6621a3.gif)
![2023年江西省上饒市全國(guó)計(jì)算機(jī)等級(jí)考試C++語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第4頁(yè)](http://file4.renrendoc.com/view/a90ba6980bd4f9ad2db0a39a98c6621a/a90ba6980bd4f9ad2db0a39a98c6621a4.gif)
![2023年江西省上饒市全國(guó)計(jì)算機(jī)等級(jí)考試C++語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第5頁(yè)](http://file4.renrendoc.com/view/a90ba6980bd4f9ad2db0a39a98c6621a/a90ba6980bd4f9ad2db0a39a98c6621a5.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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ì)測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、1.選擇題(10題)1.下列運(yùn)算符中,在C++語(yǔ)言中不能重載的是
A.*B.>=C.::D./
2.數(shù)據(jù)庫(kù)DB、數(shù)據(jù)庫(kù)系統(tǒng)DBS、數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS之間的關(guān)系是()。
A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒(méi)有任何關(guān)系
3.private訪(fǎng)問(wèn)屬性限制對(duì)象的成員,可以在()中訪(fǎng)問(wèn)。
A.本類(lèi)的成員函數(shù)B.main函數(shù)C.父類(lèi)的成員函數(shù)D.子類(lèi)的成員函數(shù)
4.下列哪個(gè)是C++語(yǔ)言的有效標(biāo)識(shí)符?
A._No1B.No.1C.12345D.int
5.在C++中用來(lái)實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性的是______。
A.重載函數(shù)B.析構(gòu)函數(shù)C.構(gòu)造函數(shù)D.虛函數(shù)
6.下列關(guān)于模板的敘述中,錯(cuò)誤的是
A.模板聲明中的第一個(gè)符號(hào)總是關(guān)鍵字template
B.在模板聲明中用“<”和“>”括起來(lái)的部分是模板的形參表
C.類(lèi)模板不能有數(shù)據(jù)成員
D.在一定條件下函數(shù)模板的實(shí)參可以省略
7.在下列數(shù)據(jù)管理的各階段中,數(shù)據(jù)獨(dú)立性最高的階段是
A.手工管理B.文件系統(tǒng)C.數(shù)據(jù)項(xiàng)管理D.數(shù)據(jù)庫(kù)系統(tǒng)
8.設(shè)inta=1,b=2;,則(a++)+b和a+++b這兩個(gè)表達(dá)式的值分別為()。
A.3,3B.3,4C.4,3D.4,4
9.數(shù)據(jù)字典(DD)是定義以下哪種系統(tǒng)描述工具中的數(shù)據(jù)的工具()。
A.數(shù)據(jù)流程圖B.系統(tǒng)流程圖C.程序流程圖D.軟件結(jié)構(gòu)圖
10.有以下程序intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main(){inta=4,b=3,c=5,d,e,f;d=f1(a,B);d=f1(d,C);e=f2(a,B);e=f2(e,C);f=a+b+c-d-e;cout<<d<<","<<f<<","<<e<<end1;}執(zhí)行后輸出結(jié)果是
A.3,4,5B.5,3,4C.5,4,3D.3,5,4
二、單選題(13題)11.有如下函數(shù)模板定義:template
T1FUN(T2n){returnn*5,0;}若要求以int型數(shù)據(jù)9作為函數(shù)實(shí)參調(diào)用該模板,并返回一個(gè)double型數(shù)據(jù),則該調(diào)用應(yīng)表示為()。
A.FUN(9)B.FUN<9>C.FUN(9)D.FUN<9>(double)
12.在深度為5的滿(mǎn)二叉樹(shù)中,葉子節(jié)點(diǎn)的個(gè)數(shù)為A.A.32B.31C.16D.15
13.數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中的核心問(wèn)題是_________。
A.數(shù)據(jù)庫(kù)設(shè)計(jì)B.數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)C.數(shù)據(jù)庫(kù)維護(hù)D.數(shù)據(jù)庫(kù)管理員培訓(xùn)
14.一個(gè)棧的初始狀態(tài)為空。現(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棧的順序是()。
A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.5432lEDCBA
15.下列關(guān)于虛函數(shù)的描述中,正確的是()。
A.虛函數(shù)是一個(gè)static類(lèi)型的成員函數(shù)
B.虛函數(shù)是一個(gè)非成員函數(shù)
C.基類(lèi)中采用virtual說(shuō)明一個(gè)虛函數(shù)后,派生類(lèi)中定義相同原型的函數(shù)時(shí)可不必加virtual說(shuō)明
D.派生類(lèi)中的虛函數(shù)與基類(lèi)中相同原型的虛函數(shù)具有不同的參數(shù)個(gè)數(shù)或類(lèi)型
16.有以下程序:#include<iostream>usingnamespacestd;#definePl3.14ClassPoint{private:intx,y;public:Point(inta,intB){X=a;y:b;}intgetx()<returnx;}intgety(){returny;}};classCircle:publicPoint{pri
A.314B.157C.78.5D.153.86
17.假定MyClass為一個(gè)類(lèi),則執(zhí)行MyClassa,b(2),*p;語(yǔ)句時(shí),自動(dòng)調(diào)用該類(lèi)構(gòu)造函數(shù)()次。
A.2B.3C.4D.5
18.以下類(lèi)定義中可能會(huì)引起錯(cuò)誤的語(yǔ)句是()。classA{public:~A(){}//1inti;//2private:intj;//3A(inti){i++;}//4};A.1B.2C.3D.4
19.以下不能作為輸出流對(duì)象的是()。A.文件B.內(nèi)存C.鍵盤(pán)D.顯示器
20.在類(lèi)的定義中,用于為對(duì)象分配內(nèi)存空間,對(duì)類(lèi)的數(shù)據(jù)成員進(jìn)行初始化并執(zhí)行其他內(nèi)部管理操作的函數(shù)是()。
A.友元函數(shù)B.虛函數(shù)C.構(gòu)造函數(shù)D.析構(gòu)函數(shù)
21.有如下程序:#include<iostream>usingnamespacestd;intmain(){intf,f1=0,f2=1for(inti=3;i<=6;i++){f=f1+f2:f1=f2:f2=f}cout<<f<<endl;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A.2B.3C.5D.8
22.在深度為5的滿(mǎn)二叉樹(shù)中,葉子結(jié)點(diǎn)的個(gè)數(shù)為
A.31B.32C.16D.15
23.為了使類(lèi)中的成員不能被類(lèi)的對(duì)象通過(guò)成員操作符訪(fǎng)問(wèn),則不能把該成員的訪(fǎng)問(wèn)權(quán)限定義為()。
A.publicB.protectedC.staticD.private
三、2.填空題(12題)24.數(shù)據(jù)的邏輯結(jié)構(gòu)有線(xiàn)性結(jié)構(gòu)和【】?jī)纱箢?lèi)。
25.算法的時(shí)間復(fù)雜度是指【】。
26.以下程序輸出的結(jié)果是【】。
#include<iostream.h>
voidmain()
{
inta=5,b=4,c=3,d;
d=(a>b>C);
cout<<d;
}
27.下面程序的功能是輸出數(shù)組s中最小元素,請(qǐng)?zhí)羁铡?/p>
#include<iostream.h>
voidmain(){
intk,p,s[]={1,-9,7,2,-10,3};
k=s[0];
for(p=0;p<6;p++)
if(s[p]<k)【】;
cout<<k;
}
28.在C++中,包含了處理用戶(hù)控制的文件操作所需的信息是指頭文件中的【】。
29.有下列程序:
#include<iostream>
usingnamespacestd;
classCon
{
charID;
public:
Con():ID('A'){cout<<1;}
Con(charI@D)@:D(I@D)@{cout<<2;}
Con(Con&c):ID(c.getID()){cout<<3;}
chargetID()const{r
30.對(duì)于派生類(lèi)的構(gòu)造函數(shù),在定義對(duì)象時(shí)構(gòu)造函數(shù)的執(zhí)行順序:先執(zhí)行調(diào)用______的構(gòu)造函數(shù),再執(zhí)行調(diào)用子對(duì)象類(lèi)的構(gòu)造函數(shù),最后執(zhí)行派生類(lèi)的構(gòu)造函數(shù)體中的內(nèi)容。
31.對(duì)長(zhǎng)度為n的線(xiàn)性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為【】。
32.若要想進(jìn)行標(biāo)準(zhǔn)輸入輸出則頭文件必須包含______件。
33.假設(shè)a、b均是整型變量,則表達(dá)式a=2,b=5,a++,b++,a+b值為【】。
34.在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱(chēng)為一個(gè)【】。
35.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線(xiàn)性鏈表屬于【】。
四、程序改錯(cuò)題(10題)36.使用VC++6.0打開(kāi)考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò)。請(qǐng)改正程序中的錯(cuò)誤,使程序輸出的結(jié)果為1003732注意:錯(cuò)誤的語(yǔ)句在//******error******的下面,修改該語(yǔ)句即可。試題程序:#include<iostream.h>//******error******voidmain{//******error******intm=0142://******error******intn=0X27:intq=32;cout<<m<<endl;cout<<n<<endl;cout<<q<<endl;return;}
37.使用VC++6.0打開(kāi)考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò)誤,請(qǐng)改正程序中的錯(cuò)誤,使得程序輸出:
9,8,7,6,5
注意:錯(cuò)誤的語(yǔ)句在/********error********/的下面,修改該語(yǔ)句即可。其他的語(yǔ)句不能修改。
試題程序:
#include(iostream.h>
classTC
{
/********error********/
TC(inti)
{
m_i=i;
}
voidprint
{
cout<<--m_i<<,;
}
public:
intm_i;
};
intmain
{
/********error********/
inti;
TC04(10);
while(i>5)
{
/********errOr********/
i++:
04.print;
}
cout<<endl;
return0;
}
38.使用VC++6.0打開(kāi)考生文件夾下的源程序文件1.cpp。本程序要求輸入一個(gè)字符串,然后將其中的小寫(xiě)字母改成大寫(xiě)字母,字符可能輸入多行,當(dāng)輸入字符“?”時(shí),默認(rèn)字符輸入結(jié)束,最后把結(jié)果輸出到屏幕中。注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在//******error******的下面。試題程序:#include<iostream.h>voidmain{inti=0;charstr[120];cout<<"Enterastringendwith?."<<endl;//********error********cin.getline(str,120);//********error********while(str){//********error********if(str[i])=a)str[i]=str[i]-a+A;i++;}cout<<str<<endl;return;}39.使用VC++6.0打開(kāi)考生文件夾下的源程序文件1.cpp,該程序運(yùn)行有問(wèn)題,請(qǐng)改正main函數(shù)中的錯(cuò)誤,使程序的輸出結(jié)果為:number=1number=10number=100注意:不要改動(dòng)main函數(shù),不能增加或刪除行。也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在//******error******的下面。試題程序:#include<iostream.h>classTC{public:TC(inti){number=i;}voidSetNumber(intm){number=m;}intGetNumberconst{returnnumber;}voidPrintconst{cout<<"number="<<number<<endl;}private:intnumber;};voidmain{//********error********TCobjl;objl.Print;TCobj2(3);//********error********objl.number=10;//********error*‰******TC.SetNumber(100);objl.Print;obj2.Print;}40.使用VC++6.0打開(kāi)考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò)誤,請(qǐng)改正錯(cuò)誤,使程序正常運(yùn)行,并且要求最后一個(gè)catch必須拋出執(zhí)行的任何異常。程序異常,輸出信息為errorOERROR注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在//******error******的下面。試題程序:#include<iostream.h)intmain{try{throw("error");}//********error********catch(chars){cout<<s<<endl;}try{throw((int)0);}//********error********catch{cout<<i<<endl;}try{throw(O);throw("error");}//********error********catch{cout<<"ERROR"<<endl;}return0;}
41.使用VC++6.0打開(kāi)考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò),請(qǐng)改正其中的錯(cuò)誤,使程序正常運(yùn)行,并使程序輸出的結(jié)果為:
sizeof(S1)=5
sizeof(s2)=10
sizeof(s3)=1
注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在//******error******的下面。
(1)不能刪除assert()語(yǔ)句。
(2)只能修改后面的數(shù)字。
提示:assert函數(shù)如果為假,則會(huì)產(chǎn)生一個(gè)中斷異常。
試題程序:
#include<iostream.h>
#include<assert.h>
voidmain()
{
char*s1="abc":
//********error********
assert(sizeof(s1)==3):
cout<<"sizeof(s1)=5"<<endl;
chars2[10]="ab":
//********error********
assert(sizeof(s2)==2);
cout<<"sizeof(s2)=10"<<endl;
chars3=23:
//********error********
assert(sizeof(s3)==4);
cout<<"sizeof(s3)=1"<<endl;
return;
}
42.使用VC++6.0打開(kāi)考生文件夾下的源程序文件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ǔ)句在//******error******的下面。
試題程序:
#include<iostream.h>
classTC
{
public:
TC(inti)
{
number=i;
}
voidSetNumber(intm)
{
number=m;
}
intGetNumberconst
{
returnnumber;
}
voidPrintconst
{
cout<<"number="<<number<<endl;
}
private:
intnumber;
};
voidmain
{
//********error********
TCobjl;
objl.Print;
TCobj2(3);
//********error********
objl.number=10;
//********error*‰******
TC.SetNumber(100);
objl.Print;
obj2.Print;
}
43.使用VC++6.0打開(kāi)考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò),請(qǐng)改正其中的錯(cuò)誤,使程序正常運(yùn)行,輸出的結(jié)果為
Constructor,i=0,
Destructor
注意:錯(cuò)誤的語(yǔ)句在//******error******的下面,修改該語(yǔ)句即可。
試題程序:
#include(iostream.h)
classTC
{
inti;
public:
TC;
voiddisplay;
~TC;
};
//******error******
TC:TC
{
cout<<"Constructor"<<",";
i=0;
)
//******error******
TC:display
{
tout<<"i="<<i<<","<<endl;
}
//******error******
TC:TC
{
COUI<<"Destructor"<<endl:
}
voidmain
{
TCa;
a.display;
}
44.使用VC++6.0打開(kāi)考生文件夾下的源程序文件1.cpp,但該程序運(yùn)行有問(wèn)題,請(qǐng)改正main函數(shù)中的錯(cuò)誤,使該程序的輸出結(jié)果正確。程序輸出:88注意:錯(cuò)誤的語(yǔ)句在/********error********/的下面。修改該語(yǔ)句即可,其他的語(yǔ)句不能修改。試題程序:#include(iostream.h>classCO{public:/********error********/staticintn=0:CO{n++:}~CO{n--:}}:/********error********/intCO::n;voidmain{COobj;COobj2[7];CO*C=NULL:c=&obj:/********error********/eout<<C.n<<endl;cout<<C0::n<<endl;}45.使用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;};//******error******TC:TC{cout<<"Constructor"<<",";i=0;)//******error******TC:display{tout<<"i="<<i<<","<<endl;}//******error******TC:TC{COUI<<"Destructor"<<endl:}voidmain{TCa;a.display;}五、綜合應(yīng)用題(2題)46.請(qǐng)使用VC6或使用【答題】菜單打開(kāi)考生文件夾proj3下的工程proj3,其中包含了類(lèi)IntegerSet和主函數(shù)main的定義。一個(gè)IntegerSet對(duì)象就是一個(gè)整數(shù)的集合,其中包含0個(gè)或多個(gè)無(wú)重復(fù)的整數(shù);為了便于進(jìn)行集合操作,這些整數(shù)按升序存放在成員數(shù)組elem的前若干單元中。成員函數(shù)add的作用是將一個(gè)元素添加到集合中(如果集合中不存在該元素),成員函數(shù)remove從集合中刪除指定的元素(如果集合中存在該元素)。請(qǐng)編寫(xiě)成員函數(shù)remove。在main函數(shù)中給出了一組測(cè)試數(shù)據(jù),此時(shí)程序的正確輸出結(jié)果應(yīng)為:234527283166752345627283156752345619272831667534561927283166753456192728316675要求:補(bǔ)充編制的內(nèi)容寫(xiě)在“//***********333***********”與“//***********666***********”之間,不得修改程序的其他部分。注意:程序最后將結(jié)果輸出到文件out.dat中。輸出函數(shù)writeToFile已經(jīng)編譯為obj文件,并且在本程序中調(diào)用。//IntegorSet.h#ifndefINTEGERSET#defineINTEGERSET#include<iostream>usingnamespacestd;constintMAXELEMENTS=100;//集合最多可擁有的元素個(gè)數(shù)classIntegerSet{intelem[MAXELEMENTS];//用于存放集合元素的數(shù)組intcounter;//用于記錄集合中元素個(gè)數(shù)的計(jì)數(shù)器puhlic:IntegerSet:counter(0){}//創(chuàng)建一個(gè)空集合IntegerSet(intdata[],intsize);//利用數(shù)組提供的數(shù)據(jù)創(chuàng)建一個(gè)整數(shù)集合voidadd(intelement);//添加一個(gè)元素到集合中voidremeve(intelement);//刪除集合中指定的元素intgetCountconst{returncounter;}//返回集合中元素的個(gè)數(shù)intgetElement(inti)const{retumelem[i];}//返回集合中指定的元素voidshowconst;};voidWriteToFile(char*);#endif//main.cpp#include”IntegerSet.h”#include<inmanip>IntegerSet::IntegerSet(intdata[],intsize):counter(0){for(inti=0;i<size;i++)add(data[i]);}}voidIntegerSet::add(intelement){intj;//從后往前尋找第一個(gè)小于等于element的元素for(j=counter;j>0;j-)if(element>=elem[j一1])break;//如果找到的是等于element的元素,說(shuō)明要添加的元素已經(jīng)存在,直接返回if(j>0)if(element==elem[j-1])return;//如果找到的是小于element的元素,j就是要添加的位置//該元素及其后面的元素依次后移,騰出插入位置for(intk=counter;k>j;k一)elem[k]=elem[k一1];elem[j]=element;//將element插入到該位置counter++;//計(jì)數(shù)器加l}voidIntegerSet::remove(intelement){//***************333***************//***************666***************voidIntegerSet::showconst{for(inti=0;i<getCount;i++)cout<<setw(4)<<getElement(i);cout<<endl:}intmain{intd[]={5,28,2,4,5,3,2,75,27,66,31};IntegerSetS(d,11);S.show;S.a(chǎn)dd(6);s.show;S.a(chǎn)dd(19);S.show;S.remove(2);s.show;S.a(chǎn)dd(4);S.show;writeToFile(””);return0;}47.使用VC++6.0打開(kāi)考生文件夾下的源程序文件3.cpp。類(lèi)People包括姓名和年齡兩個(gè)字段。函數(shù)fun獲得年齡比較大的人的姓名,然后輸出這個(gè)姓名到屏幕。其中定義的類(lèi)并不完整,按要求完成下列操作,將類(lèi)的定義補(bǔ)充完整。(1)完成類(lèi)的構(gòu)造函數(shù)功能,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。(2)完成構(gòu)造函數(shù)對(duì)姓名的賦值,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。(3)定義類(lèi)的友元函數(shù)fun,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。(4)補(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://********1********{inti;for(i=0;sUserName[i]!=0;i++){m_UserName[i]=sUserName[i];}//********2********m_Old=nOld;}private:charm_UserName[32];intm_Old;//********3********};voidfun(char*s,People&personl,People&person2{//********4********if{for(inti=0;personl.m_UserName[i]!=0;i++){s[i]=personl.m_UserName[i];s[i+1]=0;}}else{for(inti=0;person2.m_UserName[i]!=0;i++){s[i]=person2.m_UserName[i];s[i+1]=0;}}}voidmain{chars[32];Peoplepl("abc",20);Peoplep2("def",30):fun(S,p1,p2);cout<<s<<endl:return;}六、3.綜合應(yīng)用題(2題)48.使用VC6打開(kāi)考生文件夾下的工程test42_3。此工程包含—個(gè)test42_3.cpp,其中定義了類(lèi)Cpolygon、COutput和CTriangle,其中CTriangle類(lèi)由Cpolygon和COutput類(lèi)public派生,但三個(gè)類(lèi)的定義并不完整。請(qǐng)按要求完成下列操作,將程序補(bǔ)充完整。
(1)定義類(lèi)CPolygon的保護(hù)數(shù)據(jù)成員width和height,它們都是int型的數(shù)據(jù)。請(qǐng)?jiān)谧⑨尅?/**1**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
(2)完成類(lèi)CPolygon的成員函數(shù)set_values(inta,intb),使參數(shù)a和b分別賦值給保護(hù)數(shù)據(jù)成員width和height,請(qǐng)?jiān)谧⑨尅?/**2**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
(3)完成類(lèi)Coutput的成員函數(shù)output(int)的定義,將傳入的參數(shù)為血型的i輸出到屏幕并換行,請(qǐng)?jiān)谧⑨尅?/**3**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
(4)完成派生類(lèi)CTriangle的聲明,它由Cpolygon和COutput類(lèi)public派生,請(qǐng)?jiān)谧⑨尅?/**4**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
源程序文件test42_3.cpp清單如下:
#include<iostream.h>
classCPolygon
{
protected:
//**1**
public:
voidset_values(inta,intb)
{
//**2**
}
};
classCOutput
{
public:
voidoutput(inti);
};
voidCOutput::output(inti)
{
//**3**
}
//**4**
{
public:
intarea(void)
{
return(width*height/2);
}
}
intmain()
{
CTriangletrgl;
trgl.set_values(4,5);
trgl.output(trgl.area());
return0;
}
49.使用VC6打開(kāi)考生文件夾下的工程test36_3。此工程包含一個(gè)test36_3.cpp,其中定義了類(lèi)CRectangle,但該類(lèi)的定義并不完整。請(qǐng)按要求完成下列操作,將程序補(bǔ)充完整。
(1)定義類(lèi)CRectangle的數(shù)據(jù)成員width和height,它們都是int型的數(shù)據(jù)。請(qǐng)?jiān)谧⑨尅?/**1**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
(2)添加類(lèi)CRectangle的友元函數(shù)duplicate()的聲明,其返回值類(lèi)型和參數(shù)類(lèi)型均為Crectangle的,請(qǐng)?jiān)谧⑨尅?/**2**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
(3)完成類(lèi)Crectangle的成員函數(shù)set_values的定義,把傳入的參數(shù)a和b分別賦值為數(shù)據(jù)成員width和height,請(qǐng)?jiān)谧⑨尅?/**3**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
(4)完成派生類(lèi)Crectangle的友元函數(shù)duplicate的定義,把函數(shù)中的臨時(shí)對(duì)象rectres的值返回主函數(shù),請(qǐng)?jiān)谧⑨尅?/**4**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
注意:除在指定位置添加語(yǔ)句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。
源程序文件test36_3.cpp清單如下:
#include<iostream.h>
classCRectangle
{
//**1**
public:
voidset_values(int,int);
intarea(void){return(width*height);}
//**2**
};
voidCRectangle::set_values(inta,intb)
{
//**3**
}
CRectangleduplicate(CRectanglerectparam)
{
CRectanglerectres;
rectres.width=rectparam.width*2;
rectres.height=rectparam.height*2;
//**4**
}
voidmain()
{
CRectanglerect,rectb;
rect.set_values(2,3);
rectb-duplicate(rect);
cout<<rectb.area()<<end1;
}
參考答案
1.C解析:不能被重載的運(yùn)算符還包括:“.”、“.*”、“->*”和“?:”。
2.CC?!窘馕觥繑?shù)據(jù)庫(kù)系統(tǒng)(DBS)由數(shù)據(jù)庫(kù)(DBS)、數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)、數(shù)據(jù)庫(kù)管理員、硬件平臺(tái)和軟件平臺(tái)五個(gè)部分組成,可見(jiàn)DB和DBMS都是DBS的組成部分。
3.A解析:私有成員只能被本類(lèi)的成員函數(shù)或者友元函數(shù)訪(fǎng)問(wèn)。
4.A解析:標(biāo)識(shí)符是一個(gè)以字母或下畫(huà)線(xiàn)開(kāi)始的,由字母、下畫(huà)線(xiàn)和數(shù)字組成的字符串,標(biāo)識(shí)符不能與任意關(guān)鍵字同名。
5.D解析:本題考核虛函數(shù)。在C++語(yǔ)言中,多態(tài)性可分為兩類(lèi):編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性。編譯時(shí)的多態(tài)性是通過(guò)函數(shù)重載和模板體現(xiàn)。其實(shí)現(xiàn)機(jī)制稱(chēng)為靜態(tài)聯(lián)編(也譯為靜態(tài)綁定),即在編譯階段決定執(zhí)行哪個(gè)同名的被調(diào)用函數(shù);運(yùn)行時(shí)的多態(tài)性是通過(guò)體現(xiàn)的,其實(shí)現(xiàn)機(jī)制稱(chēng)為動(dòng)態(tài)聯(lián)編(也譯為動(dòng)態(tài)綁定),印在編譯階段不能決定執(zhí)行哪個(gè)同名的被調(diào)用函數(shù),只在執(zhí)行階段才能依據(jù)要處理的對(duì)象類(lèi)型來(lái)決定執(zhí)行哪個(gè)類(lèi)的成員函數(shù)。用來(lái)實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性的是虛函數(shù)。
6.C解析:模板定義
template<模板參數(shù)表>
類(lèi)聲明(函數(shù)定義)
必須以template為開(kāi)頭,<>括起來(lái)部分是模板的類(lèi)型參數(shù),類(lèi)模板有數(shù)據(jù)成員和成員函數(shù)。
7.D解析:顯然,在數(shù)據(jù)庫(kù)系統(tǒng)階段,數(shù)據(jù)獨(dú)立性最高。
8.A解析:?jiǎn)文康亩哆\(yùn)算優(yōu)先級(jí)高于雙目的+運(yùn)算,不過(guò)抖的結(jié)合性是自右向左的,而+是自左至右的,所以上面的兩個(gè)表達(dá)式都是先計(jì)算a+b的值之后,a再自加1。
9.A解析:本題考查數(shù)據(jù)字典的作用。數(shù)據(jù)字典是對(duì)數(shù)據(jù)流程圖中出現(xiàn)的被命名的圖形元素的確切解釋。
10.C解析:本題只需要考生按照?qǐng)?zhí)行順序分析即可得出正確答案為C。
11.CC?!窘馕觥亢瘮?shù)返回類(lèi)型是double型,則T1為double型,T2為int型才符合函數(shù)模板的定義。
12.C解析:滿(mǎn)二叉樹(shù)是指除最后一層外,每一層上的所有節(jié)點(diǎn)都有兩個(gè)葉子節(jié)點(diǎn)。在滿(mǎn)二叉樹(shù)中,層上的節(jié)點(diǎn)數(shù)都達(dá)到最大值,即在滿(mǎn)二叉樹(shù)的第A層上有2k-1個(gè)節(jié)點(diǎn),且深度為m的滿(mǎn)二叉樹(shù)有2m-1個(gè)節(jié)點(diǎn)。
13.A數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中的核心問(wèn)題是數(shù)據(jù)庫(kù)的設(shè)計(jì)。故答案為A選項(xiàng)。
14.B棧是先進(jìn)后出的原則組織數(shù)據(jù),所以入棧最早的最后出棧,所以選擇B。
15.C解析:本題考核對(duì)虛函數(shù)的了解。在成員函數(shù)聲明的前面加上virtual關(guān)鍵字修飾,即把該函數(shù)聲明為虛函數(shù)。虛函數(shù)可以是另一個(gè)類(lèi)的友元函數(shù),但不是靜態(tài)成員函數(shù)。所以A、B選項(xiàng)的描述都是錯(cuò)誤。在派生類(lèi)中可以重新定義從基類(lèi)繼承下來(lái)的虛函數(shù),在派生類(lèi)中重定義虛函數(shù)時(shí),函數(shù)名、形參表和返回值類(lèi)型必須保持不變,所以D選項(xiàng)是錯(cuò)誤的。
16.A解析:本程序設(shè)計(jì)了一個(gè)點(diǎn)類(lèi)Point,包含了橫,縱兩個(gè)坐標(biāo)數(shù)據(jù)x和y,由它派生出了圃類(lèi)Circle,并加入了新的數(shù)據(jù)成員,即一個(gè)半徑r和一個(gè)求圓面積的函數(shù)成員area。在主函數(shù)main中,首先定義了一個(gè)圃Circle類(lèi)的對(duì)象c1,并通過(guò)它的構(gòu)造函數(shù)初始化其數(shù)據(jù)成員。由此可知,其半徑r的值為10,所以其面積為PI*10*10=314,即對(duì)象c1的函數(shù)成員area的返回值為314。
17.A解析:C++在創(chuàng)建一個(gè)對(duì)象時(shí),會(huì)調(diào)用類(lèi)的構(gòu)造函數(shù)。語(yǔ)句MyClassab(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ù)。
18.DD?!窘馕觥勘绢}考查關(guān)于C++語(yǔ)言類(lèi)的定義方法。在C++語(yǔ)言中類(lèi)定義中的構(gòu)造函數(shù)是私有的,但是卻調(diào)用了其中的公有變量,在實(shí)例化時(shí)會(huì)斟現(xiàn)錯(cuò)誤。
19.C輸出流對(duì)象包括基本的輸出設(shè)備,如顯示器,內(nèi)存和文件,而輸入流對(duì)象則包括鍵盤(pán),文件以及其他輸入設(shè)備。
20.C
21.CC?!窘馕觥垦h(huán)3次,分別每次計(jì)算出f1,f2和f的值,該題比較簡(jiǎn)單,只需要細(xì)心即可。
22.C解析:二叉樹(shù)的一個(gè)性質(zhì)是,在二叉樹(shù)的第k層上,最多有2(k-1)(k>=1)個(gè)結(jié)點(diǎn)。對(duì)于滿(mǎn)二叉樹(shù),每一層上的結(jié)點(diǎn)數(shù)都達(dá)到最大值,即在滿(mǎn)二叉樹(shù)的第k層上有2k-1個(gè)結(jié)點(diǎn)。所以,在深度為5的滿(mǎn)二叉樹(shù)中,所有葉子結(jié)點(diǎn)在第5層上,即其結(jié)點(diǎn)數(shù)為2(k-1)=2(5-1)=16。
23.A解析:public允許類(lèi)對(duì)象對(duì)類(lèi)的屬性和方法進(jìn)行訪(fǎng)問(wèn);private不允許類(lèi)對(duì)象訪(fǎng)問(wèn)類(lèi)的屬性和方法;protected不允許類(lèi)及其子類(lèi)的對(duì)象訪(fǎng)問(wèn)父類(lèi)的屬性和方法,但子類(lèi)可以訪(fǎng)問(wèn)父類(lèi)中定義的protected屬性和方法。
24.非線(xiàn)性結(jié)構(gòu)非線(xiàn)性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)有線(xiàn)性結(jié)構(gòu)和非線(xiàn)性結(jié)構(gòu)兩大類(lèi)。
25.算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)解析:本題考查算法的時(shí)間復(fù)雜度,這個(gè)知識(shí)點(diǎn)是重點(diǎn)考點(diǎn)之一,考生應(yīng)該好好理解掌握。算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,也就是算法在執(zhí)行過(guò)程中所執(zhí)行的基本運(yùn)算的次數(shù),而不是指程序運(yùn)行需要的時(shí)間或是程序的長(zhǎng)度。
26.00解析:水題的關(guān)鍵在于對(duì)變量c的賦值運(yùn)算:
d=(a>b>c)
d=(5>4>3)
先算5>4,為真,得1,即:d=(1>3),此時(shí)1>3,為假,得0。
27.k=s[p]
28.fstream.hfstream.h解析:在C++中,頭文件fstream.h中包含了處理用戶(hù)控制的文件操作所需的信息。
29.13A23B13A23B解析:此題考查的是類(lèi)的構(gòu)造函數(shù)。一個(gè)類(lèi)如果有兩個(gè)構(gòu)造函數(shù),一個(gè)是默認(rèn)構(gòu)造函數(shù),它沒(méi)有任何形參;一個(gè)是復(fù)制構(gòu)造函數(shù),它的形參是一個(gè)自身類(lèi)型的引用,這種情況下,當(dāng)建立對(duì)象不傳入任何構(gòu)造參數(shù)時(shí)會(huì)調(diào)用默認(rèn)構(gòu)造函數(shù),而用一個(gè)已創(chuàng)建的對(duì)象作為構(gòu)造參數(shù)來(lái)創(chuàng)建一個(gè)新對(duì)象時(shí)會(huì)調(diào)用復(fù)制構(gòu)造函數(shù)。本題中,構(gòu)造函數(shù)聲明對(duì)象c1,此時(shí)輸出“1”;然后調(diào)用show()函數(shù),會(huì)發(fā)生復(fù)制構(gòu)造,輸出“3”,show()函數(shù)輸出“A”:接著通過(guò)字符′B′構(gòu)造對(duì)象c2,此時(shí)調(diào)用第二個(gè)構(gòu)造函數(shù),輸出“2”;然后又調(diào)用show0函數(shù),輸出“3”,在s
30.基類(lèi)基類(lèi)解析:對(duì)于派生類(lèi)的構(gòu)造函數(shù),在定義對(duì)象時(shí)構(gòu)造函數(shù)的執(zhí)行順序:先執(zhí)行調(diào)用基類(lèi)的構(gòu)造函數(shù),再執(zhí)行調(diào)用子對(duì)象類(lèi)的構(gòu)造函數(shù),最后執(zhí)行派生類(lèi)的構(gòu)造函數(shù)體中的內(nèi)容。所以本題填:基類(lèi)。
31.n(n-1)/2
32.iostream.h
33.99解析:本題考核運(yùn)算符的應(yīng)用,題中的逗號(hào)運(yùn)算符用于將多個(gè)表達(dá)式串在一起,逗號(hào)運(yùn)算符的左邊總是不返回的,這就是說(shuō),最右邊表達(dá)式的值才是整個(gè)表達(dá)式的值。逗號(hào)運(yùn)算符的結(jié)合性為從左到右。所以從左開(kāi)始計(jì)算,a被賦值為2,b被賦值為5,然后a和b分別自增1,最后返回a+b,即9。
34.關(guān)系關(guān)系解析:在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱(chēng)為一個(gè)關(guān)系。表中的每一列稱(chēng)為一個(gè)屬性,相當(dāng)于記錄中的一個(gè)數(shù)據(jù)項(xiàng),對(duì)屬性的命名稱(chēng)為屬性名;表中的一行稱(chēng)為一個(gè)元組,相當(dāng)于記錄值。
35.存儲(chǔ)結(jié)構(gòu)存儲(chǔ)結(jié)構(gòu)解析:數(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ī)存儲(chǔ)空間中的存放形式。在數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)中,不僅要存放各數(shù)據(jù)元素的信息,還需要存放各數(shù)據(jù)元素之間的前后件關(guān)系的信息。36.(1)“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=0×25;”或“intn=0×25;”。
37.(1)應(yīng)添加“public:”。
\n(2)“inti”應(yīng)改為“inti(10);”。
\n(3)“i++;”應(yīng)改為“i--;”。
\n【解析】本題主要考查的是成員的訪(fǎng)問(wèn)屬性。成員的訪(fǎng)問(wèn)屬性有公有、保護(hù)和私有3種,而默認(rèn)的訪(fǎng)問(wèn)屬性為私有,只有公有成員才能通過(guò)類(lèi)的對(duì)象被訪(fǎng)問(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ì)退出。38.(1)應(yīng)改為“ein.getline(str,120,?);”。
(2)應(yīng)改為“while(str[i])”。
(3)應(yīng)改為“if(str[i]>=a&&str[i]<=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è)字符是否為小寫(xiě),若為小寫(xiě),則轉(zhuǎn)換。所以應(yīng)該修改為“while(str[i])”。第3處的“if(str[i]>=a)”語(yǔ)句是判斷字符str[i]是否為小寫(xiě)字符,而現(xiàn)有的語(yǔ)句只是判斷字符是否大于a,但是小寫(xiě)字符應(yīng)該是a到2,所以修改為“if(str[i]>=a&&str[i]>=z)”。39.(1)應(yīng)改為“TCobjl(1);”。(2)應(yīng)改為“0bj1.SetNumber(10);”。(3)應(yīng)改為“0bj2.SelNumber(100);”。【解析】本題第1處的“TCobjl;”語(yǔ)句是聲明TC類(lèi)的對(duì)象0bj1,根據(jù)TC類(lèi)構(gòu)造函數(shù)的定義TC(inti),存在整型參數(shù),并且題目要求第一個(gè)輸出結(jié)果兩1,所以補(bǔ)全參數(shù)1,即第1處的“TCobjl(1);”。第2處處的“objl.number=10;”應(yīng)該是調(diào)用成員函數(shù)SetNumber賦值。在C++中成員函數(shù)的使用形式應(yīng)該是:對(duì)象名.成員函數(shù),所以修改為“obj1.SetNumber(10);”。類(lèi)是對(duì)象的抽象,而對(duì)象是類(lèi)的具體實(shí)例。第3處“TC.SetNumber(100);”語(yǔ)句中的TC為類(lèi),并不是對(duì)象,這里應(yīng)該使用定義的對(duì)象,即obj2,所以將語(yǔ)句修改為“obj2.SetNumber(100);”。40.(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(…)”。
41.(1)應(yīng)改為“assert(sizeof(s1)==4);”。
\n(2)應(yīng)改為“assert(sizeof(s2)==1O);”。
\n(3)應(yīng)改為“assert(sizeof(s3)==1);”。
\n【解析】assert函數(shù)如果為假,則會(huì)產(chǎn)生一個(gè)中斷異常。所以要讓它正常執(zhí)行輸出結(jié)果,那么assert函數(shù)只有為真,才不會(huì)產(chǎn)生中斷異常?!癮ssert(sizeof(s1)==3);”語(yǔ)句中“sizeof(s1)==3”為假,這會(huì)使程序產(chǎn)生異常,不能正常執(zhí)行。因?yàn)閟tr1的值為abc,但是它還有一個(gè)尾符,它的長(zhǎng)度應(yīng)該是4,而不是3,所以在第1處修改為“assert(sizeof(s1)==4);”。str2[10]說(shuō)明,str2的空間為10,在第2處修改為“assert(sizeof(s2)==10);”。charstr3=23;語(yǔ)句說(shuō)明23是字符,所占存儲(chǔ)空間為1,所以修改為“assert(sizeof(s3)==1);”。
42.(1)應(yīng)改為“TCobjl(1);”。
\n(2)應(yīng)改為“0bj1.SetNumber(10);”。
\n(3)應(yīng)改為“0bj2.SelNumber(100);”。
\n【解析】本題第1處的“TCobjl;”語(yǔ)句是聲明TC類(lèi)的對(duì)象0bj1,根據(jù)TC類(lèi)構(gòu)造函數(shù)的定義TC(inti),存在整型參數(shù),并且題目要求第一個(gè)輸出結(jié)果兩1,所以補(bǔ)全參數(shù)1,即第1處的“TCobjl(1);”。第2處處的“objl.number=10;”應(yīng)該是調(diào)用成員函數(shù)SetNumber賦值。在C++中成員函數(shù)的使用形式應(yīng)該是:對(duì)象名.成員函數(shù),所以修改為“obj1.SetNumber(10);”。類(lèi)是對(duì)象的抽象,而對(duì)象是類(lèi)的具體實(shí)例。第3處“TC.SetNumber(100);”語(yǔ)句中的TC為類(lèi),并不是對(duì)象,這里應(yīng)該使用定義的對(duì)象,即obj2,所以將語(yǔ)句修改為“obj2.SetNumber(100);”。
43.(1)應(yīng)改為“TC::TC”。
\n(2)應(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處“TC::display”后的語(yǔ)句看,這是在類(lèi)外實(shí)現(xiàn)TC函數(shù),因此也有作用域運(yùn)算符使用錯(cuò)誤問(wèn)題,display函數(shù)返回值為void,因此第2處的語(yǔ)句應(yīng)改為“voidTC::display”。由第3處的語(yǔ)句“TC::TC”可知,顯然這里是在類(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”。
44.(1)“staticintn=O”應(yīng)改為“staticintn;”。(2)“intCO::n;”應(yīng)改為“intCO::n=0;”。(3)“cout<<c.n<<endl;”應(yīng)改為“cout<<c->n<<endl;”?!窘馕觥勘绢}要在屏幕上輸出兩個(gè)字符,首先要靜態(tài)變量初始化,第1處應(yīng)改為“staticintn;”,第2處要給n賦值,第3處輸出時(shí)引用c的對(duì)象,應(yīng)改為“cout<<c->n<<endl;”。45.(1)應(yīng)改為“TC::TC”。(2)應(yīng)改為“voidTC::display”。(3
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教師工作調(diào)動(dòng)申請(qǐng)書(shū)模板
- 羽毛球申請(qǐng)書(shū)
- 大三三好學(xué)生申請(qǐng)書(shū)
- 學(xué)位申請(qǐng)書(shū)格式
- 生物科技領(lǐng)域的知識(shí)產(chǎn)權(quán)戰(zhàn)略規(guī)劃及報(bào)告制作技巧
- 2024-2025學(xué)年高中政治專(zhuān)題2.1影響價(jià)格的因素測(cè)提升版含解析必修1
- 2024-2025學(xué)年高中地理第二章中國(guó)的自然災(zāi)害章末整合提升學(xué)案新人教版選修5
- 2024-2025學(xué)年七年級(jí)數(shù)學(xué)上冊(cè)第5章相交線(xiàn)與平行線(xiàn)5.2平行線(xiàn)教案新版華東師大版
- 申請(qǐng)書(shū)請(qǐng)假考研
- 文學(xué)社申請(qǐng)書(shū)
- 淋巴瘤的免疫靶向治療
- 炎癥性腸病的自我管理
- 國(guó)防動(dòng)員課件教學(xué)課件
- 律師事務(wù)所案件管理手冊(cè)
- 《地理信息系統(tǒng)GIS》全套教學(xué)課件
- 技術(shù)序列學(xué)習(xí)地圖(2023年)
- 中國(guó)銀行(香港)有限公司招聘筆試真題2023
- 15萬(wàn)噸水廠(chǎng)安裝工程施工組織設(shè)計(jì)方案
- 自動(dòng)體外除顫器項(xiàng)目創(chuàng)業(yè)計(jì)劃書(shū)
- 養(yǎng)老機(jī)構(gòu)績(jī)效考核及獎(jiǎng)勵(lì)制度
- 長(zhǎng)塘水庫(kù)工程環(huán)評(píng)報(bào)告書(shū)
評(píng)論
0/150
提交評(píng)論