您好,欢迎来到爱问旅游网。
搜索
您的当前位置:首页C++期末复习--2.练习题_填空

C++期末复习--2.练习题_填空

来源:爱问旅游网
面向对象程序设计综合练习(填空题)

1. C++语言是在_________语言的基础上发展起来的。

2. C++语言的编译单位是扩展名为__________的__________文件。 3. 行尾使用注释的开始标记符为__________。

4. 多行注释的开始标记符和结束标记符分别为__________和__________。 5. 用于输出表达式值的标准输出流对象是_________。

6. 用于从键盘上为变量输入值的标准输入流对象是________。 7. 一个完整程序中必须有一个名为________的函数。 8. 一个函数的函数体就是一条_________语句。

9. 当执行cin语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能

继续输入下一个数据。 10. \\ 11. 重载一个函数的条件是:该函数必须在参数的个数或参数的__________上与其它同名

函数有所不同。

12. 如果一个函数只允许同一程序中的函数调用,则应在该函数定义前加上__________C++

保留字。

13. 定义一个函数模板要用到的第一个修饰符是____________。

14. 在函数模板的参数中,用class修饰的参数称为__________参数。

15. 已知int cubin(int n){return n*n*n;}和double cubin(double n){return n*n*n;}是一个函数

模板的两个实例,假定类型参数用T表示,则该函数模板的定义是__________________________________。

16. 如果一个函数中有多个默认参数,则默认参数必须全部处在形参表的________部分。 17. 函数形参的作用域是该函数的____________。 18. 程序的编译是以__________为单位进行的。

19. 执行int p=new int操作得到的一个动态分配的整型对象为________。

20. 执行int *p=new int[10]操作,使p指向动态分配的数组中下标为0的元素,该元素可

表示为_______或________。 21. < 22. 执行char *p=new char(’a’)操作后,p所指向的数据对象的值为________。 23. 执行new char[m][n]操作时的返回值的类型为________。

24. 执行________操作将释放由p所指向的动态分配的数据空间。 25. 执行________操作将释放由p所指向的动态分配的数组空间。 26. 已知语句“cout<__________。

28. 与类成员访问表达式p->name等价的表达式是____________。 29. 与类成员访问表达式(*fp).score等价的表达式是____________。 30. 以面向对象方法构造的系统,其基本单位是__________。 31. 类是__________的抽象。

32. 】 33. 每个对象都是所属类的一个__________。 34. 每个对象都是所属__________的实例。

35. 对象将其大部分实现细节隐藏起来,这种机制称为__________。

36. 面向对象软件工程包括五个部分,即面向对象分析、__________、__________、

__________和__________。

37. 类定义中,既包含数据成员,也包含________成员。 38. 类中的数据成员的访问属性通常被指明为________。

39. 类中的供外部调用定义的函数成员,其访问属性通常被定义为________。 40. 对于类中定义的任何成员,其隐含访问权限为________。 41. 对于结构中定义的任何成员,其隐含访问权限为________。

42. 为了使类中的成员不能被类外的函数通过成员操作符访问,则应把该成员的访问权限

定义为________。 43. & 44. 若在类的定义体中给出了一个成员函数的完整定义,则该函数属于________函数。 45. 若在类的定义体中只给出了一个成员函数的原型,则在类外给出完整定义时,其函数

名前必须加上________和两个冒号分隔符。

46. 若在类的定义体中只给出了一个成员函数的原型,则在类外给出完整定义时,其函数

名前必须加上类名和两个________分隔符。

47. 若要把类外定义的成员函数规定为内联函数,则必须把________关键字放到函数原型

或函数头的前面。 48. 假定AA是一个类,“AA* abc();”是该类中一个成员函数的原型,则在类外定义时的函

数头为__________________。

49. 为了避免在调用成员函数时修改对象中的任何数据成员,则应在定义该成员函数时,

在函数头的后面加上________关键字。

50. 若只需要通过一个成员函数读取数据成员的值,而不需要修改它,则应在函数头的后

面加上________关键字。

51. 一个类的__________函数实现对该类对象的初始化功能。

52. 一个类的__________函数通常用于实现释放该类对象中指针成员所指向的动态存储空

间的任务。

53. 当用户为一个类定义有____________时,则系统不会为该类再自动生成一个默认构造

函数。 . … 55. 假定用户没有给一个名为AB的类定义构造函数,则系统为其定义的构造函数为

__________。

56. 假定用户没有给一个名为AB的类定义析构函数,则系统为其定义的析构函数为

__________。

57. 定义类动态对象数组时,其元素只能靠自动调用该类的____________来进行初始化。 58. 在一个类中定义拷贝构造函数的目的,是为了当利用该类的一个对象初始化另一个对

象时,能够避免这两个对象的同一指针同时指向同一块__________________。 59. 为了释放类对象中指针成员所指向的动态存储空间,则需要为该类定义____________。 60. 假定 AB为一个类,则执行“AB a[10];”语句时,系统自动调用该类构造函数的次数

为________。

61. 假定一个类对象数组为A[N],当离开它的作用域时,系统自动调用该类析构函数的次

数为________。

62. 对类中对象成员的初始化是通过在构造函数中给出的______________来实现的。 63. 对类中常量成员的初始化是通过在构造函数中给出的______________来实现的。 . 对类中引用成员的初始化只能通过在构造函数中给出的______________来实现。

65. ) 66. 对类中一般数据成员的初始化既可以通过在构造函数中给出的初始化表来实现,也可

以通过构造函数中的____________来实现。

67. 假定要把aa定义为AB类中的一个常量整数型数据成员,则定义语句为____________。 68. 假定要把aa定义为AB类中的一个引用整数型数据成员,则定义语句为____________。 69. 假定AB类中只包含一个整型数据成员a,并且它是一个常量成员,若利用参数aa对

其进行初始化,则该类的构造函数的定义为____________________。

70. 假定AB类中只包含一个整型数据成员a,并且它是一个引用成员,若利用引用参数

aa对其进行初始化,则该类的构造函数的定义为____________________。

71. 假定指针p指向一个动态分配的类对象,则当执行“delete p;”语句时,在释放p所

指向的动态存储空间之前将自动调用该类的____________。 72. 假定用户为类AB定义了一个构造函数“AB(int aa) {a=aa;}”,则系统(会/不会)_________

为该类自动定义一个无参构造函数\"AB() {}\"。

73. 假定用户为类AB定义了一个构造函数“AB(int aa, char *bb=NULL):a(aa),b(bb){}”,则该

类中至少包含有__________个数据成员。

74. 假定用户为类AB定义了一个构造函数“AB(int aa) {a=aa;}”,该构造函数实现对数据成

员_________的初始化。

75. 假定用户为类AB定义了一个构造函数“AB(int aa=0):a(aa){}”,则定义该类的对象时,

可以有________种不同的定义格式。 76. . 77. 假定用户只为类AB定义了一个构造函数“AB(int aa, int bb=0) {a=aa; b=bb;}”,则定义

该类的对象时,其实参表中至多带有_________个实参。

78. 假定用户只为类AB定义了一个构造函数“AB(int aa, int bb=0) {a=aa; b=bb;}”,则定义

该类的对象时,其实参表中至少带有_________个实参。

79. 假定用户为类AB定义了一个构造函数“AB(int aa=0, int bb=0) {a=aa; b=bb;}”,则定义

该类的对象时,可以有________种不同的定义格式。

80. 假定用户只为类AB定义了一个构造函数“AB():a(0),b(0){}”,则定义该类对象x的定义

语句“AB x();”是_________(正确/错误)的。

81. 假定用户只为类AB定义了一个构造函数“AB():a(0),b(0){}”,则定义该类对象x的定义

语句“AB x;”是_________(正确/错误)的。

82. 假定用户只为类AB定义了一个构造函数“AB():a(0),b(0){}”,则定义该类对象x的定义

语句“AB x(5);”是_________(正确/错误)的。

83. 假定AB为一个类,则类定义体中的“AB(AB& x);”语句为该类______________的原型

语句。

84. 假定AB为一个类,则该类的拷贝构造函数的函数头为_____________。

85. 假定AB为一个类,该类中含有一个指向动态数组空间的指针成员pa,则在该类的析

构函数中应该包含有一条______________语句。

86. 静态成员函数 ____访问类的静态数据成员, ____ 访问类的非静态数据成员。 87. 、 88. 静态数据成员必须在所有函数的定义体外进行__________。

. 一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明必须在函数名前

加上 的限定。

90. 重载运算符时,该运算符的__________、结合性以及操作符的个数不允许改变。 91. 一个单目运算符作为类的成员函数重载时有________个参数;如果作为函数重

载,则有________个参数。

92. 一个双单目运算符作为类的成员函数重载时有________个参数;如果作为函数重

载,则有________个参数。

93. 作为类的成员函数重载一个运算符时,参数表中只有一个参数,说明该运算符有

________个操作数。

94. 在重载一个单目运算符时,参数表中没有参数,说明该运算符函数只能是类的

_____________。

95. 重载插入运算符<<时,其运算符函数的返回值类型应当是____________。 96. 重载提取运算符>>时,其运算符函数的返回值类型应当是____________。 97. 重载插入运算符<<或抽取运算符>>时,其运算符函数的参数有________个。 98. — 99. 重载插入运算符<<或抽取运算符>>时,其运算符函数不能被定义为类的________函数。 100. 在每个成员函数中,隐含的第一个参数的参数名为________。

填空题参考解答

1. C 2. .cpp、 程序 3. /* 、*/ 5. cout 6. cin 7. main 8 复合({}) 9. 空白 10. 类型 11. static 12. template 13. 虚拟类型(或类型) 14. template 15. 右边(或后面)16. 函数体 17. 文件 18. *p 19. p[0]、 *P 20. ’a’ 21. char(*)[n] 22. delete p 23. delete []p 24. H 25. ple 26. (*p).name 27. fp->score 28. 对象 .

29. 对象 30。实例 31. 类 32. 封装 33. 面向对象设计 面向对象编程 面向对象测试 面向对象维护

34. 函数 35. private(或私有) (或公有) 37. private(或私有) 38. public(或公有) 39. private 40. 内置(内联) 41. 类名 42. 冒号 43. inline 44. AA* AA::abc() 45. const 46. const 47. 构造 48. 析构 49. 构造函数 50. AB() {} 51. ~AB() {} 52. 无参构造函数 53. 动态存储空间 . 析构函数 55. 10 56. N 57. 初始化表 58. 初始化表 59. 初始化表 60. 函数体 61. const int aa 62. int& aa; 63. AB(int aa):a(aa){}; . AB(int& aa):a(aa){}; 65. 析构函数 66. 不会 67. 2 68. a 69. 2 70. 2 71. 1 72. 3 73. 错误 74. 正确 75. 错误 76. 拷贝构造函数 77.AB(AB&)( 注:可附带任何一个名字的参数) 78. delete []pa; 79. 只能、不能 80. 初始化 81. 类域 82. 优先级 83. 0、1 84. 1、2 85. 2 86. 成员函数 87. ostream & 88. istream & . 2 90. 成员 91. this

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务