《面向对象程序设计》第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、出现错误转向专门的错误处理程序