面向对象程序设计期末复习题及答案1 下载本文

第1题 假定x是一个逻辑量,则x & & true的值为__________。 答案:x

第2题 C++头文件和源程序文件的扩展名分别为______和______。 答案:.h .cpp

第3题 假定x=5,y=6,则表达式x++*++y的值为__________。

答案:35 第4题 假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为__________。

答案:AB::bb

第5题 字符串”\\nThis\\’s a pen\\n\\n”的长度为__________。 答案:15

第6题 变量分为全局和局部两种,________变量没有赋初值时,其值是不确定的。 答案:局部

第7题 一个函数的函数体就是一条_________语句。

答案:复合

第8题 变量分为全局和局部两种,________变量没有赋初值时,其值是不确定的。

答案:局部

第9题 假定x和y为整型,其值分别为16和5,则x/y和double(x)/y的值分别为__________和__________。 答案:3 3.2

- 41 -

第10题 对一个类中的数据成员的初始化可以通过构造函数中的______实现,也可以通过构造函数中的_________实现。 答案:初始化表 函数体

第11题 行尾使用注释的开始标记符为__________。

答案://

第12题 C++常数0x145对应的十进制值为__________。

答案:325

第13题 假定x=5,y=6,则执行表达式y*=x++计算后,x和y的值分别为__________和__________。

答案:6 30

第14题 假定x是一个逻辑量,则x || true的值为__________。

答案:true (或1)

第15题 假定一个结构类型定义为“struct D { int a ; union { int b ; double c ; } ; D * d[2] ; } ;” ,则该类型的大小为___________字节。 答案:20

第16题 若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的______语句。 答案:原型(或声明)

第17题 signed char类型的值域范围是________至__________之间的整数。

答案:-128 +127

- 42 -

第18题 多行注释的开始标记符和结束标记符分别为__________和__________。

答案:/* */

第19题 使用#include命令可以包含一个头文件,也可以包含一个______文件。 答案:程序

第20题 十进制常数245对应的八进制的C++表示为__________。 答案:0365

第21题 程序中的预处理命令是指以______字符开头的命令。 答案:#

第22题 当使用_______保留字作为函数类型时,该函数不返回任何值。

答案:void

第23题 C++常数0345对应的十进制值为__________。 答案:2

第24题 bool和char类型的数据分别占用_________和________个字节。 答案:1 1

第25题 假定x是一个逻辑量,则x & & false的值为__________。 答案:false (或0)

第26题 一个完整程序中必须有一个名为________的函数。 答案:main

第27题 float和double类型的数据分别占用____

- 43 -

_____和________个字节。

答案:4 8

第28题 假定x和ch分别为int型和char型,则sizeof(x)和sizeof(ch)的值分别为______和______。 答案:4 1

第29题 一条表达式语句必须以______作为结束符。

答案:分号

第30题 C++语言是在_________语言的基础上发展起来的。 答案:C

三、计算题

第1题 分析以下程序的执行结果: #include< iostream.h> class base { i

nt n; public: base(){}; base (int a) { cout < < \constructing base class\< < endl; n=a; cout < < \n= \< < n < < endl; } ~base() { cout < < \destructing base class\< < endl; } }; class subs : public base { int m; public: subs(int a, int b) : base(a) { cout < < \constructing sub class \< < endl; m=b; cout < < \m= \ < < m < < endl; } ~subs() { cout < < \destructing sub class \< < endl; } }; void main () { subs s(1,2); }

答案:解: constructing base class n= 1 constructing sub class m= 2 destructing sub class destructing base class

第2题

分析以下程序的执行结果 #include< iostream.h> template < class t> t max(t x,t y) { return (x> y?x:y); } void main()

- 44 -