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

  • 格式:doc
  • 大小:53.00 KB
  • 文档页数:10

下载文档原格式

  / 31
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

试题类型1、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。15题,每小题2分,共30分) [主要从作业题目中抽出来]

2. 填空题。(10题,每小题3分,共30分)

3、阅读程序,写出程序运行结果。【也称计算题】( 3题,每小题5分,共15分)

4、程序编制题【也称综合分析题】。 (第1、2题每题8分,第3题9分,共25分) 重点复习内容

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

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

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

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

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

*函数重载。

运算符重载。

*引用定义与引用参数

* 基类与派生类的定义。

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

多继承与虚基类。

*多态性与虚函数。

纯虚函数、抽象类。

*▲函数模板。

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

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

答案:10

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

答案:公有继承的公有成员

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

答案:参数个数、参数类型

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

答案:eof

5.函数重载是指_________。

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

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

答案:参数个数

阅读程序例题【计算题】

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

#include

class Sample

{

int x,y;

public:

Sample() {x=y=0;}

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

~Sample()

{

if(x==y)

cout<<“x=y”<

else

cout<<“x!=y”<

}

void disp()

{

cout<<“x=”<

};

void main()

{

Sample s1,s2(2,3);

s1.disp();

s2.disp();

}

解:

x=0,y=0

x=2,y=3

x!=y

x=y

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

#include

int add(int x,int y)

{

return x+y;

}

int add(int x,int y,int z)

{

return x+y+z;

}

void main()

{

int a=4,b=6,c=10;

cout<

解:

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

#include

int add(int x,int y)

{

return x+y;

}

double add(double x,double y)

{

return x+y;

}

void main()

int a=4,b=6;

double c=2.6,d=7.4;

cout<

}

解:

10,10

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

#include

class Sample

{

int x,y;

public:

Sample(){x=y=0;}

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

void disp()

{

cout<<"x="<

}

};

void main()

{

Sample s1,s2(1,2),s3(10,20);

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

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

pa[i]->disp();

}

解:

x=0,y=0

x=1,y=2

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

#include

class base

{

int n;

public:

base(){};

base (int a)

{

cout << "constructing base class" << endl;

n=a;

cout << "n= "<< n << endl;

}

~base() { cout << "destructing base class" << endl; } };

class subs : public base

{

int m;

public:

subs(int a, int b) : base(a)