11-12面向对象程序设计(二)试卷(B)_第1页
11-12面向对象程序设计(二)试卷(B)_第2页
11-12面向对象程序设计(二)试卷(B)_第3页
11-12面向对象程序设计(二)试卷(B)_第4页
11-12面向对象程序设计(二)试卷(B)_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、华侨大学 面向对象程序设计(二) 试卷(B)系别 考试日期 2012年 06月27日姓名 学号 成绩 一、填空题(15分,每空1分)1. 类的成员包括_和_。2. 建立一个类对象时,系统自动调用_。3. 如果希望类的成员为该类所有对象所共享,可以使用关键字_来修饰。4. 如果希望完成所谓的深拷贝,需要重载_构造函数。5. 类成员的访问控制包括_、_和_。6. 不属于类成员但却可以访问类的私有数据变量的函数是该类的_。7. 运算符和 7. 下列关于构造函数的描述中,错误的是_。A) 构造函数可以没有参数 B) 构造函数不可以设置默认参数C) 构造函数可以是内联函数 D) 构造函数可以重载8. 下

2、面描述中,表达错误的是_。A) 公有继承时基类中的public成员在派生类中仍是public的B) 公有继承是基类中的private成员在派生类中仍是private的 C) 公有继承是基类中的protected成员在派生类中仍是protected的D) 私有继承时基类中的public成员在派生类中是private的9. 运算符重载是对已有的运算符赋予多重含义,因此_A) 可以对基本类型(如double类型)的数据,重新定义“+”运算符的含义B) 可以改变一个已有运算符的优先级和操作数个数C) C+中已经有的所有运算符都可以重载D) 只能重载C+中已有的运算符,不能定义新运算符10. 已知类My

3、Int的定义如下:class MyIntint data;public:MyInt(int d) data = d; ;下列对MyInt类对象数组的定义和初始化语句中,正确的是A) MyInt myInts3;B) MyInt myInts3 = MyInt(2);C) MyInt myInts3 = MyInt(3), MyInt(4), MyInt(5); D) MyInt* myInts = new MyInt3;三、阅读以下程序并填空(填上正确的语法成分),使其成为完整的程序(20分,每空2分)(1). 已知向量MyVector的定义如下,data存放数据,capacity是当前分配的

4、空间大小,length是data里实际存放的元素数目。(1)实现构造函数,分配大小为n的空间,并都初始化为0;(2)实现析构函数,释放分配的空间;(3)重载流插入运算符,将当前data的所有元素都依次打印出来,格式如3 2 4 5。class MyVectorint *data; /指向存放数组数据的空间int capacity; /当前分配的空间大小int length;/当前实际的元素数目 public: MyVector(int n);MyVector() delete _(1)_; _(2)_ostream& operator0);data = _(3)_;capacity = n;l

5、ength = 0;for(int i = 0; in; i+)*(data+i) = 0;ostream& operator(ostream& out, const MyVector& mv)/重载运算符for( int i =0; _(4)_; i+)out _(5)_ “ “;out endl;return out;(2). 类Derived公共继承于Base。Base的构造函数有一个参数i用于初始化其数据成员v。Derived的构造函数有三个参数val1,val2和val3,分别用于初始化Base的数据成员v以及Derived的数据成员v1、v2。class Baseint v;pub

6、lic:Base(int i):_ (6)_;class Derived:_(7)_ int v1,v2;public:Derived(int val1, int val2, int val3):_(8)_, _(9)_,_ (10)_ ;四、读程序,写出运行结果(25分,每题5分)1. void f(int i)static int calledTimes = 0;cout No. +calledTimes in f( i ) endl;int main()int i = 0;for( int i = 0; i 5; i+) f(i+1);cout i = i endl;2. class B

7、asepublic:void print()coutIn Base:print() endl;class Derived:public Basepublic:void print()Base:print();coutIn Derived:print() endl;int main()Derived d;d.print();return 0;3. class Base public:Base(int i=0,int j=0) a=i;b=j;void print( ) cout”a=”a”,b=”bendl;private :int a,b;void main( ) Base m, n(4,8)

8、;m.print( );n.print( );4. class MyClasspublic:MyClass() cout MyClass() endl;MyClass(const MyClass& another) cout MyClass(const MyClass& another() endl;MyClass& operator=(const MyClass& rhs) cout operator=() endl; return *this;int main()MyClass mc1;MyClass mc2 = mc1;MyClass mc3(mc2);mc1 = mc3;return

9、0;5. class Animalpublic:Animal() cout Animal:Animal() endl; Animal() cout Animal:Animal() endl; ;class Cat:public Animalpublic:Cat() cout Cat:Cat() endl;Cat() cout Cat:Cat() endl;int main()Cat animal;五、编程题(共20分)1. 请实现三个可以支持两个、三个和n个整数相加的重载函数。函数名统一为add,返回值统一为int,例如两个整数相加的版本为 int add(int, int)。2. 给定类In

10、tegerNumber的定义如下,要求实现如下五个运算符重载。class IntegerNumberint value;public:IntegerNumber(int n = 0) value = n; IntegerNumber operator+(const IntegerNumber& rhs);IntegerNumber operator-(const IntegerNumber& rhs);friend IntegerNumber operator+(IntegerNumber& a, int x);/后+friend IntegerNumber& operator+(IntegerNumber& a);/前+friend ostream& operator(ostream& out, IntegerNumber& rhs);华侨大学 面向对象程序设计(二) 试卷(B)答题纸系别 考试日期 2012年 06月27日姓名 学号 成绩 题号第一题第二题第三题第四题第五题总分成绩阅卷人一、填空题 (15分,每空1分)1. 、 2. 3. 4. 5. 、 、 6. 7. 8. 9. 、 、 10. 二、选择题 (20分,每小题2分) 1. 2.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论