1、上JAVA试题A答案20082009学年第 1 学期 考试方式: 开卷 闭卷 课程名称: Java语言程序设计 使用班级: 计算机科学与技术(医学智能信息处理方向)06 班级: 学号: 姓名: 一 单项选择题(本题总分40分,每小题2分) 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A. java B. .class C. .html D. .exe、下列哪个类声明是正确的?( D ) A、abstract final class HI B、abstract private move() C、protected privat
2、e number; D、public abstract class Car 3、为了防止在你的程序中出现运行时的错误,你可以采取下面哪些措施?( C )A.在finally块中写可执行代码。B.在catch块中写代码,并在同一块中捕获例外。C.在try块中写可执行语句,并在catch块中捕获例外。D.在try块外写可执行语句,将例外抛到try块内,并在catch块内捕获例外。4、 Java application中的主类需包含main方法,main方法的返回类型是什么?( D )A、int B、float C、double D、void5、下列关于Java对import语句规定的叙述中,错误的
3、是( C ). A 在Java程序中import语句可以有多个B在Java程序中import语句可以没有C在Java程序中import语句必须有一个D在Java程序中import语句必须引入在所有类定义之前6、 以下关于构造函数的描述错误的是( A )。A、构造函数的返回类型只能是void型。B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。C、构造函数的主要作用是完成对类的对象的初始化工作。D、一般在创建新对象时,系统会自动调用构造函数。7、下列的哪个赋值语句是正确的?(D) A)char a=12L; B)int a=12.0; C)int a=12.0f; D)int a=(in
4、t)12.0; 8、下列关于继承的哪项叙述是正确的?D A)在java中允许多重继承 B)在java中一个类只能实现一个接口 C)在java中一个类不能同时继承一个类和实现一个接口 D)java的单一继承使代码更可靠 9、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序 各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( C )A、隐藏 B、覆盖 C、重载 D、Java不支持此特性10 、以下自定义标识符中哪项是不合法的( A )A、const B、$double C、hello D、BigMeaninglessName11、类Test1、Test2定
5、义如下:1 public class Test12 public float aMethod(float a,float b) throws3 IOException 4 5 public class Test2 extends Test16 7 将以下哪种方法插入行4是不合法的。( A )A、 float aMethod(float a,float b) B、 public int aMethod(int a,int b)throws Exception C、 public float aMethod(float p,float q) D、 public int aMethod(int a,
6、int b)throws IOException 12 、以下哪个接口的定义是正确的?( D )A、 interface B void print() ;B、 abstract interface B void print() ;C、 abstract interface B extends A1,A2 /A1、A2为已定义的接口 abstract void print() ;D、 interface B void print();13、以下关于继承的叙述正确的是( A )。A、在Java中类只允许单一继承B、在Java中一个类只能实现一个接口C、在Java中一个类不能同时继承一个类和实现一个
7、接口D、在Java中接口只允许单一继承14、给出下列代码,如何使成员变量m 被方法fun()直接访问?(C ) class Test private int m; public static void fun() . A)将private int m 改为protected int m B)将private int m 改为 public int m C)将private int m 改为 static int m D)将private int m 改为 int m15、已知有下列类的说明,则下列哪个语句是正确的?(A) public class Test private float f =
8、1.0f; int m = 12; static int n=1; public static void main(String arg) Test t = new Test(); A)t.f; B)this.n; C)Test.m; D)Test.f;16、 给出下面代码,关于该程序以下哪个说法是正确的?( C )public class Person static int arr = new int5; public static void main(String a) System.out.println(arr0); A、编译时将产生错误 B、编译时正确,运行时出错C、输出零 D、输出
9、空 17、下列代码的执行结果是(A) public class Test public int aMethod() static int i=0; i+; System.out.println(i); public static void main(String args) Test test = new Test(); test.aMethod(); A)编译错误 B)0 C)1 D)运行成功,但不输出18、设有下面两个赋值语句:( D ) a = Integer.parseInt(“12”); b = Integer.valueOf(“12”).intValue(); 下述说法正确的 是(
10、 )。 A、a是整数类型变量,b是整数类对象。B、a是整数类对象,是整数类型变量。 C、a和b都是整数类对象并且值相等。 D、a和b都是整数类型变量并且值相等。 19、 public class Test static boolean foo(char c) System.out.print(c); return true; public static void main( String argv ) int i =0; for ( foo(A); foo(B)&(i2); foo(C) i+ ; foo(D); What is the result? ( A ) A. ABDCBDCB B.
11、 ABCDABCD C. Compilation fails. D. An exception is thrown at runtime.20 、public class test private static int j = 0; private static boolean methodB(int k) j += k; return true; public static void methodA(int i) boolean b; b = i 10 | methodB (4); b = i y) return x; else return y; 3 写出程序运行结果_5.0 _ Caug
12、ht negative_class MyException extends Exception public String toString( ) return negative; public class ExceptionDemo public 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(25 ); mySqrt(
13、-5 ); catch( MyException e ) System.out.println(Caught +e); 4 阅读以下程序,写出输出结果_ in Second class _。 class First public First() aMethod(); public void aMethod() System.out.println(“in First class”);public class Second extends First public Second() aMethod(); public void aMethod() System.out.println(“in S
14、econd class”);public static void main(String args) new Second( ); 三 程序填空题(本题总分10分,每小题5分)1 . 下面程序对数组中每个元素赋值,然后按逆序输出.请在横线处填入适当内容,使程序能正常运行. I mport java.io.*;public class test public static void main(String args) int i; int a=new int5; for(i=0;i=0;i-) System.out.println(a+i+=+ai); 2 . 下面是一个Applet程序,其功能
15、是接收用户输入的两个整数,比较它们的大小,并在用户按下“比较”按钮后,将Applet中显示的“请先输入两个待比较的整数”,改为“两个整数中最大值是: x”, x是两个数中的最大值. public class FindMax extends Applet implements ActionListener Label result; TextField in1,in2; Button btn; double a=0,b=0,max;public void init() result = new Label(请先输入两个待比较的整数); in1=new TextField(5); in2=new
16、TextField(5); btn=new Button(比较); add(in1); add(in2); add(btn); add(result); btn.addActionListener(this);public void actionPerformed (ActionEvent e) a= _ b=_ if(ab) max=a; else max=b; result.setText(两个数中最大值是:+max); 四 编程题(本题总分30分)1、(10分)编写一个字符界面的Java Application 程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。impo
17、rt java.util.Scanner;public class MyClass public static void main(String args) Scanner scn = new Scanner(System.in); int num = new int10; System.out.println(输入 + num.length + 个整数:); for (int i = 0; i num.length; i+) try System.out.print(第 + (i + 1) + 个整数:); numi = Integer.parseInt(scn.nextLine(); ca
18、tch (Exception e) System.out.print(输入不正确,请重新输入); i-; int max = 0, min = 0; for (int i = 0; i nummax) max = i; if (numi nummin) min = i; System.out.println(最大值为第 + (max + 1) + 个整数 + nummax); System.out.println(最小值为第 + (min + 1) + 个整数 + nummin); 2、(20分)现在有一接口Shape,其定义如下:Public interface Shape() Public
19、 abstract double Area() throws ShapeException; Public double Circum();异常类定义:public class ShapeException extends Exception private static final long serialVersionUID=1L; public void printStackTrace() System.out.println(ShapeException); Area()用来求面积,可能会抛出异常,Circum()用来求周长,请定义两个类Circle和Triangle,代表圆和三角形,分别实现该接口,在类中具体实现接口中的抽象方法。再定义一个应用程序类(主类)Main_Class,在该类中创建Circle和Triangle的实例,要求用Shape的变量S1来先后引用这两个实例,并调用其中的两个方法,并输出方法的执行结果,在调用方法过程中,要求对可能抛出异常的方法进行异常处理,处理的措施是调用printStackTrace()方法。