电子科技大学《JAVA程序设计》20春期末考试
试卷总分:100 得分:100
一、单选题 (共 30 道试题,共 75 分)
1.给定如下Java 程序代码片段,编译运行这段代码,结果是( )。 java.util.HashMap map = new java.util.HashMap(); map.put(“name”,null); map.put(“name”,”Jack”); System.out.println(map.get(“name”));
A.null
B.Jack
C.nullJack
D.运行时出现异常
2.设有定义:String s=“World”;,下列语句错误的是( )。
A.int m=s.indexOf(‘r’);
B.char c=s.charAt(0);
C.int n=s.length();
D.String str=s.append(‘2’);
3.在 Java 中,用 package 语句说明一个包时,该包的层次结构必须是( )。
A.与文件目录的层次相同
B.与文件的结构相同
C.与文件类型相同
D.与文件大小相同
4.在java中下列关于自动类型转换说法正确的是( )。
A.基本数据类型和String相加结果一定是字符串型
B.char类型和int类型相加结果一定是字符
C.double类型可以自动转换为int
D.char + int + double +”” 结果一定是double;
5.下面的方法重载,正确的是( )。
A.int fun(int a, float b) { } float fun(int a, float b) { }
B.float fun(int a, float b) { } float fun(int x, float y) { }
C.float fun(float a) { } float fun(float a, float b) { }
D.float fun1(int a, float b) { } float fun2(int a, float b) { }
6.下面不是String类提供的合法方法( )。
A.、equals(String)
B.trim()
C.append() StringBuffer
D.indexOf()
7.下列输出结果是( )。 int a = 0 ; while ( a < 5 ) { switch(a){ case 0: case 3 : a = a + 2; case 1 : case 2 : a = a + 3; default : a = a + 5; } } System.out.print ( a ) ;
A.0
B.5
C.10
D.其他
8.下列说法正确的是( )。
A.JAVA程序的main方法必须写在类里面
B.JAVA程序中可以有多个main方法
C.JAVA程序中类名必须与文件名一样
D.JAVA程序的main方法中如果只有一条语句,可以不用{}(大括号)括起来
9.下面关于方法的说法,错误的是( )。
A.Java 中的方法参数传递时传值调用,而不是地址调用
B.方法体是对方法的实现,包括变量声明和 Java 的合法语句
C.如果程序定义了一个或多个构造方法,在创建对象时,也可以用系统自动生成空的构造方法
D.类的私有方法不能被其子类直接访问
10.可以通过“new J_Class()”生成类 J_Class 的实例对象的类定义是( )。
A.public class J_Class { public J_Class(void) { } }
B.public c lass J _Class { }
C.public class J_Class { public J_Class(String s) { } }
D.public class J_Class { public void J_Class() { } public J_Class(String s) { }
11.执行下面代码结果( )。 for(int i=0;;){ System.out.println(“这是 “+i); break; }
A.语法错误,缺少表达式2和表达式3
B.死循环
C.程序什么都不输出
D.输出:这是0
12.以下关于布局的说法,错误的是( )。
A.BorderLayout是边框布局,它是窗体的默认布局
B.null是空布局,它是面板的默认布局
C.FlowLayout是流布局,这种布局将其中的组件按照加入的先后顺序从左向右排列, 一行排满之后就转到下一行继续从左至右排列
D.GridLayout是网格布局,它以矩形网格形式对容器的组件进行布置。容器被分成大小相等的矩形,一个矩形中放置一个组件
13.在JAVA中ArrayList类实现了可变大小的数组,便于遍历元素和随机访问元素,已知获得了ArrayList类的对象bookTypeList,则下列语句中能够实现判断列表中是否存在字符串“小说”的是( )。
A.bookTypeList.add(“小说”);
B.bookTypeList.get(“小说”);
C.bookTypeList.contains(“小说”);
D.bookTypeList.remove(“小说”);
14.对象的特征在类中表示为变量,称为类的( )。
A.对象
B.属性
C.方法
D.数据类型
15.在JAVA中,LinkedList类和ArrayList类同属于集合框架类,下列选项中的方法是LinkedList类有而ArrayList类没有的是( )。
A.add(Object o)
B.add(int index,Object o)
C.remove(Object o)
D.removeLast()
16.将类的成员的访问权限设置为默认的,则该成员能被( )。
A.同一包中的类访问
B.其他包中的类访问
C.所有的类访问
D.所有的类的子类访问
17.在Java语言中,下列关于类的继承的描述,正确的是( )。
A.一个类可以继承多个父类
B.一个类可以具有多个子类
C.子类可以使用父类的所有方法
D.子类一定比父类有更多的成员方法
18.假设下面的程序代码都放在 MyClass.java 文件中,程序代码能够编译通过的是( )。
A.import java.awt.*; package mypackage; class MyClass { }
B.package mypackage; import java.awt.*; public class myClass { }
C.int m; package mypackage; import java.awt.*; class MyClass { }
D./*This is a comment*/ package mypackage; import java.awt.*; public class MyClass { }
19.下列值不为true的表达式有( )。
A.”john” = = “john”
B.”john”.equals(“john”)
C.”john” = “john”
D.”john”.equals(new String(“john”))
20.假设在 Java 源程序文件“MyClass.java”中只含有一个类,而且这个类必须能够被位于个庞大的软件系统中的所有 Java 类访问到,那么下面声明有可能符合要求的类声明是( )。
A.private class MyClass extends Object
B.public class myclass extends Object
C.public class MyClass
D.class MyClass extends Object
21.给定以下JAVA代码,这段代码编译运行后输出的结果是( )。 public class Test { public static int aMethod(int i) throws Exception { try{ return i/10; }catch(Exception ex){ throw new Exception (“exception in a aMothod”); }finally{ System.out.print(“finally”); } } public static void main(String [] args) { try{ aMethod(0); }catch(Exception ex){ System.out.print(“exception in main”); } System.out.print(“finished”); } }
A.finallyexception in mainfinished
B.exception in mainfinally
C.finallyfinished
D.finallyexception in mainfinished
22.Java中,如果类C是类B的子类,类B是类A的子类,那么下面描述正确的是( )。
A.C不仅继承了B中的成员,同样也继承了A中的成员
B.C只继承了B中的成员
C.C只继承了A中的成员
D.C不能继承A或B中的成员
23.下面不会出现编译警告或错误的语句是( )。
A.float f = 1.3;
B.char c = “a”;
C.byte b = 25;
D.boolean d = null;
24.以下不是合法标识符的是( )。
A.STRING
B.x3x;
C.void
D.de$f
25.执行完下面程序片段后,的结论正确的是( )。 int a, b, c; a = 1; b = 2; c = (a + b > 3 ? a++ : b++);
A.a 的值是 2,b 的值是 3
B.a 的值是 1,b 的值是 3
C.a 的值是 1,b 的值是 2
D.c 的值是 false
26.给定如下所示的JAVA代码,则运行时,会产生异常的类型为( )。 String s = null; s.concat(“abc”);
A.ArithmeticException
B.NullPointerException
C.IOException
D.ClassNotFoundException
27.下列选项中关于Java中封装的说法错误的是( )。
A.封装就是将属性私有化,提供共有的方法访问私有属性
B.属性的访问方法包括setter方法和getter方法
C.setter方法用于赋值,getter方法用于取值
D.包含属性的类都必须封装属性,否则无法通过编译
28.下面代码输出结果是( )。 int i=0,s=0; do{ if (i%2 = = 0 ){ i++; continue; } i++; s = s + i; } while (i<7); System.out.println(s);
A.16
B.12
C.28
D.21
29.关于下面程序,结论正确的是( )。 public class J_Test { public static void main(String[] args) { int[] a = new int[5]; boolean[] b = new boolean[5]; System.out.println(a[4]); System.out.println(b[5]); } }
A.程序可以通过编译并正常运行,结果输出“0false”
B.程序可以通过编译并正常运行,结果输出“1true”
C.程序无法通过编译
D.程序可以通过编译,但无法正常运行
30.分析选项中关于Java中this关键字的说法正确的是( )。
A.this关键字是在对象内部指代自身的引用
B.this关键字可以在类中的任何位置使用
C.this关键字和类关联,而不是和特定的对象关联
D.同一个类的不同对象共用一个this
二、判断题 (共 10 道试题,共 25 分)
31.在接口中定义的方法都只能是没有方法体的抽象方法。( )
32.如果类的访问控制符是 public,则类中成员的访问控制属性也必须是 public。( )
33.Java 程序一般应当含有 main 方法,因为它是所有 Java 程序执行的入口。( )
34.如果在定义一个类的时候没有用到关键字 extends,则这个类没有直接父类。( )
35.Java 语言规定,任何一个子类的构造方法都必须调用其父类的构造方法(包括隐式调用) ,并且调用父类构造方法的语句必须是子类构造方法的第一条语句。( )
36.switch 语句中可以没有 default 子句。( )
37.采用事件适配器比采用事件监听器的执行效率要高,因为采用事件适配器可以只处理所需处理的事件。( )
38.对于数组 int[][] t = {{1,2,3},{4,5,6}}来说, t.length 等于 3, t[0].length 等于 2。( )
39.每个 java.sql.Statement 实例对象只能对应一个 java.sql.ResultSet 实例对象,所以如果执行 SQL 语句返回多个结果,一般需要分多次取得返回结果。( )
40.构造方法一般不允许有任何返回值,因此需要在构造方法返回类型处标注为 void。( )