




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2023年湖北省鄂州市全國(guó)計(jì)算機(jī)等級(jí)考試
C++語言程序設(shè)計(jì)模擬考試(含答案)
學(xué)校:班級(jí):姓名:考號(hào):
一、1.選擇題(10題)
i.編譯時(shí)的多態(tài)性可以通過使用()獲得。
A.虛函數(shù)和指針B.重載函數(shù)和析構(gòu)函數(shù)C.虛函數(shù)和對(duì)象D.虛函數(shù)和
引用
2.數(shù)據(jù)處理的最小單位是()。
A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)項(xiàng)D.數(shù)據(jù)結(jié)構(gòu)
3.已知chara;intb;floatc;doubled;則表達(dá)式a*b+c-d結(jié)
果為
A.doubleB.intC.floatD.char
4.下列程序的輸出結(jié)果是()。#include<iostream>usingnamespacestd;
template<typenameT>Tfun(Ta,Tb){return(a>=b)?a:b;}voidmain()
{cout<<fun(3,6)<<','<<fun(3.14F,6.28F)<<endl;}
A.6,3.14B.3,6.28C.3,3.14D.6,6.28
5.具有3個(gè)結(jié)點(diǎn)的二叉樹有()
A.2種形態(tài)B.4種形態(tài)C.7種形態(tài)D.5種形態(tài)
6.在C++中,用于實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性的是
A.內(nèi)聯(lián)函數(shù)B.重載函數(shù)C.模板函數(shù)D.虛函數(shù)
7.下面程序段的運(yùn)行結(jié)果是voidmain(){intt,a,b,c;a=l;b=2;
C-2;while(a<b<c){t=a;a=b;b=t;c—;}cout<<a<<","<
<b<<","<<c;)
A.l,2,0B.2,1,0C.1,2,1D.2,1,1
8.數(shù)據(jù)流圖用于描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符
構(gòu)成。下列圖符名稱標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。
A.控制流B.加工C.貯存文件D.源和潭
9.下列正確的是()。
A.靜態(tài)局部變量和靜態(tài)外部變量的生存期相同,它們的作用域也相同
B.#include<iostream>usingnamespacestd;voidmain(){inti,s;s=0;
for(i=1;i<10;i++){s=s+i;if(s>8)break;}
C.register存儲(chǔ)類型一般為使用頻繁的變量所說明,這樣可以提高程序
的執(zhí)行效率
D.靜態(tài)變量生存期長(zhǎng),作用大,可以多用
10.在深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為
A.32B.31C.16D.15
二、單選題(13題)
11.為了使類中的成員不能被類的對(duì)象通過成員操作符訪問,則不能把
該成員的訪問權(quán)限定義為()。
A.publicB.protectedC.staticD.private
12.C++語言對(duì)C語言做了很多改進(jìn),C++語言相對(duì)于C語言的最根本的
變化是()。
A.增加了一些新的運(yùn)算符B.允許函數(shù)重載,并允許設(shè)置默認(rèn)參數(shù)C.規(guī)
定函數(shù)說明符必須用原型D.引進(jìn)了類和對(duì)象的概念
13.有下列程序:
#include<stdiO.h>
voidmain()
{inta=S,b=l,t;
t=(a?2)|b;printf("%d\n",t);
)
程序運(yùn)行后的輸出結(jié)果是()。A.21B.llC.6D.1
14.下列選項(xiàng)中正確的語句是()。
A.chars[];s="BOOK!";
B.charts;S={"BOOK!");
C.chars[10];s="BOOK";
D.char*S;s="BOOK!";
15.某二叉樹共有7個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有1個(gè),則該二叉樹的深度
為(假設(shè)根結(jié)點(diǎn)在第1層)()o
A.3B.4C.6D.7
16.有如下程序:
#include<iostream>
usingnamespacestd;
classA
{
public:
A(){cout?"A";}
?A(){cout?"~A";}
};
classB
(
A*P:
public:
B(){cout?"B";p=newA;}
?B(){cout?"~B";deleteP;}
};
intmain()
(
Bobi;
retumO;
)
執(zhí)行這個(gè)程序的輸出結(jié)果是()。A.BAA~A~B~AB.ABA~B?A~A
C.BAA?B?A~AD.ABA?A~B~A
17.下列程序的執(zhí)行結(jié)果是()。
#include(iostream.h>
#include<stdlib.h>
classTestClass
(
public:
intX,y;
TestClass(){x=y=O;}
TestClass(inta,intb){x=a;y=b;}
voiddisp()
{
cout?"x="?x<<",y="<y?endl;
)
};
voidmain()
{
TestClasssl(2,3);
si.disp();
)
A.x=2,y=2B.x=2,y=3C.x=3,y=2D.x=3,y=3
18.C++語言類體系中,不能被派生類繼承的有()。
A.轉(zhuǎn)換函數(shù)B.構(gòu)造函數(shù)C.虛函數(shù)D.靜態(tài)成員函數(shù)
19.有下列程序:
#include<stdiO.h>
voidf(int*P,int*q);
voidmain()
(intm=l,n=2,*r=&m;
f(r,&n);printf("%d,%d",m,n);
)
voidf(int*P,int*q)
{p=p+l;*q=*q+l;}
程序運(yùn)行后的輸出結(jié)果是()oA.l,3B.2,3C.1,4D.1,2
20.有如下兩個(gè)類定義:
classXX{
private:
doublexl;
protected:
doublex2;
public:
doublex3;
};
classYY:protectedXX{
private:
doubleyl;
protected:
doubley2;
public:
doubley3;
在類YY中保護(hù)成員變量的個(gè)數(shù)是()o
A.lB.2C.3D.4
21.下列關(guān)于類定義的說法中,正確的是()。
A.類定義中包括數(shù)據(jù)成員和函數(shù)成員的聲明
B.類成員的缺省訪問權(quán)限是保護(hù)的
C.數(shù)據(jù)成員必須被聲明為私有的
D.成員函數(shù)只能在類體外進(jìn)行定義
22.下列程序輸出的結(jié)果是()。#include<stdio.h>subl(chara,charb)
{charc;c=a;a=b;b=c;}sub2(char*a,charb){charc;c=*a;*a=b;b=c;}
sub3(char*a,char*b){charc;c=*a;*a=*b;*b=c;}voidmain(){chara,b;
a='A';b='B';subl(a,b);putchar(a);putchar(b);
a='A';b='B';sub2(&a,b);putchar(a);putchar(b);
a='A';b='B';sub3(&a,&b);putchar(a);putchar(b);putchar('\n');}
A.BABBABB.ABBBBAC.ABBABAD.ABABBA
23.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系
是
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和
DBMSD.沒有任何關(guān)系
三、2.填空題(12題)
24.下面程序的結(jié)果為。
#include<iostream.h>
voidmain()
inta=l,b=2;
boolc=1;
if((a>b)11c)cout<<"tree"<<endl;
else
cout<<"false"<<endl;
)
25.類ostream的成員函數(shù)用于執(zhí)行無格式輸出,成員函數(shù)
用于輸出單個(gè)字符。
26.非成員函數(shù)應(yīng)聲明為類的____函數(shù)才能訪問這個(gè)類的private成
員。
27.若有以下程序:
#include<iostream>
usingnamespacestd;
classTestClass1
(
public:
TestClass1()
(
X=0;
)
intx;
);
classTestClass2:virtualpublicTestClass1
(
public:
TestClass2()
x=10;
)
);
classTestClass3:virtualpublicTestClass1
(
public:
TestClass3()
{
x=20;
)
);
classTestClass4:publicTestClass2,protectedTestClass3
{};
intmain()
(
TestClass4obj;
cout<<obj.x<<endl;
return0:
)
該程序運(yùn)行后的輸出結(jié)果是______o
28.假定A為一個(gè)類,則語句A(A&a);為該類【】函數(shù)的原型說明。
29.在析構(gòu)函數(shù)中調(diào)用虛函數(shù)時(shí),采用【】聯(lián)編。
30.執(zhí)行語句序列
charstrl[l0]="ABCD",str2[l0]="XYZxyz";
for(inti=0;strl[i]=str2[i];i++)
后,數(shù)組strl中的字符是XYZxyz,數(shù)組str2中的字符串是[]o
31.在面向?qū)ο蠓椒ㄖ?,類的?shí)例稱為。
32.下列程序的運(yùn)行結(jié)果是【】。
include<iostream,h>
classSample{
intx,y;
public:
Sample(){x=y=0;}
Sample(inta,intb){x=a;y=b;}
voiddisp(){
cout<<"x="<<x<<",y="<<y<<endl;
)
);
voidmain(){
Samplesi,s2(l,2);
si.dispO;
s2.disp();
33.數(shù)據(jù)庫系統(tǒng)中實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。
34.類模板的使用實(shí)際上是將類模板實(shí)例化成一個(gè)具體的【】。
35.用兩方式控制格式輸出分別是____和用控制符。
四、程序改錯(cuò)題(10題)
36.使用VC++6.。打開考生文件夾下的源程序文件1.cpp,該程序
運(yùn)行時(shí)有錯(cuò),請(qǐng)改正其中的錯(cuò)誤,使程序正常運(yùn)行,輸出的結(jié)果為
Constructor,i=0,
Destructor
注意:錯(cuò)誤的語句在//******error******的下面,修改該語句即
可。
試題程序:
#include(iostream.h)
classTC
|
inti;
public:
TC;
voiddisplay;
?TC;
};
//******enor******
TC:TC
(
cout?"Constructor"?",";
i=0;
)
I/******error******
TC:display
(
tout?"i="?i<<","?endl;
)
!/******ej*ror******
TC:TC
COUI?"Destructor"?endl:
voidmain
(
TCa;
a.display;
)
37.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)
行時(shí)有錯(cuò)誤,請(qǐng)改正程序中的錯(cuò)誤,使得程序輸出:
9,8,7,6,5
注意:錯(cuò)誤的語句在/********error********/的下面,修改該語句即
可。其他的語句不能修改。
試題程序:
#include(iostream.h>
classTC
!********enor********/
TC(inti)
m_i=i;
)
voidprint
(
cout?—m_i?,;
public:
intm_i;
};
intmain
I********error********/
inti;
TC04(10);
while(i>5)
(
I**************
i++:
04.print;
)
cout?endl;
retumO;
38.使用VC++6.。打開考生文件夾下的源程序文件I.cpp,該程序運(yùn)
行時(shí)有錯(cuò),請(qǐng)改正其中的錯(cuò)誤,使程序正常運(yùn)行,輸出的結(jié)果為
Constructor,i=0,
Destructor
注意:錯(cuò)誤的語句在//******errc)r******的下面,修改該語句即可。
試題程序:
#include(iostream.h)
classTC
inti;
public:
TC;
voiddisplay;
-TC;
);
!1******enor******
TC:TC
(
cout?"Constructor"?",
i=0;
)
1I******error******
TC:display
{
tout?"i="?i<<","?endl;
II******error******
TC:TC
(
COUI?"Destructor"?endl:
)
voidmain
(
TCa;
a.display;
)
39.使用VC++6.。打開考生文件夾下的源程序文件1.cpp,該程序
運(yùn)行時(shí)有錯(cuò)。請(qǐng)改正程序中的錯(cuò)誤,使程序輸出的結(jié)果為
100
37
32
注意:錯(cuò)誤的語句在//******errc)r******的下面,修改該語句即
可。
試題程序:
#include<iostream.h>
II******error******
voidmain
(
II******enor******
intm=0142:
II******error******
intn=0X27:
intq=32;
cout<<m<<endl;
cout<<n<<endl;
cout<<q<<endl;
return;
40.使用VC++6.。打開考生文件夾下的源程序文件1.cpp,但該程
序運(yùn)行有問題,請(qǐng)改正main函數(shù)中的錯(cuò)誤,使該程序的輸出結(jié)果正
確。
程序輸出:
8
8
注意:錯(cuò)誤的語句在/********error********/的下面。修改該語句
即可,其他的語句不能修改。
試題程序:
#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;
)
41.使用VC++6.0打開考生文件夾下的源程序文件
1.cpp,該程序運(yùn)行時(shí)有錯(cuò)誤,請(qǐng)改正程序中的錯(cuò)誤。本程序要求實(shí)現(xiàn)
的功能為從鍵盤輸入一個(gè)字符串,并將結(jié)果保存到文件1.txt中。
注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)
構(gòu),錯(cuò)誤的語句在
!1******error******自勺卜市~|
試題程序:
#include<iostream>
#include<fstream>
!!********enor********
usingstd;
voidWriteFile(char*s)
(
ofstreamoutl;
********error********
outl.open("l.txt",binary|app);
for(inti=0;s[i]!=0;i++)
(
II********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;
)
42.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序
運(yùn)行有問題,請(qǐng)改正main函數(shù)中的錯(cuò)誤,使程序的輸出結(jié)果為:
number=1
number=10
number=100
注意:不要改動(dòng)main函數(shù),不能增加或刪除行。也不能更改程序的結(jié)
構(gòu),錯(cuò)誤的語句在//******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
{
I!********error********
TCobjl;
objl.Print;
TCobj2(3);
II********error********
objl.number=10;
Ii********error*******
TC.SetNumber(lOO);
objl.Print;
obj2.Print;
)
43.使用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ò)誤的語句在
II******error******白勺~曲jo
試題程序:
#include<iostream>
#include<fstream>
II********enor********
usingstd;
voidWriteFile(char*s)
ofstreamoutl;
II********error********
outl.open("l.txt",binary|app);
for(inti=0;s[i]!=0;i++)
(
/!********error********
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);
retumO;
44.使用VC++6.0打開考生文件夾下的源程序文件1.cppo本程序要
求輸入一個(gè)字符串,然后將其中的小寫字母改成大寫字母,字符可能輸
入多行,當(dāng)輸入字符“?”時(shí),默認(rèn)字符輸入結(jié)束,最后把結(jié)果輸出到屏幕
中。
注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)
構(gòu),錯(cuò)誤的語句在//******errc*r******的下面。
試題程序:
#include<iostream.h>
voidmain
{
inti=O;
charstr[120];
cout?"Enterastringendwith?."?endl;
II********error********
cin.getline(str,120);
II********error********
while(str)
(
II********error********
if(str[i])=a)
str[i]=str[i]-a+A;
i++;
)
cout?str?endl;
return;
)
45.使用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ò)誤的語句在//******errc)r******的下面。
試題程序:
#include<iostream.h)
intmain
throw("error");
II********enor********
catch(chars)
cout?s?endl;
throw((int)0);
!I********error********
catch
cout?i?endl;
)
try
{
throw(O);
throw("error");
)
II********error********
catch
(
cout?"ERROR"?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句。
(2)完成默認(rèn)構(gòu)造函數(shù)CRect的定義,指定默認(rèn)實(shí)參為0,它們都是
double型的數(shù)據(jù)。請(qǐng)?jiān)谧⑨?之后添加適當(dāng)?shù)恼Z句。
(3)定義函數(shù)體為空的析構(gòu)函數(shù)。請(qǐng)?jiān)谧⑨?之后添加適當(dāng)?shù)恼Z句。
(4)在main函數(shù)中定義GReet類的實(shí)例rect2,并把re-
cti的值賦給rect2。請(qǐng)?jiān)谧⑨?之后添加適當(dāng)?shù)恼Z句。
注意:除在指定位置添加語句之外,不要改動(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=1;topPoint=t;
rightPoint=r;bottomPoint=b;
voidCRect::Setpoints(doublel,doublet,doubler,doubleb)
leftPoint=1;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);
II********4********rect2Display()
47.請(qǐng)使用VC6或使用【答題】菜單打開考生文件夾proj3下的工程
proj3,其中聲明的CDe叩Copy是一個(gè)用于表示矩陣的類。請(qǐng)編寫這個(gè)
類的賦值運(yùn)算符成員函數(shù)Operator,以實(shí)現(xiàn)深層復(fù)制。
要求:
補(bǔ)充編制的內(nèi)容寫在"〃************333*************與
“〃****************666*************"之間o不.多改不呈的其彳也部
分。
注意:程序最后將結(jié)果輸出到文件out.dat中。輸出函數(shù)writeToFile
已經(jīng)編譯為。bj文件,并且在本程序中調(diào)用。
//CDeepCopy.h
#include<iostream>
#include<string>
usingnamespacestd;
classCDeepCopy
public:
intn;〃動(dòng)態(tài)數(shù)組的元素個(gè)數(shù)
int*p;〃動(dòng)態(tài)數(shù)組首地址
CDeepCopy(int);
?CDeepCopy;
CDeepCopy&operator=(constCDeepCopy&r);〃賦值運(yùn)算符函數(shù)
};
voidwriteToFile(char});
//main,cpp
#include,,CDeepCopy.h"
CDeepCopy::一CDeepCopy{delete[]P;}
CDeepCopy::CDeepCopy(intk){n=k;p=newint[n];}〃構(gòu)造函數(shù)實(shí)現(xiàn)
CDeepCopy&CDeepCopy::Operator=(constCDeepCopy&r)〃賦值運(yùn)算
符函數(shù)實(shí)現(xiàn)
/
//***********666不***不******
)
intmain
CDeepCopya(2),d(3);
a.p[O]=l;d.p[O]=666;〃對(duì)象a,d數(shù)組元素的賦值
(
CDeepCopyb(3);//調(diào)用賦值運(yùn)算符函數(shù)
a.p[O]=88;b=a;
cout?b.pfO];〃顯示內(nèi)層局部對(duì)象的數(shù)組元素
)
cout?d.p[0];//顯示d數(shù)組元素a.p[0]的值
cout?”dfadeaway;\n";
cout?a.p[0];〃顯示a數(shù)組元素a.p[0]的值
writeToFile("");
return0;
)
六、3.綜合應(yīng)用題(2題)
48.使用VC6打開考生文件夾下的工程MyProj4o此工程包含一個(gè)源程
序文件MyMain4.cpp,該程序?qū)⑼ㄟ^把類Distance定義為類Point的
友元類來實(shí)現(xiàn)計(jì)算兩點(diǎn)之間距離的功能。但程序中定義的類并不完
整。請(qǐng)按要求完成下列操作,把類的定義補(bǔ)充完整。
①把類Distance定義為類Point的友元類。請(qǐng)?jiān)谧⑨尅啊?*1**”之后添加
適當(dāng)?shù)恼Z句。
②定義類Point的構(gòu)造函數(shù),完成給私有數(shù)據(jù)成員x和y的賦值,并且
兩個(gè)參數(shù)的默認(rèn)值都為Oo請(qǐng)?jiān)谧⑨尅啊?*2**”之后添加適當(dāng)?shù)恼Z句。
③完成類Distance的成員函數(shù)Dis(Point&p,Point&q)的定義,并在其
中計(jì)算點(diǎn)p、q之間的距離,并且返回結(jié)果。假設(shè)兩點(diǎn)之間的距離
distance=sqrt((p.x-q.x)*(p.x-q.x)+(p.y-q.y)*(p.y-q.y))0請(qǐng)?jiān)谧⑨尅啊?*3***
之后添加適當(dāng)?shù)恼Z句。
源程序文件MyMain4.cpp中的程序清單如下:
//MyMain4.cpp
#include<iostream>
#include<cmath>
usingnamespacestd;
classPoint
(
public:
〃**]**
//定義類Point的構(gòu)造函數(shù)
//**2**
voidpint()
{
cout<<"x="<<x<<endl;
cout<<"y="<<y<<endl;
)
private:
floatx,y;
);
classDistance
(
public:
floatDis(Point&p,Point&q);
);
floatDistance::Dis(Point&p,Point&q)
{
〃**3**
}
intmain()
(
Pointp(10,10),q(20,20);
Distanced;
cout<<d.Dis(p,q)<<endl;
return0;
)
49.使用VC6打開考生文件夾下的工程MyProjl2。此工程包含一個(gè)源程
序文件MyMainl2.cppo程序中定義了兩個(gè)類Base和Derived,但類的
定義并不完整。
請(qǐng)按要求完成下列操作,將類的定義補(bǔ)充完成:
①類Derived是基類Base公有派生來的。請(qǐng)?jiān)谧⑨尅?/**1**”之后添加
適當(dāng)?shù)恼Z句。
②完成構(gòu)造函數(shù)Derived(intx)定義,采用初始化列表的方式使基類Base
私有成員a初始化為x,類Derived的私有成員b初始化為x+l0請(qǐng)?jiān)谧?/p>
釋“〃**2**”之后添加適當(dāng)?shù)恼Z句。
③完成類Derived的成員函數(shù)show。的類體外的定義。函數(shù)show。中要
輸出基類數(shù)據(jù)成員a的值,然后要輸出私有成員b的值。請(qǐng)?jiān)谧⑨尅啊?
*3**之后添加適當(dāng)?shù)恼Z句。
注意;除在指定位置添加語句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。
源程序文件MyMainl2.cpp清單如下:
//MyMainl2.cpp
#include<iostream>
usingnamespacestd;
classBase
(
public:
inta;
Base(inti)
{
a=i;
)
};
〃***]***
(
private:
intb;
public:
〃***2***
voidshow();
);
voidDerived::show()
**3***
intmain()
Derivedd(l);
d.show();
return0;
)
參考答案
l.C
2.C解析數(shù)據(jù)處理的最小單位是數(shù)據(jù)項(xiàng);由若干數(shù)據(jù)項(xiàng)組成數(shù)據(jù)元素;而
數(shù)據(jù)是指能夠被計(jì)算機(jī)識(shí)別、存儲(chǔ)和加工處理的信息載體;數(shù)據(jù)結(jié)構(gòu)是
指數(shù)據(jù)之間的相互關(guān)系和數(shù)據(jù)運(yùn)算。故正確答案為選項(xiàng)C)。
3.A解析:本題考察混合運(yùn)算表達(dá)式類型,由表達(dá)式中具有最高優(yōu)先級(jí)
的類型所確定,所以答案為A。
4.D解析:為條件運(yùn)算符,(a>=b)?a:b是當(dāng)a大于b時(shí)取a,否則
取b。所以第一個(gè)fun(3,6)調(diào)用中,6大于3,所以輸出6,同理,第二
個(gè)fun(3.14F,6.28F)調(diào)用中輸出6.28。
5.D解析:因?yàn)槎鏄溆凶蟆⒂易訕渲?,所以?個(gè)結(jié)點(diǎn)的二叉樹具
有5種不同的形態(tài)。
6.D解析:本題考核虛函數(shù)的概念。在C++語言中,多態(tài)性可分為兩類:
編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性。編譯時(shí)的多態(tài)性是通過函數(shù)重載和
模板體現(xiàn)。其實(shí)現(xiàn)機(jī)制稱為靜態(tài)聯(lián)編(也譯為靜態(tài)綁定),即在編譯階段
決定執(zhí)行哪個(gè)同名的被調(diào)用函數(shù);運(yùn)行時(shí)的多態(tài)性是通過體現(xiàn)的,其實(shí)
現(xiàn)機(jī)制稱為動(dòng)態(tài)聯(lián)編(也譯為動(dòng)態(tài)綁定),即在編譯階段不能決定執(zhí)行哪
個(gè)同名的被調(diào)用函數(shù),只在執(zhí)行階段才能依據(jù)要處理的對(duì)象類型來決定
執(zhí)行哪個(gè)類的成員函數(shù),用于實(shí)現(xiàn)此功能正是虛函數(shù)。
7.A解析:本題中(a<b<c)的運(yùn)算次序是先算a<b,返回1,再運(yùn)算1
<c,返回1,所以表達(dá)式a<b<c的值為1。
8.A解析:本題考查考生對(duì)數(shù)據(jù)流圖的圖形元素的掌握。其中,加工、
貯存文件、源和潭都是數(shù)據(jù)流圖的合法圖符。
9.C解析:選項(xiàng)A它們的作用域不同;選項(xiàng)B輸出結(jié)果相同;選項(xiàng)D靜
態(tài)變量長(zhǎng)期占用內(nèi)存不釋放,降低程序可讀性,不要過多使用。
10.C
2(n-i)=2(5T)=16
11.A解析:public允許類對(duì)象對(duì)類的屬性和方法進(jìn)行訪問;private不允
許類對(duì)象訪問類的屬性和方法;protected不允許類及其子類的對(duì)象訪問
父類的屬性和方法,但子類可以訪問父類中定義的protected屬性和方
法。
12.D
C++語言最重要的特點(diǎn)是其為一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,但是C++
語言也包含了C語壽的全部特征。
13.A
Ao【解析】本題考查移位運(yùn)算符在程序中對(duì)5邏輯左移2位,其值擴(kuò)
大4倍等于20,然后再進(jìn)行按位運(yùn)算,其值等于21。
14.D
Do【解析】在選項(xiàng)D中,字符指針s指向字符串常量BOOK!。故選
項(xiàng)D正確o
15.DD【解析】根據(jù)二叉樹的基本性質(zhì)3:在任意一棵二叉樹中,多為。
的葉子結(jié)點(diǎn)總比度為2的結(jié)點(diǎn)多一個(gè),所以本題中度為2的結(jié)點(diǎn)為1-
1=0個(gè),所以可以知道本題目中的二又樹的每一個(gè)結(jié)點(diǎn)都有一個(gè)分支,
所以共7個(gè)結(jié)點(diǎn)共7層,即度為7。
16.B
Bo【解析】本題考查的是類的構(gòu)造函數(shù)和析構(gòu)函數(shù)。派生類構(gòu)造函數(shù)
的執(zhí)行順序:首先調(diào)用基類的構(gòu)造函數(shù),調(diào)用順序按它們被繼承時(shí)說
明的順序;然后調(diào)用子對(duì)象的構(gòu)造函數(shù),調(diào)用順序按它們?cè)陬愔姓f明
的順序;最后是派生類構(gòu)造函數(shù)中的內(nèi)容。因此本題中,首先調(diào)用基
類構(gòu)造函數(shù)輸出A,然后調(diào)用子對(duì)象的構(gòu)造函數(shù)輸出B,P=newA再調(diào)
用類A的構(gòu)造函數(shù)輸出Ao析構(gòu)函數(shù)的調(diào)用順序和構(gòu)造函數(shù)的調(diào)用順
序相反。
17.B
Bo【解析】由主函數(shù)入手,定義了類TestClass的對(duì)象sl(2,3),當(dāng)
類對(duì)象進(jìn)入其作用域時(shí)調(diào)用構(gòu)造函數(shù),構(gòu)造函數(shù)應(yīng)該是調(diào)用具有參數(shù)
的"TestClass(inta,intb){x=a;Y=b;}“,然后調(diào)用成員函數(shù)disp,則輸
出為"cout<<"x="<<x<<",y="?y?endl;即x=2,y=3。
18.B解析:派生類對(duì)象的數(shù)據(jù)結(jié)構(gòu)是由基類中說明的數(shù)據(jù)成員和派生
類中說明的數(shù)據(jù)成員共同構(gòu)成,所以不能繼承基類的構(gòu)造函數(shù),必須重
新定義。
19.A
Ao【解析】本題中子函數(shù)f(int*p,*q)的功能是對(duì)指針p的值加1,
*q的值加1。主函數(shù)中調(diào)用子函數(shù)f(r,&n)時(shí),子函數(shù)的執(zhí)行結(jié)果是r
值加1,n的值加1。而m的值并沒有發(fā)生變化,最后程序輸出的結(jié)果
為1,3。所以正確答案為選項(xiàng)A。
20.C
本題考查保護(hù)繼承中派生類對(duì)基類的訪問屬性,在受保護(hù)繼承中,基
類的公用成員和保護(hù)成員在派生類中成了保護(hù)成員,所以基類的成員
x2、x3變成了保護(hù)成員,派生類中的y2也是保護(hù)成員,所以共有3個(gè)
保護(hù)成員。本題答案為C、
21.A
解析:本題考查的知識(shí)點(diǎn)是:類的定義。類中缺省的訪問權(quán)限是私有
的(private),所以選項(xiàng)B)不正確:類的數(shù)據(jù)成員和函數(shù)成員的訪問控
制權(quán)限均可被聲明為公有(public)>私有(priate)和保護(hù)(protected)中的
任意一種,所以選項(xiàng)C)不正確;成員函數(shù)的實(shí)現(xiàn)即可以在類體內(nèi)定
義,也可以在類體外定義,所以選項(xiàng)D)不正確。故本題應(yīng)該選擇
Ao
22.B
23.C
(10)0解析:DB即數(shù)據(jù)庫(Database),是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集
合;DBMS即數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem),是位于
用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用程序提供訪
問DB的方法;DBS即數(shù)據(jù)庫系統(tǒng)(DatabaseSystem)由如下5部分
組成,數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員
(人員)、系統(tǒng)平臺(tái)之一——硬件平臺(tái)(硬件)、系統(tǒng)平臺(tái)之二
——軟件平臺(tái)(軟件)。
24.truetrue解析:本題考查的是對(duì)于邏輯運(yùn)算符號(hào)的理解,“”運(yùn)算符
的任何一邊取值為真,則整個(gè)運(yùn)算結(jié)果為真。
25.write、put
26.友元友元解析:類的私有成員只能被本類的成員函數(shù)訪問,如果非
成員函數(shù)要訪問本類的私有數(shù)據(jù)成員,必須將函數(shù)定義為該類的友元函
數(shù)才行。
27.20
28.拷貝構(gòu)造拷貝構(gòu)造解析:本題考核拷貝構(gòu)造函數(shù)的定義??截悩?gòu)造
函數(shù)是一種特殊的成員函數(shù),它的作用是使用一個(gè)已存在的對(duì)象來初始
化一個(gè)被創(chuàng)建的同類的對(duì)象。
29.靜態(tài)靜態(tài)解析:構(gòu)造函數(shù)不能聲明為虛函數(shù),但在構(gòu)造函數(shù)中可以
調(diào)用虛函數(shù),在構(gòu)造函數(shù)和析構(gòu)函數(shù)中調(diào)用虛函數(shù),將采用靜態(tài)聯(lián)編。
3O.XYZxyzXYZxyz解析:注意for的循環(huán)體為空語句,其第二個(gè)表達(dá)
式為一個(gè)賦值語句而不是一個(gè)邏輯表達(dá)式語句。因此,for循環(huán)的作用
實(shí)際上是將str2的字符逐個(gè)賦值給strl中的對(duì)應(yīng)位置。
31.對(duì)象對(duì)象解析:在面向?qū)ο蟾拍钪?,所有的同類的?shí)體的抽象就構(gòu)
成一個(gè)類,而類被實(shí)例化就形成一個(gè)對(duì)象。
32.此程序的運(yùn)行結(jié)果為:x=0y=0x=ly=2此程序的運(yùn)行結(jié)果為:\r\n
x=0,y=0\r\nx=1,y=2
33.數(shù)據(jù)庫管理系統(tǒng)
數(shù)據(jù)庫管理系統(tǒng)(DBMS)
34.類類解析:本題考查的是類模板的使用方式,就是把類模板的一般
化定義實(shí)例化為一個(gè)真正的類。
35.流成員函數(shù)流成員函數(shù)
36.⑴應(yīng)改為“TC::TC”。
(2)應(yīng)改為"voidTC::display"o
⑶應(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”后
的語句看,這是在類外實(shí)現(xiàn)TC函數(shù),因此也有作用域運(yùn)算符使用錯(cuò)
誤問題,display函數(shù)返回值為void,因此第2處的語句應(yīng)改為
“voidTC::display”。由第3處的語句“TC::TC”可知,顯然這里是
在類外實(shí)現(xiàn)析構(gòu)函數(shù),析構(gòu)函數(shù)是一個(gè)特殊的函數(shù),它的名稱和類名
相同,并在前面加''?"字符,用采與構(gòu)造函數(shù)加以區(qū)別,因此第3處
的語句應(yīng)改為“TC::?TC”。
37.(1)應(yīng)添加“public:
\n(2)“inti”應(yīng)改為"inti(10);
\n(3)“i++;”應(yīng)改為“i—;
\n【解析】本題主要考查的是成員的訪問屬性。成員的訪問屬性有公有、
保護(hù)和私有3種,而默認(rèn)的訪問屬性為私有,只有公有成員才能通過類
的對(duì)象被訪問。故應(yīng)在構(gòu)造函數(shù)前添加“public:“,否則該類無法被實(shí)例
化。變量的初始化可以通過“=”號(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.⑴應(yīng)改為“TC::TC”。
\n(2)應(yīng)改為"voidTC::display”。
\n(3)應(yīng)改為“TC::~TC”。
\n【解析】在類的外部定義成員函數(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”后的語句看,這
是在類外實(shí)現(xiàn)TC函數(shù),因此也有作用域運(yùn)算符使用錯(cuò)誤問題,display
函數(shù)返回值為void,因此第2處的語句應(yīng)改為“voidTC::display"。由第
3處的語句叮(3::丁€:”可知,顯然這里是在類外實(shí)現(xiàn)析構(gòu)函數(shù),析構(gòu)函
數(shù)是一個(gè)特殊的函數(shù),它的名稱和類名相同,并在前面加“字符,用
采與構(gòu)造函數(shù)加以區(qū)別,因此第3處的語句應(yīng)改為“TC::~TC”。
39.(l)“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;
40.⑴“staticintn=O"應(yīng)改為"staticintn;"。
(2)uintCO::n;”應(yīng)改為“intCO::n=0;
(3)t4cout?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;
41.(1^t4usingnamespacestd;
\n(2)應(yīng)改為"outl.open('l.txt',ios::binary|ios::app);"。
\n(3)應(yīng)改為“outl.put(s[i]);”。
\n【解析】本題第1處的“usingstd;”是在程序中引入標(biāo)準(zhǔn)命名空間std,
對(duì)于C++中引入標(biāo)準(zhǔn)命名空間的格式,缺少namespace,所以第1處
的語句修改為"usingnamespacestd;第2處,調(diào)用成員函數(shù)open中,
輸入、輸出方式是在ios類中定義的,所以“outl.open。1.txt',binary|
app);”語句缺少類ios,即第2處的語句修改為“outl.open('l.txt',ios::
binary|ios::app);”。第3個(gè)標(biāo)識(shí)應(yīng)該用流成員函數(shù)put輸出字符,所
以第3處的語句修改為“outl.put(s[i]);
42.(1)應(yīng)改為"TCobjl(l);
⑵應(yīng)改為“Objl.SetNumber(lO);
(3)應(yīng)改為“0bj2.SelNumber(lOO);
【解析】本題第1處的“TCobjl;”語句是聲明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);”語句中的TC為類,并不是對(duì)象,
這里應(yīng)該使用定義的對(duì)象,即。bj2,所以將語句修改為
“obj2.SetNumber(lOO);
43.(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處
的語句修改為“usingnamespacestd;"。第2處,調(diào)用成員函數(shù)open
中,輸入、輸出方式是在ios類中定義的,所以“outl.openC'l.txt",
binaryIapp);”語句缺少類ios,即第2處的語句修改為
“outl.open("l.txt",ios::binaryIios::app);第3個(gè)標(biāo)識(shí)應(yīng)
該用流成員函數(shù)put輸出字符,所以第3處的語句修改為
“outl.put(s[i]);
44.(1)應(yīng)改為“ein.getline(str,120,?);
\n(2)應(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īng)該是判斷字符串str中的每一個(gè)字符是否為結(jié)
束符,若不是結(jié)束符,在循環(huán)中判斷每一個(gè)字符是否為小寫,若為小寫,
則轉(zhuǎn)換。所以應(yīng)該修改為“while(str[i])”。第3處的“if(str[i]>=a)”語句是
判斷字符str[i]是否為小寫字符,而現(xiàn)有的語句只是判斷字符是否大于a,
,,
但是小寫字符應(yīng)該是a到2,所以修改為“if(str[i]>=a&&s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ó)8寸袖珍折疊自行車數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2019-2025年軍隊(duì)文職人員招聘之軍隊(duì)文職管理學(xué)自我檢測(cè)試卷B卷附答案
- 2019-2025年軍隊(duì)文職人員招聘之軍隊(duì)文職管理學(xué)與服務(wù)過關(guān)檢測(cè)試卷A卷附答案
- 康德三診物理試題及答案
- 保安文化測(cè)試試題及答案
- 小學(xué)生人際交往故事征文
- 企業(yè)虛擬專用網(wǎng)絡(luò)服務(wù)協(xié)議
- 《統(tǒng)計(jì)學(xué)的數(shù)據(jù)處理基礎(chǔ):初三數(shù)學(xué)教案》
- 產(chǎn)品銷量排行表-電商銷售統(tǒng)計(jì)
- 遼寧省朝陽市建平縣2024-2025學(xué)年八年級(jí)上學(xué)期期末生物學(xué)試題(含答案)
- 南京信息工程大學(xué)《流體力學(xué)Ⅰ》2022-2023學(xué)年第一學(xué)期期末試卷
- 英文在職證明模版
- 大學(xué)生職業(yè)素養(yǎng)訓(xùn)練(第六版)課件 第十二單元養(yǎng)成友善品格
- GB/T 44592-2024紅樹林生態(tài)保護(hù)修復(fù)技術(shù)規(guī)程
- 傳感器技術(shù)-武漢大學(xué)
- 初中數(shù)學(xué)建模研究報(bào)告
- 人教A版(2019)高中數(shù)學(xué)選擇性必修第二冊(cè) 《數(shù)列的相關(guān)概念》教學(xué)設(shè)計(jì)
- 虛勞中醫(yī)護(hù)理方案
- 2024至2030年中國(guó)調(diào)味品市場(chǎng)前景預(yù)測(cè)及投資研究報(bào)告
- 【美妝產(chǎn)品的直播帶貨營(yíng)銷策略探究:以花西子彩妝為例12000字(論文)】
- 2024年浙江省寧波市外事服務(wù)中心招聘2人歷年(高頻重點(diǎn)復(fù)習(xí)提升訓(xùn)練)共500題附帶答案詳解
評(píng)論
0/150
提交評(píng)論