




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C++自考?xì)v年真題小集.txt這是一個(gè)禁忌相繼崩潰的時(shí)代,沒人攔得著你,只有你自己攔著
自己,你的禁忌越多成就就越少。自卑有多種檔次,最高檔次的自卑表現(xiàn)為吹噓自己干什么
都是天才。全國2008年10月自學(xué)考試
C++程序設(shè)計(jì)試題
課程代碼:04737
一、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分)
在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫在題后的括號(hào)內(nèi)。
錯(cuò)選、多選或未選均無分。
1.對(duì)C++語言和C語言的兼容性,描述正確的是()
A.C++兼容C
B.C++部分兼容C
C.C++不兼容C
D.C兼容C++
2.在C++中使用流進(jìn)行輸入輸出,其中用于屏幕輸出的對(duì)象是()
A.cerr
B.cin
C.cout
D.cfile
3.對(duì)使用關(guān)鍵字new所開辟的動(dòng)態(tài)存儲(chǔ)空間,釋放時(shí)必須使用()
A.free
B.create
C.delete
D.realse
4.如沒有使用private關(guān)鍵字定義類的數(shù)據(jù)成員,則默認(rèn)為()
A.private
B.public
C.protected
D.friend
5.使用值傳遞方式將實(shí)參傳給形參,下列說法正確的是()
A.形參是實(shí)參的備份
B.實(shí)參是形參的備份
C.形參和實(shí)參是同一對(duì)象
D.形參和實(shí)參無聯(lián)系
6.在函數(shù)調(diào)用時(shí),如某一默認(rèn)參數(shù)要指明一個(gè)特定值,則有()
A.其之前所有參數(shù)都必須賦值
B.其之后所有參數(shù)都必須賦值
C.其前、后所有參數(shù)都必須賦值
D.其前、后所有參數(shù)都不必賦值
7.設(shè)存在函數(shù)intmax(int,int)返回兩參數(shù)中較大值,若求22,59,70三者中最大值,
下列表達(dá)式不正確的是()
A.intm=max(22,max(59,70));
B.intm=max(max(22,59),70);
C.intm=max(22,59,70);
D.intm=max(59,max(22,70));
8.下列哪個(gè)類型函數(shù)不適合聲明為內(nèi)聯(lián)函數(shù)()
A.函數(shù)體語句較多
B.函數(shù)體語句較少
C.函數(shù)執(zhí)行時(shí)間較短
D.函數(shù)執(zhí)行時(shí)間過長
9.intFunc(int,int);不可與下列哪個(gè)函數(shù)構(gòu)成重載()
A.intFunc(int,int,int);
B.doubleFunc(int,int);
C.doubleFunc(double,double);
D.doubleFunc(int,double);
10.對(duì)類中聲明的變量,下列描述中正確的是()
A.屬于全局變量
B.只屬于該類
C.屬于該類,某些情況下也可被該類不同實(shí)例所共享
D.任何情況下都可被該類所有實(shí)例共享
11.類的私有成員可在何處訪問()
A.通過子類的對(duì)象訪問
B.本類及子類的成員函數(shù)中
C.通過該類對(duì)象訪問
D.本類的成員函數(shù)中
12.如果沒有為一個(gè)類定義任何構(gòu)造函數(shù)的情況下,下列描述正確的是()
A.編譯器總是自動(dòng)創(chuàng)建一個(gè)不帶參數(shù)的構(gòu)造函數(shù)
B.這個(gè)類沒有構(gòu)造函數(shù)
C.這個(gè)類不需要構(gòu)造函數(shù)
D.該類不能通過編譯
13.?個(gè)類可包含析構(gòu)函數(shù)的個(gè)數(shù)是()
A.0個(gè)
B.1個(gè)
C.至少一個(gè)
D.0個(gè)或多個(gè)
14.this指針存在的目的是()
A.保證基類公有成員在子類中可以被訪問
B.保證每個(gè)對(duì)象擁有自己的數(shù)據(jù)成員,但共享處理這些數(shù)據(jù)成員的代碼
C.保證基類保護(hù)成員在子類中可以被訪問
D.保證基類私有成員在子類中可以被訪問
15.下列關(guān)于類的權(quán)限的描述錯(cuò)誤的是()
A.類本身的成員函數(shù)只能訪問自身的私有成員
B.類的對(duì)象只能訪問該類的公有成員
C.普通函數(shù)不能直接訪問類的公有成員,必須通過對(duì)象訪問
D.一個(gè)類可以將另一個(gè)類的對(duì)象作為成員
16.在編譯指令中,宏定義使用哪個(gè)指令()
A.ttinclude
B.ttdefine
C.#if
D.#else
17.設(shè)類A將其它類對(duì)象作為成員,則建立A類對(duì)象時(shí),下列描述正確的是()
A.A類構(gòu)造函數(shù)先執(zhí)行
B.成員構(gòu)造函數(shù)先執(zhí)行
C.兩者并行執(zhí)行
D.不能確定
18.下列描述錯(cuò)誤的是()
A.在創(chuàng)建對(duì)象前,靜態(tài)成員不存在
B.靜態(tài)成員是類的成員
C.靜態(tài)成員不能是虛函數(shù)
D.靜態(tài)成員函數(shù)不能直接訪問非靜態(tài)成員
19.對(duì)于友元描述正確的是()
A.友元是本類的成員函數(shù)
B.友元不是本類的成員函數(shù)
C.友元不是函數(shù)
D.友元不能訪問本類私有成員
20.在哪種派生方式中,派生類可以訪問基類中的protected成員()
A.public和private
B.public和protected
C.protected和private
D.僅protected
二、填空題(本大題共20小題,每小題1分,共20分)
請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。
21.設(shè)要把一個(gè)文件輸出流對(duì)象myFile與文件“f:\myText.txt相關(guān)聯(lián),所用的C++語句
是:。
22.C++中ostream類的直接基類是。
23.運(yùn)算符[]只能用運(yùn)算符來重載,不能用友元運(yùn)算符來重載。
24.定義虛函數(shù)所用的關(guān)鍵字是。
25.vector類中用于返回向量中第1個(gè)對(duì)象的方法是。
26.在C++中,利用向量類模板定義?個(gè)具有20個(gè)char的向量E,其元素均被置為字符't',
實(shí)現(xiàn)此操作的語句是。
27.類的繼承是指子類繼承基類的和成員函數(shù)。
28.不同對(duì)象可以調(diào)用相同名稱的函數(shù),但可導(dǎo)致完全不同的行為的現(xiàn)象稱為。
29.指令指示編譯器將一個(gè)源文件嵌入到帶該指令的源文件之中。
30.設(shè)類A有成員函數(shù)
voidFun(void);
若要定義一個(gè)指向類成員函數(shù)的指針變量pafn來指向Fun,該指針變量的聲明語句是:
31.設(shè)在程序中使用如下語句申請(qǐng)了一個(gè)對(duì)象數(shù)組:
Point*ptr=newPoint[2];
則在需要釋放ptr指向的動(dòng)態(tài)數(shù)組對(duì)象時(shí);所使用的語句是—
32.在保護(hù)派生中,基類權(quán)限為Private的成員在派生類中
33.類A有如下成員函數(shù)
intA::fun(doublex){return(int)x/2;)
intA::fun(intx){returnx*2;}
設(shè)a為類A的對(duì)象,在主函數(shù)中有ints=a.fun(6.0)+a.fun(2),則執(zhí)行該語句后,s的值
為________o
34.對(duì)象傳送的消息一般由3部分組成:接收對(duì)象名、調(diào)用操作名和o
35.將指向?qū)ο蟮闹羔樧鳛楹瘮?shù)參數(shù),形參是對(duì)象指針,實(shí)參是對(duì)象的_______o
36.在使用string類的find成員函數(shù)來檢索主串中是否含有指定的子串時(shí),若在主事中不
含指定的子串,find函數(shù)的返回值是________。
37.在C++中,聲明布爾類型變量所用的關(guān)鍵字是o
38.執(zhí)行下列代碼
inta=29,b=100;
cout〈程序的輸出結(jié)果是:_.o
39.執(zhí)行下列代碼
cout<<〃Hex:〃?hex?255;
程序的輸出結(jié)果為O
40.C++語言中可以實(shí)現(xiàn)輸出一個(gè)換行符并刷新流功能的操控符是_______o
三、改錯(cuò)題(本大題共5小題,每小題2分,共10分)
下面的類定義中有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并給出修改意見。
41.ttinclude
main(){
intx=5,y=6;
constint*p=&x;
*p=y;
cout<<*p<)
42.^include
classf{
private:intx,y;
public:fl(){x=0;y=0;}
print(){cout<}
main(){
fa;
a.fl(l,1);
a.print();
)
43.ttinclude
classf{
private:intx=0,y=0;
public:voidfl(inta,intb){x=a;y=b;}
voidget(){cout<};
main(){
fa;
a.fl(1,3);
a.get();
)
44.ttinclude
classpoint{private:floatx;
public:voidf(floata){x=a;}
voidf(){x=0;}
friendfloatmax(pointfea,point&b);
);
floatmax(point&a,point&b)
{return(a.x>b.x)?a.x:b.x;)
main(){
pointa,b;
a.f(2.2);b.f(3.3);
cout<}
45.^include
template
classf{
private:Tx,y;
public:voidfl(Ta,Tb){x=a;y=b;}
Tmax(){retum(x>y)?x:y;}
};
main(){
fa;
a.fl(1.5,3.8);'
cout<)
四、完成程序題(本大題共5小題,每小題4分,共20分)
46.完成下面類中的成員函數(shù)的定義。
classpoint
(
private:
intm,n;
public:
point(int,int);
point(point&);
};
point::point(inta,intb)
(
m=a;
_________=b;
)
point::point()
m二t.m;
n=t.n;
)
47.下面是一個(gè)輸入半徑,輸出其面積和周長的C++程序,在下劃線處填上正確的語句。
#include
usingnamespacestd;
pi=3.14159;
voidmain()
(
doubler;
cout<<"r=/,;
double1=2.0*pi*r;
doubles=pi*r*r;
cout<<"\nThelongis:"<cout?,zTheareais:"<}
48.在下劃線處填上缺少的部分。
ttinclude
^include
usingnamespacestd;
classcomplex
(
public:
intreal;
intimag;
complex(intr=0,inti=0)
(
real二r;
imag=i;
)
};
complexoperator+(,complex&b)
(
intr=a.real+b.real;
inti=a.imag+b.imag;
return;
}
voidmain()
(
complexx(l,2),y(3,4),z;
z=x+y;
cout<}
49.程序的輸出結(jié)果如下:
1,9
50,30
請(qǐng)根據(jù)輸出數(shù)據(jù)在下面程序中的下劃線處填寫正確的語句。
源程序如下:
#include
usingnamespacestd;
classbase
(
private:
intm;
public:
base(){};
base(inta):m(a){}
intget(){returnm;}
voidset(inta){m=a;}
);
voidmain()
(
base*ptr=newbase[2];
ptr->set(30);
ptr=;
ptr->set(50);
basea[2]={l,9};
cout<cout<get()?,/,";
ptr=ptr-l;
cout<<<delete[]ptr;
)
50.在下面橫線處填上求兩個(gè)浮點(diǎn)數(shù)之差的cha函數(shù)的原型聲明、調(diào)用方法。
#include
usingnamespacestd;
voidmain()
(
floata,b;
//函數(shù)cha的原型聲明
a=12.5;
b=6.5;
floatc=;//調(diào)用函數(shù)cha
cout<}
floatcha(floatx,floaty)
(
floatw;
w=x-y;
returnw;
)
五、程序分析題(本大題共4小題,每小題5分,共20分)
51.給出下面程序的輸出結(jié)果。
#include
template
classSample
(
Tn;
public:
Sampledi){n=i;}
intoperator==(Sample&);
};
template
intSample::operator==(Sample&s)
(
if(n==s.n)
return1;
else
return0;
)
voidmain()
(
Samplesl(2),s2(3);.
cout?"si與s2的數(shù)據(jù)成員〃<?sl=二s2?〃相等":"不相等〃)<Samples3(2.5),
s4(2.5);
cout<<〃s3與s4的數(shù)據(jù)成員〃<<(s3=s4?"相等":〃不相等〃X}
52.給出下面程序的輸出結(jié)果。
#include
usingnamespacestd;
template
Tmax(Tml,Tm2)
{return(ml>m2)?ml:m2:}
voidmain(){
cout<cout<}
53.給出下面程序的輸出結(jié)果
#include
usingnamespacestd;
classA{
public:
intx;
A(){)
A(inta){x=a;}
intget(inta){returnx+a;}};
voidmain(){
Aa(8);
int(A::*p)(int);
p=A::get;
cout<<(a.*p)(5)<A*pi=&a;
cout?(pi->*P)(7)<54.給出下面程序的輸出結(jié)果。
include
#include
usingnamespacestd;
classBook{
char*title;
char*author;
intnumsold;
public:
Book(){}
Book(constchar*strl,constchartstr2,constintnum){
intlen=strlen(strl);
title=newchar[len+1];
strcpy(title,strl);
len=strlen(str2);
author=newchar[len+1];
strcpy(author,str2);
numsold=num;}
voidsetbook(constchar*strl,constchartstr2,constintnum){
intlen=strlen(strl);
title=newchar[len+1];
strcpy(title,strl);
len=strlen(str2);
author=newchar[len+1];
strcpy(author,str2);
numsold二num;
}
?Book(){
deletetitle;
deleteauthor;
)
voidprint(ostream&output){
output<<"書名:"<output<<"作者:"<output*"月銷售
量:〃<).
};
voidmain(){
Bookobjl("數(shù)據(jù)結(jié)構(gòu)〃,〃嚴(yán)蔚敏〃,200),obj2;
objl.print(cout);
obj2.setbook(〃C++語言程序設(shè)計(jì)",〃李春葆〃,210);
obj2.print(cout);
)
六、程序設(shè)計(jì)題(本大題共1小題,共10分)
55.在三角形類TRI實(shí)現(xiàn)兩個(gè)函數(shù),功能是輸入三個(gè)頂點(diǎn)坐標(biāo)判斷是否構(gòu)成三角形
ttinclude
#include
classpoint{
private:floatx,y;
public:point(floata,floatb){x=a;y=b;}
point(){x=0;y=0;},
voidset(floata,floatb){x=a;y=b;}
floatgetx(){returnx;}
floatgety(){returny;}
);
classtri(
pointx,y,z;
floatsi,s2,s3;
public;...settri(....);//用于輸入三個(gè)頂點(diǎn)坐標(biāo)
....test(....);//用于判斷是否構(gòu)成三角形
);請(qǐng)寫出兩個(gè)函數(shù)的過程(如果需要形式參數(shù),請(qǐng)給出形參類型和數(shù)量,以及返回值
類型
全國2009年1月自學(xué)考試
C++程序設(shè)計(jì)試題
課程代碼:04737
一、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分)
在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫在題后的括號(hào)內(nèi)o
錯(cuò)選、多選或未選均無分。
1.C++源程序文件擴(kuò)展名為()
A..cpp
B..h
C..lib
D..obj
2.在C++中使用流進(jìn)行輸入輸出,其中專用于從鍵盤進(jìn)行輸入的流是()
A.cerr
B.cin
C.cout
D.cfile
3.包含自定義頭文件file,h的預(yù)處理指令是()
A.#define<file.h>
B.#includefile,h
C.^definefile,h
D.#include,zfile.h〃
4.用于標(biāo)識(shí)十六進(jìn)制前綴或后綴是()
A.元
B.后綴L或e
C.前綴零
D.前綴Ox
5.設(shè)存在整型變量intx,則下列句與其它三項(xiàng)含義不同的是()
A.int*p=&x;
B.int&p=x;
C.int&p=x;
D.int&p=x;
6.在定義類成員時(shí),為產(chǎn)生封裝性,則需使用哪個(gè)關(guān)鍵字()
A.public
B.publish
C.protected
D.private
7,設(shè)函數(shù)voidswap(int&,int&)將交換兩形參的值,如兩整型變量inta=10;intb=15;
則執(zhí)行swap(a,b)后,a、b值分別為()
A.10,10
B.10,15
C.15,10
D.15,15
8.函數(shù)默認(rèn)參數(shù)在函數(shù)原型中說明,默認(rèn)參數(shù)必須放在參數(shù)序列的()
A.前部
B.中部
C.后部
D.兩端
9.設(shè)存在函數(shù)intmin(int,int)返回兩參數(shù)中較小值,若求15,26,47三者中最小值,下
列表達(dá)式中錯(cuò)誤的是()
A.intm=min(min(15,26),min(15,47));
B.intm=min(15,26,47);
C.intm=min(15,min(47,26));
D.intm=min(min(47,26),16);
10.下列函數(shù)不能和函數(shù)voidprint(char)構(gòu)成重載的是()
A.intprint(int);
B.voidprint(char,char);
C.intprint(char);
D.voidprint(int,int);
11.在下列成對(duì)的表達(dá)式中,運(yùn)算結(jié)果類型相同的一對(duì)是()
A.7/2和7.0/2.0
B.7/2.0和7/2
C7.0/2和7/2
D.7.0/2.0和7.0/2
12.內(nèi)聯(lián)函數(shù)的特點(diǎn)是()
A.減少代碼量,加快訪問速度
B.減少代碼量,減緩訪問速度
C.增加代碼量,減緩訪問速度
D.增加代碼量,加快訪問速度
13.類的私有成員可在何處被訪問()
A.本類的成員函數(shù)中
B.本類及子類的成員函數(shù)中
C.通過對(duì)象名在任何位置
D.不可訪問
14.類的構(gòu)造函數(shù)在以下什么情況下會(huì)被自動(dòng)調(diào)用()
A.定義成員函數(shù)時(shí)
B.定義對(duì)象時(shí)
C.定義數(shù)據(jù)成員時(shí)
D.定義友元函數(shù)時(shí)
15.下列關(guān)于析構(gòu)函數(shù)描述正確的是()
A.可以重載
B.函數(shù)體中必須有delete語句
C.返回類型必須是void類型
D.不能指定返回類型
16.設(shè)有函數(shù)TSum(Tx,Ty){returnx+y;),其中T為模板類型,則下列語句中對(duì)該函數(shù)
錯(cuò)誤的使用是()
A.Sum(l,2);
B.Sum(3.0,2.2);
CSum('A','C');
D.Sum("A〃,"C");
17.下列哪個(gè)編譯指令屬于條件編譯指令()
A.^include
B.^define
C.#else
D.Spragma
18.關(guān)于類的靜態(tài)成員函數(shù)描述錯(cuò)誤的是()
A.在創(chuàng)建對(duì)象前不存在
B.不能說明為虛函數(shù)
C.不能直接訪問非靜態(tài)函數(shù)
D.不是對(duì)象的成員
19.如果類A被聲明成類B的友元,則()
A.類A的成員即類B的成員
B.類B的成員即類A的成員
C.類A的成員函數(shù)不得訪問類B的成員
D.類B不一定是類A的友元
20.派生類的對(duì)象可以訪問以下那種情況繼承的基類成員()
A.私有繼承的私有成員
B.公有繼承的私有成員
C.私有繼承的保護(hù)成員
D.公有繼承的公有成員
二、填空題(本大題共20小題,每小題1分,共20分)
請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。
21.若使用標(biāo)準(zhǔn)輸出流把整型變量a的值輸出到屏幕上,實(shí)現(xiàn)此操作的C++語句是。
22.C++將數(shù)據(jù)從一個(gè)對(duì)象流向另一個(gè)對(duì)象的流動(dòng)抽象為“流”,從流中獲取數(shù)據(jù)的操作稱為
23.執(zhí)行下列代碼
intb=100;
cout?/zllex:z/?hex<<b;
程序的輸出結(jié)果是。
24.靜態(tài)聯(lián)編所支持的多態(tài)性稱為的多態(tài)性。
25.C++程序必須有且只有一個(gè)主函數(shù),其函數(shù)名為。
26.寫出聲明一個(gè)復(fù)數(shù)對(duì)象的語句,并使該對(duì)象被初始化為2.2+1.3i,此聲明語句是o
27.若有函數(shù)定義為:
intadd(intml=0,intm2=2,intm3=4)
{returnml+m2+m3;}
在主函數(shù)中有ints=add(l)+add(0,l)+add(0,1,2);
則執(zhí)行此語句后s的值為。
28.C++中使用關(guān)鍵字說明函數(shù)為內(nèi)聯(lián)函數(shù)。
29.在源程序中有宏定義:#definePI3.14,則若不想使該宏定義影響到程序的其它地方,
可以使用刪除該宏定義。
30.類和其它數(shù)據(jù)類型不同的是,組成這種類型的不僅可以有數(shù)據(jù),還可以有對(duì)數(shù)據(jù)進(jìn)行操作
的。
31.有下列代碼inta=0;doubleb=0;cin?a?b;當(dāng)用鍵盤輸入1.25時(shí),b=。
32.對(duì)于類Point而言,其析構(gòu)函數(shù)的定義原型為____o
33.對(duì)象成員構(gòu)造函數(shù)的調(diào)用順序取決于這些對(duì)象在類中說明的順序,與它們?cè)诔蓡T初始化列
表中給出的順序______O
34.類的簡單成員函數(shù)是指聲明中不含、volatile,static關(guān)鍵字的函數(shù)。
35.與操作對(duì)象的數(shù)據(jù)類型相互獨(dú)立的算法稱為____。
36.從一個(gè)或多個(gè)以前定義的類產(chǎn)生新類的過程稱為o
37.在vector類中向向量尾部插入一個(gè)對(duì)象的方法是____。
38.C++中用于動(dòng)態(tài)創(chuàng)建對(duì)象,并返回該對(duì)象的指針的關(guān)鍵字是o
39.C++的流類庫預(yù)定義的與標(biāo)準(zhǔn)輸出設(shè)備相聯(lián)接的流是____。
40.執(zhí)行下列代碼
cout<<noshowpoint<<123.0;
程序輸出結(jié)果是O
三、改錯(cuò)題(本大題共5小題,每小題2分,共10分)
下面的類定義中有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并給出修改意見。
41.#include<iostream.h>
classf{
private:floatx,y;
public:f(floata,floatb){x=a;y=b;}
floatmax(){return(x<y)?x:y;}//求最大值
};
main(){
fa(l.5,3.8);
cout<<a.max()<<endl;
}
42.#include<iostream.h>
classtest{
private:intx;
public:test(inta){x=a;}
voidset(inta){x=a;}
voidget(){cout<<x<<endl;}
)
main(){
consttesta(3);
A.set⑸;
A.get();
}
43.#include<iostream.h>
classpoint{
private:floatx,y;
public:fl(floata,floatb){x=a;y=b;}
point(){x=0;y=0;}
voidgetx(){cout<<x<<endl;}
voidgety(){cout?y?endl;}
};
voidprint(pointa){cout?a.x?endl;}
main(){
pointa;
A.fl(3.0,5.0);
print(a);
)
44.#include<iostream.h>
classf(
private:intx,y;
public:fl(inta,intb){x=a;y=b;}
voidprint(){cout?x?y<<endl;}
};
mainO{
fa;
A.fl(1.5,1.8);
A.print();
)
45.#include<iostream.h>
main(){
intx=6;
constint*p二x;
cout<<*p?endl;
)
四、完成程序題(本大題共5小題,每小題4分,共20分)
46.完成下面程序,使其輸出10,并在退出運(yùn)行時(shí)正確釋放分配給指針的存儲(chǔ)空間。
#include<iostream>
usingnamespacestd;
voidmain()
(
int*a,*p;
a=newint(10);
P=;
cout<<*p<<endl;
47.#include<iostream>
usingnamespacestd;
classbase
(
private:intx;
public:base(inta){x=a;}
intget(){returnx;}
voidshowbase(){cout?,,x="z<<x<<endl;}
);
classDerived:publicbase
{private:inty;
public:Derived(inta,intb):base(a){y=b;}
voidshowderivedO
{cout<<,,x=,,<<get()<<",y=zz<<y<<endl;}
);
voidmain()
(
baseb(3);
Derivedd(6,7);
b.showbase();
d.showderivedO;
b.showbase();
bl.showbase();
base*pb=&bl;
pb—>showbase();
d.showderivedO;
b.showbase();
)
輸出結(jié)果如下:
x=3
x=6,y=7
x=6
x=6
x=6
x=6,y=7
x=6
48.下面程序的運(yùn)行結(jié)果如下:
B::display()
C::display()
在下劃線處填上缺少的部分。源程序如下:
#include<iostream>
usingnamespacestd;
classB
(
public:
display(){cout<<〃B::display()〃<<endl;
);
classC:publicB
public:
display(){cout?,,C::display(),z?endl;}
);
voidfun(B*p)
(
p->display();
)
voidmain()
(
Bb,*pb;
Cc;
pb=&b;
fun(pb);
pb=&c;
fun(pb);
)
49.下面程序的運(yùn)行結(jié)果如下:
Thisislinel
Thisisline2
Thisisline3
在下劃線處填上缺少的部分。源程序如下:
ttinclude<iostream>
ttinclude
usingnamespacestd;
voidmain()
(
fstreamfin,fout;
fout.open(〃my.txt〃,ios::out);
if(!fout.is_open())
return;
for(inti=0;i<3;i=i+l)
fout?/zThisislinez,<<i+l?endl;
fout.closeO;
fin.open(〃my.txt〃,ios::in);
if(!fin.is_open())
return;
charstr[100];
while()
(
fin.getline(str,100);
cout<<str<<endl;
)
fin.close();
)
50.在下劃線處填上缺少的部分。源程序如下:
#include<iostream>
usingnamespacestd;
Tfun(Tx)
(
______y;
y=x*x-T(5);
returny;
)
voidmain()
(
floata=2;
cout?fun(a);
)
五、程序分析題(本大題共4小題,每小題5分,共20分)
51.請(qǐng)寫出myTextl.txt文本文件中的內(nèi)容
#include<iostream>
#include<string>
usingnamespacestd;
#include<fstream>
voidmain()
(
ofstreammyFilel;
myFilel.open(z/myTextl.txt〃);
cout?z/EnterthedatainChineseformat(e.g.,2008,May25):/z<<endl;
stringDate(“2008,January1");
stringYear=Date,substr(0,4);
intk=Date.find(",");
inti二Date,find(〃〃);
stringMonth=Date,substr(k+1,i-k-l);
stringDay=Date.substr(i+1,2);
stringNewDate=Day+〃〃+Month+〃〃+Year;
myFilel?,zoriginaldate:z,<<Date?endl;
myFi1e1?,zConverteddate:,z<<NewDate<<endl;
myFilel.close();
)
52.給出下面程序的輸出結(jié)果
#include<iostream>
usingnamespacestd;
classSimple
intx,y;
public:
Simple(){x=y=O;}
Simple(inti,intj){x=i;y=j;}
voidcopy(Simple&s);
voidsetxy(inti,intj){x=i;y=j;}
voidprint()(cout?/,x=,/<<x<</,,y=z,<<y<<endl;}
);
voidSimple::copy(Simple&s)
(
x=s.x;y=s.y;
)
voidfunc(Simplesi,Simple&s2)
{
si.setxy(30,40);
s2.setxy(70,80);
)
voidmain()
(
Simpleobjl(1,2),obj2;
obj2.copy(objl);
func(objl,obj2);
objl.print();
obj2.print();
)
53.給出下面程序的輸出結(jié)果
#includez/iostream.h〃
intmain()
(
inti=17;
while(i>=10)
if(―i%4=3)continue;
else
cout?,zi=,z<<i―<<endl;
)
54.給出下面程序的輸出結(jié)果
#include<iostream>
usingnamespacestd;
voidmain()
(
intnum=300;
int&ref=num;
cout?ref;
ref=ref-100;
cout<<"〃<<num;
num=num-50;
cout<<,zzz<<ref<<endl;
)
六、程序設(shè)計(jì)題(本大題共1小題,共10分)
55.定義堆棧類模板Stack(先進(jìn)后出),棧的大小由使用者確定。要求該類模板對(duì)外提供
如下二種基本操作:
(1)push入棧(2)pop出棧,用數(shù)組來實(shí)現(xiàn)
#include<iostream>
usingnamespacestd;
template<classT,intsize>
classStack{
Tx[size];
intcurrent;
public:
Stack(){current=0;}
....push(....);
....pop(....);
};
請(qǐng)寫出兩個(gè)函數(shù)的過程(如果需要形式參數(shù),請(qǐng)給出形參類型和數(shù)量,以及返回值類型)
全國2009年10月自學(xué)考試
C++程序設(shè)計(jì)試題
課程代碼:04737
一、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分)
在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫在題后的括號(hào)內(nèi)。
錯(cuò)選、多選或未選均無分。
1.對(duì)C++中主函數(shù)描述正確的是()
A.名稱為main,可為多個(gè)
B.名稱不限,可為多個(gè)
C.名稱為main,必須有且只能有一個(gè)
D.名稱不限,必須有且只能有一個(gè)
2.調(diào)用聲明為intresult(inta,intb)的函數(shù)時(shí),正確的方法是()
A.result(1,2)
B.result(1)
C.result(0.1,0.3)
D.result(1,2,3)
3.用于包含C++標(biāo)準(zhǔn)庫iostream的預(yù)處理指令是()
A.ftdefine
B.#include
C.#define<iostream,
D.#include'iostream'
4.無類型標(biāo)識(shí)符是指()
A.void
B.bool
C.short
D.long
5.從本質(zhì)上看,引用是被引用變量的()
A.拷貝
B.別名
C.復(fù)制
D.克隆
6.下面關(guān)于數(shù)組的初始化正確的是()
A.charstr[]={'a','b','c'};
B.charstr[2]={'a','b','c'};
C.charstr[l][2]={{,a,,'b*},{'e','d'}};
D.charstr[][]={'a'b'c'};
7.C++類中定義的成員默認(rèn)訪問屬性為()
A.public
B.private
C.protected
D.friend
8.決定C++語言中函數(shù)的返回值類型的是()
A.return語句中的表達(dá)式類型
B.調(diào)用該函數(shù)時(shí)系統(tǒng)隨機(jī)產(chǎn)生的類型
C.調(diào)用該函數(shù)時(shí)的主調(diào)用函數(shù)類型
D.在定義該函數(shù)時(shí)所指定的數(shù)據(jù)類型
9.函數(shù)int&min(int&,int&)返回參數(shù)中較小者,設(shè)有兩整型變量inta=10;intb=15;
在執(zhí)行語句min(a,b)-;之后,a,b值分別為()
A.9,14
B.9,15
C.10,14
D.10,15
10.聲明函數(shù)為內(nèi)聯(lián)函數(shù)時(shí)所使用的關(guān)鍵字為()
A.const
B.inline
C.short
D.signed
IL函數(shù)intsum(inta=l,intb=l,intc=3)可與下列哪個(gè)函數(shù)同時(shí)聲明()
A.doublesum(int);
B.charsum(int,int);
C.intsum(double);
D.intsum(int,int,int);
12.函數(shù)模板templatevoidFunc(T,T)可具有下列哪種實(shí)例化形式()
A.voidFunc(float,int)
B.voidFunc(char,char)
C.voidFunc(int,double)
D.voidFunc(bool,float)
13.下列訪問成員的方式哪個(gè)是正確的()
A.對(duì)象名,對(duì)象成員名
B.對(duì)象指針名.對(duì)象成員名
C.對(duì)象名f對(duì)象成員名
D.類名一對(duì)象成員名
14.對(duì)類A,復(fù)制構(gòu)造函數(shù)的原型是()
A.A::A(constA&);
B.A::A(constA*);
C.A::A(constA);
D.A::A();
15.對(duì)classpoint,如使用point*ptr=newpoint[2];創(chuàng)建對(duì)象數(shù)組,則刪除此數(shù)組使用
的語句是()
A.deleteptr[2];
B.deletet]ptr;
C.deleteptr[];
D.delete[2]ptr;
16.下列哪個(gè)編譯指令不屬于條件編譯指令()
A.#if
B.#else
C.#endif
D.tterror
17.類A中存在靜態(tài)數(shù)據(jù)成員x,設(shè)a和b是類A的兩個(gè)對(duì)象,在執(zhí)行a.x=10之后,b.x
的值為()
A.未初始化
B.等于a.x
C.等于0
D.隨機(jī)
18.使用string/庫操縱字符串時(shí),將兩個(gè)字符串連接成一個(gè)字符串的函數(shù)是()
A.strlen()
B.strcap()
C.strcat()
D.strcmp()
19.基類中的public成員,通過public派生,其在派生類中的訪問權(quán)限為()
A.不可訪問
B.private
C.protected
D.public
20.不同對(duì)象調(diào)用同名函數(shù),但導(dǎo)致完全不同行為的現(xiàn)象稱為()
A.抽象
B.封裝
C.繼承
D.多態(tài)性
二、填空題(本大題共20小題,每小題1分,共20分)
請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。
21.在C++語言的面向?qū)ο笤O(shè)計(jì)框架中,是程序的基本組成單元。
22.執(zhí)行代碼doublepi=3.1415192;cout<<setprecision(3)<<pi;程序的輸出結(jié)果
是?
23.C++語言提供的的基本控制結(jié)構(gòu)可以分為3種類型:順序結(jié)構(gòu)、和循環(huán)結(jié)構(gòu)。
24.要使用STL庫提供的對(duì)數(shù)組進(jìn)行降嘉排序算法,在源程序中需要包含的頭文件是o
25.在C++標(biāo)準(zhǔn)庫中,用類來表示復(fù)數(shù)。
26.將對(duì)象作為函數(shù)參數(shù),是將實(shí)參對(duì)象的傳遞給形參對(duì)象,這種傳遞是單向的。
27.C++函數(shù)的返回類型可以是除數(shù)組與以外的任何類型。
28.能提供封裝的C++關(guān)鍵字是。
29.在C++的類聲明中,用public關(guān)鍵字聲明的類成員的訪問權(quán)限是。
30.開發(fā)一個(gè)C++語言程序的步驟通常包括編輯、、連接、運(yùn)行和調(diào)試。
31.C++類中的_____函數(shù)在對(duì)象的生存期結(jié)束時(shí)被自動(dòng)調(diào)用。
32.友元函數(shù)可以存取類的、公有成員和保護(hù)成員。
33.若類的成員函數(shù)用關(guān)鍵字static進(jìn)行修飾,這樣的成員函數(shù)稱為。
34.在C++中,創(chuàng)建派生類對(duì)象時(shí)?,總是先從的初始化開始的。
35.類的繼承是指派生類繼承基類的數(shù)據(jù)成員和。
36.在C++中,利用向量類模板定義一個(gè)具有20個(gè)double的向量,其元素均被置為0.5,實(shí)
現(xiàn)此操作的語句是。
37.vector類中用于返回向量中的最后一個(gè)對(duì)象的方法是。
38.虛函數(shù)類似于重載函數(shù),但與重載函數(shù)的實(shí)現(xiàn)策略不同,對(duì)虛函數(shù)聲明時(shí)應(yīng)使用
關(guān)鍵字。
39.在C++中,雖然友元提供了類之間數(shù)據(jù)進(jìn)行訪問的?種方式,但它破壞了面向?qū)ο蟪绦蛟O(shè)
計(jì)的_______特性。
40.執(zhí)行下列代碼
cout<<showpoint<<123.0;程序的輸出結(jié)果是。
三、改錯(cuò)題(本大題共5小題,每小題4分,共20分)
下面的每個(gè)程序都有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并給出修改意見。
41.#include
usingnamespacestd;
intmain(){
intnum;max=10;num=1
while(num<max)num++;
cout<X"Num="?num;
return0;
)
42.#include
usingnamespacestd;
classA{
voidshow(){
cout<<"Hello!";
}
);
intmain(){
Aa;a.show();
return0;
)
43.#include
usingnamespacestd;
intmain()(
constintnum=20;
intscores[num];
for(inti=l;i<=num;i++){
scores[i]=i;
}
return0;
)
44.#include
usingnamespacestd;
classCMax{
private:
intxx;intyy;
public:
CMax(intx,inty)
{xx=x;yy=y;}
voidsetValue(intx,inty)
{xx=x;yy=y;}
intmax(){
returnxx>yy?xx:yy;
)
};
voidmain(){
CMaxm();
m.setValue(20,30);
cout<<"Max="<}
45.^include
usingnamespacestd;
classA{
public:
charname[255];
private:
char*getName()
{returnname;}
);
classB:publicA{
public:
B(char*n){
strcpy(name,n);
)
};
voidmain(){
Bb(〃Hello!");
cout<<"Name:"<}
四、完成程序題(本大題共5小題,每小題4分,共20分)
46,將下面程序補(bǔ)充完整,使程序輸出結(jié)果為:
Begin
Welcome
Show
End
程序如下:
#include
usingnamespacestd;
classA{
public:
cout<<〃Begin"<}
voidshow(){
cout<<"Show"<}
cout<<z,End"<}
);
Aobject;
intmain(){
cout?,zWelcome<object.show();
return0;
)
47.請(qǐng)將下面程序補(bǔ)充完整,使程序可以正常打印9X9乘法口訣。
#include
usingnamespacestd;
classA{
private:
inta;intb;
public:
{a=x;b=y;}
voidset(intx,inty)
{a=x;b=y;}
voiddisplay(){
cout<}
};
intmain(){
Aa(l,1);
for(inti=l;i<=9;i++){
for(intj=l;____;j++){
a.set(j,i);
a.display();
cout<<"";
}
cout<)
return0;
)
48.將下面程序補(bǔ)充完整,使程序可以輸入學(xué)生信息并計(jì)算平均成績。
#include
#include
usingnamespacestd;
classStudent{
private:
charname[255];
intscore[10];
public:
Student(charn[],ints[]){
for(inti=0;i<10;i++){
score[i]=s[i];
)
)
voidShow(){
intsum=0;
for(inti=0;i<10;i++){
)
cout<<〃名字:“<<name?w,平均成績:〃<}
);
voidmain(){
charname[255];
intscore[10];
cout?ff姓名:";cin?name;
for(inti=0;i<10;i++){
cout<<"成績"<cin〉〉score[i];
}
Students(name,score);
s.Show();
}
49.將下面程序補(bǔ)充完整,使程序可以正常運(yùn)行,并釋放內(nèi)存。
#include
classA{
private:
T*data;
intlength;
public:
A(intlen){
length=len;
data二newT[len];
)
?A()(
)
T&operator[](inti){
returndata[i];
}
};
intmain(){
Aobj(2);
obj[0]=l;
obj[l]=2;
cout<cout<return0;
}
50.將下面程序補(bǔ)充完整,使程序運(yùn)行結(jié)果為:
ClassA
ClassB
程序如下:
#include
#include
classA(
public:
virtualvoidGetA()=0;
};
classB:publicA(
private:
charstr[32];
public:
voidGetA(){
cout<<"ClassA"<}
constchar*GetB(){
)
B(char*s){
strcpy(str,s);
}
};
voidmain(){
A*a;
Bb(〃ClassB");
a=;
a->GetA();
cout<return;
)
五、程序分析題(本大題共2小題,每小題5分,共10分)
51.ttinclude
usingnamespacestd;
intmain(){
inti,j;
for(i=l;i<=4;i+=l)
for(j=2;j<=4;j+=j){
if(i+j<5)
cout<<"+f,;
else
cout<<"*";
return0;
52.ttinclude
usingnamespacestd;
classA{
inta;
public:
A(intaa=O){a=aa;}
-A(){cout<<〃DestructorA!”<};
classB:publicA{
intb;
public:
B(intaa=0,intbb=0):A(aa){b=bb;}
?B(){cout<<"DestructorB!?b?endl;}
);
voidmain(){
Bx(5),y(6,7);
)
六、程序設(shè)計(jì)題(本大題10分)
53.下面Shape類是?個(gè)表示形狀的抽象類,Area()為求圖形面積的函數(shù)。請(qǐng)從Shape類派
生梯形類(Trapezoid)、圓形類(Circle),三角形類(Triangle),并給出具體的求面積函
數(shù)。其中,所有派生類計(jì)算面積需要用到的參數(shù)由構(gòu)造函數(shù)給出,梯形面積計(jì)算需要上底、
下底和高,三角形面積需要底和高,圓形面積需要半徑。
形狀的抽象類聲明如下:考試大收集整理
classShape(
public:
virtualdoubleArea(
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 某大型房地產(chǎn)公司合同
- 小麥秸稈購銷合同
- 酒店管理與經(jīng)營合作協(xié)議
- 建筑工地承包食堂的合同
- 重慶市居間合同
- 人教版五年級(jí)下冊(cè)求最大公因數(shù)練習(xí)100題及答案
- Unit 5 Launching your career Apply for a summer job教學(xué)設(shè)計(jì)-2024-2025學(xué)年高中英語人教版(2019)選擇性必修第四冊(cè)
- 2025年云安全服務(wù)項(xiàng)目建議書
- 24《司馬光》教學(xué)設(shè)計(jì)-2024-2025學(xué)年語文三年級(jí)上冊(cè)統(tǒng)編版
- 油罐區(qū)智能防雷接地設(shè)計(jì)方案
- 人因工程學(xué)第1章人因工程學(xué)概述
- 熱烈歡迎領(lǐng)導(dǎo)蒞臨指導(dǎo)工作動(dòng)態(tài)PPT模板
- 生產(chǎn)管理的目標(biāo)QCDSM
- 戰(zhàn)地衛(wèi)生與救護(hù)教案培訓(xùn)講學(xué)
- 2022版《義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)》測試題
- 全面介紹現(xiàn)貨中遠(yuǎn)期交易
- 公安系防暴安全03安檢
- 四年級(jí)下冊(cè)音樂課件第一課時(shí)-感知音樂中的旋律三
- 部編版六年級(jí)道德與法治下冊(cè)《學(xué)會(huì)反思》教案
- 部編版四年級(jí)下冊(cè)語文教案(完整)
- T∕CIS 71001-2021 化工安全儀表系統(tǒng)安全要求規(guī)格書編制導(dǎo)則
評(píng)論
0/150
提交評(píng)論