B、类模板 C、函数模板 D、派生类
2、关于虚函数的说法正确的是( )
A、虚函数只能是成员函数 B、静态成员函数不能是虚函数 C、虚函数不能是内联函数 D、析构函数不能是虚函数
3、下面的说法正确的是( )
A、抽象类只能做基类 B、抽象类是继承层次中的根 C、抽象类用abstract定义 D、抽象类中至少有一个虚函数
4、下列关于虚函数与函数重载区别的叙述中正确的是( )
A、函数说明形式上不同
B、函数重载允许是非成员函数,虚函数只能是成员函数 C、函数重载的调用依据参数和类型的差别,虚函数则依据对象 D、函数重载的本体可以在类外定义,虚函数不可以
5、当一个类的某个函数被说明为 virtual 时,下面说法错误的是( )
A、该函数在该类的所有派生类中都是虚函数
B、该函数在该类的所有派生类中只有被重新说明时才是虚函数
C、该函数在该类的所有派生类中只有被重新说明为 virtual 时才是虚函数 D、该函数在该类的所有派生类中都不是虚函数
第三题、判断题(每题1分,5道题共5分)
1、相比较而言,静态绑定的执行速度要比动态绑定的执行速度快。 正确 错误 2、动态联编是在运行时选定调用的成员函数的。 正确 错误 3、纯虚函数是一种特殊的虚函数,它没有具体的实现 正确 错误 4、一个基类说明有纯虚函数,该基类的派生类一定不再是抽象类; 正确 错误 5、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出。 正确 错误
第一题、单项选择题(每题1分,5道题共5分) 1、throw后面的表达式不可以是( )
A、常量 C、对象
B、变量 D、数组
2、下面哪些情况不会造成异常( )
A、内存耗尽 C、除数为0
B、再次打开文件 D、数组越界访问
3、关于异常的处理过程,正确的说法是( )
A、在可能会出现错误的地方,用catch捕捉
B、在可能会出现错误的地方,用thr
ow抛出异常
D、只有与catch()参数匹配的异常才可以捕捉
C、catch块可以捕捉所有异常
4、如果异常没有列入异常规范,在C++中将( )
A、忽略它
C、系统调用unexpected()终止程序
B、程序中止
D、询问用户
5、关于没有被捕捉的异常正确的说法是( )
A、在catch块中没有处理的异常
B、未被捕捉的异常必然导致系统崩溃
C、如果一个异常没有被捕捉到,将调用terminate()函数终止程序运行
D、忽略它
第二题、多项选择题(每题2分,5道题共10分) 1、处理程序中可预料的错误的方法有( )
A、根据函数返回值进行判断处理 B、出现错误转向专门的错误处理程序 C、异常处理 D、没有办法
2、异常处理的优点是( )
A、提高程序可读性
B、程序的控制不会因产生异常而随意跳转 C、正常处理代码和异常处理代码隐式分离 D、与函数调用返回的控制方法一致
3、关于异常处理的说法正确的是()
A、将异常的检测与处理分离 B、异常就是错误 C、异常由函数调用引起
D、在上层调用函数中使用try检测函数调用是否引发异常
4、下面的说法正确的是()
A、引发异常用关键字throw
B、在被调用函数中检测到异常条件用throw都可以引发异常 C、被调用函数只有在try块中用throw才可以引发异常 D、检测到的异常由catch捕获并处理
5、try子句的作用是( )
A、代码的保护段
B、如果预料某段程序代码可能发生异常,就将该段代码放在try子句之后 C、try子句产生异常 D、try子句中的throw表达式产生异常 第三题、判断题(每题1分,5道题共5分) 1、抛出异常的模块只是报告某个地方存在错误,这个报告可以帮助异常处理器解决这个错误。 正确 错误 2、异常信号传递方式有三种:传值方式、引用方式和指针方式。 正确 错误 3、throw( )表示函数不会抛出任何类型的异常 正确 错误 4、如果没有异常规范表示函数不会抛出任何类型的异常。 正确 错误 5、catch处理程序的出现次序无关紧要。 正确 错误 第一题、单项选择题(每题1分,5道题共5分) 1、STL中能够保存其他类型的对象的类是( ) A、容器 C、算法 B、迭代器 D、数组 2、STL中算法访问容器的中介是( ) A、容器 C、算法 B、迭代器 D、数组 3、允许程序员以相同的方式处理不同的数据结构的是( ) A、容器 C、算法 B、迭代器 D、数组 4、向量(vector)属于( ) A、顺序容器 B、关联容器

