1、一、判断题 1.java中用于编译源文件的命令是javac。( √ ) 2.abstract和final不能同时修饰一个类。( √ ) 3.一个意料之外的或出错的情形是一个异常。( × ) 4.如果线程死亡,它便不能运行。( √ ) 5.在括号里表明一个数组变量的整数是指针。( × ) 6.静态的成员方法中可以调用非静态的成员方法。( × ) 7.Applet是用HTML语言编写的。( × ) 8.二维数组的初始化 int[][] arr =new int[][4]是合法的。( × ) 9.java语言是平台无关的语言。( √ ) 10. 关键字Su
2、pper总是指向所使用的类的父类。( √ ) 11. 在switch结构中,default case必须出现。( × ) 12.在方法定义中,所有可能发生的异常都必须用try{} catch{}捕捉。( × ) 13.一个类实现一个接口,则该类必须实现接口中的所有方法。( × ) 14.线程使用sleep方法休眠后会释放该线程同步锁定的对象。( × ) 15. 使用相同方法名来表示不同的实现被称作为隐藏( × )。 16. 当使用冒泡排序按升序排序时,第一遍数组遍历完成后,原来数组里的第一个数排在了数组的末尾( × )。 17.把方法声明为synchronized
3、就可以保证不发生死锁( √ )。 二、填空题(每空1分,共10分) 1.导入mypackage包中的所类的命令是( import mypackage.* ; )。 2.运行Java程序需要(JAVA解释器),它直接对Java字节码进行解释。 3.Java程序可以方便地被移植到网络上的不同机器,同时Java的类库中也实现了与(不同平台的接口),使这些类库可以移植。 4.Java程序的字节码文件的扩展名是(.class)。 5.在类声明之前用(final)修饰,声明类是不能被再继承的类,即它不能再有子类。 6.符点型可以表示带有小数部分的数值。它分为两种:(float)和do
4、uble,分别代表单精度和双精度数值。 7.(boolean)的数据类型,用于对两个数值通过关系运算符进行比较,判断比较的结果是真或是假。 8.在实现接口ActionListener的方法actionPerformed()中,常用的有两个获得事件源的方法,它们是getActionCommand()和( getSource() )。 9.在Java程序中(main())方法非常重要,是整个程序的入口。 10.线程从阻塞状态恢复到就绪状态,有三种途径:自动恢复、用resume()方法恢复和用( notify() )方法恢复。 11.数组的下标是从( 0 )开始的。 12.被调用
5、的方法中的( return )语句可以表达式的值返回调用它的方法。 13.Java的核心是面向对象程序设计,它有三个特性:封装、( 多态 )、继承。 14.Java程序分为两种: Java Application程序和(Java Applet)程序。 15.System.out.println()语句的作用是(打印语句,把小括号中的内容显示在屏幕上,并且增加新的一行。如果还有要打印的内容,则从新的一行开始显示;如果没有,则显示空白行)。 16.Java允许对特殊的字符使用转义序列。转义序列以( 反斜杠 )开始,后面跟一个对编译器来说有特殊意义的字符。 17.Read()方法的返回
6、类型是( int )。 18.面向对象的编程允许从现有类派生出新类,这称为(类的继承)。 19.(对象)是类创建的实例。 20. 提供注解但不可执行的程序语句被称为(注释语句)。 三、单项选择题(每小题2分,共20分) 1.以下程序代码的输出结果是( B ) int x = 10; while (x > 7) { System.out.print("*"); x--;} A.** B.*** C.* D.**** 2.把程序组件看作与现实世界中的具体对象相似的对象是( C ) A. 命令行操作系统
7、B. 面向过程程序设计 C. 面向对象程序设计 D. 机器语言 3.以下关于AWT与Swing之间关系的叙述,正确的是( A ) A.Swing是AWT的提高和扩展 B.在写GUI程序时,AWT和Swing不能同时使用 C.AWT和Swing在不同的平台上都有相同的表示 D.AWT中的类是从Swing继承的 4.用Runnable接口实现多线程的主要工作是( C ) A.声明实现Runnable接口的类,在类内实现run()方法,让线程调用start()方法。 B.声明实现Runnable接口的类,在类内实现run()方法,在类内声明线程对象,在init()
8、方法中创建新线程,启动新线程。 C.声明实现Runnable接口的类,在类内实现run()方法,在类内声明线程对象,在Init()方法或start()方法中创建新线程,在start()方法中启动新线程。 D.声明实现Runnable接口的类,在类内实现run()方法,在init()方法中创建新线程,在start()方法中启动新线程。 5.下列关于构造方法的描述中,错误的是( D ) A. 可以重载 B. 方法名与类名相同 C. 无返回类型 D. 有些程序没有构造方法 6.程序如果要按行输入输出文件的字符流,最合理的方法是采用( A ) A.BufferedReade
9、r类和BufferedWriter类 B.InputStream类和OutputStream类 C.FileReader类和FileWriter类 D.File_Reader类和File_Writer类 7.定义一个接口必须使用的关键字是( C ) A、public B、class C、interface D、static 8.Frame对象默认的布局管理器是( B ) A、FlowLayout B、BorderLayout C、CardLayout D、null 9.下列关于包的描述中,错误的是( A ) A. 包是一种特殊的类
10、 B. 包是若干个类的集合 C. 包是用package语句创建的 D. 包有有名包和无名包两种 10.关于方法重载和方法重写下列说法正确的是( D ) A. 方法 重载就是被重载的方法的参数类型必须不同 B. 方法重写支持多态性,但方法重载不支持 C. 方法重写就是指子类中的方法与其超类中的同名 D 父类中的方法非全部能被子类重写。 11.下列说法正确的是( A ) A. 类是对象的模板 B. 在类体内说明成员变量时不允许赋初值 C. 使用构造方法只能给非静态成员赋初值 D. 对象成员的表示只能使用运算符“.” 12.保存包含Java程序语言源代码的文本文件使
11、用的扩展名是( A ) A. .Java B. .class C. .txt D. .src 13.下列哪个方法不是applet程序的组成部分( D ) A init() B start() C stop() D new() 14.关于访问权限,下列说法中正确的是(C )。 A. 一个类成员在一个包内有默认的访问方式,它可以被其他包访问。 B. 包中的子类不可以访问一个protected成员 C. 声明为public的成员,可以被程序中任何代码访问 D. 被声明为public的类可以驻留在不相同名的文件中。 15.永不停止
12、的循环叫( B ) A.反复循环 B. 无限循环 C. 结构化循环 D. 不合法的循环 16.具有相同类型和名字的一列变量叫( B ) A.寄存器 B.数组 C.列表 D.索引 四、名词解释(每小题4分,共20分) 1.请写出在类的方法的定义之前,加上修饰字public、private的区别。 答:用public修饰的类表示类是公有的,也就是它可以被其他任何对象访问(前提是对类成员所在的类有访问权限)。private修饰的类表示类是私有的,也就是类中成员只能被这个类本身访问,
13、在类外不可见。 2.异常 答:异常是指在程序运行过程中出现的非正常事件。JAVA程序中处理的异常主要包括运行时异常和可控异常。对程序中发生的各种异常,往往需要对其进行相关的处理,从而增强程序的健壮性。 3.类体内容有哪两种重要的成员? 答:包括类的成员变量和类的成员方法。类的成员变量定义了类的属性,所定义的成员变量,可以被类内的所有方法访问;类的成员方法描述了对象所具有的功能和操作,反映对象的行为,是具有某种相对独立功能的程序模块。 4.子类通过怎样的办法可以隐藏继承的成员变量? 答:当在子类中定义和父类同名的成员变量的时候,子类就掩藏了继承自父类的成员变量。因此,如果要隐藏继承自
14、父类的成员变量,就在子类里面定义相应的同名成员变量即可。 5.向量类 答:JAVA中的向量(Vector)类是用来实现类似动态数组的功能。在Java语言中,是没有指针概念的,为了弥补这点缺陷,Java提供了丰富的类库来方便编程者使用,Vector类便是其中之一,向量类中提供的大量方法大大方便了用户的使用。创建了一个向量类的对象后,可以往其中随意地插入不同的类的对象,既不需顾及类型也不需预先选定向量的容量,并可方便地进行查找。对于预先不知或不愿预先定义数组大小,并需频繁进行查找、插入和删除工作的情况,可以考虑使用向量类。 6.多态性 答:多态是指对于一种服务功能,可以具有不同的实现方式,
15、即多种形态。多态形象地描述了现实世界的复杂形态,使程序具有良好的扩展性。在继承的基础上,方法重载是实现多态的方式之一。 7.String类和StringBuffer类有何不同? 答:String类创建的字符串对象是不可修改的,也就是说,String字符串不能修改、删除或替换字符串中的某个字符,即String对象一旦创建,那么实体是不可以再发生变化的 StringBuffer类,该类能创建可修改的字符串序列,也就是说,该类的对象的实体的内存空间可以自动的改变大小,便于存放一个可变的字符串。 8.线程 答:线程是处理器调度的基本单位(但不是资源分配单位),是进程中的一个可执行实体,可
16、并发执行。多个线程可以组成一个进程并共享该进程拥有的所有资源,因此可以把线程称为轻型进程。 9.接口 答:接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。在实际问题中有些互不相关的类具有某种相同的行为,这时可以采用接口来定义这种行为,接口只定义提供什么功能,而不定义功能的具体实现。 五、编程题 1.按以下要求编写程序 (1) 创建一个Rectangle类,添加width和height两个成员变量 (2) 在Rectangle中添加两种方法分别计算矩形的周长和面积
17、 (3) 编程利用Rectangle输出一个矩形的周长和面积 public class Rectangle { private int width; private int height; public Rectangle(){} public Rectangle(int w,int h){ this.width=w; this.height=h; } public double circumference(){ return (width+height)*2; } public double area(){ retu
18、rn width*height; } public static void main(String args[]){ Rectangle rg=new Rectangle(1,2); double rc,rs; rc=rg.circumference(); rs=rg.area(); System.out.println("矩形的周长是:"+rc); System.out.println("矩形的面积是:"+rs); } } 2.计算器操作界面设计,要求:利用容器、组件和布局等创建一个计算器的界面,包括加、减、乘、除运算键。
19、 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calculator{ Frame frame=new Frame("Calculator"); TextField tf=new TextField(); Panel p1=new Panel(); Panel p2=new Panel(); String name[]={"7","8","9","/","4","5","6","*","1","2","3","-","0",".","+","="};
20、 Button bb[]=new Button[name.length];
public void go(){
frame.setSize(300,200);
frame.setLayout(new BorderLayout());
p1.setLayout(new GridLayout(2,1,5,10));
p1.add(tf,null);
p2.setLayout(new GridLayout(4,5,5,5));
for(int i=0;i 21、p2.add(bb[i]);
}
frame.add(p1,BorderLayout.NORTH);
frame.add(p2,BorderLayout.SOUTH);
frame.setVisible(true);
}
public static void main(String [] args){
Calculator cal=new Calculator();
cal.go();
}
}
3.计算1+2+3+…+100的值
public class sum {
public static void main(String a 22、rgs[]){
int n;
int sum=0;
for(n=1;n<=100;n++){
sum=sum+n;
}
System.out.println("1+2+3+…+100的值是:"+sum);
}
}
4.按以下要求编写程序
(1) 编写Animal接口,接口中声明run() 方法
(2) 定义Bird类和Fish类实现Animal接口
(3) 编写Bird类和Fish类的测试程序,并调用其中的run()方法
public interface Animal {
public void run();
}
publi 23、c class Bird implements Animal {
public void run(){
System.out.println("bird");
}
}
public class Fish implements Animal {
public void run(){
System.out.println("fish");
}
}
public class test {
public static void main(String [] args){
Bird b=new Bird();
Fish f=new Fish();
b.run();
f.run();
}
}
9






