面向对象程序设计期末复习指导—填空题
1. C++语言的编译单位是扩展名为__________的__________文件。
2. 用于输出表达式值的标准输出流对象是_________。
3. 当执行cin语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据。
4. 一条表达式语句必须以______作为结束符。
5.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的______语句。
6.当使用_______保留字作为函数类型时,该函数不返回任何值。
7. 假定x=5,y=6,则执行表达式y+=x--计算后,x和y的值分别为__________和__________。
8. 十进制常数245对应的十六进制的C++表示为__________。
9. float和double类型的数据分别占用_________和________个字节。
10. 字符串”This\’s a book.\n”的长度为__________。
11. 假定x和y为整型,其值分别为16和5,则x%y和x/y的值分别为__________和__________。
12. 假定x是一个逻辑量,则x && FALSE的值为__________。
13. 假定x是一个逻辑量,则x && !x的值为__________。
14. 数学算式的C++表达式为________________。
15. 常数-4.205和6.7E-9分别具有__________和__________位有效数字。
16. 作为语句标号使用的C++保留字case和defaule只能用于________语句的定义体中。
17. 当在程序中执行到________语句时,将结束本层循环类语句或switch语句的
执行。
18.在程序执行完________函数调用后,将结束整个程序的执行过程,返回到C++集成开发窗口。
19. 存储字符’a’和字符串”a”分别需要占用________和________个字节。
20. 字符串”a:\\xxk\\数据”的长度为________。
21. 一个二维字符数组a[10][20]能够存储________个字符串,每个字符串的长度至多为________。
22. 若需要把一个字符串”aaa”赋值到字符数组a中,则需要执行________函数的调用来实现。
23. 如果一个函数只允许同一程序中的函数调用,则应在该函数定义前加上__________C++保留字。
24. 在函数模板的参数中,用class修饰的参数称为__________参数。
25. 如果一个函数定义中使用了__________修饰,则该函数不允许被其它文件中的函数调用。
26.调用系统函数时,要先使用#include命令包含该系统函数的原型语句所在的__________。
析构函数的定义27. C++程序运行时的内存空间可以分成全局数据区,堆区,栈区和__________。
28. 若二维数组a有m列,设a[0][0]位于数组的第一个位置上,则计算任一元素a[i][j]在数组中位置序号的公式为____________。
29. 一个指针类型的对象占用内存的________个字节的存储空间。
30. 假定一个数据对象为int*类型,则指向该对象的指针类型为_______。
31.假定p所指对象的值为25,p+1所指对象的值为42,则*++p的值为________。
32.假定p所指对象的值为25,p+1所指对象的值为42,则执行*(p++)或*p++运算后,p所指对象的值为________。
33. 一个数组的数组名实际上是指向该数组________元素的指针,并且在任何时候都不允许________它。
34. 重载一个函数的条件是:该函数必须在参数的________或参数对应的__________上与其它同名函数不相同。
35. 指针变量pv和pc定义为“void *pv =”Hello, word!”; char *pc;”,要将pv值赋给pc,则正确的赋值语句是pc=___________pv。
36. 若p指向x,则________与x的表示是等价的。
37. 假定p为指向二维数组int d[4][6]的指针,则p的类型为________。
38. 若y是x的引用,则对y的操作就是对_______的操作。
39. 执行char *p=new char(’a’)操作后,p所指向的数据对象的值为________。
40. 执行________操作将释放由p所指向的动态分配的数据空间。
41. 已知语句“cout<<s;”的输出是“apple”,则执行语句“cout<<s+2;”的输出结果为__________。
42. 与结构成员访问表达式p->name等价的表达式是____________。
43. 已知有定义“int x, a[]={5,7,9}, *pa=a;”,在执行“x=++*pa;”语句后,x的值是________。
44. 以面向对象方法构造的系统,其基本单位是__________。
45. 复杂对象可以由简单对象构成,这种现象称为__________。
46. 如果一个派生类的基类不止一个,则这种继承称为____________。
47.一个类的__________函数通常用于实现释放该类对象中指针成员所指向的动态存储空间的任务。
48.假定用户只为类AB定义了一个构造函数"AB(int aa, int bb=0) {a=aa; b=bb;}",则定义该类的对象时,其实参表中至少带有_________个实参。
49. 当一个队列为满时,不能对其做________元素的操作。
50.在一个用链表实现的队列类中,假定每个结点包含的值域用elem表示,包含的指针域用next表示,链队的队首指针用elemHead表示,队尾指针用elemTail表示,当链队非空时,_____________指向队首结点的后继(即下一个)结点。
51. 在一个用链表实现的队列类中,若链队为空或只含有一个结点,则队首指针的值与队尾指针的值________。
52.一个类的__________函数通常用于实现释放该类对象中指针成员所指向的动态存储空间的任务。
53.定义类动态对象数组时,其元素只能靠自动调用该类的____________来进行初始化。
54. 假定 AB为一个类,则执行“AB a[10];”语句时,系统自动调用该类构造函数的次数为________。
55.对类中引用成员的初始化只能通过在构造函数中给出的______________来实现。
56. 假定要把aa定义为AB类中的一个引用整数型数据成员,则定义语句为____________。
57.假定用户为类AB定义了一个构造函数“AB(int aa) {a=aa;}”,则系统(会/不会)_________为该类自动定义一个无参构造函数"AB() {}"。
58.假定用户为类AB定义了一个构造函数“AB(int aa=0):a(aa){}”,则定义该类的对象时,可以有________种不同的定义格式。
59. 派生类的成员函数能够直接访问所含基类的__________成员函数和___________成员函数。
60.在定义一个派生类时,使用private关键字表示为私有继承,使用__________关键字表示为公有继承。
参考答案:
1. .cpp、 程序 2. cout 3. 空白 4. 分号 5. 原型(或声明)
6. void 7. 4、 11 8. 0xF5 (F大小写均可) 9. 4、 8 10. 15
11. 1、 3 12. false(或0) 13. false(或0) 14. 3*x*y/(x+y) 15. 4、 2
16. switch 17. break 18. 主(或main) 19. 1、 2 20. 11
21. 10、 19 22. 9、 7 23. static 24. 虚拟类型(或类型) 25. static 26. 头文件 27. 代码区(程序区)28. i*m+j+1 29. 4 30. int** 31. 42 32. 42 33. 第一个、 修改 34. 个数(或数目) 类型 35. char *
36. *p 37. int(*)[6] 38. x 39. ’a’ 40. delete p
41. ple 42. (*p).name 43. 6 44. 对象 45. 聚合
46. 多继承(或多重继承) 47.析构 48.1 49. 插入 50. ElemHead->next 51. 相同 52. 析构 53. 无参构造函数 54. 10 55. 初始化表
56. int& aa; 57. 不会 58. 2 59. 公有 保护 60.Public
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论