




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
科目一:[04737]C++程序設(shè)計(jì)
[-]課程信息
1-10ACDBBDACAC
11-20BACACAAACC
21-27CDDCCBB
1、(A)年正式取名為C++
[A]1983
[B]1986
[C]1978
[D]1999
2、本章節(jié)題目如下:
int類型占用(C)字節(jié)存儲(chǔ)空間。
[A]1
[B]2
[CJ4
[D]8
3、使用if—else語句嵌套最多可以實(shí)現(xiàn)(D)分支
[A]1[B]2[C]4[D]無數(shù)多
4、(B)循環(huán)語句至少會(huì)被執(zhí)行一次.
[A]while
[B]do_while
[C]for
[D]都不是
5、本章節(jié)題目如下:
for循環(huán)的判斷條件是(B)
[A]第個(gè)表達(dá)式
fB]第二個(gè)表達(dá)式
[C]第三個(gè)表達(dá)式
[D]以上都不對(duì)
6、本章節(jié)題目如下:
定義結(jié)構(gòu)體使用的關(guān)鍵字是(D)
IAJvirtual
[B]union
IC]private
[D]struct
7、下列說法錯(cuò)誤的是(A)
[A]函數(shù)可以嵌套定義
[B]函數(shù)可以嵌套調(diào)用
[C]函數(shù)可以沒有參數(shù)
[D]函數(shù)可以有多個(gè)參數(shù)
8、要把一個(gè)函數(shù)定義為內(nèi)聯(lián)函數(shù),應(yīng)該使用關(guān)鍵字(C)
[A]void
I
[B]important
[C]inline
[D]line
9、重載函數(shù)的必須滿足(A)
IAJ形參個(gè)數(shù)或類型不同
[B]返回值不同
[CJ函數(shù)名不同
[D]形參名不同
10、類中(C)修飾的成員可以在類外訪問。
[A]private
[B]protected
[C]public
[DJ以上都不對(duì)
11、構(gòu)造函數(shù)(B)時(shí)候被自動(dòng)調(diào)用。
IAJ對(duì)象銷毀
[B]對(duì)象創(chuàng)建
[C]對(duì)象引用
[D]對(duì)象賦值
12、析構(gòu)函數(shù)(A)時(shí)候被自動(dòng)調(diào)用。
[A]對(duì)象銷毀
[B]對(duì)象創(chuàng)建
[C]對(duì)象引用
[D]對(duì)象賦值
13UML語言是一?種可視化的的面向?qū)ο螅–)語言。
[A]編程
[B]編輯
[C]建模
[D]設(shè)計(jì)
14、函數(shù)內(nèi)部聲明靜態(tài)生存期對(duì)象,要冠以關(guān)鍵字(A)
[A]static
[Blvirtual
[CJclass
[D]public
15靜態(tài)生存期與程序的(C)相同。
[A]編輯期
[B]編譯期
[C]運(yùn)行期
[D]連接期
16友元函數(shù)是在類聲明中由關(guān)鍵字(A)修飾說明的非成員函數(shù)。
[AJfriend
[B]virtual
[CJprivate
[D]public
17包含指令使用的關(guān)鍵字是(A)
2
[A]#include
[B]#define
[C]#if
[D]#undef
18?維數(shù)組的下標(biāo)從(A)開始。
[A]0
[B]1
[C]2
[DI3
19、定義二維數(shù)組inla[3[4],一共定義了(C)個(gè)元素。
fA]3
[B]4
[C]12
[D]24
20、假設(shè)有定義int*p,貝Up=p+I后,p中地址值會(huì)(C)
[B]加2
[C]加4
[D]加8
21、存放字符串“china”需要占用(C)個(gè)字節(jié)內(nèi)存空間。
[A]1
[B]5
LC]6
[D]8
22、下面哪一個(gè)不是類的繼承方式(D)。
[A]public
[BJprotected
[C]private
[D]inline
23、下列說法錯(cuò)誤的是(D)
[A]基類的構(gòu)造函數(shù)不被繼承
[B]聲明構(gòu)造函數(shù)時(shí);只需要對(duì)本類中新增成員進(jìn)行初始化
[C]派生類的構(gòu)造函數(shù)需要給基類的構(gòu)造函數(shù)傳遞參數(shù)
[D]聲明構(gòu)造函數(shù)時(shí),不但需要對(duì)本類中新增成員進(jìn)行初始化,而且要為基類成員初
始化
24定義虛基類需要使用關(guān)鍵字(C)。
IAJprivate
[B]class
LC]virtua1
[D]static
25、函數(shù)重載實(shí)現(xiàn)了面向?qū)ο蟮模–)。
[A]抽象性
[B]封裝性
[C]多態(tài)性
[D]繼承
3
26、B編譯時(shí)
27下列關(guān)于抽象類說法錯(cuò)誤的是(B)。
[AJ抽象類只能作為基類來使用
[B]可以聲明抽象類的對(duì)象
LCJ構(gòu)造函數(shù)不能是虛函數(shù)
[D]析構(gòu)函數(shù)可以是虛函數(shù)
【二】階段作業(yè)
單元測試
cccccDCBBBBBBACAAADB
二、DCCDCCCBACBBCCDBAABB
三、DDABDBDDADBCBABBDCCB
四、ACCABABABADCACDCDCAD
五、BBDABDBCADCAABDDCADD
簡答練習(xí)
練習(xí)題一
[1]若使用標(biāo)準(zhǔn)輸出流把整型變量a的值輸出到屏幕上,實(shí)現(xiàn)此操作的C++語句是。
答:cout?a
[2]C++將數(shù)據(jù)從一個(gè)對(duì)象流向另一個(gè)對(duì)象的流動(dòng)抽象為“流”,從流中獲取數(shù)據(jù)的操作稱
為。
答:提取
[3]執(zhí)行下列代碼
intb=100;
cout?z/hex:”<
程序的輸出結(jié)果是。
答:Hex:64
[4]靜態(tài)聯(lián)編所支持的多態(tài)性稱為的多態(tài)性。
答:編譯時(shí)
[5]C++程序必須有且只有一個(gè)主函數(shù),其函數(shù)名為。
答:main
[6]寫出聲明一個(gè)復(fù)數(shù)對(duì)象的語句,并使該對(duì)象被初始化為2.2+1.3i,此聲明語句是。
答:Complexa(2.2,1.3)
[7]若有函數(shù)定義為:
intadd(intml=0,intm2=2,intm3=4)
{returnml+m2+m3;}
在主函數(shù)中有ints=add(l)+add(O,1)+add(0,1,2);
則執(zhí)行此語句后s的值為。
答:15
[8]C++中使用關(guān)鍵字說明函數(shù)為內(nèi)聯(lián)函數(shù)。
答:inline
[9]在源程序中有宏定義:#definePI3.14,則若不想使該宏定義影響到程序的其它地方,
可以使用刪除該宏定義。
答:#undefPI
4
[10]類和其它數(shù)據(jù)類型不同的是,組成這種類型的不僅可以有數(shù)據(jù),還可以有對(duì)數(shù)據(jù)進(jìn)
行操作的。
答:函數(shù)
[11]有下列代碼inta=0;doubleb=0;cin?a?b;當(dāng)用鍵盤輸入1.25時(shí),b=。
答:b=0.25a=l
[12]對(duì)于類Point而言,其析構(gòu)函數(shù)的定義原型為o
答:~Point()
[13]對(duì)象成員構(gòu)造函數(shù)的調(diào)用順序取決于這些對(duì)象在類中說明的順序,與它們在成員初始化
列表中給出的順序o
答:無關(guān)
[14]類的簡單成員函數(shù)是指聲明中不含______、volatile、static關(guān)鍵字的函數(shù)。
答:const
[15]與操作對(duì)象的數(shù)據(jù)類型相互獨(dú)立的算法稱為。
答:泛型算法
[16]從一個(gè)或多個(gè)以前定義的類產(chǎn)生新類的過程稱為______o
答:派生
[17]在vector類中向向量尾部插入一個(gè)對(duì)象的方法是。
答:push_back(constT&)
[18]C++中用于動(dòng)態(tài)創(chuàng)建對(duì)象,并返回該對(duì)象的指針的關(guān)鍵字是______o
答:new
[19]C++的流類庫預(yù)定義的與標(biāo)準(zhǔn)輸出設(shè)備相聯(lián)接的流是_______。
答:cout
[20]執(zhí)行下列代碼
cout?123.0;
程序輸出結(jié)果是_____O
答:123
[21]下面有一處錯(cuò)誤,請給出修改意見。
#include
classf{
private:floatx,y;
public:f(floata,floatb){x=a;y=b;}
floatmax(){return(x<strong=〃〃>
);
main(){
fa(1.5,3.8);
cout?<endl;<=〃〃>
)
答:將floatmax(){return(x改為floatmax(){return(xy)x:y;}
[22]下面有一處錯(cuò)誤,請給出修改意見。
#include
classtest{
private:intx;
public:test(inta){x=a;}
5
voidset(inta){x=a;}
voidget(){cout?strong=u">
)
main(){
consttesta(3);
a.set(5);
a.get();
}
答案:a.set(5);a是常對(duì)象,不能被更新
[231下面有?處錯(cuò)誤,請給出修改意見。
#include
classpoint{
private:floatx,y;
public:fl(floata,floatb){x=a;y=b;}
point(){x=0;y=0;}
voidgetx(){cout?strong="">
voidgety(){cout?strong=,,n>
};
voidprint(pointa){cout?strong=u">
main(){
pointa;
a.fl(3.0,5.0);
print(a);
)
答:print(pointa){cout?a.x?endl;}print()不是成員函數(shù)不允許直接調(diào)用a.x或?qū)rivatefoat
x,y;改為public:floatx,y;或cour?a.x<<endl;改為a.getx();
[24]下面有一處錯(cuò)誤,請給出修改意見。
#include
6
classf{
private:intx,y;
public:fl(inta,intb){x=a;y=b;}
voidprint(){cout?strong=',n>
);
main(){
fa;
a.fl(1.5,1.8);
a.print();
)
答:a.fl(1.5J.8);fl()調(diào)用時(shí)實(shí)參與形參類型不一致
[25]下面有一處錯(cuò)誤,請給出修改意見。
#include
main(){
intx=6;
constint*p=x;
cout?*p?strong=,H'>
)
答:constint*p=x;變量給指針p賦值必須加上&;
[26]完成下面程序,使其輸出10,并在退出運(yùn)行時(shí)正確釋放分配給指針的存儲(chǔ)空間。
#include
usingnamespacestd;
voidmain()
(
int*a,*p;
a=newint(10);
P=;
cout?*p?strong='*">
7
答:a;deletea;
[27]
^include
usingnamespacestd;
classbase
(
private:intx;
public:base(inta){x=a;}
intget(){returnx;}
voidshowbase(){cout<〈"x=〃<<strong=〃〃>
);
classDerived:publicbase
{private:inty;
public:Derived(inta,intb):base(a){y=b;}
voidshowderived()
{cout<<,,x=,,?get()<<",y="<<strong-”)
);
voidmainO
(
baseb(3);
Derivedd(6,7);
b.showbase();
d.showderived();
b二d;
b.showbase();
bl.showbase();
base*pb=&bl;
pb->showbase();
8
d.showderivedO;
b.showbase();
)
輸出結(jié)果如下:
x=3
x=6,y=7
x=6
x=6
x=6
x=6,y=7
x=6
答:Derivedbl(6,7)
[28]下面程序的運(yùn)行結(jié)果如下:
B::display()
C::display()
在下劃線處填上缺少的部分。源程序如下:
#include<iostream>
usingnamespacestd;
classB
!
public:
display()(cout<<〃B::display(),z?endl;}
);
classC:publicB
(
public:
voiddisplay(){cout<<,,C::display()z/?endl;}
);
voidfun(B*p)
(
p->display();
)
voidmain()
9
Bb,*pb;
Cc;
pb=&b;
fun(pb);
pb=&c;
fun(pb);
)
答:virtual_void_
[29]下面程序的運(yùn)行結(jié)果如下:
Thisislinel
Thisisline2
Thisisline3
在下劃線處填上缺少的部分。源程序如下:
#include
#include
usingnamespacestd;
voidmain()
{
fstreamfin,fout;
fout.open(,zmy.txt〃,ios::out);
if(!fout.is_open())
return;
for(inti=0;i<3;i=i+l)
fout<<,zThisislinez,<?endl;<strong=〃〃>
fout.closeO;
fin.open(〃my.txt〃,ios::in);
if(!fin.is_open())
return;
charstr[100];
while(!fin.eof())
(
fin.getline(str,100);
cout?strong="〃>
10
}
fin.close();
)
答:<fstream>
!Fin.cof()
[30]
#include<iostream>
usingnamespacestd;
template<classT>
Tfun(Tx)
(
_____y;
y=x*x-T(5);
returny;
)
voidmain()
{
floata=2;
cout<<fun(a);
)
答:T
[31]
給出下面程序的輸出結(jié)果
#include<iostream>
usingnamespacestd;
classSimple
(
intx,y;
public:
Simple(){x=y=0;}
Simple(inti,intj){x=i;y=j;}
voidcopy(Simple&s);
11
voidsetxy(inti,intj){x=i;y=j;}
voidprint(){cout<X〃x=〃<Xx<<〃,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(1,2),obj2;
obj2.copy(objl);
func(objl,obj2);
objl.print();
obj2.print();
)
答:x=l,y=2x=70,y=80
[32]
給出下面程序的輸出結(jié)果
#include<iostream>
usingnamespacestd;
voidmain()
(
intnum=300;
int&ref=num;
cout?ref;
ref-ref-100;
cout<<〃/z?num;
num=num-50;
12
cout?z,(,?ref?endl;
答:300200150
練習(xí)題二
[1]設(shè)要把一個(gè)文件輸出流對(duì)象myFile與文件“f:\myText.txt相關(guān)聯(lián),所用的C++語句
是:()。
答:ofstreammyFile("f:\\myText.txt)
[2]C++中。stream類的直接基類是()類。
答:ios
[3]運(yùn)算符[]只能用()運(yùn)算符來重載,不能用友元運(yùn)算符來重載。
答:成員
[4]定義虛函數(shù)所用的關(guān)鍵字是()。
答:virtual
[5]vector類中用于返回向量中第1個(gè)對(duì)象的方法是front()。
答:front。
[6]在C++中,利用向量類模板定義一個(gè)具有20個(gè)char的向量E,其元素均被置為字符
't',實(shí)現(xiàn)此操作的語句是()
答:vectorE(20,'t')
[7]類的繼承是指子類繼承基類的()和成員函數(shù)。
答:數(shù)據(jù)成員
[8]不同對(duì)象可以調(diào)用相同名稱的函數(shù),但可導(dǎo)致完全不同的行為的現(xiàn)象稱為()。
答:多態(tài)性
[9]0指令指示編譯器將一個(gè)源文件嵌入到帶該指令的源文件之中。
答:ftinclude
13
[10]設(shè)類A有成員函數(shù)
voidFun(void);
若要定義一個(gè)指向類成員函數(shù)的指針變量pafn來指向Fun,該指針變量的聲明語句是:()
答:void(A::*pafn)(void);
[11]設(shè)在程序中使用如下語句申請了一個(gè)對(duì)象數(shù)組:
Point*ptr=newPoint[2];
則在需要釋放ptr指向的動(dòng)態(tài)數(shù)組對(duì)象時(shí),所使用的語句是()
答:delete[]ptr;
[12]在保護(hù)派生中,基類權(quán)限為Private的成員在派生類()中。
答:不可訪問
[13]類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的值
為()。
答:7
[14]對(duì)象傳送的消息一般由3部分組成:接收對(duì)象名、調(diào)用操作名和()。
答:必要的參數(shù)
[15]將指向?qū)ο蟮闹羔樧鳛楹瘮?shù)參數(shù),形參是對(duì)象指針,實(shí)參是對(duì)象的()。
答:地址值
[16]在使用string類的find成員函數(shù)來檢索主串中是否含有指定的子串時(shí),若在主串
中不含指定的子串,find函數(shù)的返回值是()。
答:T
[17]在C++中,聲明布爾類型變量所用的關(guān)鍵字是()。
答:bool
[18]執(zhí)行下列代碼
14
inta=29,b=100;
cout〈程序的輸出結(jié)果是:()。
答:-29100
[19]執(zhí)行下列代碼
cout<ahex:"<<hex=〃〃255=〃〃>程序的輸出結(jié)果為()。
答:Hex:ff
[20]C++語言中可以實(shí)現(xiàn)輸出一個(gè)換行符并刷新流功能的操控符是()。
答:endl
[21]ttinclude
voidmain(){
intx=5,y=6;
constint*p=&x;
*p=y;
cout?*p<<p=〃”>}
答:錯(cuò)誤*p=y;修改意見:將constint*p=&x中的const去掉
[22]ffincludeclassf{
private:intx,y;
public:f1(){x=0;y=0;}
print(){cout?,/?y<<endl;}<p=〃〃>
);
voidmain(){
fa;
a.fl(l,1);
a.print();
)
答:錯(cuò)誤:a.fl(1,1),修改意見:增加一個(gè)fl的函數(shù)重載:voidfl(intI,intj){x=I;
y=j;}
[23]ttincludeclassf{
15
private:intx=0,y=0;
public:voidfl(inta,intb){x=a;y=b;}
voidget(){cout<<,?y<<endl;}<p="”>
};
voidmain(){
fa;
a.fl(1,3);
a.get();
)
答:錯(cuò)誤:private:intx=0,y=0;修改意見:private:intx,y;
[24]^includeclasspoint{private:floatx;
public:voidf(floata){x=a;}
voidf(){x=0;}
friendfloatmax(point&a,point&b);
);
floatmax(point&a,pointftb)
{return(a.x>b.x)?a.x:b.x;}
voidmain(){
pointa,b;
a.f(2.2);b.f(3.3);
cout?p=〃">}
答:錯(cuò)誤:cout〈〈a.max(a,b);修改意見:cout<〈max(a,b);
[25]ttincludetemplate
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<?endl;〈="
16
答:錯(cuò)誤:fa;改為:f<float>a;
[26]
完成下面類中的成員函數(shù)的定義。
classpoint
(
private:
intm,n;
public:
point(int,int);
point(point&);
);
point::point(inta,intb)
(
m=a;
}
point::point(point&t)
(
nFt.m;
n=t.n;
}
答:n
[27]
下面是一個(gè)輸入半徑,輸出其面積和周長的C++程序,在下劃線處填上正確的語句。
#include
usingnamespacestd;
constdoublepi=3.14159;
voidmain()
(
doubler;
17
cout<<"r=";
double1=2.0*pi*r;
doubles=pi*r*r;
cout<</,\nThelongis:<<p=〃">
cout?z,Theareais:"?p="〃>
)
答:cin?r
【題型:完成】【100分】
[28]在下劃線處填上缺少的部分。
#include
#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;
returncomplex(r,i);
)
voidmain()
18
complexx(l,2),y(3,4),z;
z=x+y;
cout?w?z.imag?wi,f?endl;<p=〃">
}
得分:100分
答:complex&a
[29]程序的輸出結(jié)果如下:
1,9
50,30
請根據(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<?endl;<="〃p="〃)<<","get(=””〉
cout<get()?/z,";
19
ptr=ptr-l;
cout<get()<<p="〃>
delete1]ptr;
!
答:ptr+1
[30]在下面橫線處填上求兩個(gè)浮點(diǎn)數(shù)之差的cha函數(shù)的原型聲明、調(diào)用方法。
#include
usingnamespacestd;
voidmain()
(
floata,b;
floatcha(float,float);//函數(shù)cha的原型聲明
a=12.5;
b=6.5;
floatc=;//調(diào)用函數(shù)cha
cout<<p=〃〃>
)
floatcha(floatx,floaty)
(
floatw;
w=x-y;
returnw;
)
答:cha(a,b)
[31]
給出下面程序的輸Hl結(jié)果。
#include
template
classSample
(
Tn;
20
public:
Sample(Ti)(n=i;}
intoperator==(Sample&);
);
template
intSample::operator==(Sample&s)
|
if(n==s.n)
return1;
else
return0;
}
voidmain()
(
Samples1(2),s2(3);.
cout<<usi與s2的數(shù)據(jù)成員"<<(sl=s2?"相等":"不相等")?p=,z,z>
Samples3(2.5),s4⑵5);
cout?ws3與s4的數(shù)據(jù)成員“<<(s3=s4?"相等":"不相等")?p=〃”>}
答:si和s2的數(shù)據(jù)成員不相等S3和s4的數(shù)據(jù)成員相等
[32]
給出下面程序的輸出結(jié)果。
#include<iostream>
usingnamespacestd;
template<classT>
Tmax(Tml,Tm2)
{return(ml>m2)?ml:m2:}
voidmain(){
cout?max(L7)?"\t<<max(2.0,5.0)<<endl;
cout?max(,y',fb'<<"\t"?max(uA","a")?endl;
)
答:75.0
ya
21
練習(xí)題三
[1]在C++中,編譯指令都是以.(符號(hào))開始。
答:#
[2]假定要把a(bǔ)a定義為AB類中的一個(gè)引用整數(shù)型數(shù)據(jù)成員,則定義語句為
答:int&aa
[3]C++支持兩種多態(tài)性,編譯時(shí)的多態(tài)性和.時(shí)的多態(tài)性。
答:運(yùn)行
[4]假定用戶為類AB定義了一個(gè)構(gòu)造函數(shù)“AB(intaa=O):a(aa){}",則定義該類的對(duì)象
時(shí),可以有種不同的定義格式。
答:2
[5]若p指向X,則與x的表示是等價(jià)的。
答:*P
[6]C++的流庫預(yù)定義了4個(gè)流,它們是cin、cout、cerr和。
答:clog
[7]當(dāng)函數(shù)參數(shù)表用保留字表示時(shí),則表示該參數(shù)表為空。
答:void
[8]每個(gè)對(duì)象都是所屬類的一個(gè)o
答:實(shí)例
[9]作為類的成員函數(shù)重載一個(gè)運(yùn)算符時(shí),參數(shù)表中只有一個(gè)參數(shù),說明該運(yùn)算符有
____________個(gè)操作數(shù)。
答:2
[10]重載“<<”操作符時(shí),應(yīng)聲明為—函數(shù)。
答:友元
[11]設(shè)函數(shù)max是由函數(shù)模板實(shí)現(xiàn)的,并且max(3.5,5)和max(10,5)都是正確的函數(shù)
調(diào)用,則該模板具有個(gè)類型參數(shù)。
答:2
[12]在單繼承和多繼承方式中,面向?qū)ο蟮某绦蛟O(shè)計(jì)應(yīng)盡量使用______繼承。
答:單
22
[13]語句序列
ifstreamdatafile;
datafile,open("data,dat");
的功能可用一個(gè)語句實(shí)現(xiàn),這個(gè)語句是______o
答:ifstreamdatafile("data,dat”,ios::in)
[14]將關(guān)鍵字const寫在函數(shù)頭之后,函數(shù)體之前,說明該函數(shù)是一個(gè)const成員函
數(shù)。此時(shí)const不是指定函數(shù)的返回值,而是修飾_____指針。
答:this
[15]一個(gè)抽象類的派生類可以實(shí)例化的必要條件是實(shí)現(xiàn)了所有的______。
答:純虛函數(shù)
[16]在C++中,虛函數(shù)幫助實(shí)現(xiàn)了類的性。
答:多態(tài)
[17]通過C++語言中類的,可以擴(kuò)充和完善已有類以適應(yīng)新的需求。
答:繼承機(jī)制
[18]為了在對(duì)象生存期結(jié)束時(shí)釋放其指針成員所指向的動(dòng)態(tài)存儲(chǔ)空間,通常需要為該
類定義_o
答:析構(gòu)函數(shù)
[19]在聯(lián)合中,所有數(shù)據(jù)成員具有的地址,任一時(shí)刻只有一個(gè)數(shù)據(jù)成員有效。
答:相同
[20]在已經(jīng)定義了整型指針ip后,為了得到一個(gè)包括10個(gè)整數(shù)的數(shù)組并山ip所指向,
應(yīng)使用語句______。
答:ip=newint[10];
[21]下面的類定義有一處錯(cuò)誤,請用下橫線標(biāo)出錯(cuò)誤所在行并改正錯(cuò)誤。
classA{
inta;
public;
A(intaa):a=aa{}
);
答:第4行人6"@@):@=a2{}中“:a=aa”有錯(cuò),應(yīng)該為“:a(aa)”或等價(jià)的寫法。
[22]
下面的程序先把字符串“Lookout!”輸出到一個(gè)文件中,然后再從該文件輸入,并顯示在
屏幕上,顯示效果為Lookout!。程序中有一-處錯(cuò)誤,請用下橫線標(biāo)出錯(cuò)誤所在行,并給出
更改意見。
#include
23
voidmain(){
ofstreamoutf(UD:\\tem.dat",ios::trunc);
outf<<"Lookout!”;
outf.close();
ifsteaminf(UD:\\tem.datv);
chark[20];inf?k;count?p=〃">
inf.close();
)
答:第7行錯(cuò),應(yīng)該為chark;whi1e(inf.get(k))count<
[23]下面的程序有一處錯(cuò)誤,請用下橫線標(biāo)出錯(cuò)誤所在行并改正錯(cuò)誤。
#include
classTest{
public;
staticintx;
};
intx=20;〃對(duì)類成員初始化
voidmain()
{
cout<<p=〃〃>
)
答:程序中第6行錯(cuò)誤,應(yīng)該為:intTest::x=20;
[24]下面的程序類B的定義中有一處錯(cuò)誤,請用下橫線標(biāo)出錯(cuò)誤所在行并說明錯(cuò)誤原
因。
#include
#include
classA{
public:A(constchar*nm){strcpy(name,nm);)
private:charname[80];
};
classB:publicA{
public:B(constchar*nm):A(nm){}
voidPrintName()const;
};
24
voidB::PrintName()const{
cout<<<<name:,>?p=“〃》
)
voidmain(){
Bbl(awangli");
bl.PrintName();
)
答:第12行有錯(cuò),因?yàn)閚ame是由類A私有成員繼承而來,不能被派生類訪問。
[25]用下橫線標(biāo)出下面程序main函數(shù)中的錯(cuò)誤所在行,并說明錯(cuò)誤原因。
#include
classLocation{
private:
intX,Y;
public;
voidinit(intinitX,intinitY);
intsumXY();
);
voidLocation::init(intinitX,intinitY)
(
X=initX;
Y二initY;
}
intLocation::sumXY()
(
returnX+Y;
)
voidmain()
(
LocationAl;
intx,y;
Al.init(5,3);
x=Al.X;y=Al.Y;
25
cout<?,,p=〃〃)?endl;<=,,/,”<<al.sumxy(="〃>
答:第24行語句x=ALX;尸ALY;有錯(cuò),因?yàn)閙ain函數(shù)不能訪問對(duì)象Al的私有成員。
[26]
在下面程序橫線處填上適當(dāng)內(nèi)容,以使該程序執(zhí)行結(jié)果為:
12
88
#include
template
classTany{
public:
?
voidpr(){
if(sizeof(int)==sizeofx)
count?(x>y?x:y)?
else
cout?(x>y?y:x)?p=〃〃>
}
);
voidmain(){
Tanydobj={12.0,88.0);
dobj.pr();
Tanyiobj={12,88);
iobj.pr();
)
答:Tx,y
[27]在下面的橫線處填上適當(dāng)內(nèi)容,使程序完整。
#include<iostream.h>
#include<math.h>
classloc{
private:
floatx,y;
public;
26
loc()
{floatxl,floatyl;
x=xl;
y=yi;
)
floatgetx(){returnx;}
floatgety(){returny;}
②floatdis(loc&,loc&);
};
floatloc::dis(loc&a,loc&b)
(
flostdx=a.x-b.x;
flostdy=a.y-b.y;
returnsqrt(dx*dx+dy*dy);
)
voidmain()
(
locpl(3.5,4.5),p2(5.5,6.5);
floatd=loc::dis(pl,p2);
cout<<^Thedistanceis"?d;
)
答:①floatxl,floatyl②static
[28]
在下面程序中的橫線處填上適當(dāng)內(nèi)容,使程序完整。
#include
classvehicle
{
protected:
intsize;
intspeed;
public;
voidsetSpeed(ints){speed=s;}
virtualintgetSpeedLevel(){returnspeed/10;)
};
27
classcar:publicvehicle
public:
intgetSpeedLeve(){returnspeed/5;)
);
classtruck:publicvehicle
(
public:
intgetspeedLevel(){returnspeed/15;)
};
intmaxSpeedLevel(vehicle&vl,vehicle)
{
if(vl.getSpeedLevel()>v2.getSpeedLevel())
return1;
else
reutrn2;
)
voidmain()
!
turckt;
carc;
t.setSpeed(130);
c.setSpeed(60);
cout?<endl;p=zz,z此結(jié)果輸出為2<=〃〃>
)
答:&v2
【題型:完成】【100分】
[29]
在下面橫線處填上合適內(nèi)容,完成類B的定義。
#include
classA{
public:A(){a=0;}
A(inti){a=i;}
28
voidprint(){cout?v,;}<p=〃〃>
private:inta;
};
classB:publicA{
public:B(){bl=b2=0}
B(inti){bl=i;b2=0;}
B(inti,intj,intk):{bl=j;b2=k;}〃使a的值為i
voidprint(){A::print();cout?w,v<<b2<<endl;}<p="”>
private:intbl,b2;
)
答:A(i)
[30]
根據(jù)注釋在空白處填寫適當(dāng)內(nèi)容。
classLocation(
private:
intX,Y;
public:
voidinit(intinitX,intinitY);
intGetX();
intGetY();
};
voidLocation::init(intinitX,intinitY)
I
X=initX;
Y=initY;
)
intLocation::GetX()
(
reutrnX;
)
intLocation::GetY()
!
reutrnY;
)
29
#include
voidmain()
{
LocationAl;A1.init(20,90);
Location&rAl=A1;〃定義一個(gè)指向Al的引用rAl
〃用rAl在屏幕上輸出對(duì)象Al的數(shù)據(jù)成員X和Y的值
)
答:count?rAl.GetX()?rAl.GetY();
[31]
寫出下面程序的輸H;結(jié)果:
#include
classFunArray(
int*pa;〃指向一個(gè)數(shù)組空間
intsize;〃數(shù)組元素個(gè)數(shù)
public:
EunArray(inta[Lintthesize):pa(a),size(thesize)(}
intSize(){returnsize;}
int&operator[](intindex){returnpa[index-l];}
);
voidmain(){
ints[]={3,7,2,1,5,4);
FunArrayma(s,sizeof(s)/sizeof(int));
ma[3]=9;
for(inti=l;i<=ma.Size();i++)cout<?';<p="">
)
答:3,7,9,1,5,4,
[32]
寫出下面程序的輸Hl結(jié)果:
#include
template
classTclass{
Tx,y;
public:
30
Tclass(Ta,Tb):x(a){y=b;}
Tclass(Ta){y=(T)O,x=a;}
voidpr(){
charc;
c=(y>=(T)0?z
cout?(y>(T)0?y:-y)?/,i"?p=””>
}
);
voidmain(){
TclassadO.5,-5.8);
a.pr();
Tclassb(10);
b.pr();
)
答:10.5-5.8i
10+Oi
練習(xí)題四
[1]假定用戶沒有給一個(gè)名為AB的類定義析構(gòu)函數(shù),則系統(tǒng)自動(dòng)給出的缺省析構(gòu)函數(shù)定義
為。
答:?AB(){}
[2]模板定義中標(biāo)識(shí)類型的參數(shù)必須用關(guān)鍵字修飾。
答:class
[3]表達(dá)式count?hex還可表示為。
答:cout,sctf(ios::hex,ios::basefield)
[4]通過C++語言中的一機(jī)制,可以從現(xiàn)存類中構(gòu)建其子類。
答:繼承
[5]要在調(diào)用虛函數(shù)的時(shí)候強(qiáng)制進(jìn)行靜態(tài)聯(lián)編,可以通過在調(diào)用中對(duì)虛函數(shù)加一
實(shí)現(xiàn)。
答:域名限制
[6]封裝要求?個(gè)對(duì)象應(yīng)具備明確的功能,并具有以便和其它對(duì)象相互作用。
答:接口
[7]在刪除一個(gè)動(dòng)態(tài)對(duì)象時(shí),將自動(dòng)調(diào)用該動(dòng)態(tài)對(duì)象所屬類的_________函數(shù)。
31
答:析構(gòu)
【題型:填空】【100分】
[8]靜態(tài)成員函數(shù)、友元函數(shù)、構(gòu)造函數(shù)和析構(gòu)函數(shù)中,不屬于成員函數(shù)的是。
得分:100分
答:友元函數(shù)
[9]在下面的類定義中,私有成員有o
classLocation{
intX,Y;
protected:
intzeroX,zerxY;
intSetZero(intzeroX,intzeroY);
private:
intlength,height;
public:
voidinit(intinitX,intinitY);
intGetX();
intGetY();
);
答:X,Y,length,height
[10]類的私有成員只能被它的成員函數(shù)和訪問。
答:友元函數(shù)
[11]
此類定義有一處錯(cuò)誤,請指出錯(cuò)誤并改正。
classABC(
inta;
public:
ABC(intaa)a(aa){}
);
答:ABC(intaa)與a(aa){)之間少一個(gè)冒號(hào),應(yīng)改為ABC(tntIla):a(aa){)
[12]
下面程序通過調(diào)用函數(shù)模板實(shí)現(xiàn)計(jì)算兩個(gè)正整數(shù)的最大公約數(shù),把main函數(shù)中錯(cuò)誤找出并
改正過來。
#include
template
32
Tgcd(Tx,Ty){
while(x!=y)
if(x>y)x-=y;
elsey-=x;
returnx;
)
voidmain()
I
inta;
doubled;
cin?a?d;
cout?<endl;<p=〃”>
}
答:main函數(shù)中的gcd(a,d)改為gcd(a,(int)d)(或把doubled;改為int;
或把gcd(a,d)改為gcd<int>(a,d)或把gcd(a,b)改為gcd(a,int(d))=
[13]
指出下面程序中的錯(cuò)誤,并說明出錯(cuò)原因。
#include
classConstFun(
public:
voidConstFun(){}
constintf5()const{return5;)
intObj(){return45;}
intval;
intf8();
);
intConstFun::f8(){returnval;}
voidmain()
I
constConstFuns;
inti=s.f5();
cout<<"Value="?p=〃〃)
)
答:程序中第4行“voidConstFun(){}”錯(cuò)誤,因?yàn)槁暶鳂?gòu)造函數(shù)時(shí)不能
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司爬長城團(tuán)建登山活動(dòng)方案
- 公司節(jié)假日內(nèi)部活動(dòng)方案
- 公司標(biāo)準(zhǔn)化體系策劃方案
- 公司策劃端午節(jié)活動(dòng)方案
- 公司組織年終滑雪活動(dòng)方案
- 公司激勵(lì)活動(dòng)方案
- 公司組織打球活動(dòng)方案
- 公司節(jié)能減排活動(dòng)方案
- 公司花樣慶?;顒?dòng)方案
- 公司策劃小活動(dòng)方案
- 機(jī)房施工方案及技術(shù)措施
- 員工培訓(xùn)矩陣表
- 摜蛋大賽招商方案
- 電影特效制作課件
- 304不銹鋼管焊接工藝
- 網(wǎng)絡(luò)安全教育安全教育
- 醫(yī)療器械經(jīng)銷商和代理商法規(guī)義務(wù)
- 糖尿病??谱o(hù)士培訓(xùn)學(xué)習(xí)匯報(bào)課件
- 心理健康教育C證面試20個(gè)題目參考答案
- 危險(xiǎn)化學(xué)品庫房貯存規(guī)定培訓(xùn)課件
- Part 3-4 Unit 7 Invention and Innovation教案-【中職專用】高一英語精研課堂(高教版2021·基礎(chǔ)模塊2)
評(píng)論
0/150
提交評(píng)論