1、二级 JAVA笔试-流程控制盒异常处理、类、数组和字串操作及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:46,分数:100.00)1.下列语句中执行跳转功能的语句是_。 A.for语句 B.while语句 C.continue语句 D.switch语句(分数:2.00)A.B.C.D.2.下列语句中,属于多分支语句的是_。 A.if语句 B.switch语句 C.do-while语句 D.for语句(分数:2.00)A.B.C.D.3.请阅读如下程序。public class ForLoopStatementpublic static void main(St
2、ring args)int i,j;for(i=l;i5;i+)/i 循环For(j=1;j=i;j+) /j 循环System.out.print(i+“X“+j+“=“+i*j+“ “);System.out.println();程序完成后,i 循环和 j循环执行的次数分别是_。 A.4和 10 B.8和 9 C.9和 8 D.10和 10(分数:2.00)A.B.C.D.4.阅读下列代码。public class Test2005public static void main(String args)String s = “Test“;switch (s) case “Java“:Sys
3、tem.out.print(“Java“);break;case “Language“:System.out.print(“Language“);break;case “Test“:System.out.print(“Test“);break;其运行结果是_。 A.Java B.Language C.Test D.编译出错(分数:2.00)A.B.C.D.5.下列程序的运行结果是_。public class Test public static void main (String args) int x=3, y=4, z=5;if (x3) if (y2)System.out.print (
4、“show one“);elseSystem.out.print (“show two“);elseif (z4)System.out.print (“show three“);elseSystem.out.print (“show four“); A.show one B.show two C.show three D.show four(分数:2.00)A.B.C.D.6.假设 a是 int类型的变量,并初始化为 1,则下列选项中合法的条件语句是_。 Aif(a) Bif(a (分数:2.00)A.B.C.D.7.在多分支语句 switch(表达式)中,表达式不可以返回_。 A.短整型 B
5、.字符型 C.接口型 D.整型(分数:2.00)A.B.C.D.8.下面对 do-while结构的描述中,不正确的是_。 A.循环体至少执行一次 B.属于“直到型”循环 C.与 while语句执行情况相同 D.先执行循环体,再计算终止条件,若结果为 true,则执行循环体,直到布尔表达式的值为false(分数:2.00)A.B.C.D.9.循环语句中经常加入 continue语句完成特定的功能,则执行 continue语句后_。 A.跳过循环体下面的语句,继续下次循环 B.再次循环前不需要判断终止条件 C.跳出循环 D.以上说法都不正确(分数:2.00)A.B.C.D.10.下列程序的运算结果
6、是_。public class Testpublic static void main(String args)int m=new int (1,2,3,4,5,6,7,8);int sum=0;for(int i=0;i8;i+) sum+ =mi;if(i=3) break;System.out.println(sum); A.3 B.6 C.10 D.36(分数:2.00)A.B.C.D.11.下列程序的运行结果是_。public class Testpublic static void main (String args)int percent=10;tripleValue(perce
7、nt);System.out.println(percent);public static void tripleValue(int x) x=3*x; A.40 B.30 C.20 D.10(分数:2.00)A.B.C.D.12.下列程序的执行结果是_。public class Test public static void main(String args) int x=0, i,2,3;for(int i=0;i3;i+=2) trySystem.out.println(xi+2/xi+xi+1);catch(ArithmeticException e) System.out.print
8、ln(“error1“);catch(Exception e) System.out.println (“error2“); A.error1 B.error2 C.error1 error2 D.2 error2(分数:2.00)A.B.C.D.13.下列程序执行后,输出的结果是_。public class Testpublic static void main(String args) int a=100;if(a100|a100)System.out.println(“a100“);elseSystem.out.println(“a=100“); A.a=100 B.a100 C.a10
9、0 D.a100(分数:2.00)A.B.C.D.14.对于已经被定义过的可能抛出异常的语句,在编译时_。 A.必须使用 try/cstch语句处理异常 B.如果程序错误,必须使用 try/catch语句处理异常 C.不使用 try/catch语句会出现编译错误 D.不使用 try/catch语句不会出现编译错误(分数:2.00)A.B.C.D.15.下列语句序列执行后,k 的值是_。public class Testpublic static void main(String args) int m = 3, n = 6, k = 0;while (m+) (n-)+k;System.out
10、.println(k); A.0 B.1 C.2 D.3(分数:2.00)A.B.C.D.16.下列程序段的输出结果是_。public class Testpublic static void main(String args)int a,b;for (a = 1, b = 1; a = 100; a+)if (a = 10) break;if (b % 2 = 1)b += 2;continue;System.out.println(a); A.7 B.8 C.9 D.10(分数:2.00)A.B.C.D.17.数组中各个元素的数据类型是_。 A.相同的 B.不同的 C.部分相同的 D.任意
11、的(分数:2.00)A.B.C.D.18.下列叙述中,错误的是_。 A.Java中,方法的重载是指多个方法可以共享同一个名字 B.Java中,用 abstract修饰的类称为抽象类,它不能实例化 C.Java中,接口是不包含成员变量和方法实现的抽象类 D.Java中,构造方法可以有返回值(分数:2.00)A.B.C.D.19.请阅读如下程序。public class ExampleStringBufferpublic static void main (String args)StringBuffer sb=new StringBuffer (“test“);System.out.printl
12、n (“buffer= “+sb);System.out.println (“length= “+sb.length ();程序运行结果中在“length=”后输出的值是_。 A.10 B.4 C.20 D.30(分数:2.00)A.B.C.D.20.阅读如下代码。if(x=0) System.out.println(“冠军“);else if(x-3) System.out.println(“亚军“);else System.out.println(“季军“);若要求打印字符串“季军”,则变量 x的取值范围是_。 A.x=0public class Comparisonpublic stat
13、ic void main(String args)string firstNumber,/用户输入第 1个数据变量secondNumber,/用户输入第 2个数据变量resuit;/输出结果变量int numberl,/用于比较的第 1个数number2,/用于比较的第 2个数/用户输入第 1个数据的字符串firstNumber=JoptionPane.showInputDialog(“输入第 1个整数:“);/用户输入第 2个数据的字符串secondNumber=JoptionPane.showInputDialog(“输入第 2个整数:“);/将字符串转换为整数类型number1=Inte
14、ger.parseInt(firstNumber);number2=Integer.parseInt(secondNumber);/初始化结果变量/比较两个数据if(number1=number2)result+=numberl+“=“+number2;if(number1!=number2)result+=number1+“!=“+number2;if(number1number2)result=resuit+“n“+number1+“+number2;if(number1number2)result=result+“/n“+number1+“+number2;if(number1=numb
15、er2)result=result+“/n“+number1+“=“+number2;if(number1=numbei2)result=result+“/n“+number1+“=“+number2;/显示结果JoptionPane.showMessageDialog(null.result,“比较结果“,JOptionPane.INFORMATION MESSAGE);System.exit(0);为使程序能正确运行并得到合理的输出结果,初始化结果变量语句(下划线处)应是_。 A.result=“ B.result=ull C.result=number1 D.result=number2
16、(分数:2.00)A.B.C.D.22.下面关于 Java源文件结构规则的说法中,错误的是_。 A.package语句在 imports语句之前 B.类的定义部分首先是类的注释 C.类的声明同时包含 extends和 implements两个关键字时,必须放在同一行 D.版权信息必须在 Java文件的开头(分数:2.00)A.B.C.D.23.下列代码中,将引起一个编译错误的行是_。(1) public class Test(2) int m,n;(3) public Test() (4) public Test(int a) m=a;(5) public static void main(S
17、tring args) (6) Test t1,t2;(7) int j,k;(8) j=0; k=0;(9) t1=new Test() ;(10) t2=new Test (j,k);(11) (12) A.第(3)行 B.第(5)行 C.第(6)行 D.第(10)行(分数:2.00)A.B.C.D.24.阅读和理解下面的程序段。class Manager extends Employeepublic Manager(String n, double s, int year, int month, int day)super(n,s,year,month,day);Bonus=0;publ
18、ic double getSalary()double baseSalary=super.getSalary();Return baseSalary+bonus;public void setBonus(double b);bonus=b;Private double bonus;Manager是 Employee的子类,其理由是_。 A.Manager的适用范围较宽 B.extends关键字声明 C.Manager的域减小了 D.雇员是一个经理(分数:2.00)A.B.C.D.25.在 Java中,所有类的根类是_。 A.java.lang.Object B.java.lang.Class
19、C.java.applet.Applet D.java.awt.Frame(分数:2.00)A.B.C.D.26.如下程序执行后,字符串 s的值应是_。public class Test24public static void main (String args )String greets=“Hello“;String s=greets.substring(0,3);System.out.println(s); A.ello B.Hel C.Hello D.el(分数:2.00)A.B.C.D.27.在 Java中,能实现多重继承效果的方式是_。 A.内部类 B.适配器 C.接口 D.同步(
20、分数:2.00)A.B.C.D.28.在 Java中,数组是当成_来处理的。 A.类 B.对象 C.接口 D.简单数据类型(分数:2.00)A.B.C.D.29.下列内部类的正确用途是_。Btnn.addActionListener(new /注册监听器ActionListener()public void actionPerformed (ActionEvent event)String s=input.getText();Output.setText(“Hello“+s+“,Welcome You!“);) A.用于访问外部类的数据 B.用于进行事件处理 C.隐藏起来不被同一包中的其他类所
21、见 D.生成事件适配器(分数:2.00)A.B.C.D.30.阅读如下程序代码。class Test35private float a;static public void m()/.如何使成员变量 a被函数 m()直接访问?_ A.将 private float a改为 protected float a B.将 private float a改为 public float a C.将 private float a改为 static float a D.将 private float a改为 float a(分数:2.00)A.B.C.D.31.若数组 a定义为 inta=new int3
22、4,则 a是_。 A.一维数组 B.二维数组 C.三维数组 D.四维数组(分数:2.50)A.B.C.D.32.下列关于面向对象的论述中,正确的是_。 A.面向对象是指以对象为中心,分析、设计和实现应用程序的机制 B.面向对象是指以功能为中心,分析、设计和实现应用程序的机制 C.面向对象仅适用于程序设计阶段 D.面向对象是一种程序设计语言(分数:2.50)A.B.C.D.33.Java语言使用的字符码集是_。 A.ASCII B.BCD C.DCB D.Unicode(分数:2.50)A.B.C.D.34.若特快订单是一种订单,则特快订单类和订单类的关系为_。 A.使用关系 B.包含关系 C.
23、继承关系 D.无关系(分数:2.50)A.B.C.D.35.下列程序的运行结果是_。public class Shapepublic Shape()System.out.println(“shape“);public class Circle extends Shapepublic Circle()System.out.println(“Circle“);public static void main(String args)Shape d = new Circle() A.Shape B.Circle C.ShapeCircle D.程序有错误(分数:2.50)A.B.C.D.36.下列选项
24、中,能实现对父类的 getSalary方法重写的是_。class Employeepublic Double getSalary(); A.class Manager extends Employee public int getSalary(Double x); B.class Manager extends Employee public Double getSalary(int x,int y); C.class Manager extends Employee public Double getSalaryO; D.class Manager extends Employee publ
25、ic int getSalary(int x,int y);(分数:2.50)A.B.C.D.37.Java中用来定义包的关键字的是_。 A.package B.import C.com D.class(分数:2.50)A.B.C.D.38.下列关于 Object类中定义的方法的描述,正确的是_。 A.其他类不能调用 B.其他类部分能调用 C.其他类大部分不能调用 D.其他类全部能调用(分数:2.50)A.B.C.D.39.抽象类是_。 A.不能派生子类的类 B.不能实例化的类 C.所有的方法都是抽象方法的类 D.方法体为空的类(分数:2.50)A.B.C.D.40.继承是面向对象的一个重要特
26、性,它可以_。 A.优化程序的存储空间 B.使代码重用,降低程序复杂度 C.保证类和接口的安全 D.更容易实例化类的类型(分数:2.50)A.B.C.D.41.下列实现了动态数组的是_。 A.vector和 ArrayList B.Map和 Set C.Vector和 Map D.ArrayList和 Set(分数:2.50)A.B.C.D.42.下列程序的运行结果是_。public static ArrayTestpublic static void main(String args)int data = 1,2,3,4,5,11,22,33,44,55,111,222,333, 444,5
27、55;for(int i=0;i data.length;i+)if(i%2=0) System.out.println(datai 4+“ “); A.5 555 B.5 55 C.555 D.55(分数:2.50)A.B.C.D.43.Object类中的方法 public int hashCode(),在其子类覆盖该方法时,其方法修饰符可以是_。 A.protected B.public C.private D.默认(分数:2.50)A.B.C.D.44.下列代码的执行结果是_。int numbers=new int6;for(int i=1;inumbers.length;i+)numb
28、ersi = i-1;System.out.print(numbersi+“ ); A.0 1 2 3 4 5 B.1 2 3 4 5 6 C.0 1 2 3 4 D.1 2 3 4 5(分数:2.50)A.B.C.D.45.阅读下面程序:public class ConcatTestpublic static void main(String args)Strinq str1=“abc“;String str2=“ABC“;String str3=str1.contat(str2);System.out.println(str3);程序运行结果是_。 A.abc B.ABC C.abcABC
29、 D.ABCabc(分数:2.50)A.B.C.D.46.下列代码的执行结果是_。int length = “Hello“.length();System.out.println(length); A.5 B.2 C.10 D.6(分数:2.50)A.B.C.D.二级 JAVA笔试-流程控制盒异常处理、类、数组和字串操作答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:46,分数:100.00)1.下列语句中执行跳转功能的语句是_。 A.for语句 B.while语句 C.continue语句 D.switch语句(分数:2.00)A.B.C. D.解析:解析 co
30、ntinue 语句具有跳转功能,可以跳过循环体中下面尚未执行的语句,回到循环体的开始继续下一轮的循环。2.下列语句中,属于多分支语句的是_。 A.if语句 B.switch语句 C.do-while语句 D.for语句(分数:2.00)A.B. C.D.解析:解析 本题考查流程控制常用语句。分支语句分为条件语句和多分支语句,if 语句是条件语句,switch语句是多分支语句,do-while 语句和 for语句是循环语句。3.请阅读如下程序。public class ForLoopStatementpublic static void main(String args)int i,j;for(
31、i=l;i5;i+)/i 循环For(j=1;j=i;j+) /j 循环System.out.print(i+“X“+j+“=“+i*j+“ “);System.out.println();程序完成后,i 循环和 j循环执行的次数分别是_。 A.4和 10 B.8和 9 C.9和 8 D.10和 10(分数:2.00)A. B.C.D.解析:解析 由题知,i 循环执行次数 5-1=4,j 循环执行次数 1+2+3+4=10,所以选项 A正确。4.阅读下列代码。public class Test2005public static void main(String args)String s =
32、“Test“;switch (s) case “Java“:System.out.print(“Java“);break;case “Language“:System.out.print(“Language“);break;case “Test“:System.out.print(“Test“);break;其运行结果是_。 A.Java B.Language C.Test D.编译出错(分数:2.00)A.B.C. D.解析:解析 本题考查 switch语句。switch 语句根据表达式的值从多个分支中选择一个来执行,本题s为“Test“;,所以执行第三个 case子句,运行结果为 Test
33、。5.下列程序的运行结果是_。public class Test public static void main (String args) int x=3, y=4, z=5;if (x3) if (y2)System.out.print (“show one“);elseSystem.out.print (“show two“);elseif (z4)System.out.print (“show three“);elseSystem.out.print (“show four“); A.show one B.show two C.show three D.show four(分数:2.0
34、0)A.B.C. D.解析:解析 本题考查 if判断的相关知识。本题中 x=3,z=5,因此结果为 show three。6.假设 a是 int类型的变量,并初始化为 1,则下列选项中合法的条件语句是_。 Aif(a) Bif(a (分数:2.00)A.B.C.D. 解析:解析 在 Java语言中,if 的判定条件结果应是一个逻辑型数据,而 A选项中的是整型,B 选项中*=是非法操作,C 选择中 a=2只能用于赋值,判断 a是否等于 2需要用 a=2。所以综合分析可以得出结论 D选项正确。7.在多分支语句 switch(表达式)中,表达式不可以返回_。 A.短整型 B.字符型 C.接口型 D.
35、整型(分数:2.00)A.B.C. D.解析:解析 在多分支语句 switch(表达式)中,表达式 expression只能返回 int(整型)、short(短整型)和 char(字符型)。多分支语句把表达式返回的值依次与每个 case子句中的值相比较,如果遇到匹配的值,则执行该 case子句后的语句序列。8.下面对 do-while结构的描述中,不正确的是_。 A.循环体至少执行一次 B.属于“直到型”循环 C.与 while语句执行情况相同 D.先执行循环体,再计算终止条件,若结果为 true,则执行循环体,直到布尔表达式的值为false(分数:2.00)A.B.C. D.解析:解析 在
36、Java语言中,do-while 循环与 while循环都十分常见,但两者在使用方面有一定的差异。while 循环先判断,再进入循环,所以循环体有可能一次也执行不到;而 do-while先执行循环体的内容,再进行判断,所以至少执行一次循环体。由此就可以看出,两者执行情况并不相同。9.循环语句中经常加入 continue语句完成特定的功能,则执行 continue语句后_。 A.跳过循环体下面的语句,继续下次循环 B.再次循环前不需要判断终止条件 C.跳出循环 D.以上说法都不正确(分数:2.00)A. B.C.D.解析:解析 本题考查 continue的基本职能。continue 语句跳过循环
37、体中下面尚未执行的语句,回到循环体的开始继续下轮循环。当然,在下轮循环开始前,要先进行终止条件的判断,以决定是否继续循环。10.下列程序的运算结果是_。public class Testpublic static void main(String args)int m=new int (1,2,3,4,5,6,7,8);int sum=0;for(int i=0;i8;i+) sum+ =mi;if(i=3) break;System.out.println(sum); A.3 B.6 C.10 D.36(分数:2.00)A.B. C.D.解析:解析 break 语句的作用是跳出循环,结束循环
38、体;continue 语句的作用是跳出当次循环,继续下次循环。因此这个 i从 0开始每次循环增加 1,当 i=3时结束循环,因此 i的 3次循环值分别为0、1、2,对应数组中的值分别为 1、2、3,结果为 6。11.下列程序的运行结果是_。public class Testpublic static void main (String args)int percent=10;tripleValue(percent);System.out.println(percent);public static void tripleValue(int x) x=3*x; A.40 B.30 C.20 D.
39、10(分数:2.00)A.B.C.D. 解析:解析 本题考查的是 Java中对对象类型和基本类型的内部存储。如果是对象,则存储的是引用,在外部方法改变时,具体的属性会改变整体的值;如果是基本类型及其包装类,实际上是直接重新分配的,不会改变原先类型的值。所以本题的结果是 10。如果 percent定义成一个对象类型,如 List,在tripleValue这里增加一个 list.add()来增加一个元素,那么打印出来的结果应该是增加之后的,因为List是引用类型分配的,传给 tripleValue方法的是引用,修改之后一起变化。12.下列程序的执行结果是_。public class Test pu
40、blic static void main(String args) int x=0, i,2,3;for(int i=0;i3;i+=2) trySystem.out.println(xi+2/xi+xi+1);catch(ArithmeticException e) System.out.println(“error1“);catch(Exception e) System.out.println (“error2“); A.error1 B.error2 C.error1 error2 D.2 error2(分数:2.00)A.B.C. D.解析:解析 当 for循环第一次执行的时候 i
41、=0,输出的计算部分是 2/0+1,除数为 0会报出异常,是ArithmeticException的子类,所以先输出 error1的打印。第一次执行完毕之后,第二次 i=i+2=2,执行的计算部分是 x4,会直接抛出数组越界的异常,不属于 ArihmeticException的子类,所以会被第二个异常捕捉语句捕捉,打印 error2。执行完第二次之后 i=i+2=4,已经不小于 3,所以不再继续执行。13.下列程序执行后,输出的结果是_。public class Testpublic static void main(String args) int a=100;if(a100|a100)Sy
42、stem.out.println(“a100“);elseSystem.out.println(“a=100“); A.a=100 B.a100 C.a100 D.a100(分数:2.00)A. B.C.D.解析:解析 程序中 a=100,在经过判定 a100|a100 时,由于 a既不小于 100,也不大于 100,所以判定结果为假。程序会走 if语句的 else分支,所以输出为“a=100”。14.对于已经被定义过的可能抛出异常的语句,在编译时_。 A.必须使用 try/cstch语句处理异常 B.如果程序错误,必须使用 try/catch语句处理异常 C.不使用 try/catch语句会
43、出现编译错误 D.不使用 try/catch语句不会出现编译错误(分数:2.00)A.B. C.D.解析:解析 try 和 catch语句在捕获异常时使用。当此语句执行时,解释器把可以产生异常的代码段形成一个“警戒区”。此“警戒区”由时引导,“警戒区”后面是 catch从句,其后可接多个 catch语句。try和 catch语句的应用并不能确保程序出现或不出现编译错误,而只能是有效定位错误,所以本题描述正确的是 B选项。15.下列语句序列执行后,k 的值是_。public class Testpublic static void main(String args) int m = 3, n =
44、 6, k = 0;while (m+) (n-)+k;System.out.println(k); A.0 B.1 C.2 D.3(分数:2.00)A.B.C. D.解析:解析 本题程序采用的是循环结构,但考查的重点却是自加、自减的应用。在循环第 1次执行时,m=3,n=6,mn 成立,会执行循环体的内容。第 2次执行时,m=4,n=5,mn 仍成立,所以再次执行循环。第 3次执行时,m=5,n=4,mn 不成立,则退出循环,k=2。16.下列程序段的输出结果是_。public class Testpublic static void main(String args)int a,b;for
45、 (a = 1, b = 1; a = 100; a+)if (a = 10) break;if (b % 2 = 1)b += 2;continue;System.out.println(a); A.7 B.8 C.9 D.10(分数:2.00)A.B.C.D. 解析:解析 本题从程序循环条件来看,似乎要执行 100次(a 从 1到 100),但看到循环体的内容可以发现,只要 a=10,就会执行 break终止循环,所以 a=10时,首次符合该条件,从而跳出循环。17.数组中各个元素的数据类型是_。 A.相同的 B.不同的 C.部分相同的 D.任意的(分数:2.00)A. B.C.D.解析:解析 数组是有限元素的有序集合,其中每个元素都有相同的数据类型。18.下列叙述中,错误的是_。 A.Java中,方法的重载是指多个方法可以共享同一个名字 B.Java中,用 abstract修饰的类称为抽象类,它不能实例化 C.Java中,接口是不包含成员变量和方法实现的抽象类 D.Java中,构造方法可以有返回值(分数:2.00)A.B.C.D. 解析:解析