1、面向对象的程序设计面向对象的程序设计一 单选题 (共9题 ,总分值9分 ,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。)1. 友元类的声明方法是( )。 (1 分)A. friend class类名; B. youyuan class类名; C. class friend类名; D. friends class类名; 2. 对 new运算符的下列描述中,( )是错误的。 (1 分)A. 它可以动态创建对象和对象数组 B. 用它创建对象数组时必须指定初始值 C. 用它创建对象时要调用构造函数 D. 用它创建的对象数组可以使用运算符 delete 来一次释放 3. 在类定义的外部
2、,可以被任意函数访问的成员有( )。 (1 分)A. 所有类成员 B. private或 protected 的类成员 C. public 的类成员 D. public 或 private 的类成员 4. 面向对象程序设计着重于( )的设计。 (1 分)A. 对象 B. 类 C. 算法 D. 数据 5. 下面选项中,( )不是类的成员函数。 (1 分)A. 构造函数 B. 析构函数 C. 友元函数 D. 拷贝构造函数 6. 关于C+与C语言的关系的描述中,( )是错误的。 (1 分)A. C语言是C+的一个子集 B. C语言与C+是兼容的 C. C+对C语言进行了一些改进 D. C+和C语言都
3、是面向对象的 7. 在面向对象程序设计中,类通过( )与外界发生关系。 (1 分)A. 对象 B. 类 C. 消息 D. 接口 8. 关于 this 指针的说法正确的是( )。 (1 分)A. this 指针必须显式说明 B. 当创建一个对象后, this 指针就指向该对象 C. 成员函数拥有 this 指针 D. 静态成员函数拥有 this 指针。 9. 在整型指针变量 p2、p3 的定义中,错误的是( ) (1 分)A. int p1, *p2, p3; B. int*p2, p1, *p3; C. int p1, *p2=&p1, *p3; D. int*p2 , p1, *p3=&p1
4、; 二 多选题 (共2题 ,总分值6分 ,下列选项中至少有2个或2个以上选项符合题目要求,请在答题卡上正确填涂。)10. 下面说法正确的是( )。 (3 分)A. 对象是计算机内存中的一块区域,它可以存放代码和数据 B. 对象实际是功能相对独立的一段程序 C. 各个对象间的数据可以共享是对象的一大优点 D. 在面向对象的程序中,对象之间只能通过消息相互通信 11. 下面对析构函数的正确描述是( )。 (3 分)A. 系统可以提供默认的析构函数 B. 析构函数必须由用户定义 C. 析构函数没有参数 D. 析构函数可以设置默认参数 三 名词解释题 (共4题 ,总分值12分 )12. 重载函数 (3
5、 分)13. 封装 (3 分)14. 消息 (3 分)15. 引用 (3 分)四 填空题 (共13题 ,总分值26分 )16. C+ 程序的内存格局通常分为 4 个区:_、_、_和_。 (2 分)17. 在结构化程序设计方法中,程序可表示为_;而面向对象的程序设计方法,程序可表示为_。 (2 分)18. 目前有_和_两种重要的程序设计方法。 (2 分)19. 设 MClass是一个类, dd 是它的一个对象,pp 是指向 dd 的指针,cc 是 dd 的引用,则对成员的访问,对象 dd 可以通过_进行,指针 pp 可以通过_进行,引用 cc 可以通过_进行。 (2 分)20. 在程序运行时,通
6、过为对象分配内存来创建对象。在创建对象时,使用类作为_,故称对象为类的_。 (2 分)21. 使用 C+风格的输入输出,在程序中必须包含头文件“ _ ”。 (2 分)22. C+ 有_和_两种参数传递机制。 (2 分)23. _是预定义的标准输出流对象,_是输出操作符,也称插入运算符。 (2 分)24. 静态数据成员和静态成员函数可由 _的函数访问。 (2 分)25. 面向对象程序设计方法具有_、_、_ 和_等特点。 (2 分)26. 友元的正确使用能提高程序的_,但破坏了类的封装性和数据的隐蔽性。 (2 分)27. 创建一个类的对象时,系统自动调用_;撤销对象时,系统自动调用_。 (2 分)
7、28. 对于任意一个类,析构函数的个数最多为_个。 (2 分)五 判断题 (共8题 ,总分值16分 正确的填涂“A”,错误的填涂“B”。)29. 函数可以没有参数,也可以没有返回值。 (2 分)()30. C+程序中,不得使用没有定义或说明的变量。 (2 分)()31. 类的设计和类的继承机制实现了软件模块的可重用性。 (2 分)()32. 面向对象程序设计中的消息应该包含“如何做”的信息。 (2 分)()33. 函数可设置默认参数,但不允许将一个函数的所有参数都设置为默认参数。 (2 分)()34. 在高级程序设计语言中,一般用类来实现对象,类是具有相同属性和行为的一组对象的集合,它是创建对
8、象的模板。 (2 分)()35. 引用被创建时可以用任意变量进行初始化。 (2 分)()36. 学习 C+语言是学习面向对象的程序设计方法的唯一途径。 (2 分)()六 综合题 (共5题 ,总分值15分 )37. #includeiostream using namespace std; class Test private: int num; public: Test ();/ 默认构造函数Test (int n ); / 带一个参数构造函数; TestTest() coutInit defaendl; num=0; TestTest(int n ) coutInit nendl; num=
9、n; int main () Test x2; / 语句 1 Test y(15); / 语句 2 return 0; (3 分)38. 声明一个 Circle 类,有数据成员 radius (半径)、成员函数 area(),计算圆的面积,构造一个 Circle 的对象进行测试。 (3 分)39. 写出一个完整的 C+程序,使用系统函数 pow(x,y)计算 xy 的值,注意包含头文件 cmath。 (3 分)40. #includeiostream using namespace std; int main () int num=50; int& ref=num; ref=ref+10; c
10、outnum=numendl; num=num+40; coutref=refendl; return 0; (3 分)41. 将例 3. 10 中的 Whole类如下修改,其他部分不变,写出输出结果。class Whole public: Whole(int i ); / Whole 的有参构造函数Whole(); / Whole 的无参构造函数Whole(); / Whole 的析构函数private: Part p1; / 子对象 1 Part p2; / 子对象 2 Part p3; / 子对象 3 ; Whole : Whole( int i ):p2( i ), p1() cout
11、Constructor of Wholeendl; WholeWhole() coutDestructor of Wholeendl; (3 分)七 简答题 (共8题 ,总分值16分 )42. 结构化程序设计方法与面向对象程序设计方法在对待数据结构和算法关系上有什么不同? (2 分)43. 类的实例化是指创建类的对象还是定义类? (2 分)44. 名字空间的用途是什么? (2 分)45. 什么是结构化程序设计方法?它有哪些优点和缺点? (2 分)46. 函数原型中的参数名与函数定义中的参数名以及函数调用中的参数名必须一致吗? (2 分)47. 比较值调用和引用调用的相同点与不同点。 (2 分)48. 类与对象有什么关系? (2 分)49. 什么叫做拷贝构造函数?拷贝构造函数何时被调用? (2 分)一单选1-9 ABCBCDDBA二多选10-11 AD AC五判断对对对错错对错错