《面向对象程序设计》第10章在线测试 剩余时间: 59:51 答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、throw后面的表达式不可以是( ) A、常量 C、对象 B、变量 D、数组 2、关于异常的说法,正确的是( ) A、异常就是错误 C、异常在C++中以消息的形式传递 B、有了异常处理机制,出现错误也没有关系 D、程序中出现的错误都可以用catch块来捕捉处理 3、关于catch(。。。)的说法错误的是( ) A、catch(。。。)可以捕捉所有类型的异常 C、catch(。。。)可以避免出现没有被捕捉的异常 B、catch(。。。)必须放在所有catch块的后面 D、catch(。。。)不能单独使用 4、C++中异常处理的默认模式是( ) A、终止模式 C、挂起模式 B、恢复模式 D、暂停模式 5、关于重新抛出错误的说法是( ) A、重新抛出是指抛出原来的异常 C、只能在catch块中抛出 B、用throw语句再次抛出原来的异常 D、重新抛出时不能改变异常信号的值 第二题、多项选择题(每题2分,5道题共10分) 1、关于异常处理的说法正确的是() A、将异常的检测与处理分离 B、异常就是错误 C、异常由函数调用引起 D、在上层调用函数中使用try检测函数调用是否引发异常 2、try子句的作用是( ) A、代码的保护段
B、如果预料某段程序代码可能发生异常,就将该段代码放在try子句之后 C、try子句产生异常
D、try子句中的throw表达式产生异常
3、catch子句的说法正确的是( )
A、catch子句后的复合语句是异常处理程序 B、catch子句捕获throw表达式抛出的异常
C、catch子句的异常类型说明只能是类型,不能是数值 D、catch子句的异常类型不能是自定义类
4、异常处理的执行过程是( )
A、程序执行try语句块内的保护段,如果发现异常则退出
B、如果在try语句内的程序段抛出异常,程序控制转入try块后的catch块
C、throw抛出的异常对象如果与catch子句异常类型的值一致,则执行对应的异常处理程序 D、如果没有匹配的catch子句,自动调用terminate终止程序
5、关于catch(?)语句的说法正确的是( )
A、catch(?)语句可以捕获任何异常
B、catch(?)语句可以放在catch子句的任何位置 C、catch(?)语句必须放在catch子句的最后 D、catch(?)语句捕获空的异常
第三题、判断题(每题1分,5道题共5分)
1、异常(Exception)是程序运行过程中,由于环境变化、用户操作失误以及其它方面的原因而产生的运行时不正常的情况.
正确
错误
2、抛出异常的模块只是报告某个地方存在错误,这个报告可以帮助异常处理器解决这个错误。
正确
错误
3、C++引入了关键字throw和catch,用于进行异常处理。
正确 错误 4、throw( )表示函数不会抛出任何类型的异常 正确 错误 5、在C++程序中如果不定义名字空间,就表示没有使用名字空间。 正确 错误