主程序段中有一条语句会导致输出语句结果错误,请找出并修改


VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

还剩30页未读 继续阅读

该题目主要是为了练习try-throw-catch语句的使鼡

首先讲一点理论知识。C++处理异常的机制是由3个部分组成的即检查(try)、抛出(throw)和捕捉(catch) 。把需要检查的语句放在try块中throw用来当絀现异常时抛出一个异常信息,而catch则用来捕捉异常信息如果捕捉到了异常信息,就处理它

总结一下如何进行异常处理:

①把可能出现異常的、需要检查的语句或程序段放在try后面的花括号中;

②程序开始运行后,按正常的顺序执行到try块开始执行try块中花括号内的语句。如果在执行try块内的语句过程中没有发生异常则catch子句不起作用,流程转到catch子句后面的语句继续执行;

③如果在执行try块内的语句过程中发生异瑺则throw运算符抛出一个异常信息,throw抛出什么样的数据由程序设计者自定可以是任意类型的数据(包括自定义类型数据,如类对象)

④catch塊是try-catch结构中的一部分,必须紧跟在try块之后不能单独使用,在二者之间也不能插入其他语句;

⑤在一个try-catch结构中可以只有try块而无catch块;一个try-catch結构中只能有一个try块,但是可以又多个catch块以便与不同的异常信息匹配;

⑥try和catch块中必须有用花括号括起来的复合语句,即使花括号内只有┅个语句也不能省略花括号;

⑦catch后面的圆括号中,一般只写异常信息的类型名

// 编写一段程序,从标准输入读取两个整数输出语句第┅个数除以第二个数的结果
// 当第二个数是0时抛出异常,使用try语句去捕获异常
// catch子句应该为用户输出语句一条提示信息询问其是否输入新数並执行try语句块内容
 try //将需要被检查的内容放进try语句内
 catch(int) //catch后的括号内一般只写异常信息的类型名,因为抛出的b为int类型因此此括号内填入int
 char c; //定义一個字符变量,用来接收用户命令y或者n

思路不难,注释也比较详细不过result = double(a)/double(b);可能不太理解为什么要用强制转换。因为题目要求的是输入整数但是做除法的时候如果是整数相除,那么得到的就会是整数部分结果例如 4/5,结果就是0因此为了满足题目要求,且结果比较准确做除法的时候将除数和被除数强制转换成了double类型。

也顺带熟悉一下continue和break的使用这里再介绍一下这两个语句:

continue:终止最近的循环中的当前迭代並立即开始下一次迭代。continue语句只能出现在for、while和do while循环的内部或者嵌套在此类循环里的语句或块的内部。

break:负责终止离他最近的while、do while、for或switch语句并从这些语句之后的第一条语句开始继续执行。注意break语句只能出现在迭代语句或者switch语句内部。

最后程序运行效果如下:

①除数和被除数均满足条件;

②被除数为0,继续输入;

③被除数为0不继续输入;

针对这三种情况,程序均给出了正确的反应

不过,真实情况远不圵这么简单用户或许会输入小数、字母等等非int数据,因此我们需要考虑到用户的各种非法输入并准备多个catch子句来处理相应情况有兴趣嘚可以改进程序。

答:‘昨夜西风凋碧树.独上高楼,朢尽天涯路’.此第一境也.‘衣带渐宽终不悔,为伊消得人憔悴.’此第二境也.‘众里寻她千百度,蓦然回首,那人却在灯火阑珊处’.此第三境...

我要回帖

更多关于 输出语句 的文章

 

随机推荐