面向对象程序设计期末复习题与答案1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)