(25)B【解析】本题考查联合这种特殊的数据结构的基本知识。联合的本质在于联合的成员共享同一片连续的内存单元。本题中由于整型变量占两个字节,字符型变量占一个字节,而整型变量的一部分没有被赋值.故将输出随机值。本题答案为B。
(26)C【解析】本题考查逻辑表达式及自增运算符的联合使用。考生要注意本题里面隐藏的考点:&&和||在左侧表达式为真或假时,将不再进行该逻辑操作符右侧表达式的运算.即j++本身为非零,故k++不再执行。如对表达式a&&b&&c,实际执行情况是当a非O时,再判断b,a、b均非O。再判断c。而对表达式a||b||c,若a为非O.不必判断b和c,结果一定为l。
(27)B【解析】本题考查逻辑表达式的结合特性,即左结合性。对于表达式a>b>c,首先判断a>b为真,结果为1,然后判断l>c,为假,故转去判断c—l>=d是否成立,成立,结果为l,再判断1。=1,结果为真,因此,执行d+l,答案为B。
(28)A【解析】本题考查C++中引入的新类型:引用。引用表示变量的别名,使用方式同变量·效果同指针。引用不能用常数进行赋值,引用的类型必须一致.引用在使用之前必须初始化。
(29)D【解析】数组和指针的关系非常密切,因为数组名称单独使用是表示数组的首地址c故可用的表示可能是a[i]。p[i],*(p+i),同样,&a[i]表示地址,因此*&a[i]等同于a[i]。本题答案为D。
(30)D【解析】本题考查构造函数的基本知识。构造函数名字与类名相同;可以重载;不需要参数;不需要指定返回类型等。本题答案为D。
(31)B【解析】友元的作用在于提高程序的运行效率,但是,它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。容易混淆是B,只有在类中声明了某个函数是自己的友元函数之后.该友元函数才能够访问本类的私有成员,而不是任何类的任何成员都可以访问。故答案为B。
(32)C【解析】本题考查C++中流操作符的操作规则,即分割符。首先根据字符不需要加引号可以排除选项A和B,而D用回车作分割符,但却在look和20之间缺少一个回车符,故据此可选出正确答案为C。
(33)B【解析】本题要考查的实际是字符数组,用于向函数传递参数,属于指针或引用传递方式。要注意的是考生不要被名称所迷惑,即根据A和D是相同类别的,故可以排除。对C来说,也属于指针传递方式,而B不仅不属于指针传递,而且还没有限定数组大小,编译器在编译时就会产生错误。
(34)C【解析】递归函数的两个重要条件是要有结束和递归表达式。选项D无法结束,排除之。根据这两个条件可以进行判断出答案为C。
(35)B【解析】 p为c的引用,即两者实际上是一个指针,故p指向b后,c自然也指向b,故答案为B。
二、填空题
(1)【l】对象【解析】注意不要误以为是类,实体是指对象。
(2)【2】消息【解析】这是概念题,通过发送消息实现。
(3)【3】二维表【解析】在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。即关系模型是用表格数据来表示实体本身及其相互之间的联系。
(4)【4】黑盒【解析】黑盒测试方法只是根据程序功能导出测试用例,完全不考虑程序的内部结构和内部特征。
(5)【5】一对多【解析】“项目主管”与实体集“项目”的联系属于一对多的联系。
(6)【6】XYZxyz【解析】注意for的循环体为空语句.其第二个表达式为一个赋值语句而不是一个逻辑表达式语句。因此,for循环的作用实际上是将str2的字符逐个赋值给strl中的对应位置。
(7)【7】10【解析】本题考查全局变量的使用。全局变量被系统默认初始化为O,故在执行a=a+suma();语句时,首先执行SUnla函数.将a的值改变为5,该函数的返回值也是5,故最后a的值被赋值为10。
(8)【8】intTest::val=200:【解析】类的静态成员变量必须要进行初始化才能使用.初始化时需要用域限定符::指明该变量所属的类名。