1、面向对象的程序设计第二阶段练习江南大学网络教育第二阶段练习题考试科目:面向对象的程序设计第 章至第 章(总分100分) _学习中心(教学点) 批次: 层次: 专业: 学号: 身份证号: 姓名: 得分: 一 单选题 (共7题 ,总分值7分 ,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。)1. 若一个类中含有纯虚函数,则该类称为(C ) (1 分)A. 基类 B. 虚基类 C. 抽象类 D. 派生类 2. 下列运算符中,不能用友元函数重载的是(A ) (1 分)A. B. C. D. 3. 派生类的对象对它的基类成员中( A)是可以访问的。 (1 分)A. 公有继承的公有成员 B
2、. 公有继承的私有成员 C. 公有继承的保护成员 D. 私有继承的公有成员类 4. 下列运算符中,不能被重载的是(B ) (1 分)A. B. . C. ( ) D. / 5. 用关键字(A )标记的函数被称为虚函数。 (1 分)A. virtual B. private C. public D. protected 6. 多重继承是(B ) (1 分)A. 多个单继承的叠加 B. 派生类有多个直接基类 C. 多个派生类有唯一的基类 D. 每个派生类最多只有一个直接基类,但它可以有多个间接基类 7. C+语言建立类族是通过(B )。 (1 分)A. 类的嵌套 B. 类的继承 C. 虚函数 D.
3、 抽象类 二 多选题 (共4题 ,总分值8分 ,下列选项中至少有2个或2个以上选项符合题目要求,请在答题卡上正确填涂。)8. 下面描述中,(BD )是正确的。 (2 分)A. 虚函数是没有实现的函数 B. 纯虚函数的实现是在派生类中定义 C. 抽象类是只有纯虚函数的类 D. 抽象类指针可以指向不同的派生类 9. 作用域运算符通常用来(AD )。 (2 分)A. 指定特定的类 B. 指明从哪一个基类中导出来的 C. 在某些成员函数中限定静态变量的可视范围 D. 解决二义性 10. 继承的优点是(ABC )。 (2 分)A. 扩大类的使用范围,更便于使用类库 B. 避免重写程序代码,提供有用的概念
4、框架 C. 把类组织成有条理的转化层次结构 D. 通用继承的自然选择和重写使类进一步拓展 11. 下列函数中,可以作为虚函数的是(BD)。 (2 分)A. 普通函数 B. 非静态成员函数 C. 构造函数 D. 析构函数 三 填空题 (共11题 ,总分值22分 )12. 使用虚函数保证了在通过一个基类类型的指针(含引用)调用一个虚函数时,C系统对该调用进行_,但是,在通过一个对象访问一个虚函数时,使用_ (2 分)13. 如果类A继承了类B,那么类A被称为_类,而类B又被称为_类。 (2 分)14. 在默认情况下的继承方式为_。 (2 分)15. 重载“ ”函数必须且只能带_个形参,且规定其参数
5、的类型为_赋值操作。 (2 分)16. 运算符的重载实际上是_的重载。 (2 分)17. C+提供了_机制,允许一个派生类可以继承多个基类,甚至这些基类是互不相关的。 (2 分)18. 引进虚基类的目的是_。 (2 分)19. 重载函数在编译时表现出多态性是_联编;而虚函数则在运行时表现出多态性是_联编。 (2 分)20. 纯虚函数的定义是在虚函数定义的基础上,再让函数等于_0_。 (2 分)21. 成员函数重载运算符需要的参数的个数总比它的操作数_ _少_ _一个。 (2 分)22. C的两种联编方式为:_静态_联编和_动态_联编。 (2 分)四 判断题 (共7题 ,总分值14分 正确的填涂
6、“A”,错误的填涂“B”。)23. 在构造函数和析构函数中调用虚函数时采用动态联编,即它们所调用的虚函数是在派生类中重定义的虚函数。 (2 分)(B)24. 程序中可以说明抽象类的指针或引用。 (2 分)(A)25. 抽象类中只能有一个纯虚函数。 (2 分)(B)26. 在派生过程中,派生类吸收包括构造函数和析构函数在内的所有基类成员。 (2 分)(B)27. 重载后缀“”运算符时多给出的一个int参数,在函数体中并不被使用。 (2 分)(A)28. 增加一个基类的派生类,需要对基类进行根本改变。 (2 分)(B)29. 下标运算符的重载提供了在C中实现安全的数组下标的一种方法。 (2 分)(
7、A)五 综合题 (共5题 ,总分值35分 )30. (1)在C中,分数不是预先定义的,需要建立一个分数类,使之具有下述功能:能防止分母为0,当分数不是最简形式时进行约分以及避免分母为负数。用重载运算符完成加法、减法、乘法以及除法等四则运算。 (7 分)31. 在第(1)题的基础上,用重载关系符“=”判断两个分数是否相等。 (7 分)32. 定义一个点类(Point)、矩形类(Rectangle)和立方体类(Cube)的层次结构。矩形包括长度和宽度两个新数据成员,矩形的位置从点类继承。立方体类由长度、宽度和高度构成。要求各类提供支持初始化的构造函数和显示自己成员的成员函数。编写主函数,测试这个层
8、次结构,输出立方体类的相关信息。 (7 分)33. 使用虚函数编写程序求球体和圆柱体的体积及表面积。由于球体和圆柱体都可以看做由圆继承而来,所以可以定义圆类Circle作为基类。在Circle类中定义一个数据成员radius和两个虚函数area()和volume()。由Circle类派生Sphere类和Column类。在派生类中对虚函数area()和volume()重新定义,分别求球体和圆柱体的体积及表面积。 (7 分)34. # includeiostreamusing namespace std;class Apublic:A(int i,int j)a=i;b=j /基类构造函数 voi
9、d move(int x, int y)a+=x; b+=y;void disp()cout(a,b)endl;private:int a, b;class B:public Apublic:B(int i,int j,int k,int l):A(i,j),x(k),y(l) /派生类构造函数void disp()coutx,yendl;void fun1()move(13,15);void fun2()A:disp(); /语句8private:int x, y;int main()A aa(11, 12); /语句1aa. disp(); /语句2B bb(13, 14, 15, 16)
10、; /语句3bb. fun1(); /语句4bb. A:disp(); /语句5bb. B:disp(); /语句6bb. fun2(); /语句7return 0; /语句8 (7 分)六 简答题 (共7题 ,总分值14分 )35. 简述在3种继承方式下基类成员的访问权限。 (2 分)36. 什么叫做多态性?在C中是如何实现多态的? (2 分)37. 简述派生类构造函数的规则。 (2 分)38. 比较两种运算符重载形式。 (2 分)39. 在面向对象技术中,类与类之间的关系如何表示? (2 分)40. 重载前缀“”运算符与重载后缀“”运算符在形式上有什么不同? (2 分)41. 什么叫做抽象类?抽象类有何作用?抽象类的派生类是否一定要给出纯虚函数的实现? (2 分)
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2