1、-各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-华侨大学 面向对象程序设计(二) 试卷(B)系别 考试日期 2012年 06月27日姓名 学号 成绩 一、填空题(15分,每空1分)1. 类的成员包括_和_。(数据成员/函数成员)2. 建立一个类对象时,系统自动调用_。(构造函数)3. 如果希望类的成员为该类所有对象所共享,可以使用关键字_来修饰。(static)4. 如果希望完成所谓的深拷贝,需要重载_构造函数。(拷贝)5. 类成员的访问控制包括_、_和_。(public/protected/private)6. 不属于类成员但却可以访问类的私有数据变量的函数是该类的
2、_。(友元函数)7. 运算符和 7. 下列关于构造函数的描述中,错误的是_。A) 构造函数可以没有参数 B) 构造函数不可以设置默认参数C) 构造函数可以是内联函数 D) 构造函数可以重载8. 下面描述中,表达错误的是_。A) 公有继承时基类中的public成员在派生类中仍是public的B) 公有继承时基类中的private成员在派生类中仍是private的 C) 公有继承时基类中的protected成员在派生类中仍是protected的D) 私有继承时基类中的public成员在派生类中是private的9. 运算符重载是对已有的运算符赋予多重含义,因此_A) 可以对基本类型(如double
3、类型)的数据,重新定义“+”运算符的含义B) 可以改变一个已有运算符的优先级和操作数个数C) C+中已经有的所有运算符都可以重载D) 只能重载C+中已有的运算符,不能定义新运算符10. 已知类MyInt的定义如下: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 = n
4、ew MyInt3;三、阅读以下程序并填空(填上正确的语法成分),使其成为完整的程序(20分,每空2分)(1). 已知向量MyVector的定义如下,data存放数据,capacity是当前分配的空间大小,length是data里实际存放的元素数目。(1)实现构造函数,分配大小为n的空间,并都初始化为0;(2)实现析构函数,释放分配的空间;(3)重载流插入运算符,将当前data的所有元素都依次打印出来,格式如3 2 4 5。class MyVectorint *data; /指向存放数组数据的空间int capacity; /当前分配的空间大小int length;/当前实际的元素数目 pub
5、lic: MyVector(int n);MyVector() delete _(1)_; int& operator(int i);_(2)_ostream& operator0);data = _(3)_;capacity = n;length = 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;(1) data (2) friend
6、 (3) new intn (4) i mv.length (5) *(mv.data+i)(2). 类Derived公共继承于Base。Base的构造函数有一个参数i用于初始化其数据成员v。Derived的构造函数有三个参数val1,val2和val3,分别用于初始化Base的数据成员v以及Derived的数据成员v1、v2。class Baseint v;public:Base(int i):_ (6)_;class Derived:_(7)_ int v1,v2;public:Derived(int val1, int val2, int val3):_(8)_, _(9)_,_ (10
7、)_ ;(6) v(i) (7) public Base (8)Base(val1) (9)v1(val2) (10) v2(val3)四、读程序,写出运行结果(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 Basepublic:void print()coutIn Base:print() endl;cl
8、ass Derived:public Basepublic:void print()Base:print();coutIn Derived:print() endl;int main()Derived d;d.print();return 0;答案:In Base:print() In Derived:print()3. class A public:A(int i=0,int j=0) a=i;b=j;void print( ) cout”a=”a”,b=”bendl;private :int a,b;void main( ) A m,n(4,8);m.print( );n.print( )
9、;答案:a=0,b=0 a=4,b=84. 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 0; 答案
10、: 5. class Animalpublic:Animal() cout Animal:Animal() endl; Animal() cout Animal:Animal() endl; ;class Tigger:public Animalpublic:Tigger() cout Tigger:Tigger() endl; Tigger() cout Tigger:Tigger() endl; ;class Cat:public Tiggerpublic:Cat() cout Cat:Cat() endl;Cat() cout Cat:Cat() endl;int main()Cat a
11、nimal;答案:五、编程题(共20分)1. 请实现以下三个分别可以支持两个、三个和n个整数相加的重载函数。函数名统一为add,返回值统一为int,例如两个整数相加的版本为 int add(int, int)。int add(int x, int y)return x+y;int add(int x, int y, int z)return x+y+z;int add(int x, int n)int result = 0;for(int i = 0; i n; i+)result += xi;return result;2. 给定类IntegerNumber的定义如下,要求实现如下五个运算符
12、重载。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 ostrea
13、m& operator(ostream& out, IntegerNumber& rhs);答案:IntegerNumber IntegerNumber:operator+(const IntegerNumber& rhs)return IntegerNumber(value+rhs.value);IntegerNumber IntegerNumber:operator-(const IntegerNumber& rhs)return IntegerNumber(value-rhs.value);IntegerNumber operator+(IntegerNumber& data, int
14、x)IntegerNumber n(data.value);data.value+;return n;IntegerNumber& operator+(IntegerNumber& data)data.value+;return data;ostream& operator(ostream& out, IntegerNumber& rhs)out rhs.value;return out;华侨大学 面向对象程序设计(二) 试卷(B)答题纸系别 考试日期 2012年 06月27日姓名 学号 成绩 题号第一题第二题第三题第四题第五题总分成绩阅卷人一、填空题 (15分,每空1分)(1) (2) (3) (4) (5) (6) (7) 、 (8) 、 (9) 、 (10) 、 、 二、选择题 (20分,每小题2分) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) 三、阅读以下程序并填空(填上正确的语法成分),使其成为完整的程序(18分,每空2分)_ _ _ _ _ _ _四、读程序,写出运行结果(20分,每题5分)(1) _(2) _(3) _(4) _五、编程题(27分)1(12分)2(15分)-各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-