版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、封 密 . :业专级年 :别系 二二二二二二二二一.二号学 :名姓题序一二三四五六总分得分评卷人开课单位:计算机学院,考试形式:闭卷,允许带 入场题号12345678910答案题号1112131415答案.单项选择题(15小题,每小题2分,共30分,请将正确答案填写在以下对应的答题表格中)1、在类定义的外部,可以被访问的成员有()东莞理工学院(本科)试卷(A卷)2012 -2013学年第二学期面向对象程序设计试卷A、所有类成员B、private的类成员C、public 或private 的类成员 口 public 的类成员2、下列关于C+语言类的描述中错误的是()。A、类用于描述事物的属性和对
2、事物的操作B、类与类之间通过封装而具有明确的独立性C、类与类之间必须是平等的关系,而不能组成层次结构D类与类之间可以通过一些方法进行通信和联络3、下列数组定义中,不正确的是()。A、 int x13; B、int x22=1,2,3;C、 int x2=1,2,3,4 ;D、 int x2=1,2,3,4 4、定义析构函数时,应该注意:()A、其名与类名完全相同B 、返回类型是void类型C、无形参,也不可重载D 、函数体中必须有delete语句5、下列函数中,正确的递归函数是() 。A 、 int Fun(int n) if(n<1) return 1; else return n*F
3、un(n+1); B 、 int Fun(int n) if (abs(n)<1) return 1; else return n*Fun(n/2); C 、 int Fun(int n) if(n>1) return 1; else return n*Fun(n*2); D、int Fun(int n) if(n>1) return 1; else return n*Fun(n-1); 6、在在C+4编译器所生成的文件的扩展名为() 答案修改过A、.cppB、.objC 、 .lib D.exe7、派生类的对象对它的基类成员中的(派生类的对象对它的基类成员中的()是可以访问
4、A、公有继承的公有成员日 公有继承的私有成员C、公有继承的保护成员D私有继承的公有成员8. C+ 设置虚基类的目的是()A、B 、简化程序C 、提高运行效率D 、减少目标代码9.this 指针的叙述中正确的是:A、this 指针;this指针;C、this 指针;D、类的非静态成员函数才有this 指针;10 实现运行时的多态性采用()A、重载函数 B 、构造函数 C 、析构函数D、虚函数11、 若有 int a10=0,1,2,3,4,5,6,7,8,9,*p=&a5则() 不是对 a 数组元素的正确引用(其中0Wi<10)A、piB 、 *(*(p+i) )C 、 ap-a
5、D* (&ai)12、 int Func(int , int);不可与下列哪个函数构成重载(A、 int Func(int , int ,int) ;B、 double Func(intint) ;C、 double Func(double , double) ; D 、 double Func(intdouble)13、 局部变量可以隐藏全局变量,那么在有同名全局变量和局部变量的情形时,可以用 ()提供对全局变量的访问。A 、域运算符B 、指针C 、重载D 、引用14 下列描述中,正确的是:A 、所有的运算符号都可以重载。B、基类类型的指针可以指向子类,子类类型的指针也可以指向基类。
6、public 继承前一个说法才成立】C、可以在类体内对静态数据成员进行初始化。【必须类外初始化】D、动态联编要满足两个条件:被调用的成员函数是虚函数;用指针或引用调用虚函数。15、下面类的定义,有()处错误。class MyClassprivate: int i=0; 2public: void MyClass(); 3MyClass(int Value); 4 1A、1 B 、2 C 、3 D 4二.填空题(每题2分,共20分)1、static 加在局部变量定义前,改变局部变量的生存期但不改变它作用域 的。2 .类的私有成员只能被它的成员函数和友元 函数访问。3 . 一个抽象类的派生类可以实
7、例化的必要条件是实现了所有的纯虚函数。4、假定AB为一个类,有类 AB的两个对象a1,a2;则执行语句 AB *a10=&a1,&a2;时系统自动调用该类的构造函数的次数为0 。5、通过C+相言中类的继承和派生机制,可以扩充和完善已有类以适应新的需求。【答案修改过】6 .若在类的定义体中给出了一个成员函数的完整定义,则该函数属于内联函数。7 .不同对象可以调用相同名称的函数,但可导致完全不同的行为的现象称为多态。8 .对象的核心概念就是通常所说的继承 、 封装和多态性。9 .在一个类中可以定义1个析构函数。10、若只需要通过一个成员函数读取数据成员的值,而不需要修改它,则应在函
8、数头的后 面加上 const 关键字。三.判断题,对的打T错的打F。(5小题,每小题2分,共10分)1 .函数形参的作用域是该函数的函数体。2 .纯虚函数必须在抽象类中,所以抽象类中的成员函数必须是纯虚函数。(x )3 .派生类中至少包含了它的所有基类的成员,在这些成员中可能有的是不可访问。(,) 答案修改过(X5.构造函数和析构函数都可以定义为虚函数。(X)。四.程序填空(每题6分,共18分)根据程序的功能描述,将程序下划线空白处内容补充完整(每空白1.阅读下面是一段关于类的派生的程序,请完成填空。以下程序是定义一个计数器类counter ,对其重载运算符3分)+”,请填空。class co
9、unterprivate: int n;public ;counter。n=0;counter(int i)n=i;counter operator +(counter &c)面是动态创建一个8x9x8的三维数组的一段程序,请按提示完成填空。#include <iostream> using namespace std; int main() float *cp=new float*8;程序1#include <iostream> using namespace std; class base public:static int n;base(int x) n=
10、x;virtual void set(int m) n = m; cout << n <<'' ;int base:n=0;class deriveA:public base public:deriveA(int x):base(x) 4 .可以在类的构造函数中对静态数据成员进行初始化。void set(int m) n += m; cout << n <<' ':业专级年 :别系封 号- -二: 伤.学 .线,名- 姓 - 4 .2.;class deriveB:public base public:derive
11、B(int x):base(x) void set(int m) n +=m; cout <<n << ' ' ;int main()deriveA dl(0);deriveB d2(1);base *pbase;pbase = &dl;pbase->set(1);pbase->base:set(0);pbase = &d2;pbase->set(1);pbase->base:set(3);cout<<endl;return 0;输出结果:2 0 1 3程序2#include <iostream&
12、gt; using namespace std;class Base1 public:int i;Base1(int x) i=x;cout << "Constructing Base1 " << i << endl; ;class Base2: public Base1public:Base2(int j): Base1(j) cout << "Constructing Base2 " << j << endl; ;class Base3 public:Base3() cout &
13、lt;< "Constructing Base3 *" << endl; ;class Derived: public Base2, public Base3 public:int h;Derived(int a, int b, int c, int d): member2(d), member1(c), Base2(b)h=a; private:Basel memberl;Base2 member2; Base3 member3; ; int main() Derived obj(1,2, 3, 4); return 0;输出结果:Constructin
14、g Base1 2 Constructing Base2 2 Constructing Base3 * Constructing Basel 3 Constructing Basel 4 Constructing Base2 4 Constructing Base3 * 六、程序设计(12分) 定义一个抽象类 Stereo ,函数Volume为纯虚函数,用来计算体积。由抽象类分别派生出 立方体Cube类、球体Sphere类、圆柱体 Cylinder类,并求其体积(其中球体的体积公式 为V=4/3*PI*R*R*R)。各立体形状的相关数据成员(其中: r代表半径,l代表长度,w代 表宽度,h代表
15、高度)属性都为 private ,并且通过各类的构造函数设置。total是一个通用的,用以求不同立体形状的体积总和的全局函数。 1)定义和实现各个类,给出相关的成员数据、构造函数和必要的成员函数即可。(4分,每个类1分) 2)定义和实现total函数,注意该函数为全局函数不是某各类的成员函数。(4分)3)编写main函数进行测试,功能要求如下:a、用基类指针数组,使它的每一个元素指向一个派生类的对象,并且所有形状立方体对象都进行内存动态分配和回收(即用new和delete操作符);b、主函数内调用total输出所有形状立方体的体积之和。(4分)注:主函数中用到的构造函数和total函数如下Cu
16、be,; /实参为立方体的长、宽、高。Sphere; /实参为球体的半径。Cylinder,; /实参为圆柱体的底面半径、高。total(s,3);/实参s为基类指针数组,3为数组的大小。#include<iostream>using namespace std;class Stereopublic:virtual float Volume(void)=0;class Cube:public Stereopublic:Cube( float l=1,float w=1,float h=1 ):l(l),w(w),h(h)float Volume(void)return l*w*h;private:float l,w,h;class Sphere:public Stereopublic:Sphere( float r=1 ):r(r)float Volume(void)return 4/3*r*r*r;private:float r;class Cylinder:public Stereopublic:Cylinder( float r=1, float h=1 ):r(r),h(h)float Volume(void)return *r*r*h;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年旅游公司浮动抵押合同
- 个人住宅租借押金及季度租金合同样本(2024版)一
- 二零二五年度专业印刷品设计、印刷与打印服务合同3篇
- 事业单位基本建设粉刷工程分包合同2024版B版
- 2025年度烘焙连锁面包砖供应链合作协议4篇
- 二零二五年度干股虚拟股分红激励方案合同范本
- 2025年度玩具货物运输委托服务协议
- 二零二五年度物业小区个人承包社区物业服务综合解决方案协议
- 2025年度家用空调拆装安全操作规范及应急处理合同
- 二零二五年度家政服务公司保姆雇佣协议
- 海外资管机构赴上海投资指南(2024版)
- 山东省青岛市2023-2024学年七年级上学期期末考试数学试题(含答案)
- 墓地销售计划及方案设计书
- 从偏差行为到卓越一生3.0版
- 优佳学案七年级上册历史
- 铝箔行业海外分析
- 纪委办案安全培训课件
- 超市连锁行业招商策划
- 城市道路智慧路灯项目 投标方案(技术标)
- 【公司利润质量研究国内外文献综述3400字】
- 工行全国地区码
评论
0/150
提交评论