Java程序设计基础(微课版)(第2版)第7章习题与答案_第1页
Java程序设计基础(微课版)(第2版)第7章习题与答案_第2页
Java程序设计基础(微课版)(第2版)第7章习题与答案_第3页
Java程序设计基础(微课版)(第2版)第7章习题与答案_第4页
Java程序设计基础(微课版)(第2版)第7章习题与答案_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章习题练习与参考答案第一部分:习题一、选择题1.()不是异常情况A.数组下标越界B.死循环C.文件不能打开D.对象类型不匹配2.如果不希望在方法中捕捉异常,采用()关键字可以把该方法产生的异常抛出。A.throwB.throwsC.gotoD.break3.自定义异常类需要继承()A.Error类B.Applet类C.Exception类及其子类D.AssertionError类4.对于try和catch子句的排列方式,下面()是正确的A.子类异常在前,父类异常在后B.父类异常在前,子类异常在后C.只能有子类异常D.父类异常和子类异常不能同时出现在同一个try程序段内5.()不属于finally语句应该具有的功能A.释放资源B.关闭文件C.分配资源D.关闭数据库6.()是除零异常A.NullPointerExceptionB.ArithmeticExceptionC.ArrayOutOfBoundsExceptionD.SecurityException7.()异常是数组的下标越界异常A.NullPointerExceptionB.ArithmeticExceptionC.ArrayIndexOutOfBoundsExceptionD.IOException8.()类是所有异常类的父类A.ThrowableB.ErrorC.ExceptionD.AWTError9.能单独和finally语句一起使用的块是()A.tryB.catchC.throwD.throws10.分析以下代码,说法正确的是()A.运行时报错B.程序正常运行,输出值为5C.程序正常运行,输出值为10D.程序正常运行,输出值为15第10题代码:publicstaticvoidmain(String[]args){

System.out.println(val());

}

publicstaticintval(){

intnum=5;

try{

num=num/0;

}catch(Exceptione){

num=10;

}finally{

num=15;

}

returnnum;

}二、编程题1.从命令行得到5个整数,放入一个整型数组,然后打印输出,要求:如果输入数据不为整数,要捕获Integer.parseInt()产生的异常,显示"请输入整数",捕获输入参数多于5个的异常(数组越界),显示"请输入至少5个整数"。2.写一个方法voidtriangle(inta,intb,intc),判断3个参数是否能构成一个三角形,如果不能则抛出异常IllegalArgumentException,显示异常信息"a,b,c+不能构成三角形",如果可以构成则显示三角形3个边长,在主方法中得到命令行输入的3个整数,调用此方法,并捕获异常。3.编写应用程序EcmDef.java,接收控制台的两个参数,要求不能输入负数,计算两数相除。要求:对数据类型不一致(NumberFormatException)、命令行参数数量超过两个(ArrayIndexOutOfBoundsException)、除以数字0(ArithmeticException),以及输入负数(自定义异常类)进行异常处理。

第二部分:参考答案一、选择题答案与解析1.答案:B解析:死循环是程序逻辑错误,不是Java异常机制处理的异常。A、C、D都是Java中会抛出异常的情况。2.答案:B解析:throws声明方法可能抛出的异常;throw是在方法内手动抛出异常对象。goto和break与异常无关。3.答案:C解析:自定义异常必须继承Exception或其子类。Error是系统级错误,不应该被捕获;A、B、D都不是异常基类。4.答案:A解析:多个catch时,子类异常必须在前,父类异常在后。否则父类catch会捕获所有子类异常,导致后面的catch永远执行不到。5.答案:C解析:finally用于释放资源(关闭文件、数据库、网络连接等),分配资源应该在try之前完成。6.答案:B解析:ArithmeticException是算术异常,包括除零、取模零等。A是空指针;C是数组越界;D是安全异常。7.答案:C解析:ArrayIndexOutOfBoundsException是数组下标越界异常。A是空指针;B是算术异常;D是IO异常。8.答案:A解析:Throwable是所有异常和错误的根类,Exception和Error都继承自Throwable。9.答案:A解析:try可以单独配合finally使用(try-finally结构),不一定需要catch。catch必须和try一起。10.答案:D解析:finally块总是执行!即使catch中修改了num=10,finally中的num=15会覆盖它,最终返回15。二、编程题参考答案第1题参考答案程序代码:publicclassInputNumbers{

publicstaticvoidmain(String[]args){

try{

if(args.length<5){

thrownewArrayIndexOutOfBoundsException("请输入至少5个整数");

}

int[]nums=newint[5];

for(inti=0;i<5;i++){

nums[i]=Integer.parseInt(args[i]);

}

System.out.println("输入的5个整数:");

for(intn:nums){

System.out.print(n+"");

}

}catch(NumberFormatExceptione){

System.out.println("请输入整数");

}catch(ArrayIndexOutOfBoundsExceptione){

System.out.println(e.getMessage());

}

}

}运行示例:命令行输入:javaInputNumbers12345输出:输入的5个整数:12345命令行输入:javaInputNumbers12a45输出:请输入整数命令行输入:javaInputNumbers123输出:请输入至少5个整数第2题参考答案程序代码:publicclassTriangleTest{

publicstaticvoidtriangle(inta,intb,intc){

if(a+b<=c||a+c<=b||b+c<=a){

thrownewIllegalArgumentException(a+","+b+","+c+"不能构成三角形");

}

System.out.println("三角形三边长:"+a+","+b+","+c);

}

publicstaticvoidmain(String[]args){

try{

inta=Integer.parseInt(args[0]);

intb=Integer.parseInt(args[1]);

intc=Integer.parseInt(args[2]);

triangle(a,b,c);

}catch(NumberFormatExceptione){

System.out.println("请输入整数");

}catch(IllegalArgumentExceptione){

System.out.println(e.getMessage());

}catch(ArrayIndexOutOfBoundsExceptione){

System.out.println("请输入3个整数");

}

}

}运行示例:javaTriangleTest345输出:三角形三边长:3,4,5javaTriangleTest123输出:1,2,3不能构成三角形第3题参考答案程序代码://自定义负数异常

classNegativeNumberExceptionextendsException{

publicNegativeNumberException(Stringmessage){

super(message);

}

}

publicclassEcmDef{

publicstaticvoidmain(String[]args){

try{

if(args.length!=2){

thrownewArrayIndexOutOfBoundsException("请输入两个参数");

}

inta=Integer.parseInt(args[0]);

intb=Integer.parseInt(args[1]);

if(a<0||b<0){

thrownewNegativeNumberException("不能输入负数");

}

doubleresult=(double)a/b;

System.out.println(a+"/"+b+"="+result);

}catch(NumberFormatExceptione){

System.out.println("数据类型不一致,请输入整数");

}catch(ArrayIndexOutOfBoundsExceptione){

System.out.println(e.getMessage());

}catch(ArithmeticExceptione){

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论