网站大量收购独家精品文档,联系QQ:2885784924

c++异常处理习题答案【DOC精选】.docx

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

1.概念填空题

1.1C++程序将可能发生异常的程序块放在try中,紧跟其后可放置若干个对应的catch,在前面所说的块中或块所调用的函数中应该有对应的throw,由它在不正常时抛出异常,如与某一条catch类型相匹配,则执行该语句。该语句执行完之后,如未退出程序,

则执行catch后续语句。如没有匹配的语句,则交给C++标准库中的termanite处理。

1.2throw表达式的行为有些像函数的_函数调用,而catch子句则有些像函数的_函数定义。函数的调用和异常处理的主要区别在于:建立函数调用所需的信息在编译时已经获得,而异常处理机制要求运行时的支撑。对于函数,编译器知道在哪个调用点上函数被真正调用:而对于异常处理,异常是随机发生的,并沿调用链逆向查找异常处理子句,这与运行时的多态是_不一样的。

2.简答题

2.1C++中的异常处理机制意义,作用是什么?

2.2当在try块中抛出异常后,程序最后是否回到try块中继续执行后面的语句?

2.3什么叫抛出异常?catch可以获取什么异常参数?是根据异常参数的类型还是根据参数的值处理异常?请编写测试程序验证。

2.4为什么C++要求资源的取得放在构造函数中,而资源的释放在析构函数中?

3.选择题

3.1下列关于异常的叙述错误的是(A)。

A.编译错属于异常,可以抛出

B.运行错属于异常

C.硬件故障也可当异常抛出

D.只要是编程者认为是异常的都可当异常抛出

3.2下列叙述错误的是()。

A.throw语句须书写在时语句块中

B.throw语句必须在try语句块中直接运行或通过调用函数运行

C.一个程序中可以有try语句而没有throw语句D.throw语句抛出的异常可以不被捕获

3.3关于函数声明floatfun(inta,intb)throw,下列叙述正确的是()。

A.表明函数抛出float类型异常

B.表明函数抛出任何类型异常

C.表明函数不抛出任何类型异常

D.表明函数实际抛出的异常

3.4下列叙述错误的是()。

A.catch(…)语句可捕获所有类型的异常

B.一个try语句可以有多个catch语句

C.catch(…)语句可以放在catch语句组的中间

D.程序中try语句与catch语句是一个整体,缺一不可

3.5下列程序运行结果为(A)。

#includeiostream

usingnamespacestd;classS{

public:

~S(){coutS\t;};

charfun00{

Ssl;

throw(T);

return0’;

voidmain({try{

coutfun00\t;catch(charc){

coutc\;}

A.STB.OSTC.0T

4.写出程序运行结果

4.1#includeiostream

usingnamespacestd;

inta[10]={1,2,3,4,5,6,7,8,9,10};

intfun(inti);

voidmain(

{inti,s=0;

for(i=0;i=10;i++)

{try

{s=s+fun(i);}

catch(int)

{cout”数组下标越界!endl;)

couts=sendl;

intfun(inti){if(i=10)throwi:

returna[i];

数组下标越界!

S=55

4.2#includeiostream

usingnamespacestd;

voidf0;

classT

{public:

T()

{coutconstructorendl;

D.T

有哪些信誉好的足球投注网站

预览与源文档一致下载高清无水印

try

{throwexception;}

catch(char*)

{coutexceptionendl;}throwexception;

;

voidmain)

{coutmainfunctionendl;

try{f();}

catch(char*)

{coutexception2endl;coutmainfunctionendl;

voidf()

{Tt;

ma

文档评论(0)

阿弥陀佛 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档