1、共 6 页,第 页 1 科目序号 :6002 A 卷 Java语言程序设计期末试卷 (试卷总分: 100 分,考试时间: 120 分钟,答案写在答卷纸上) 一判断题(每题 1 分,共 10 分) 1 无论 Java 源程序包含几个类的定义,若该源程序文件以 A.java 命名,编译后生成的都只有一个名为 A 的字节码文件。 ( X ) 2 Java 的各种数据类型 所 占用的内存长度与具体软硬件环境 有 关。 ( X ) 3 静态初始化器是在其所属的类加载内存时由系统自动调用执 行的方法。 ( O ) 4 与 C 语言不同的是, Java 语言中的数组元素下标总是从 1 开始 。 ( X )
2、5 在 Java的方法中定义一个常量要用 const关键字。 ( X ) 6 Java 有两类程序: Java Application 和 Java Applet,其中 Java Applet 程序只能在图形界面中工作,而 Java Application 程序只能在字符界面中工作 。 ( X) 7 在异常处理中总是 将可能产生异常的语句放在 try 块中,用 catch 子句去处理异常,而且一个 try 块之后只能对应一个 catch 语句。 ( X ) 8 程序员可以不必释放已创建的对象,因为 Java 有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。 ( X ) 9 Java 系
3、统的标准输入对象是 System.in,标准输出对象有两个,分别是标准输出 System.out和标 准错误输出 System.err。 ( O ) 10 即使 一个类中未显式定义构造函数 ,也会有一个 缺省的构造函数 ,缺省的构造函数是无参 的 ,函数体为空。 ( O ) 二单项选择题(每题 2 分,共 40 分) 1 编译 Java Applet 源程序文件产生的字节码文件的扩展名为 ( B )。 A、 java B、 class C、 html D、 exe 2 Java application 中的主类需包含 main 方法, main 方法的返回类型是什么?( D ) A、 int
4、B、 float C、 double D、 void 3 以下哪个方法用于定义线程的执行体? ( C ) A、 start() B、 init() C、 run() D、 synchronized() 4当浏览器暂时离开含 applet 程序的页面时,以下选项中的哪个方法将被执行?( D ) A、 init() B、 start() C、 destroy() D、 stop() 5下面哪个不是 Java 中的容器 ? ( A ) A、 Canvas B、 ScrollPane C、 Applet D、 Dialog 6以下标识符中哪项是不合法的 ( A ) A、 const B、 $doubl
5、e C、 hello D、 BigMeaninglessName 7以下 哪个关键字可以 用来 为 对象加互斥锁? ( D ) 共 6 页,第 页 2 A、 transient B、 static C、 serialize D、 synchronized 8以下哪项可能包含菜 单条( B ) A、 Panel B、 Frame C、 Applet D、 Dialog 9 在 Java 中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( C )。 A、隐藏 B、覆盖 C、重载 D、 Java 不支持此特性 10以下
6、关于构造函数的描述错误的是( A )。 A、构造函数的返回类型只能是 void 型。 B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。 C、构造 函数的主要作用是完成对类的对象的初始化工作。 D、一般在创建新对象时,系统会自动调用构造函数。 11在编写 Java Applet 程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上 ( D )语句。 A、 import java.awt.* ; B、 import java.applet.* ; C、 import java.io.* ; D、 import java.awt.event.* ; 12 下列哪些语句关于 J
7、ava 内存回收的说明是正 确的 ? ( B ) A、 程序员必须创建一个线程来释放内 存 B、 内存回收程序负责释放无用内存 C、 内存回收程序允许程序员直接释放内存 D、 内存回收程序可以在指定的时间释放内存对象 13若需要定义一个类域或类方法,应使用哪种修饰符?( A ) A、 static B、 package C、 private D、 public 14有以下方法的定义,请选择该方法的返回类型( D )。 ReturnType method(byte x, double y) return (short)x/y*2; A、 byte B、 short C、 int D、 doubl
8、e 15有以下程序片段,下列哪个选项不能插入到行 1。( D ) 1. 2.public class Interesting 3./do sth 4. A、 import java.awt.*; B、 package mypackage; C、 class OtherClass D、 public class MyClass 16以下哪 项是 接口的 正确 定义?( D ) A、 interface B void print() ; B、 abstract interface B void print() ; C、 abstract interface B extends A1,A2 /A1、
9、 A2 为已定义的接口 abstract void print() ; 共 6 页,第 页 3 D、 interface B void print(); 17 下面哪个函数是 public void aMethod().的重载函数? ( D ) A、 void aMethod( ). B、 public int aMethod(). C、 public void aMethod ( ). D、 public int aMethod ( int m). 18 A 派生出子类 B , B 派生出子类 C,并且在 Java 源代码中有如下声明: 1. A a0=new A(); 2. A a1 =n
10、ew B(); 3. A a2=new C(); 问以下哪个说法是正确的? ( D ) A、只有第 1 行能通过编译 B、第 1、 2 行能通过编译,但第 3 行编译出错 C、第 1、 2、 3 行能通过编译,但第 2、 3 行运行时出错 D、第 1 行、第 2 行和第 3 行的声明都是正确的 19假设 A 类有如下定义,设 a 是 A 类的一个实例,下列语句调用哪个是错误的?( C ) class A int i; static String s; void method1() static void method2() A、 System.out.println(a.i); B、 a.me
11、thod1(); C、 A.method1(); D、 A.method2() 20有如下代码段 : 1) 2) if(unsafe()/do something 3) else if(safe()/do the other 4) 其中,方法 unsafe() 将抛出 IOException, 请问可将以下哪项填入第 1 行?( D ) A、 public IOException methodName() B、 public void methodName() C、 public void methodName() throw IOException D、 public void method
12、Name() throws IOException 三程序阅读题(每题 4 分,共 40 分) 1写出以下程序的运行结果。 class TwoObjects public static void main(String args) B b1=new B(); B b2=new B(); System.out.println(b1=b2); System.out.println(b1!=b2); 共 6 页,第 页 4 System.out.println(b1.equals(b2); class B int x; B( ) x=1; 2 写出 以下程序 的功能。 import java.io.
13、*; public class ReadString public static void main(String args) BufferedReader br=new BufferedReader (new InputStreamReader(System.in); try System.out.println( br.readLine(); catch(IOException e) 3写出以下程序的运行结果。 import java.io.*; public class UseLabel public static void main(String args) Loop: for(int
14、 i=2; iy)?x:y); 7 写出以下程序的功能。 public class ABC public static void main(String args ) int i , j ; int a = 9,7,5,1,3; for ( i = 0 ; i ak ) k = j; int temp =ai; ai = ak; ak = temp; for ( i =0 ; ia.length; i+ ) System.out.print(ai+“ “); System.out.println( ); 8 写出以下程序的功能。 import java.io.*; class FileIODe
15、mo public static void main(String args) throws IOException int b; FileInputStream fileIn=new FileInputStream(“a.java”); while(b=fileIn.read()!=-1) System.out.print(char)b); 9写出以下程序的运行结果。 class MyException extends Exception public String toString( ) return “negative“; public class ExceptionDemo publi
16、c static void mySqrt(int a) throws MyException if( a0 ) throw new MyException(); System.out.println(Math.sqrt(a); public static void main( String args ) try mySqrt(9 ); mySqrt(-9 ); catch( MyException e ) System.out.println(“Caught “+e); 10 写出以下程序的运行结果。 import java.util.*; public class VecApp public
17、 static void main(String args) Vector v = new Vector(); for(int i = 0; i 2; i+) v.addElement(“v“+i); v.insertElementAt(new Integer(1),2); Enumeration e = v.elements(); 共 6 页,第 页 6 while(e.hasMoreElements() System.out.print(e.nextElement()+“ “); System.out.println(); v.removeElement(“v0“ ); for(int i
18、 = 0; i v.size() ; i+) System.out.print(v.elementAt(i) +“ “); System.out.println(); 四编程题(共 10 分) 编写一个完整的 Java Application 程序。包含接口 ShapeArea, MyRectangle 类及 Test类 ,具体要求如下: 接口 ShapeArea: double getArea(): 求 一个形状的面积 double getPerimeter (): 求一个形状的周长 类 MyRectangle: 实现 ShapeArea 接口 , 另 有 以下属性和方法: 属性 width: double 类型,表示 矩形 的 长 height: double 类型,表示矩形的高 方法 MyRectangle(double w, double h): 构造函数 toString()方法 :输出矩形 的描述信息,如“ width=1.0,height=2.0, perimeter=6.0, area=2.0” Test 类作为主类要完成测试功能 生成 MyRectangle 对象 调用对象的 toString 方法,输出对象的描述信息 答案截图 共 6 页,第 页 7 共 6 页,第 页 8