【运行结果】 6 4
2.public class X6_3_2 {
public static void main(String[] args) { int a[]={36,25,48,14,55,40,32,66}; int b1,b2; b1=b2=a[0]; for(int i=1;i
【运行结果】 66 55
3.public class X6_3_3 {
public static void main(String[] args) { int a[]={36,25,48,14,55,40,32,66 }; int b1,b2; b1=b2=a[0]; for (int i=1;i 【运行结果】 14 25 4.public class X6_3_4 { public static void main(String[] args) { String str = \ char[] a =str.toCharArray(); int i1 =0, i2=0, i; for(i=0;i 【运行结果】 4 3 5.public class X6_3_5 { public static void main(String[] args) { String str =\ char[] a = str.toCharArray(); int b[] = new int[5],i; for(i=0;i case 'c': b[2] ++; break; 13 case 'd': b[3] ++; break; default : b[4] ++; } } for(i =0; i<5; i++) System.out.print(b[i]+\ System.out.println(); } } 【运行结果】 4 3 2 2 3 6.public class X6_3_6 { public static void main(String[] args) { int a[] = {76,83,54,62,40,75,90,92,77,84}; int b[] = {60,70,90,101}; int c[]=new int[4],i; for (i=0; i while (a[i] >= b[j] ) j ++; c[j] ++; } for (i=0; i<4; i++) System.out.print(c[i]+\ System.out.println(); } } 【运行结果】 2 1 5 2 7.public class X6_3_7 { public static void main(String[] args) { int a[][] = {{1,2,7,8},{5,6,11,12},{9,10,3,4}}; int m = a[0][0]; int ii = 0, jj = 0; for (int i=0;i System.out.println(ii+\ } } 【运行结果】 1 3 12 8.public class X6_3_8 { public static void main(String[] args) { String[] a = {\,\,\,\,\}; String s1,s2; s1 = s2 = a[0]; for( int i = 1; i System.out.println(s1+\ } } 14 【运行结果】 worker cadre 第7章 一、选择题 1.关于异常的含义,下列描述中最正确的一个是( D )。 A.程序编译错误 B.程序语法错误 C.程序自定义的异常事件 D.程序编译或运行时发生的异常事件 【解析】异常就是程序编译或运行时发生的异常事件。 2.自定义异常时,可以通过对下列哪一项进行继承?( C ) A.Error类 B.Applet类 C.Exception类及其子类 D.AssertionError类 【解析】自定义异常类时,该类必须继承Exception类及其子类。 3.对应try和catch子句的排列方式,下列哪一项是正确的?( A ) A.子类异常在前,父类异常在后 B.父类异常在前,子类异常在后 C.只能有子类异常 D.父类和子类不能同时出现在try语句块中 【解析】对应try和catch子句的排列方式,要求子类异常(范围小的异常)在前,父类异常(范围大的异常)在后。 4.运行下面程序时,会产生什么异常?( A ) public class X7_1_4 { public static void main(String[] args) { int x = 0; int y = 5/x; int[] z = {1,2,3,4}; int p = z[4]; } } A.ArithmeticException B.NumberFormatException C.ArrayIndexOutOfBoundsException D.IOException 【解析】当程序执行到“int y = 5/x”语句时,发生异常,程序中止执行,因此发生ArithmeticException异常。 5.运行下面程序时,会产生什么异常?( C ) public class X7_1_5 { public static void main(String[] args) { int[] z = {1,2,3,4}; int p = z[4]; int x = 0; int y = 5/x; } } A.ArithmeticException B.NumberFormatException C.ArrayIndexOutOfBoundsException D.IOException 【解析】当程序执行到“int p = z[4]”语句时,发生异常,程序中止执行,因此发生ArrayIndexOutOfBoundsException异常。 6.下列程序执行的结果是( B )。 public class X7_1_6 { public static void main(String[] args) { try{ 15 } } return; } finally{ System.out.println(\} A.程序正常运行,但不输出任何结果 B.程序正常运行,并输出Finally C.编译通过,但运行时出现异常 D.因为没有catch子句,因此不能通过编译 【解析】在执行try-catch-finally语句块时,最后必须执行finally语句块中的内容,而本程序没有异常发生,因此程序正常运行,并输出Finally。 7.下列代码中给出正确的在方法体内抛出异常的是( B )。 A.new throw Exception(\ B.throw new Exception(\C.throws IOException(); D.throws IOException; 【解析】在方法体内抛出异常时只能使用throw,而不能使用throws,另外,“new Exception(\\”是创建一个异常,因此B是正确的。 8.下列描述了Java语言通过面相对象的方法进行异常处理的好处,请选出不在这些好处范围之内的一项( C ) A.把各种不同的异常事件进行分类,体现了良好的继承性 B.把错误处理代码从常规代码中分离出来 C.可以利用异常处理机制代替传统的控制流程 D.这种机制对具有动态运行特性的复杂程序提供了强有力的支持 【解析】异常处理机制不能代替传统的流程控制。 二、填空题 1.异常是在程序编译或运行中所发生的可预料或不可预料的异常事件,出现在编译阶段的异常,称之为 编译时异常 ,出现在运行阶段的异常,称之为 运行时异常 。 2.根据异常的来源,可以把异常分为两种类型: 系统定义的运行时异常 和 用户自定义异常 。 3.所有的Java异常类都是系统类库中的 Exception 类的子类。 4.抛出异常分为 由系统自动抛出异常 、 通过throw抛出异常 以及 通过throws抛出异常 三种情况。 5.Java语言为我们提供了 try?catch 语句和try?catch?finally 语句捕捉并处理异常。 6.一个try块后面可能会跟着若干个 catch 块,每个 catch 块都有一个异常类名作为参数。 7.如果try语句块产生的异常对象被第一个catch块所接收,则程序的流程将 转向第一个catch块 ,catch语句块执行完毕后就 退出当前方法 ,try块中尚未执行的语句和其他的catch块将被 忽略 ;如果try语句块产生的异常对象与第一个catch块不匹配,系统将自动转到 第二个catch块 进行匹配。 8.由于异常对象与catch块的匹配是按照catch块的 先后 顺序进行的,所以在处理多异常时应注意认真设计各catch块的排列顺序。 9.throws语句抛出的异常实际上是由throws语句修饰的方法内部的 throw 语句抛出的,使用throws的主要目的是为了 通知所有预调用此方法的方法 。 16