




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
自學(xué)考試C++程序設(shè)計(jì)試題
課程代碼:04737
一、單項(xiàng)選擇題(本大題共20小題,每題1分,共20分)
1.對(duì)C++言語(yǔ)和C言語(yǔ)的兼容性,描述正確的選項(xiàng)是(A)
A.C++兼容CB.C++局部兼容CC.C++不兼容CD.C兼容C++
2.在C++中使用流進(jìn)行輸入輸出,其中用于屏幕輸出的對(duì)象是(C)
A.cerrB.cinC.coutD.cfile
(cerr:標(biāo)準(zhǔn)錯(cuò)誤輸出(非緩沖方法);cin:標(biāo)準(zhǔn)輸入;
clog標(biāo)準(zhǔn)錯(cuò)誤輸出(緩沖方法))
3.對(duì)使用關(guān)鍵字new所開(kāi)發(fā)的動(dòng)態(tài)存儲(chǔ)空間,釋放時(shí)必須使用(C)
A.freeB.createC.deleteD.realse
4.如沒(méi)有使用private關(guān)鍵字定義類的數(shù)據(jù)成員,則默認(rèn)為(A)
A.privateB.publicC.protectedD.friend
5.使用值傳遞方法將實(shí)參傳給形參,以下說(shuō)法正確的選項(xiàng)是(A)
A.形參是實(shí)參的備份B.實(shí)參是形參的備份C.形參利實(shí)參是同一對(duì)象D.形參和實(shí)參無(wú)
聯(lián)系
6.在函數(shù)調(diào)用時(shí),如某一默認(rèn)參數(shù)要指明一個(gè)特定值,則有(A)
A.其之前全部參數(shù)都必須賦值B.其之后全部參數(shù)都必須賦值C.其前、后全部參數(shù)都必須
賦值D.其前、后全部參數(shù)都不必賦值
7.設(shè)存在函數(shù)intmax(int,int)返回兩參數(shù)中較大值,假設(shè)求22,59,70三者中最大
值,以下表達(dá)式不正確的選項(xiàng)是(C)
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)
A.函數(shù)體語(yǔ)句較多B.函數(shù)體語(yǔ)句較少C.函數(shù)執(zhí)行時(shí)間較短D.函數(shù)執(zhí)行時(shí)間過(guò)長(zhǎng)
9.intFunc(int,int);不可與以下哪個(gè)函數(shù)構(gòu)成重載(B)
A.intFunc(int,int,int);B.doubleFunc(int,int);
C.doubleFunc(double,double);D.doubleFunc(int,double);
說(shuō)明:不能以形參名來(lái)區(qū)分函數(shù);不能以
函數(shù)返回值來(lái)區(qū)分函數(shù)。必須是形參的個(gè)
數(shù)或者類型不同才能構(gòu)成函數(shù)重載。
10.對(duì)類中聲明的變量.以下描述中TF確的選項(xiàng)是(C)
A.屬于全局變量B.只屬于該類C.屬于該類,某些情況下也可被該類不同實(shí)例所共享
D.任何情況下都可被該類全部實(shí)例共享
11.類的私有成員可在哪里訪問(wèn)(D)
A.通過(guò)子類的對(duì)象訪問(wèn)B.本類及子類的成員函數(shù)中C.通過(guò)該類對(duì)象訪問(wèn)D.本類的
成員函數(shù)中
12.如果沒(méi)有為一個(gè)類定義任何構(gòu)造函數(shù)的情況下,以下描述正確的選項(xiàng)是(A)
A.編譯器總是自動(dòng)創(chuàng)立一個(gè)不帶參數(shù)的構(gòu)造函數(shù)
B.這個(gè)類沒(méi)有構(gòu)造函數(shù)C.這個(gè)類不需要構(gòu)造函數(shù)D.該類不能通過(guò)編譯
13.一個(gè)類可包含析構(gòu)函數(shù)的個(gè)數(shù)是(B)
A.0個(gè)B.1個(gè)C.至少一個(gè)D.0個(gè)或多個(gè)
14.this指針存在的目的是(B)
A.保證基類公有成員在子類中可以被訪問(wèn)
B.保證每個(gè)對(duì)象擁有自己的數(shù)據(jù)成員,但共享處理這些數(shù)據(jù)成員的代碼
C.保證基類愛(ài)護(hù)成員在子類中可以被訪問(wèn)D.保證基類私有成員在子類中可以被訪問(wèn)
15.以下關(guān)于類的權(quán)限的描述錯(cuò)誤的選項(xiàng)是(A)
A.類本身的成員函數(shù)只能訪問(wèn)自身的私有成員B.類的對(duì)象只能訪問(wèn)該類的公有成員
C.一般函數(shù)不能直接訪問(wèn)類的公有成員,必須通過(guò)對(duì)象訪問(wèn)D.一個(gè)類可以將另一個(gè)類的
對(duì)象作為成員
16.在編譯指令中,宏定義使用哪個(gè)指令(B)
A.includeB.defineC.ifD.else
17.設(shè)類A將其它類對(duì)象作為成員,則建立A類對(duì)象時(shí),以下描述正確的選項(xiàng)是
(B)
A.A類構(gòu)造函數(shù)先執(zhí)行B.成員構(gòu)造函數(shù)先執(zhí)行C.兩者并行執(zhí)行D.不能確定
類的組合,描述的是一個(gè)類內(nèi)嵌其他類的對(duì)象作為成員的情況,它們之間的關(guān)系是一種包含
與被包含的關(guān)系。
在聲明一個(gè)組合類的對(duì)象時(shí),不僅它自身的構(gòu)造函數(shù)將被調(diào)用,而且還將調(diào)用其內(nèi)嵌對(duì)象的
構(gòu)造函數(shù)。這時(shí)構(gòu)造函數(shù)的調(diào)用順序是:
(1)按照內(nèi)嵌對(duì)象在組合類的聲明中出現(xiàn)的次序,依次調(diào)用內(nèi)嵌對(duì)象的構(gòu)造函數(shù);
(2)執(zhí)行本類構(gòu)造函數(shù)的函數(shù)體
析構(gòu)函數(shù)的調(diào)用執(zhí)行順序與構(gòu)造函數(shù)剛好相反。
18.以下描述錯(cuò)誤的選項(xiàng)是(A)
A.在創(chuàng)立對(duì)象前,靜態(tài)成員不存在B.靜態(tài)成員是類的成員
C.靜態(tài)成員不能是虛函數(shù)D.靜態(tài)成員函數(shù)不能直接訪問(wèn)非靜態(tài)成員
說(shuō)明:靜態(tài)成員函數(shù)可以直接訪問(wèn)該類的靜態(tài)數(shù)據(jù)和函數(shù)成員,而訪問(wèn)非靜態(tài)成員,必須通
過(guò)參數(shù)傳遞方法得到對(duì)象名,然后通過(guò)對(duì)象名來(lái)訪問(wèn)。
19.對(duì)于友元描述正確的選項(xiàng)是(B)
A.友元是本類的成員函數(shù)B.友元不是本類的成員函數(shù)C.友元不是函數(shù)D.友元不能訪問(wèn)
本類私有成員
20.在哪種派生方法中,派生類可以訪問(wèn)基類中的protected成員(B
A.publicprivateB.public^0protectedC.protectedprivateD.Rprotected
二、填空題(本大題共20小題,每題1分,共20分)
請(qǐng)?jiān)诿款}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。
21.設(shè)要把一個(gè)文件輸出流對(duì)象myFile與文件“f:\myText.txt相關(guān)聯(lián),所用的C++語(yǔ)句
是:myFile.open("f:\\myText.txt");。
22.C++中ostream類的直接基類是辿類。
23.運(yùn)算符]只能用成員運(yùn)算符來(lái)重載,不能用友元運(yùn)算符來(lái)重載。
24.定義虛函數(shù)所用的關(guān)鍵字是virtual。25.vector類中用于返回向量中第1個(gè)對(duì)象的方
法是front()。
26.在C++中,利用向量類模板定義一個(gè)具有20個(gè)char的向量E,具元素均被置為字符
't',完成此操作的語(yǔ)句是vector〈char>E(20,'t')。
27.類的繼承是指子類繼承基類的數(shù)據(jù)成員和成員函數(shù)。
28.不同對(duì)象可以調(diào)用相同名稱的函數(shù),但可導(dǎo)致完全不同的行為的現(xiàn)象稱為多態(tài)性或(類
的多態(tài)性)。
29.退指令指示編譯器將一個(gè)源文件嵌入到帶該指令的源文件之中。
30.設(shè)類A有成員函數(shù)
voidFun(void);
假設(shè)要定義一個(gè)指向類成員函數(shù)的指針變量pafn來(lái)指向Fun,該指針變量的聲明語(yǔ)句是:
void(A::Xpafn)(void);。
31.設(shè)在程序中使用如下語(yǔ)句申請(qǐng)了一個(gè)對(duì)象數(shù)組:
PointXptr=newPoint2];
則在需要釋放ptr指向的動(dòng)態(tài)數(shù)組對(duì)象時(shí),所使用的語(yǔ)句是delete]ptr;o
32.在愛(ài)護(hù)派生中,基類權(quán)限為Private的成員在派生類中不可訪問(wèn)。
33.類A有如下成員函數(shù)
intA::fun(doublex){return(int)x/2;}
intA::fun(intx){returnxX2;}
設(shè)a為類A的對(duì)象,在主函數(shù)中有ints二a.fun(6.0)+a.fun(2),則執(zhí)行該語(yǔ)句后,s的值
為
34.對(duì)象傳送的消息一般由3局部組成:接收對(duì)象名、調(diào)用操作名和必要的參數(shù)。
35.將指向?qū)ο蟮闹羔樧鳛楹瘮?shù)參數(shù),形參是對(duì)象指針,實(shí)參是對(duì)象的地址值。
36.在使用string類的find成員函數(shù)來(lái)檢索主串中是否含有指定的子串時(shí),假設(shè)在主串中
不含指定的子串,find函數(shù)的返回值是-1。
37.在C++中,聲明布爾類型變量所用的關(guān)鍵字是」2山。
38.執(zhí)行以下代碼
inta=29,b=100;
cout?setw(3)?a?b?endl;
程序的輸出結(jié)果是:29100o
39.執(zhí)行以下代碼
coutHex:"?hex?255;
程序的輸出結(jié)果為Hex:ffo
40.C++言語(yǔ)中可以完成輸出一個(gè)換行符并刷新流功能的操控符是3
三、改錯(cuò)題(本大題共5小題,每題2分,共10分)
下面的類定義中有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并給出修改意見(jiàn)。
41.include<iostream.h>
voidmain(){
intx=5,y=6;
constintXp二&x;
Xp=y;
cout?Xp?endl;
}
Xp=y;指針p所指向的為一常量,不能進(jìn)行左值操作
42.include<iostream.h>
classf{
private:intx,y;
public:fl(){x=0;y=0;}
print(){cout?x<</,?y?endl:}
11
voidmain(){
fa;
a.fl(l,1);
a.print();
}
a.fl(1,1);fl()調(diào)用時(shí)實(shí)參與形參數(shù)量不一致
43.include<iostream.h>
classf{
private:intx=0,y=0;
public:voidfl(inta,intb){x=a;y=b;}
voidget(){cout?x?,?y<<endl;}
voidmain(){
fa;
a.fl(1,3);
a.get();
}
private:intx=0,y=0;數(shù)據(jù)成員聲明時(shí)不同意直接賦值
44.include<iostream.h>
classpoint{private:floatx;
public:voidf(floata){x=a:}
voidf(){x=0;}
friendfloatmax(points,pointb);
};
floatmax(pointa,pointb)
{return(a.x>b.x)a.x:b.x;)
voidmain(){
pointa,b;
a.f(2.2);b.f(3.3);
cout?a.max(a,b);
)
cout?a.max(a,b);max()不是類的成員函數(shù),不能用a.max()方法調(diào)用
45.include<iostream.h>
template<classT>
classf{
private:Tx,y;
public:voidfl(Ta,Tb){x=a;y=b;}
Tmax(){return(x>y)x:y;}
);
voidmain(){
fa;
a.fl(1.5,3.8);'
cout?a.x?a.y?a.max()<<endl:
}
cout?a.x?a.y?a.max()?endl;x,y是私有類型,不能在主函數(shù)中直接使用
四、完成程序題(本大題共5小題,每題4分,共20分)
46.完成下面類中的成員函數(shù)的定義。
classpoint
{
private:
intm,n;
public:
point(int,int);
point(point&);
point::point(inta,intb)
m=a;
n二b;
}
point::point(point&t)
(
m=t.m;
n=t.n;
)
47.下面是一個(gè)輸入半徑,輸出其面積和周長(zhǎng)的C++程序,在下劃線處填上正確的語(yǔ)句。
include<iostream>
usingnamespacestd;
constdoublepi=3.14159;
voidmain()
{
doubler;
cout<<";
cin?r;
double1=2.OXpiXr;
doubles=piXrXr;
cout?M\nThelongis:“<<l?endl;
cout<<"Theareais:"?s<<endl;
48.在下劃線處填上缺少的局部。
include<iostream>
include<fstream>
usingnamespacestd;
classcomplex
(
public:
intreal:
intimag;
complex(intr=0,inti=0)
(
real=r;
imag=i;
}
);
complexoperator+(complex&a,complexb)
(
intr=a.real+b.real;
inti=a.imag+b.imag;
returncomplex(r,i);
voidmain()
complexx(l,2),y(3,4),z;
z=x+y;
cout?z.real<</,?z.imag?wi"?endl;
)
49.程序的輸出結(jié)果如下:
1,9
50.30
請(qǐng)依據(jù)輸出數(shù)據(jù)在下面程序中的下劃線處填寫正確的語(yǔ)句。
源程序如下:
include<iostream>
usingnamespacestd;
classbase
{
private:
intID;
public:
base(){};
base(inta):m(a){}
intget(){returnm;}
voidset(inta){m=a;}
};
voidmain()
{
baseXptr=newbase2];
ptr->set(30);
ptr=ptr+1;;
ptr->set(50);
basea2]={l,9};
cout?a0].get()<<”."?al].get()?endl:
cout?ptr->get()<<",";
ptr=ptr-l;
cout<<ptr->get()<<endl;
delete]ptr;
}
50.在下面橫線處填上求兩個(gè)浮點(diǎn)數(shù)之差的cha函數(shù)的原型聲明、調(diào)用方法。
include<iostream>
usingnamespacestd;
voidmain()
{
floata,b;
floatcha(float,float);//函數(shù)cha的原型聲明
a=12.5;
b=6.5;
floatc-cha(a,b);//調(diào)用函數(shù)cha
cout?c<<endl;
}
floatcha(floatx,floaty)
(
floatw;
w=x-y;
returnw:
}
五、程序分析題(本大題共4小題,每題5分,共20分)
51.給出下面程序的輸出結(jié)果。
include<iostream.h>
template<classT>
classSample
(
Tn;
public:
Sample(Ti){n=i;}
intoperator"(Sample&);
template<classT>
intSample<T>::operator==(Sample&s)
if(n-s.n)
return1;
else
return0;
)
voidmain()
{
Sample<int>sl(2),s2(3);.
cout?wsi與s2的數(shù)據(jù)成員"<<(sl=s2〃相等〃:〃不相等")?endl;
Sample<double>s3(2.5),s4(2.5);
cout?"s3與s4的數(shù)據(jù)成員“<<(s3=s4〃相等〃:〃不相等")?endi;
}
S1與S2的數(shù)據(jù)成員不相等
S3與S4數(shù)據(jù)成員相等
52.給出下面程序的輸出結(jié)果。
include<iostream>
usingnamespacestd;
template<classT>
Tmax(Tml,Tm2)
{return(ml>m2)ml:m2:}
voidmain(){
cout?max(l,7)?"\t"?max(2.0,5.0)?endl;
cout?max('y','b'<<"\t"?max(HA","a")<<endl;
}75
ya
53.給出下面程序的輸出結(jié)果
include<iostream>
usingnamespacestd;
classA{
public:
intx;
A(){)
A(inta)(x=a;)
intget(inta){returnx+a;}};
voidmain(){
Aa(8);
int(A::Xp)(int);
p=A::get;
cout?(a.Xp)(5)?endl;
AXpi=&a;
cout?(pi->XP)(7)?endl;}
1315
考證素材
54.給出下面程序的輸出結(jié)果。
include<iostream>
include<string>
usingnamespacestd;
classBock{
charXtitle;charXauthor;intnumsold;
public:
Book(){}
Book(constcharXstrl,constcharXstr2?constintnum){
intlen=strlen(strl);
title=newcharlen+1];
strcpy(title,strl);
len=strlen(str2);
author=newcharlen+1];
strcpy(author,str2);
numsold=num;)
voidsetbook(constcharXstrl,constcharXstr2,constintnum)
intlen=strlen(strl);
title=newchar1en+1];
strcpy(title,strl);
len=strlen(str2);author=newcharlen+1];
strcpy(author,str2);numsold=num;
考證素材
考證素材
?Book(){
deletetitle;deleteauthor;
}
voidprint(ostream&output){
output?,!書名:"?title<<endl;
output?A,"?author?endl;
output”"月銷售量:"<<numsold<<endl;
書名:數(shù)據(jù)結(jié)構(gòu)
voidmain(){
嚴(yán)蔚敏
Bookobjl(〃數(shù)據(jù)結(jié)構(gòu)〃,〃嚴(yán)蔚敏〃,200),obj2;月銷售量:200
書名:C++程序設(shè)
objl.print(cout);計(jì)
作業(yè):李春葆
obj2.setbook("C++言語(yǔ)程序設(shè)計(jì)"李春葆",210);
obj2.print(cout);
}
六、程序設(shè)計(jì)題(本大題共1小題,共10分)
55.在三角形類TRI完成兩個(gè)函數(shù),功能是輸入三個(gè)頂點(diǎn)坐標(biāo)推斷是否構(gòu)成三角形
include<iostream.h>
include<math.h>
classpoint{
private:floatx,y;
public:point(floata,floatb){x=a;y=b;)
pcint.()fx=O: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ù)的過(guò)程(如果需要形式參數(shù),請(qǐng)給出形參類型和數(shù)量,以及返回值類型)
推斷三條邊能構(gòu)成三角形的條件:任
意兩邊之和大于第三邊或任意兩邊之
差小于第3邊。
voidtri::settri(floatxl,floatyl,floatx2,floaty2,floatx3,floaty3)
{x.set(xl,yl);y.set(x2,y2);z.set(x3,y3);}
voidtri::test。{
sl=sqrt((x.getx0-y?getx0)X(x,g
etx0-y?getx())+(x.gety0-y.gety
())X(x,gety()-y,gety()));
s2=sqrt((x.getx()-z,getx())X(x.getx()-z.getx())+(x,gety()-z,gety())X(x,gety()-z,getyQ));
s3=sqrt((y.getx()-z.getx())X(y.getx()-z.getx())+(y.gety()-z.gety())X(y.gety()-z.gety())):
考證素材
考證素材
自學(xué)考試C++程序設(shè)計(jì)試題
課程代碼:04737
-單項(xiàng)選擇題(本大題共20小題,每題1分,共20分)
在每題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫在題后的括號(hào)內(nèi)。錯(cuò)選、多項(xiàng)選擇或
未選均無(wú)分。
1.C++源程序文件擴(kuò)展名為(A)
A..cppB..hC..libD..obj
2.在C++中使用流進(jìn)行輸入輸出,其中專用于從鍵盤進(jìn)行輸入的流是(B)
A.cerrB.cinC.coutD.cfile
3.包含自定義頭文件file.h的預(yù)處理指令是(D)
A.define<file.h>B.includefile,hC.definefile.hD.include*file.h*
4.用于標(biāo)識(shí)十六進(jìn)制前綴或后綴是(D)
A.無(wú)B.后綴L或eC.前綴零D.前綴Ox
5.設(shè)存在整型變量intx,則以下句與其它三項(xiàng)含義不同的是(A)
A.intXp=&x;B.intp=x;C.intp=x;D.int&p=x;
6.在定義類成員時(shí),為產(chǎn)生封裝性,則需使用哪個(gè)關(guān)鍵字(D)
A.publicB.publishC.protectedD.private
7.設(shè)函數(shù)voidswap(int&,int&)將交換兩形參的值,如兩整型變量inta=10;intb=15;
則執(zhí)行swap(a,b)后,a>b值分別為(C)
A.10,10B.10,15C.15,10D.15,15
8.函數(shù)默認(rèn)參數(shù)在函數(shù)原型中說(shuō)明,默認(rèn)參數(shù)必須放在參數(shù)序列的(C)
A.前部B.中部C.后部D.兩端
9.設(shè)存在函數(shù)intinin(int,int)返回兩參數(shù)中較小值,假設(shè)求15,26,47三者中最小值,以下表達(dá)式中錯(cuò)
誤的選項(xiàng)是(B)
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)成重載的是(C)
A.intprint(int);B.voidprint(char,char);
C.intprint(char);D.voidprint(int?int);
11.在以下成對(duì)的表達(dá)式中,運(yùn)算結(jié)果類型相同的一對(duì)是(D)
人7/2和7.0/2?0B.7/2.0和7/2
/2和7/2/2.0和7.0/2
12.內(nèi)聯(lián)函數(shù)的特點(diǎn)是(A)
A.減少代碼量,加快訪問(wèn)速度B.減少代碼量,減緩訪問(wèn)速度
C.增加代碼量,減緩訪問(wèn)速度D.增加代碼量,加快訪問(wèn)速度
13.類的私有成員可在哪里被訪問(wèn)(A)
A.本類的成員函數(shù)中B.本類及子類的成員函數(shù)中
C.通過(guò)對(duì)象名在任何位置D.不可訪問(wèn)
14.類的構(gòu)造函數(shù)在以下什么情況下會(huì)被自動(dòng)調(diào)用(B)
A.定義成員函數(shù)時(shí)B.定義對(duì)象時(shí)
C.定義數(shù)據(jù)成員時(shí)D.定義友元函數(shù)時(shí)
15.以下關(guān)于析構(gòu)函數(shù)描述正確的選項(xiàng)是(D)
A.可以重載B.函數(shù)體中必須有delete語(yǔ)句
C.返回類型必須是void類型D.不能指定返回類型
16.設(shè)有函數(shù)TSum(Tx,Ty){returnx+y;},其中T為模板類型,則以下語(yǔ)句中對(duì)該函數(shù)錯(cuò)誤的使用是
(D)
A.Sum(l,2);B.Sum(3.0,2.2);C.Sum(,A',,C');D.Sum("A","C");
17.以下哪個(gè)編譯指令屬于條件編譯指令(C)
A.includeB.defineC.elseD.pragma
18.關(guān)于類的靜態(tài)成員函數(shù)描述錯(cuò)誤的選項(xiàng)是(A)
A.在創(chuàng)立對(duì)象前不存在B.不能說(shuō)明為虛函數(shù)
C.不能直接訪問(wèn)非靜態(tài)函數(shù)D.不是對(duì)象的成員
19.如果類A被聲明成類B的友元,貝MD)
A.類A的成員即類B的成員
B.類B的成員即類A的成員
C.類A的成員函數(shù)不得訪問(wèn)類B的成員
D.類B不肯定是類A的友元
20.派生類的對(duì)象可以訪問(wèn)以下那種情況繼承的基類成員(D)
A.私有繼承的私有成員B.公有繼承的私有成員
C.私有繼承的愛(ài)護(hù)成員D.公有繼承的公有成員
二、填空題(本大題共20小題,每題1分,共20分)
請(qǐng)?jiān)诿款}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。
考證素材
考證素材
21.假設(shè)使用標(biāo)準(zhǔn)輸出流把整型變量a的值輸出到屏幕上,完成此操作的C++語(yǔ)句是_cout?a;一0
22.C++將數(shù)據(jù)從一個(gè)對(duì)象流向另一個(gè)對(duì)象的流動(dòng)抽象為“流〃,從流中獵取數(shù)據(jù)的操作稱為—提取—o
23.執(zhí)行以下代碼
intb=100;cout?*Hex:"<<hex?b;
程序的輸出結(jié)果是_Hex:64o
24.靜態(tài)聯(lián)編所支持的多態(tài)性稱為一編譯時(shí)的多態(tài)性。
25.C++程序必須有且只有一個(gè)主函數(shù),其函數(shù)名為_(kāi)main。
26.寫出聲明一個(gè)復(fù)數(shù)對(duì)象的語(yǔ)句,并使該對(duì)象被初始化為2.2+1.33此聲明語(yǔ)句是_complex<double>
c(2.2,1.3);o
27.假設(shè)有函數(shù)定義為:
intadd(intml=0,intm2=2,intm3=4)
{returnml+m2+m3;}
在主函數(shù)中有ints=add(l)+add(O,l)+add(O,b2);
則執(zhí)行此語(yǔ)句后s的值為_(kāi)15—。
28.C++中使用―inline—關(guān)鍵字說(shuō)明函數(shù)為內(nèi)聯(lián)函數(shù)。
29.在源程序中有宏定義:definePI3.14,則假設(shè)不想使該宏定義影響到程序的其它地方,可以使用_undef
PI刪除該宏定義。(注:配套教材上沒(méi)有)
30.類和其它數(shù)據(jù)類型不同的是,組成這種類型的不僅可以有數(shù)據(jù),還可以有對(duì)數(shù)據(jù)進(jìn)行操作的—函數(shù)。
31.有以下代碼inta=0;doubleb=0;cin?a?b;當(dāng)用鍵盤輸入1.25時(shí),b=_0.25。
32.對(duì)于類Point而言,其析構(gòu)函數(shù)的定義原型為「Point();。
33.對(duì)象成員構(gòu)造函數(shù)的調(diào)用順序取決于這些對(duì)象在類中說(shuō)明的順序,與它們?cè)诔蓡T初始化列表中給出的順序
f關(guān)一o
34.類的簡(jiǎn)單成員函數(shù)是指聲明中不含_const、volatile、static關(guān)鍵字的函數(shù)。
35.與操作對(duì)象的數(shù)據(jù)類型相互獨(dú)立的算法稱為—范型算法—o
36.從一個(gè)或多個(gè)以前定義的類產(chǎn)生新類的過(guò)程稱為一派生___o
37.在vector類中向向量尾部插入一個(gè)對(duì)象的方法是_push_back()。
38.C++中用于動(dòng)態(tài)創(chuàng)立對(duì)象,并返回該對(duì)象的指針的關(guān)鍵字是。
39.C++的流類庫(kù)預(yù)定義的與標(biāo)準(zhǔn)輸出設(shè)備相聯(lián)接的流是_cout-。
40.執(zhí)行以下代碼
cout?noshowpoint?123.0;
程序輸出結(jié)果是_123。
三、改錯(cuò)題(本大題共5小題,每題2分,共10分)
下面的類定義中有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并給出修改意見(jiàn)。
41.include<iostream.h>
classf{
private:floatx,y;
考證素材
考證素材
public:f(floata,floatb){x=a;y=b;}
floatmax(){return(x<y)x:y;}//求最大值〃error應(yīng)改為floatmax(){return(x>y)x:y;}
};
main(){
fa(1.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;}
}//error缺少分號(hào);
main(){
consttesta(3);
a.set(5);
a.get();
)
43.include<iostream.h>
classpoint{
private:floatx,y;
public:fl(floata,floatb){x=a;y=b;}
point0{x=0;y=0;}
voidgetx(){cout?x?endl;}
voidgetyO{cout?y?endl;}
);
voidprint(pointa){cout?a.x?endl;"/error:應(yīng)將print函數(shù)說(shuō)明為point類的友元函數(shù)
mainO{
pointa;
a.fl(3.0,5.0);
print(a);
)
44.include<iostream.h>
classf{
private:intx,y;
publicsfl(inta,intb){x=a;y=b;}
考證素材
考證素材
voidprint0{cout?x?y?endl;}
);
mainO{
fa;
a.fl(1.5,1.8);//error:實(shí)際參數(shù)類型與fl函數(shù)的形參類型不一致,應(yīng)修改為一致。
a.print();
}
45.include<iostream.h>
main(){
intx=6;
constintXp=x;//error:應(yīng)改為constintXp=&x;
cout?Xp?endl;
}
四、完成程序題(本大題共6小題,每題4分,共20分)
46.完成下面程序,使其輸出10,并在退出運(yùn)行時(shí)正確釋放分配給指針的存儲(chǔ)空間。
include<iostream>
usingnamespacestd;
voidmain()
(
intXa,Xp;
a=newint(10);
P=_a;
cout?Xp?endl;
___deletep;deletea;)
)
47.include<iostream>
usingnamespacestd;
classbase
(
private:intx;
public:base(inta){x=a;}
intget(){returnx;}
voidshowbase(){cout?*x="r?x?endl;}
};
classDerived:publicbase
{private:inty;
考證素材
考證素材
public:Derived(inta,intb):base(a){y=b;}
voidshowderived()
{cout?/rx=*?get0<<",y=*?y?endl;}
};
voidmain()
{
baseb(3);
Derivedd(6,7);
b.showbase();
d.showderived0;
b=d;
b.showbase();
Derivedbl(d);(或Derivedbl(6,7);或basebl(6);或basebl(d);)
bl.showbasc();
baseXpb=&bl;
pb->showbase();
d.showderived();
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::display0
在下劃線處填上缺少的局部。源程序如下:
include<iostream>
usingnamespacestd;
classB
public:
考證素材
考證素材
virtualvoiddisplay(){cout?*B::display()*?endl;}
};
classC:publicB
(
public:
virtualvoid(或void)display(){cout?*C::display()*?endl;}
};
voidfun(BXp)
(
p->display();
}
voidmain()
(
Bb,Xpb;
Cc;
pb=&b;
fun(pb);
pb=&c;
fun(pb);
}
49.下面程序的運(yùn)行結(jié)果如下:
Thisislinel
Thisisline2
Thisisline3
在下劃線處填上缺少的局部。源程序如下:
include<iostream>
include〈fstream)
usingnamespacestd;
voidmain()
(
fstreamfin,fout;
fout.open(*my.txt*,ios::out);
if(!fout.is_open())
return;
for(inti=0;i<3;i=i+l)
fout?*Thisisline*?i+l?endl;
考證素材
考證素材
font,close0;
fin.open(*my.txt*,ios::in);
if(!fin.is_open())
return;
charstrlOO];
while(!fin.eof()(或等價(jià)答案))
(
fin.getline(str,100);
cout?str?endl;
}
fin.close0;
}
50.在下劃線處填上缺少的局部。源程序如下:
include<iostrcam>
usingnamespacestd;
template<classT>
Tfun(Tx)
(
_T_y;
y=xXx-T(5);
returny;
)
voidmainO
(
floata=2;
cout?fun(a)?
}
五、程序分析題(本大題共4小題,每題5分,共20分)
51.請(qǐng)寫出nyTextl.txt文本文件中的內(nèi)容
include<iostream>
include<string>
usingnamespacestd;
include<fstream>
voidmainO
ofstreammyFilel;
考證素材
考證素材
myFilel.openC*myTextl.txt*);
cout?*EnterthedatainChineseformat(e.g.,202X,May25):*?endl;
stringDate(*202X,January1");
stringYear=Date.substr(0,4);
intk=Date.findC,*);
inti=Date.find(*");
stringMonth=Date.substr(k+1,i-k-1);
stringDay=Date.substr(i+1,2);
stringNewDate=Day+**+Month+**+Year;
myFilel?,*originaldate:*?Date?endl;
myFilel?*Converteddate:*?NewDate?endl;
myFilel.close();
)
originaldate;202X,January1
Converteddate:1January202X
52.給出下面程序的輸出結(jié)果
include<iostream>
usingnamespacestd;
classSimple
(
intx,y;
public:
Simple(){x=y=0;}
Simple(inti,intj){x=i;y=j;}
voidcopy(Simple&s);
voidsetxy(inti,intj){x=i;y=j;}
voidprint0{cout?*x=*?x<<*,y=*?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(l,2),obj2;
obj2.copy(objl);
func(objl,obj2);
objl.print();
obj2.print();
}
x=l,y=2
x=70,y=80
53.給出下面程序的輸出結(jié)果
includc*iostrcam.h"
intmainO
(
inti=17;
while(i>=10)
if(一i%4==3)continue;
else
cout?*i=*?i—?endl;
)
i=16
i=14
i=12
i=10
54.給出下面程序的輸出結(jié)果
include<iostream>
usingnamespacestd;
voidmainO
(
intnum=300;
int&ref=num;
cout?ref;
ref=ref-100;
cout?*“<<num;
考證素材
考證素材
num=num-50;
cout?**?ref?endl;
)
300200150
六、程序設(shè)計(jì)題(本大題共1小題,共10分)
55.定義堆棧類模板Stack(先進(jìn)后出),棧的大小由使用者確定。要求該類模板對(duì)外提供
如下二種根本操作:
(l)push入棧(2)pop出棧,用數(shù)組來(lái)完成
include<iostream>
usingnamespacestd;
template<classT,intsize>
classStack{
Txsizel;
intcurrent;
public:
Stack(){current=0;}
....push(....);
....pop(....);
);
請(qǐng)寫出兩個(gè)函數(shù)的過(guò)程(如果需要形式參數(shù),請(qǐng)給出形參類型和數(shù)量,以及返回值類型)
參考答案
include<iostream>
usingnamespacestd;
template<classT,intsize>
classStack{
Txsize];
intcurrent;
public:
Stack()(current=0;}
boolPush(Te);
boolPop(T&e);
};
template<classT,intsize>
boolStack<T,size>::Push(Te){〃插入新元素e為新的棧頂元素
if(current==size){〃棧滿
returnfalse;
考證素材
考證素材
)
x++current=e;
returntrue;
}//Push
template<classT,intsize>
boolStack<T,size>::Pop(T&e){〃假設(shè)棧不空,刪除棧頂元素,并用e返回其值,并返回true,否則返回false
if(current=0)returnfalse;
e=xcnrrent—];
returntrue;
}//Pop
〃測(cè)試程序,不是答案的一局部
voidmain(){
Stack<int,5>s;
s.Push(l):s.Push(2);
inte;
if(s.Pop(e))
cout?e?endl;
else
cout?"??铡薄秂ndl;
cout<<"再次出棧,試試看...“<<endl;
if(s.Pop(e))
cout?e?endl;
else
cout<<"棧已空"<<endl;
考證素材
考證素材
全國(guó)自考C++程序設(shè)計(jì)模擬卷子(-)38
一、單項(xiàng)選擇題(本大題共20小題,每題1分,共20分)在每題列出的四個(gè)備選項(xiàng)中只
有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫在題后的括號(hào)內(nèi)。錯(cuò)選、多項(xiàng)選擇或未選均
無(wú)分。
1.編寫C++程序一般需經(jīng)過(guò)的幾個(gè)步驟依次是()
人.編輯、調(diào)試、編譯、連接
B.編輯、編譯、連接、運(yùn)行
C.編譯、調(diào)試、編輯、連接
D.編譯、編輯、連接、運(yùn)行
答案:B解析:(P21)經(jīng)過(guò)編輯、編譯、連接和運(yùn)行四個(gè)步驟。編輯是將C++源程序輸入計(jì)算機(jī)
的過(guò)程,保存文件名為cpp。編譯是使用系統(tǒng)提供的編譯器將源程序cpp生成機(jī)器言語(yǔ)的過(guò)程,
目標(biāo)文件為obj,由于沒(méi)有得到系統(tǒng)分配的絕對(duì)地址,還不能直接運(yùn)行。連接是將目標(biāo)文件obj
轉(zhuǎn)換為可執(zhí)行程序的過(guò)程,結(jié)果為exe。運(yùn)行是執(zhí)行exe,在屏幕上顯示結(jié)果的過(guò)程。
2?決定C++言語(yǔ)中函數(shù)的返回值類型的是()
A.return語(yǔ)句中的表達(dá)式類型
B.調(diào)用該函數(shù)時(shí)系統(tǒng)隨機(jī)產(chǎn)生的類型
C.調(diào)用該函數(shù)時(shí)的主調(diào)用函數(shù)類型
D.在定義該函數(shù)時(shí)所指定的數(shù)據(jù)類型答案:D解析:(P51)函數(shù)的返回值類型由定義函數(shù)時(shí)的
指定的數(shù)據(jù)類型決定的。A項(xiàng)的表達(dá)式的值要轉(zhuǎn)換成函數(shù)的定義時(shí)的返回類型。
3.下面表達(dá)不正確的選項(xiàng)是0
月.派生類一般都用公有派生
B.對(duì)基類成員的訪問(wèn)必須是無(wú)二義性的
C.賦值兼容規(guī)則也適用于多重繼承的組合
D.基類的公有成員在派生類中仍舊是公有的答案:D解析:(P136)繼承方法有三種:公有、私
有和愛(ài)護(hù)。多繼承中,多個(gè)基類具有同名成員,在它們的子類中訪問(wèn)這些成員,就產(chǎn)生了二
義性,但進(jìn)行訪問(wèn)時(shí),不能存在二義性。賦值兼容規(guī)則是指派生類對(duì)象可以當(dāng)作基類對(duì)象使
用,只要存在繼承關(guān)系,所以單繼承或多繼承都適用。基類中的公有成員采納私有繼承時(shí),
在派生類中變成了私有成員,所以D項(xiàng)錯(cuò)誤。
考證素材
考證素材
4.所謂數(shù)據(jù)封裝就是將一組數(shù)據(jù)和與這組數(shù)據(jù)有關(guān)操作組裝在一起,形成一個(gè)實(shí)體,這實(shí)體
也就是()
月?類
B.對(duì)象
C.函數(shù)體
D.數(shù)據(jù)塊
答案:A解析:(P39)類即數(shù)據(jù)和操作的組合體,數(shù)據(jù)是類的靜態(tài)特征,操作是類具有
的動(dòng)作。
5.在公有派生類的成員函數(shù)不能直接訪問(wèn)基類中繼承來(lái)的某個(gè)成員,則該成員肯定是基類中的
0
4.私有成員
B.公有成員
C.愛(ài)護(hù)成員
D.愛(ài)護(hù)成員或私有成員
答案:A解析:(P133)在派生類中基類的愛(ài)護(hù)或者基類公有都可以直接訪問(wèn),基類的私有成員只
能是基類的成員函數(shù)來(lái)訪問(wèn)。所以選擇A項(xiàng)。
6.對(duì)基類和派生類的關(guān)系描述中,錯(cuò)誤的選項(xiàng)是0
月.派生類是基類的具體化
B.基類繼承了派生類的屬性
C,派生類是基類定義的連續(xù)
。.派生類是基類的特別化答案:B解析:(P129)派生類的成員一個(gè)是來(lái)自基類,一個(gè)來(lái)自本
身,所以派生類是基類的擴(kuò)展,也是基類的具體化和特別化,派生類是對(duì)基類擴(kuò)展。B項(xiàng)基
類不能繼承派生類成員,所以錯(cuò)誤。
7.關(guān)于this指針使用說(shuō)法正確的選項(xiàng)是()
月.保證每個(gè)對(duì)象擁有自己的數(shù)據(jù)成員,但共享處理這些數(shù)據(jù)的代碼
B.保證基類私有成員在子類中可以被訪問(wèn)。
C.保證基類愛(ài)護(hù)成員在子類中可以被訪問(wèn)。
D.保證基類公有成員在子類中可以被訪問(wèn)。
答案:A解析:(P86)this指針是隱藏的,可以使用該指針來(lái)訪問(wèn)調(diào)用芯象中的數(shù)據(jù)?;惖某?/p>
員在派生類中能否訪問(wèn),與繼承方法有關(guān),與this沒(méi)有關(guān)系。所以選擇A項(xiàng)。
8.所謂多態(tài)性是指0
月.不同的對(duì)象調(diào)用不同名稱的函數(shù)
B.不同的對(duì)象調(diào)用相同名稱的函數(shù)
C.一個(gè)對(duì)象調(diào)用不同名稱的函數(shù)
考證素材
考證素材
D.一個(gè)對(duì)象調(diào)用不同名稱的對(duì)象答案:B解析:(P167)多態(tài)性有兩種靜態(tài)多態(tài)性和動(dòng)態(tài)多態(tài)
性,靜態(tài)多態(tài)性是指調(diào)用同名函數(shù),由于參數(shù)的不同調(diào)用不同的同名函數(shù);動(dòng)態(tài)多態(tài)性是指
不同對(duì)象調(diào)用同名函數(shù)時(shí),由于對(duì)象不同調(diào)用不同的同名函數(shù)。多態(tài)性肯定具有相同的函
數(shù)名,所以選擇B項(xiàng)。
9.一個(gè)函數(shù)功能不太復(fù)雜,但要求被一再調(diào)用,則應(yīng)把它定義為0
內(nèi)聯(lián)函數(shù)
B.重載函數(shù)
C.遞歸函數(shù)
D.嵌套函數(shù)
答案:A解析:(P59)內(nèi)聯(lián)函數(shù)特征代碼少,一再調(diào)用,執(zhí)行效率高。重載函數(shù)解決統(tǒng)一接口的問(wèn)
題;遞歸是子程序調(diào)用,程序調(diào)用要消耗很多空間和時(shí)間,循環(huán)/迭代都比遞歸有效率得多,遞歸只
是從形式上,邏輯比擬簡(jiǎn)潔。嵌套函數(shù)即反復(fù)調(diào)用,速度較慢。所以選擇A項(xiàng)。
10.下面函數(shù)模板定義中不正確的選項(xiàng)是0
A.A
B.B
C.C
D.D
答案:A解析:(P147)A項(xiàng)中F是一個(gè)返回Q類型的值,而return中用返回類型作為返回值錯(cuò)
誤。所以選擇
A項(xiàng)。
11.假設(shè)ClassY:publicX,即類Y是類X的派生類,則說(shuō)明一個(gè)Y類的對(duì)象時(shí)和刪除Y類對(duì)象
時(shí)
,調(diào)用構(gòu)造函數(shù)和析構(gòu)函數(shù)的次序分別為0
A.X,Y;Y,X
B.X,Y;X,Y
C.Y,X;X,Y
D.Y,X;Y,X
答案:A解析:(P130)派生類構(gòu)造函數(shù)必須對(duì)這三類成員進(jìn)行初始化,其執(zhí)行順序:調(diào)用基類構(gòu)
造函數(shù)
;調(diào)用子對(duì)象的構(gòu)造函數(shù);派生類的構(gòu)造函數(shù)體。析構(gòu)函數(shù)在執(zhí)行過(guò)程中也要對(duì)基類和成員對(duì)象
進(jìn)行操作,但它的執(zhí)行過(guò)程與構(gòu)造函數(shù)正好相反,即對(duì)派生類新增一般成員進(jìn)行清理;調(diào)用成員
對(duì)象析構(gòu)函數(shù),對(duì)派生類新增的成員對(duì)象進(jìn)行清理;調(diào)用基類析構(gòu)函數(shù),對(duì)基類進(jìn)行清理,所以
選擇A項(xiàng)。
12.適宜采納inlino定義函數(shù)情況是:)
月?函數(shù)體含有循環(huán)語(yǔ)句
考證
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄭州經(jīng)貿(mào)學(xué)院《農(nóng)業(yè)建筑學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 二年級(jí)語(yǔ)文下冊(cè)課文25雷鋒叔叔你在哪里雷鋒簡(jiǎn)介素材新人教版
- 淮北職業(yè)技術(shù)學(xué)院《交通運(yùn)輸工程》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南省洛陽(yáng)市汝陽(yáng)縣瑞云小學(xué)2025屆數(shù)學(xué)五下期末教學(xué)質(zhì)量檢測(cè)試題含答案
- 水循環(huán)系統(tǒng)模擬-全面剖析
- 瑜伽學(xué)校運(yùn)營(yíng)策略探討-全面剖析
- 潘木枝資源可持續(xù)利用-全面剖析
- 口腔護(hù)理產(chǎn)品市場(chǎng)趨勢(shì)分析-全面剖析
- 改裝業(yè)資金鏈風(fēng)險(xiǎn)防范-全面剖析
- 大數(shù)據(jù)驅(qū)動(dòng)風(fēng)險(xiǎn)定價(jià)-全面剖析
- 浙江宇翔職業(yè)技術(shù)學(xué)院?jiǎn)握新殰y(cè)參考試題庫(kù)(含答案)
- 給小學(xué)生科普地質(zhì)學(xué)知識(shí)
- 提高手衛(wèi)生正確率品管圈課件
- 醫(yī)院勞務(wù)派遣投標(biāo)方案(技術(shù)方案)
- 高中數(shù)學(xué)開(kāi)放題賞析
- 非工傷人道主義賠償協(xié)議(標(biāo)準(zhǔn)版)
- 中華民族的復(fù)興
- 品質(zhì)部工作計(jì)劃
- 《浙江省工業(yè)建設(shè)項(xiàng)目用地控制指標(biāo)》(修訂)
- 【區(qū)域地理】《日本》【公開(kāi)課教學(xué)PPT課件】高中地理
- 配對(duì)齒輪參數(shù)全程計(jì)算(史上最全最好用的齒輪計(jì)算表格)
評(píng)論
0/150
提交評(píng)論