面向对象程序设计郑大网上测试 下载本文

《面向对象程序设计》第08章在线测试

剩余时间: 59:52

第一题、单项选择题(每题1分,5道题共5分) 1、通过 ( ) 调用虚函数时,采用动态束定。

A、对象指针 C、成员名限定

B、对象名 D、派生类名

2、类 B 是类 A 的公有派生类,类 A 和类 B 中都定义了虚函数 func(),p 是一个指向类 A 对象的指针,则 p->A::func() 将 ( )

A、调用类 A 中的函数 func()

C、根据 p 所指的对象类型而确定调用类 A 中或类 B 中的函数 func()

B、调用类 B 中的函数 func()

D、既调用类 A 中函数,也调用类 B 中的函数

3、关于纯虚函数和抽象类的描述中,( )是错误的。

A、纯虚函数是一种特殊的虚函数,它没有具体的实现;

C、一个基类说明有纯虚函数,该基类的派生类一定不再是抽象类;

的是( )

A、a.f();

C、p1=&b; p1->f();

B、抽象类是指具有纯虚函数的类;

D、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出。

4、类A 中定义了虚函数f,类C是类A的派生类,类C中重新定义了虚函数f。声明变量: A a,*p1; B b, *p2; 下面语句实现动态绑定

B、b.f();

D、p2=&b; p2->f();

5、下面的说法正确的是( )

A、虚函数是成员函数

C、构造函数和析构函数都可以定义为虚函数

B、虚函数可以是静态成员函数 D、虚函数可以是内联函数

第二题、多项选择题(每题2分,5道题共10分) 1、下列描述中,( )不是抽象类的特征。

A、可以说明虚函数; B、可以进行构造函数重载; C、可以定义友元函数; D、不能说明其对象。

2、下面属于多态性的是( )

A、函数重载 B、类模板 C、函数模板 D、派生类

3、下面的说法正确的是( )

A、虚函数在派生类中可能有不同实现 B、C++对虚函数的调用采取了动态绑定方式

C、动态绑定只能通过指针或引用表示对象来调用虚函数 D、动态绑定的处理方式不能实现静态类型检查

4、调用虚函数实现多态的步骤是( )

A、将基类对象地址或派生类对象地址赋给基类指针 B、定义基类指针

C、用派生类对象或基类对象调用虚函数 D、用基类指针调用虚函数

5、下面的说法正确的是( )

A、抽象类只能做基类 B、抽象类是继承层次中的根 C、抽象类用abstract定义 D、抽象类中至少有一个虚函数

第三题、判断题(每题1分,5道题共5分)

1、函数绑定是指函数的入口地址同函数调用相联系的过程。

正确

错误

2、抽象类是指一些没有说明对象的类。

正确

错误

3、动态联编是在运行时选定调用的成员函数的。

正确 错误 4、抽象类是指具有纯虚函数的类; 正确 错误 5、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出。 正确 错误

《面向对象程序设计》第10章在线测试

剩余时间: 59:55

第一题、单项选择题(每题1分,5道题共5分) 1、下面哪些情况不会造成异常( )

A、内存耗尽 C、除数为0

B、再次打开文件 D、数组越界访问

2、关于异常的处理过程,正确的说法是( )

A、在可能会出现错误的地方,用catch捕捉 C、catch块可以捕捉所有异常

B、在可能会出现错误的地方,用throw抛出异常 D、只有与catch()参数匹配的异常才可以捕捉

3、如果异常没有列入异常规范,在C++中将( )

A、忽略它

C、系统调用unexpected()终止程序

B、程序中止 D、询问用户

4、关于catch(。。。)的说法错误的是( )

A、catch(。。。)可以捕捉所有类型的异常 C、catch(。。。)可以避免出现没有被捕捉的异常

B、catch(。。。)必须放在所有catch块的后面 D、catch(。。。)不能单独使用

5、C++中异常处理的默认模式是( )

A、终止模式 C、挂起模式

B、恢复模式 D、暂停模式

第二题、多项选择题(每题2分,5道题共10分) 1、下面的说法正确的是( )

A、异常处理是指允许C++程序非正常结束

B、异常处理是指C++程序在出错的情况下有正确合理的表现 C、C++程序绝对不能出现错误

D、异常处理使C++程序在出现错误的情况下仍能继续运行

2、处理程序中可预料的错误的方法有( )

A、根据函数返回值进行判断处理 B、出现错误转向专门的错误处理程序