当前位置:
文档之家› 面向对象程序设计期末复习题及答案
面向对象程序设计期末复习题及答案
{
return x+y+z;
}
void main()
{
int a=4,b=6,c=10;
cout<<add(a,b)<<,<<add(a,b,c)<<endl;
}
解:
10,20 3.分析以下程序执行结果
#include<iostream.h>
int add(int x,int y)
{
return x+y;
class Sample
{
int x,y;
public:
Sample(){x=y=0;}
Sample(int a,int b){x=a;y=b;}
void disp()
{
cout<<"x="<<x<<",y="<<y<<endl;
}
};
void main()
{
Sample s1,s2(1,2),s3(10,20);
4、程序编制题【也称综合分析题】。 (第1、2题每题8分,第3题9分,共25分)重点复习内容
打*号是重点,打▲号是编程题出题范围
* 基本概念,对象,消息,类。
面向对象系统特性,封装性,继承性,多态性。
*▲ C++类的构成,类与对象,构造与析构,动态存储,类嵌套。
静态成员,对象数组,友元。
*函数重载。
{
int m;
public:
subs(int a, int b) : base(a)
{
cout << "constructing sub class "<< endl;
m=b;
cout << "m= "<< m << endl;
}
~subs() { cout << "destructing sub class "<< endl; }
{
int x,y;
public:
Sample() {x=y=0;}
Sample(int a,int b) {x=a;y=b;}
~Sample()
{
if(x==y)
cout<<“x=y”<<endl;
else
cout<<“x!=y”<<endl;
}
void disp()
{
cout<<“x=”<<x<<“,y”=<<y<<endl;
Derived(int val1,int val2):Sample(val1){ y=val2; }
base (int a)
{
cout << "constructing base class" << endl;
n=a;
cout << "n= "<< n << endl;
}
~base() { cout << "destructing base class" << endl; }
};
class subs : public base
答案:10
2.可以用p.a的形式访问派生类对象P的基类成员a,其中a是_________。
答案:公有继承的公有成员
3.能作为重载函数的调用的依据是_________。
答案:参数个数 、参数类型
4.在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流是否结束状态的操作函数名称是_________
C++面向对象程序设计复习
试题类型1、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。15题,每小题2分,共30分) [主要从作业题目中抽出来]
2. 填空题。(10题,每小题3分,共30分)
3、阅读程序,写出程序运行结果。【也称计算题】( 3题,每小题5分,共15分)
}
double add(double x,double y)
{
return x+y;
}
void main()
{
int a=4,b=6;
double c=2.6,d=7.4;
cout<<add(a,b)<<","<<add(c,d)<<endl;
}
解:
ostream.h>
};
void main ()
{
subs s(1,2);
}
解:
constructing base class
n= 1
constructing sub class
m= 2
destructing sub class
destructing base class
6.分析以下程序的执行结果:
#include <iostream.h>
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=205. 分析以下程序的执行结果:
#include<iostream.h>
class base
{
int n;
public:
base(){};
运算符重载。
*引用定义与引用参数
* 基类与派生类的定义。
* 基类及派生类的访问权(含派生类对基类的访问、通过派生类对象对基类的访问)和初始化。
多继承与虚基类。
*多态性与虚函数。
纯虚函数、抽象类。
*▲函数模板。
*▲使用类来定义对象并在程序中的应用题型样题
填空题 1. 假定AB为一个类,则执行“AB a[10];”语句时,系统自动调用该类的构造函数的次数为_________。
答案:eof
5.函数重载是指_________。
答案:两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
6.在派生类中重新定义虚函数时必须在 _________ 方面与基类保持一致。
答案:参数个数
阅读程序例题【计算题】
1.分析以下程序的执行结果
#include<iostream.h>
class Sample
}
};
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<iostream.h>
int add(int x,int y)
{
return x+y;
}
int add(int x,int y,int z)
class Sample
{
protected:
int x;
public:
Sample() { x=0; }
Sample(int val) { x=val; }
void operator++() { x++; }
};
class Derived:public Sample
{
int y;
public:
Derived():Sample(){ y=0; }