JAVA期末试题及答案

 ?《Java 程序设计》课程试卷 ?1.使用 Java 语言编写的源程序保存时的文件扩展名是(

  )。

 ?(A).class

 (B).java

 (C).cpp

 (D).txt ?2.设 int a=-2,则表达式 a>>>3 的值为(

  )。

 ?(A)0

  (B)3

 (C)8

 (D)-1 ?3.设有数组的定义 int[] a = new int[3],则下面对数组元素的引用错误的是(

  )。

 ?(A)a[0];

  (B)a[a.length-1]; ?(C)a[3];

  (D)int i=1; a[i]; ?4.在类的定义中可以有两个同名函数,这种现象称为函数(

  )。

 ?(A)封装

 (B)继承 ?(C)覆盖

 (D)重载 ?5.在类的定义中构造函数的作用是(

  )。

 ?(A)保护成员变量

 (B)读取类的成员变量 ?(C)描述类的特征

 (D)初始化成员变量 ?6.下面关键字中,哪一个不是用于异常处理语句(

  )。

 ?(A)try

  (B)break ?(C)catch

  (D)finally ?7.类与对象的关系是(

  )。

 ?(A)类是对象的抽象

 (B)对象是类的抽象 ?(C)对象是类的子类

  (D)类是对象的具体实例 ?8.下面哪一个是 Java 中不合法的标识符(

  )。

 ?(A)$persons

 (B)twoNum ?(C)_myVar

  (D)*point ?9.为 AB 类的一个无形式参数无返回值的方法 method 书写方法头,使得使用类名 AB 作为前缀就可以调用它,该方法头的形式为(

 )。

 ?(A)static

 void

 method( ) ?(B)public

 void

 method( ) ?(C)final

 void

 method( ) ?(D)abstract

 void

 method( ) ?10.欲构造 ArrayList 类的一个实例,此类继承了 List 接口,下列哪个方法是正确的(

  )。

 ?(A)ArrayList myList=new Object( ) ?(B)List myList=new ArrayList( ) ?(C)ArrayList myList=new List( ) ?(D)List myList=new List( ) ?11.Java 源文件和编译后的文件扩展名分别为(

 )

 ?(A) .class 和

 .java

 (B).java 和 .class ?(C).class 和

 .class

  (D) .java 和

 .java ?12.在 Java

 Applet 程序用户自定义的 Applet 子类中,一般需要重载父类的 ?(

 )方法来完成一些画图操作。

 ?(A) start( )

  (B) stop( ) ?(C) init( )

 (D) paint( )

 ? ?13.对于一个 Java 源文件,import, class 定义以及 package 正确的顺序是:

 ?(A) package,import,class

  (B) class,import,package ?(C) import,package,class

 (D) package,class,import ?14.下面哪个是非法的:

 ?(A) int I = 32;

 (B) float f = 45.0; ?(C) double d = 45.0;

  (D) char c = ‘u’; ?15.Java 语言使用的字符码集是 ?(A) ASCII

  (B) BCD ?(C) DCB

  (D) Unicode ?16. 如果一个类的成员变量只能在所在类中使用,则该成员变量必须使用的修饰是 ?(A) public

  (B) protected ?(C) private

 (D) static ?17.下面关于 main 方法说明正确的是 ?(A) public main(String args[ ]) ?(B) public static void main(String args[ ]) ?(C) private static void main(String args[ ]) ?(D) void main() ?18.哪个关键字可以对对象加互斥锁?(

 ) ?(A) transient

 (B) synchronized ?(C) serialize

 (D) static ?19.关于抽象方法的说法正确的是(

 ) ?(A)可以有方法体

 (B) 可以出现在非抽象类中 ?(C) 是没有方法体的方法

  (D) 抽象类中的方法都是抽象方法 ?20.java.io 包的 File 类是 ?(A)字符流类

 (B) 字节流类 ?(C) 对象流类

  (D) 非流类 ?21.Java application 中的主类需包含 main 方法,以下哪项是 main 方法的正确形参?(

 )

 ?A、 String

 args B、String

 args[] C、Char

 arg

 D、StringBuffer args[] ?22.以下代码段执行后的输出结果为(

  )

 ?int

 x=-3; int

 y=-10; ?System.out.println(y%x); ?A、 -1 B、2 C、1

 D、3 ?23.以下关于继承的叙述正确的是(

 )。

 ?A、在 Java 中类只允许单一继承 ?B、在 Java 中一个类只能实现一个接口 ?C、在 Java 中一个类不能同时继承一个类和实现一个接口 ?D、在 Java 中接口只允许单一继承 ?24. 若有定义:byte[] x={11,22,33,-66}; ?其中 0≤k≤3,则对 x 数组元素错误的引用是(

 )

 ?A)x[5-3] ?B)x[k]

 ? ?C)x[k+5] ?D)x[0] ?25.paint()方法使用哪种类型的参数? (

 )

 ?A、Graphics

 B、Graphics2D

 C、String

 D、Color ?26.以下哪个不是 Java 的原始数据类型(

 )

 ?A、int B、Boolean C、float D、char ?27.在 Java 中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为(

 )

 ?A)

 隐藏 ?B)

 重写 ?C)

 重载 ?D)

 Java 不支持此特性 ?28. 以下有关构造方法的说法,正确的是:(

  )

 ?A. 一个类的构造方法可以有多个 ?B. 构造方法在类定义时被调用 ?C. 构造方法只能由对象中的其它方法调用。

 ?D. 构造方法可以和类同名,也可以和类名不同 ?29.在浏览器中执行 applet 程序,以下选项中的哪个方法将被最先执行(

  )。

 ?A、init() B、start()

 C、destroy()

 D、stop() ?30.给出下面代码,关于该程序以下哪个说法是正确的?(

  )

 ?public class Person{ ?static int arr[] = new int[5]; ?public static void main(String a[]) ?{ ?System.out.println(arr[0]); } ?} ?A、编译时将产生错误

 B、编译时正确,运行时将产生错误 ?C、输出零

 D、输出空 ?31、有以下方法的定义,请选择该方法的返回类型(

 )。

 ?ReturnType

 method(byte x, double y) ?{ ?return

 (short)x/y*2; ?} ?A、byte B、short C、int D、double ?32.下列类定义中哪些是合法的抽象类的定义?(

  )

 ?A、abstract Animal{abstract void growl();} ?B、class abstract Animal{abstract void growl();} ?C、abstract class Animal{abstract void growl();} ?D、abstract class Animal{abstrac t void growl(){System.out.println(“growl”);};} ?

 ?33.有以下程序片段,下列哪个选项不能插入到行 1。(

 )

 ? ?1. ?2.public

 class

 Interesting{ ?3.//do sth ?4. } ?A、import java.awt.*;

 B、package mypackage; ?C、class OtherClass{

  } D、public class MyClass{ } ?34. 设有下面两个赋值语句:

 ?a = Integer.parseInt(“12”); ?b = Integer.valueOf(“12”).intValue(); ?下述说法正确的是(

  )。

 ?A、a 是整数类型变量,b 是整数类对象。B、a 是整数类对象,b 是整数类型变量。

 ?C、a 和 b 都是整数类对象并且值相等。

 D、a 和 b 都是整数类型变量并且值相等。

 ?35.在编写 Java

 Applet 程序时,需在程序的开头写上(

 )语句。

 ?A、import

 java.awt.* ;

 B、import

 java.applet.Applet ; ?C、import

 java.io.* ;

 D、import

 java.awt.Graphics ; ?36.下列哪一项不属于 Swing 的顶层容器?(

  )

 ?A)JApplet

 B)JTree

 C)JDialog

 D)JFrame ?37. 为了使包 ch4 在当前程序中可见,可以使用的语句是(

 )。

 ?A)import ch4.*;

 B)package ch4.*; ?C)ch4 import;

 D)ch4 package; ?38. 请问所有的异常类皆继承哪一个类?(

 )。

 ?A)java.io.Exception

  B)java.lang.Throwable ?C)java.lang.Exception

  D)java.lang.Error ?39.进行 Java 基本的 GUI 设计需要用到的包是(

  )。

 ?A)java.io

  B)java.sql

 C)java.awt

  D)java.rmi ?40. 当点击鼠标或者拖动鼠标时,触发的事件是下列的哪一个?(

 )

 ?A)KeyEvent

 B)ActionEvent

  C)ItemEvent

  D)MouseEvent ?填空题:

 ?1.数组 x 定义:String x[ ][ ]=new int[3][2];

 x[0 ][0 ]=”abc”, x[0 ][1]=”12345”; ?则 x.length 的值为____________,x[0][1].length( ) 的值为____________。

 ?2、Java 语言的变量由变量名、________、变量属性、_________组成。

 ?3、当程序中需要抛出异常时,应该使用_______子句,当需要在方法中声明可能抛出的异常类型,应该使用_______子句。

 ?4、java.applet 包中的________类定义了 Applet 与其运行环境之间的一个标准接口。

 ?5、Java 语言中提供的 GUI 功能主要由 java.awt 包和________包中的类和接口实现。

 ?6、Java 源程序文件和字节码文件的扩展名分别为__________和__________。

 ?7、Java 语言的类型检查机制要求对于没有返回值的方法,在其前面必须加____________进行说明。

 ?8、类是 Java 语言的一种_______数据类型。

 ?9、在 Java 语言中,所有的对象均通过___________运算符分配内存,并对内存进行自动管理。

 ? ?10、每个 Java Application 程序可以包括许多方法,但是必须有且只能有一个______方法,统一格式为__________,它是程序执行的入口。

 ?11、若要在程序中定义一个公用的 int 型的类成员变量 MAX_LENGTH,且该变量 ?的值保持常数值 1000,则定义该变量的语句是_____________________。

 ?12、子类必须通过_______关键字调用父类有参数的构造函数。

 ?13、在 Java 语言中,所有的类都是类__________的子类。

 ?14、在 Java 程序中,通过类的定义只能实现单重继承,但通过____________ 的 ?定义可以实现多重继承关系。

 ?15、如果在 Java 程序中,需要使用 java.util 包中的所有类,则应该在程序开 ?始处加上语句___________。

 ?16、下列程序的运行结果是_________________ ?public class ex2 { ?public static void main(String[] args) ?{ ?for(int cnt=0;cnt<10;cnt++) ?{ ?if(cnt==5) ?break; ?System.out.print(cnt); ?}}} ?17、下列程序的运行结果是_________________ ?import

 java.io.*; ?public

  class

 ATest{ ?public

 static

 void

 main(String args[]) ?{ ?SubClass

 sb = new

 SubClass( ); ?System.out.println(sb.fun( )); ?}} ?class

 SuperClass{ ?int

 a =24 , b =5 ; ?} ?class

 SubClass

 extends

 SuperClass{ ?int

 fun( ) {

 return

  a%b;

 }

 } ?18、 分析下列程序,填上空白处的语句 ?class point

  //定义坐标类 ?{

  int x,y; ?test(int a,int b) ?{x=a;y=b;} ?} ?class rec___________//定义长方形类

 ?{ ?int length,width; ?rec(int a1,int b1,int l,int w) ?{super(a1,b1); ? ?length=l;width=w; ?}} ?class test ?{public static void main(String args[]) ?{ ?_____________________ ?//定义名为 r1 的对象同时初始化坐标为 0,0,长度为 10,宽度为 20

  r1.print(); ?}} ?19、Java 源文件中最多只能有_____________________个公共类,其它类的个数不限。

 ?20、在 Java 中所有实现的多维数组,实际上是由一维数组构成的_____________________。

 ?21、设 x =15 ,则表达式 ( x + + )/4 的值是_____________________。

 ?22、_____________________方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。

 ?23 、 _____________________ 方 法 用 于 定 义 线 程 的 执 行 体 . _____________________方法用于启动线程. ?24、String str1=”abc”; ?String str2=new String(“abc”); ?System.out.println(str1==str2) ;

  则 程 序 运 行 后 输 出 结 果 为 :_____________________ ?25、Java 语言中,有一个类是所有类或接口的父类,这个类的名称是 _____________________。

 ?26、当启动 Applet 程序时,首先调用的方法是_____________________。

 ?27、Java 语言是一种完全的_____________________程序设计语言。

 ?28. 如果一个 Java

 Applet 源程序文件只定义有一个类,该类的类名为MyApplet,则类 MyApplet 必须是_____________________类的子类并且存储该源程序文件的文件名为

  。

 ?29. 设 int x = 2 ,则表达式 (x++)/3 的值是_____________________。

 ?30. Java 提供的访问权限修饰符有 4 个,即:public、________、protected 和友元。

 ?31. Java 中 有 两 种 常 用 的 字 符 串 类 , 一 个 是 String , 另 一 个 是_____________________。

 ?32. Java 实 现 多 线 程 的 方 法 有 两 种 , 一 种 方 法 是 通 过 创 建_____________________类的子类实现多线程,另一种方法是定义一个实现 _____________________接口的类。

 ?33. Java 不 支 持 多 继 承 。

 但 它 允 许 一 个 类 同 时 实 现 多 个_____________________,这就相当于部分实现了多继承。

 ?34. Java 源文件中,_____________________语句位于 package 语句之后、类定

 义之前。

 ?35. _____________________类是 OutputStream 类的子类,用来处理以文件作为数据输出的数据流。

 ?三、编程题:

 ? ?1.编写一个输出"Hello

 World!"的程序,用两种方式实现(Application、Applet)。

 2.编写一个 Java Application,接收从键盘输入的 10个整数,并输出其中的最大、最小以及平均值。要求:将计算功能定义在一个类中,由主类接收输入,再用数组的方式传递给实现计算的类的方法,再输出结果。

 3.编写一个程序,使用复数类 Complex 验证两个复数 1+2i 和 3+4i 相加产生一个新的复数 4+6i 。

 复数类 Complex 必须满足如下要求:

 (1) 复数类 Complex 的属性有:

 RealPart :

  int 型,代表复数的实数部分 ImaginPart : int 型,代表复数的虚数部分 (2) 复数类 Complex 的方法有:

 Complex( ): 构造函数,将复数的实部和虚部都置 0 Complex( int r , int i ): 构造函数,形参 r 为实部的初值,i 为虚部的初值。

 Complex complexAdd(Complex a): 将当前复数对象与形参复数对象相加,所得的结果仍是一个复数值,返回给此方法的调用者。

 String ToString( ) : 把当前复数对象的实部、虚部组合成 a+bi 的字符串形式,其中 a 和 b 分别为实部和虚部的数据。

 4.求 10 个数中的最大值并输出。

 5.建立一个学生类,其中成员变量为学号,姓名,及三门课成绩。另外建立一个包含主方法的类,定义 2 个学生类的对象,求出这 2 个学生三门课总分的最高分,并将最高分这个学生的信息输出。

 6.编写一个 Application,接受用户输入的帐号和密码,给三次输入机会.

 7.定义一个圆类 circle,它有一个变量 radius(半径)、若干个构造函数和一个求圆的面积的方法。在主类 test 的 main()方法中随机生成一个 100 以10.请编写一个 Applet,其中包含两个标签(一个用于给出提示信息,另一个用来输出结果)和一个文本框。要求从文本框中获取用户给出的一个整数,并将该数的绝对值在标签上输出。

 ?11.编写一个 Application,利用数组求出”HELLO”,”JAVA””PROGRAM”三个字符串的平均长度。

 ? ?12.SQL Server 中有一个名为 friends 的表,如下图,利用 JDBC 编程实现显示表中记录信息。

 ?一:

 ?1、 application 程序 ?public class a ?{ ?public static void main(String args[]) ?{ ?System.out.println("Hello World!"); ?} ?} ?2、applet 程序 ?public class b extends java.applet.Applet ?{

 ?public paint(java.awt.Graphics g) ?{ ?g.outstring("Hello World!",10,10); ?} ?} ?二:

 ?public class Complex{ ?private float shibu; ?private float xubu; ?Complex() ?{ ?this(0,0); ?} ?Complex(float shibu,float xubu){ ?this.shibu=shibu; ?this.xubu=xubu; ?} ?

 ?public void Add(Complex p) ?{ ?Complex result=new Complex(); ?result.shibu=this.shibu+p.shibu; ?result.xubu=this.xubu+p.xubu; ?System.out.print(" 加 法 果为:"+result.shibu+"+"+result.xubu+"i"); } ?

 ?public static void main(String[] args) { ? ?Complex fushu1=new Complex(1,2); ?Complex fushu2=new Complex(3,4); ?fushu1.Add(fushu2); ?} ?} ?三:

 import java.lang.*; ?public class COMplex { ?int RealPart; ?int ImagePart; ?COMplex(){ ?RealPart=0; ?ImagePart=0; ?} ?COMplex(int real,int image){ ?RealPart=real; ?ImagePart=image;

 ?} ?COMplex complexAdd(COMplex a){ ?COMplex repart = new COMplex(); ?repart.RealPart=this.RealPart+a.RealPart;

  repart.ImagePart=this.ImagePart+a.ImagePart;

 return repart; ?

 ?} ?void ToString( ) { ? ?System.out.println(this.RealPart+"+"+this.ImagePart+"i");

  } ?public static void main(String args[]){ ?COMplex C1=new COMplex(2,3); ?COMplex C2=new COMplex(4,6); ?COMplex C3=new COMplex(); ?C1.complexAdd(C2).ToString(); ?C2.complexAdd(C3).ToString(); ?// C3.ToString(); ?} ?} ?

 ?四:

 ?import java.util.Scanner; ?

 ?public class Test { ?

 ?public static void main(String args[]){ ?

 ?int num[]=new int[10]; ?int max; ?Scanner scan=new Scanner(System.in); ?System.out.print("请输入 10 个数字:"); ?for(int i=0; i<10; i++){ ?num[i]=scan.nextInt(); ?} ?max=num[0]; ?for(int i=1; i<10; i++){ ?if(max<num[i]) max=num[i]; ?} ?System.out.println("最大值是"+max); ? ?} ?五:

 ?//学生类 ?public class Student{ ?private String stu_id; ?private String stu_name; ?private float math; ?private float chinese; ?private float computer; ?

 ?public void setStu_id(String stu_id){

  this.stu_id=stu_id; ?} ?public String getStu_id(){ ?return stu_id; ?} ?public void setStu_name(String stu_name){

  this.stu_name=stu_name; ?} ?public String getStu_name(){ ?return stu_name; ?} ?public void setMath(float math){

  this.math=math; ?} ?public float getMath(){ ?return math; ?} ?public void setChinese(float chinese){

  this.chinese=chinese; ?} ?public float getChinese(){ ?return chinese; ?} ?public void setComputer(float computer){

  this.computer=computer; ?} ?public float getComputer(){ ?return computer; ?} ?

 ?} ?

 ? ?

 ?//主方法的类 ?public class Start{ ?public static void main(String[] args){ ?Student stu1=new Student(); ?stu1.setStu_id("No1"); ?stu1.setStu_name("张三");

 ?stu1.setMath(89.5f); ?stu1.setChinese(70f); ?stu1.setComputer(98f); ?Student stu2=new Student(); ?stu2.setStu_id("No2"); ?stu2.setStu_name("李四"); ?stu2.setMath(79.5f); ?stu2.setChinese(90f); ?stu2.setComputer(68f); ?float stu1Sum = stu1.getMath()+stu1.getChinese()+stu1.getComputer();

  float stu2Sum = stu2.getMath()+stu2.getChinese()+stu2.getComputer();

  if(stu1Sum > stu2Sum){ ?System.out.println ("总分最高分为:"+stu1Sum); ?System.out.println ("学号:"+stu1.getStu_id()); ?System.out.println ("姓名:"+stu1.getStu_name()); ?System.out.println ("数学:"+stu1.getMath()); ?System.out.println ("语文:"+stu1.getChinese()); ?System.out.println ("计算机:"+stu1.getComputer()); ?}else if(stu1Sum < stu2Sum){ ?System.out.println ("总分最高分为:"+stu2Sum); ?System.out.println ("学号:"+stu2.getStu_id()); ?System.out.println ("姓名:"+stu2.getStu_name()); ?System.out.println ("数学:"+stu2.getMath()); ?System.out.println ("语文:"+stu2.getChinese()); ?System.out.println ("计算机:"+stu2.getComputer()); ?}else{ ?System.out.println ("总分一样高为:"+stu1Sum); ?System.out.println ("学号:"+stu1.getStu_id()); ?System.out.println ("姓名:"+stu1.getStu_name()); ?System.out.println ("数学:"+stu1.getMath()); ?System.out.println ("语文:"+stu1.getChinese()); ?System.out.println ("计算机:"+stu1.getComputer()); ?System.out.println ("学号:"+stu2.getStu_id()); ?System.out.println ("姓名:"+stu2.getStu_name()); ?System.out.println ("数学:"+stu2.getMath()); ?System.out.println ("语文:"+stu2.getChinese()); ?System.out.println ("计算机:"+stu2.getComputer()); ? ?} ?} ?} ?九:

 ?import java.util.Scanner; ?public class COMPare {

 ?public static void main(String args []){

 Scanner tr=new Scanner(System.in);

 int b=tr.nextInt(); ?int a=tr.nextInt(); ?if(a==b) ?System.out.println("相等"); ?else ?System.out.println("不相等"); ?} ?} ?十一: ?class Average { ?public static void main(String args[]) { ?String array[] = new String[3]; ?array[0] = "HELLO"; ?array[1] = "JAVA"; ?array[2] = "PROGRAM"; ?int total = array[0].length(); ?total += array[1].length(); ?total += array[2].length(); ?System.out.println("平均字符串长度为:

 " + total/3); } ?} ?

 ? ?

 ?