2024年1月21日发(作者:)

一、问答题(4小题,每题5分,共20分)

1、Java程序分为哪两类,它们各自的特点是什么?

2、请说出final、finally的区别。

3、请说出方法的重载和覆盖的区别。

4、请说出Collection、List、Set接口的各自特点以及相互关系,并列出List和Set接口各自

的常用实现类。

二、填空(10空,每空2分,共20分)

1、Java中的标识符可以由字母、数字、 【1】 以及 【2】 组合而成。

2、设 x = 2 ,则表达式 ( x - - )/3 的值是 【3】 。

3、Java可以通过 【4】 实现多重继承。

4、每个Applet程序必须有一个类是 【5】 类的子类。

5、设Student类有两个域变量,定义如下:

String name; int age;

请定义Student类的构造方法,来初始化两个域变量。 【6】

请写出语句定义一个姓名为susan,年龄为20的学生对象Std。 【7】

6、在包中与下列基本数据类型相对应的封装类: float:, double:

【8】 。

7、设有String str="12.34";double d;

请写出语句将str串转换成数值并赋给变量d。 【9】

8、若有Student类,请写出语句,定义一个元素个数为10的Student数组std。

【10】

三、阅读程序,回答下面的问题。(2小题,共18分)

1、读下列程序

package im_virtual;

import .*;

public class TestVirtual

{ public static void main(String args[])

{ Vector v=new Vector();

(new Mouse());

(new Gerbil());

(new Hamster());

for(Rodent r:v)

{ (); }

}

}

注:1、教师命题时题目之间不留空白; 2、考生不得在试题纸上答题,教师只批阅答题册正面部分,若考生须在试题图上作解答,请另附该试题图。3、请在试卷类型、考试方式后打勾注明。

(第1页)

abstract class Rodent

{ abstract void eat(); }

class Mouse extends Rodent

{

void eat() {n("this is Mouse");}

}

class Gerbil extends Rodent

{

void eat() {n("this is Gerbil");}

}

class Hamster extends Rodent

{

void eat() {n("this is Hamster");}

}

问题(1):分别指出上面的程序的公共类和主类。(2分)

问题(2):上面程序应该保存为什么名字的文件?(2分)

问题(3):请写出编译和运行这个文件的完整命令,注意给出环境变量的设置。(假设源文件

保存在d:java目录,JDK安装在c:j2sdk目录)(2分)

问题(4): 上述程序的执行结果是什么?(4分)

2、读下列程序,写出执行结果。

class TestException

{ public static void main(String[] args)

{ try{arraySize(); }

catch(IndexOutOfBoundsException e)

{ n("IndexOutOfBoundsException");}

catch(NegativeArraySizeException e)

{ n("NegativeArraySizeException");}

catch(Exception e)

{ n("Exception");}

finally

{ n("finally");}

n("out of try catch");

}

static void arraySize() throws NegativeArraySizeException

{

try{int a[]=new int[-3]; }

catch(NegativeArraySizeException e)

{ n("arraySize() throw NegativeArraySizeException");

注:1、教师命题时题目之间不留空白; 2、考生不得在试题纸上答题,教师只批阅答题册正面部分,若考生须在试题图上作解答,请另附该试题图。3、请在试卷类型、考试方式后打勾注明。

(第2页)

throw e;}

}

}

四、程序填空(6空,每空2分,共12分)

1、本程序的功能:从键盘输入一个字符串,并统计该字符串中字符'C'出现的概率。

【1】 ;

public class TjCharNum

{ public static void main(String args[])

{ BufferedReader br=new BufferedReader( 【2】 );

String s;

double d;

try{

s= 【3】 ;

d= 【4】 ;

n("ratio="+d);

}

catch(IOException e)

{ tackTrace();}

}

static double TjNUM(String s,char c)

{

double num=0;

for(int i=0;i<();i++)

{ if((i)= =c) 【5】 ;}

return ( 【6】 );

}

}

五、编程(2小题,共30分, 12+18)

1、编写程序实现功能:将从键盘输入的10字符串逐行写到文件中。(12分)

2、(1) 定义复数类Complex,其满足如下要求(18分):

 复数类Complex 的属性有:

RealPart : double型,代表复数的实数部分

ImaginPart : double型,代表复数的虚数部分

 复数类Complex 的方法有:

Complex( double rp , double ip ) : 构造函数,形参 rp 为实部的初值,ip为虚部的初值。

Complex complexAdd(Complex a) : 将当前复数对象与形参复数对象相加,所得的结果

仍是一个复数,并将结果返回给此方法的调用者。

Complex complexMinus(Complex a) : 将当前复数对象与形参复数对象相减,所得的结注:1、教师命题时题目之间不留空白; 2、考生不得在试题纸上答题,教师只批阅答题册正面部分,若考生须在试题图上作解答,请另附该试题图。3、请在试卷类型、考试方式后打勾注明。

(第3页)

果仍是一个复数,并将结果返回给此方法的调用者。

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

(2)定义一个运算符错误异常类OperatorIllegalException。

(3) 编写一个完整的Java Application程序,实现如下功能:创建两个复数对象,然后让用户从键盘输入一个运算符('+'或'-'),求取两个复数对象的和或差的结果并输出。若用户输入的运算符不是 '+'或'-',抛出异常OperatorIllegalException。

注:1、教师命题时题目之间不留空白; 2、考生不得在试题纸上答题,教师只批阅答题册正面部分,若考生须在试题图上作解答,请另附该试题图。3、请在试卷类型、考试方式后打勾注明。

(第4页)