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

A、4个字节 B、5个字节 C、6个字节 D、7个字节 答案:C

第16题 下面关于数组的描述错误的是( ) A、在C++语言中数组的名字就是指向该数组第一个元素的指针

B、长度为n的数组,下标的范围是0-n-1

C、数组的大小必须在编译时确定

D、数组只能通过值参数和引用参数两种方式传递给函数 答案:D

第17题 下列关于模板的说法正确的是( ) A、 模板的实参在任何时候都可以省略

B、类模板与模板类所指的是同一概念

C、类模板的参数必须是虚拟类型的

D、类模板中的成员函数全部都是模板函数 答案:D

第18题 下列描述正确的是( )

A、表示m〉n为true或mn& & m

B、switch语句结构中必须有default语句

C、if语句结构中必须有else语句

D、如果至少有一个操作数为true,则包含“‖”运算符的表达式为true 答案:D

第19题 在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流状态的操作函数名称是() A、fail B、eof

- 33 -

C、bad D、good 答案:B

第20题 下列描述中哪个是正确的( )。

A、私有派生的子类无法访问父类的成员 B、类A的私有派生子类的派生类,C无法初始化其祖先类A对象的属性,因为类A的成员对类C是不可访问的

C、私有派生类不能作为基类派生子类

D、私有派生类的所有子孙类将无法继续继承该类的成员 答案:B

第21题 在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是( )

A、一元成员运算符 B、二元成员运算符 C、一元友元运算符 D、选项B)和选项C)都可能 答案:D

第22题 下列关于构造函数的描述中,错误的是()

A、构造函数可以设置默认参数

B、构造函数在定义类对象时自动执行

C、构造函数可以是内联函数

D、构造函数不可以重载

答案:D

第23题 函数fun的返回值是( ) 以下是引用片段:fun(char*a,char*b) { int num=0,n=0; while(*(a+num)!=‘\\0’)

- 34 -

num++; while(b[n]){*(a+num)=b[n];num++;n++;} return num; } A、字符串a的长度 B、字符串b的长度 C、字符串a和b的长度之差 D、字符串a和b的长度之和 答案:D

第24题 下面关于类和对象的描述中,错误的是( ) A、类就是C语言中的结构体类型,对象就是C语言中的结构体变量

B、类和对象之间的关系是抽象和具体的关系 C、对象是类的实例,一个对象必须属于一个已知的类

D、 类是具有共同行为的若干对象的统一描述体

答案:A

第25题 下列描述正确的是( )

A、表示m> n为true或mn& & m

B、switch语句结构中必须有default语句

C、if语句结构中必须有else语句

D、如果至少有一个操作数为true,则包含“‖”运算符的表达式为true 答案:D

第26题 下列关于模板的说法正确的是( )

A、 模板的实参在任何时候都可以省略

B、类模板与模板类所指的是同一概念

C、类模板的参数必须是虚拟类型的

D、类模板中的成员函数全部都是模板函数 答案:D

- 35 -

第27题 在位运算中,操作数每右移一位,其结果相当于( )

A、操作数乘以2 B、操作数除以2 C、操作数乘以4 D、操作数除以4 答案:B

第28题

下列程序的运行结果为( )以下是引用片段: #includevoid print(double a){cout < < ++a;} void print(int a,int b) { cout < < a < < b;} void main() { print(1.2); cout < < \ \; print(3,4); }

A、1.2 34 B、2.2 34 C、1.2 43 D、2.2 43 答案:B

第29题 下列虚基类的声明中正确的是( ) A、class virtual B: public A

B、class B: virtual public A

C、class B: public A virtual D、virtual class B: public A 答案:B

第30题 以下各选项组中,均是C++语言关键字的组是( )

A、 public operator this B、 shod string static C、 it while> =

D、 private cout printf

答案:A

- 36 -