面向对象程序设计期末复习题与答案1.docx

上传人:b****1 文档编号:706571 上传时间:2022-10-12 格式:DOCX 页数:16 大小:19.08KB
下载 相关 举报
面向对象程序设计期末复习题与答案1.docx_第1页
第1页 / 共16页
面向对象程序设计期末复习题与答案1.docx_第2页
第2页 / 共16页
面向对象程序设计期末复习题与答案1.docx_第3页
第3页 / 共16页
面向对象程序设计期末复习题与答案1.docx_第4页
第4页 / 共16页
面向对象程序设计期末复习题与答案1.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

面向对象程序设计期末复习题与答案1.docx

《面向对象程序设计期末复习题与答案1.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计期末复习题与答案1.docx(16页珍藏版)》请在冰豆网上搜索。

面向对象程序设计期末复习题与答案1.docx

面向对象程序设计期末复习题与答案1

C++面向对象程序设计复习

试题类型1、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。

15题,每小题2分,共30分)[主要从作业题目中抽出来]

2.填空题。

(10题,每小题3分,共30分)

3、阅读程序,写出程序运行结果。

【也称计算题】(3题,每小题5分,共15分)

4、程序编制题【也称综合分析题】。

(第1、2题每题8分,第3题9分,共25分)重点复习内容

打*号是重点,打▲号是编程题出题范围

*基本概念,对象,消息,类。

面向对象系统特性,封装性,继承性,多态性。

*▲C++类的构成,类与对象,构造与析构,动态存储,类嵌套。

静态成员,对象数组,友元。

*函数重载。

运算符重载。

*引用定义与引用参数

*基类与派生类的定义。

*基类及派生类的访问权(含派生类对基类的访问、通过派生类对象对基类的访问)和初始化。

多继承与虚基类。

*多态性与虚函数。

纯虚函数、抽象类。

*▲函数模板。

*▲使用类来定义对象并在程序中的应用题型样题

填空题1.假定AB为一个类,则执行“ABa[10];”语句时,系统自动调用该类的构造函数的次数为_________。

答案:

10

2.可以用p.a的形式访问派生类对象P的基类成员a,其中a是_________。

答案:

公有继承的公有成员

3.能作为重载函数的调用的依据是_________。

答案:

参数个数、参数类型

4.在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流是否结束状态的操作函数名称是_________

答案:

eof

5.函数重载是指_________。

答案:

两个或两个以上的函数取相同的函数名,但形参的个数或类型不同

6.在派生类中重新定义虚函数时必须在_________方面与基类保持一致。

答案:

参数个数

阅读程序例题【计算题】

1.分析以下程序的执行结果

#include

classSample

{

intx,y;

public:

Sample(){x=y=0;}

Sample(inta,intb){x=a;y=b;}

~Sample()

{

if(x==y)

cout<<“x=y”<

else

cout<<“x!

=y”<

}

voiddisp()

{

cout<<“x=”<

}

};

voidmain()

{

Samples1,s2(2,3);

s1.disp();

s2.disp();

}

解:

x=0,y=0

x=2,y=3

x!

=y

x=y

2.分析以下程序的执行结果

#include

intadd(intx,inty)

{

returnx+y;

}

intadd(intx,inty,intz)

{

returnx+y+z;

}

voidmain()

{

inta=4,b=6,c=10;

cout<

}

解:

10,203.分析以下程序执行结果

#include

intadd(intx,inty)

{

returnx+y;

}

doubleadd(doublex,doubley)

{

returnx+y;

}

voidmain()

{

inta=4,b=6;

doublec=2.6,d=7.4;

cout<

}

解:

10,10

4.分析以下程序执行的结果

#include

classSample

{

intx,y;

public:

Sample(){x=y=0;}

Sample(inta,intb){x=a;y=b;}

voiddisp()

{

cout<<"x="<

}

};

voidmain()

{

Samples1,s2(1,2),s3(10,20);

Sample*pa[3]={&s1,&s2,&s3};

for(inti=0;i<3;i++)

pa[i]->disp();

}

解:

x=0,y=0

x=1,y=2

x=10,y=205.分析以下程序的执行结果:

#include

classbase

{

intn;

public:

base(){};

base(inta)

{

cout<<"constructingbaseclass"<

n=a;

cout<<"n="<

}

~base(){cout<<"destructingbaseclass"<

};

classsubs:

publicbase

{

intm;

public:

subs(inta,intb):

base(a)

{

cout<<"constructingsubclass"<

m=b;

cout<<"m="<

}

~subs(){cout<<"destructingsubclass"<

};

voidmain()

{

subss(1,2);

}

解:

constructingbaseclass

n=1

constructingsubclass

m=2

destructingsubclass

destructingbaseclass

6.分析以下程序的执行结果:

#include

classSample

{

protected:

intx;

public:

Sample(){x=0;}

Sample(intval){x=val;}

voidoperator++(){x++;}

};

classDerived:

publicSample

{

inty;

public:

Derived():

Sample(){y=0;}

Derived(intval1,intval2):

Sample(val1){y=val2;}

voidoperator--(){x--;y--;}

voiddisp()

{

cout<<"x="<

}

};

voidmain()

{

Derivedd(3,5);

d.disp();

d++;

d.disp();

d--;

d--;

d.disp();

}

解:

x=3,y=5

x=4,y=5

x=2,y=3

7分析以下程序执行结果:

#include

classA

{

public:

A(char*s){cout<

~A(){}

};

classB:

publicA

{

public:

B(char*sl,char*s2):

A(sl)

{

cout<

}

};

classC:

publicA

{

public:

C(char*sl,char*s2):

A(sl)

{

cout<

}

};

classD:

publicB,publicC

{

public:

D(char*sl,char*s2,char*s3,char*s4):

B(sl,s2),C(sl,s3)

{

cout<

}

};

voidmain()

{

Dd("classA","classB","classC","classD");

}

解:

classA

classB

classA

classC

classD补充例题

1.分析以下程序的执行结果

#include

template

Tmax(Tx,Ty)

{return(x>y?

x:

y);}

voidmain()

{cout<

解答:

5,3.52.分析以下程序的执行结果

#include

voidmain()

{

inta[]={10,20,30,40},*pa=a;

int*&pb=pa;

pb++;

cout<<*pa<

}

解答:

输出为:

203.分析以下程序的执行结果

#include

template

Tabs(Tx)

{return(x>0?

x:

-x);}

voidmain()

{cout<

解答:

输出为:

3,2.6

4.分析以下程序的执行结果

#include

classSample

{

charc1,c2;

public:

Sample(chara){c2=(c1=a)-32;}

voiddisp()

{cout<

};

voidmain()

{

Samplea('a'),b('b');

a.disp();

b.disp();

}

解答:

a转换为A

b转换为B5.分析以下程序的执行结果

#include

voidmain()

{

inta;

int&b=a;//变量引用

b=10;

cout<<“a=”<

}

解答:

输出为:

a=106.分析以下程序的执行结果

#include

classSample

{

intx;

public:

Sample(){};

Sample(inta){x=a;}

Sample(Sample&a){x=a.x+++10;}

voiddisp(){cout<<“x=”<

};

voidmain()

{Samples1

(2),s2(s1);

s1.disp();

s2.disp();

}

解答:

x=3//++运算的结果

x

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1