一.判断题(每题1分,共10分)
1.Applet是一种特殊的Panel,它是Java Applet程序的最外层容器。()
2.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。()
3.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。()
4.Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。()
5.构造函数用于创建类的实例对象,构造函数名应与类名相同,返回类型为void。()
6.在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面。()
7.拥有abstract方法的类是抽象类,但抽象类中可以没有abstract方法。()
8.Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。()
9.静态初始化器是在其所属的类加载内存时由系统自动调用执行。()
10.在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。()
二.单项选择题(每题2分,共40分)
1.Java application中的主类需包含main方法,以下哪项是main方法的正确形参?()
A、 String args B、String ar[] C、Char arg D、StringBuffer args[]
2.以下关于继承的叙述正确的是()。
A、在Java中类只允许单一继承
B、在Java中一个类只能实现一个接口
C、在Java中一个类不能同时继承一个类和实现一个接口
D、在Java中接口只允许单一继承
3.paint()方法使用哪种类型的参数? ()
A、Graphics B、Graphics2D C、String D、Color
4.以下哪个不是Java的原始数据类型()
A、int B、Boolean C、float D、char
5.以下哪项可能包含菜单条()。
A、Panel B、Frame C、Applet D、Dialog
6.若需要定义一个类域或类方法,应使用哪种修饰符?()
A、static B、package C、private D、public
7.在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行()。
A、init() B、start() C、destroy() D、stop()
8.给出下面代码,关于该程序以下哪个说法是正确的?()
public class Person{
static int arr[] = new int[5];
public static void main(String a[])
{
System.out.println(arr[0]); }
}
A、编译时将产生错误 B、编译时正确,运行时将产生错误
C、输出零 D、输出空
9.下列哪些语句关于Java内存回收的说明是正确的? ()
A、程序员必须创建一个线程来释放内存
B、内存回收程序负责释放无用内存
C、内存回收程序允许程序员直接释放内存
D、内存回收程序可以在指定的时间释放内存对象
10.以下哪个关键字可以用来对对象加互斥锁?()
A、transient B、synchronized C、 serialize D、static
11.以下代码段执行后的输出结果为()
int x=-3; int y=-10;
System.out.println(y%x);
A、 -1 B、2 C、1 D、3
12.有以下程序片段,下列哪个选项不能插入到行1。()
1.
2.public class Interesting{
3.//do sth
4. }
A、import java.awt.*; B、package mypackage;
C、class OtherClass{ } D、public class MyClass{ }
13. 设有下面两个赋值语句:
a = Integer.parseInt(“12”);
b = Integer.valueOf(“12”).intValue();
下述说法正确的是()。
A、a是整数类型变量,b是整数类对象。B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且值相等。 D、a和b都是整数类型变量并且值相等。
14.FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父类,以下哪个类可能是FilterOutputStream构造函数的参数类型?
A、OutputStream B、File C、InputStream D、BufferedOutputStream
15.在编写Java Applet程序时,需在程序的开头写上( )语句。
A、import java.awt.* ; B、import java.applet.Applet ;
C、import java.io.* ; D、import java.awt.Graphics ;
16.类Parent、Child定义如下:
1. public class Parent
2.{ public float aFun(float a, float b) throws
3. IOException { }
4.}
5.public class Child extends Parent{
6.
7.}
将以下哪种方法插入行6是不合法的。()
A、float aFun(float a, float b){ }
B、public int aFun(int a, int b)throws Exception{ }
C、public float aFun(float p, float q){ }
D、public int aFun(int a, int b)throws IOException{ }
17.在使用interface声明一个接口时,只可以使用()修饰符修饰该接口。
A、private B、protected C、private protected D、public
18、有以下方法的定义,请选择该方法的返回类型()。
ReturnType method(byte x, double y)
{
return (short)x/y*2;
}
A、byte B、short C、int D、double
19、关于以下代码段的说法正确的是()
1.String s=”abcde”;
2.StringBuffer s1=new StringBuffer(“abcde”);
3.if(s.equals(s1))
4. s1=null;
5.if(s1.equals(s))
6. s=null;
A、第1行编译错误,String的构造器必须明确调用
B、第3行编译错误,因为s与s1有不同的类型
C、编译成功,但执行时在第5行有异常抛出
D、编译成功,过程中也没有异常抛出
20、编译并运行以下程序,以下描述哪个选项是正确的()
1. class X{
2. protected String toString(){
3. return super.toString();}
4. }
A、编译通过运行无异常 B、编译通过但运行时出错
C、行2出错,不能成功编译 D、不能成功编译,行3出错
三.程序阅读题(每题4分,共36分)
1.以下程序的输出结果为。
class StringTest1
{
public static void main(String[] args)
{
String s1=”hello”;
String s2=new String(“hello”);
if(s1.equals(s2)){
System.out.println(“相等”);
}else{
System.out.println(“不相等”);
}
}
}
2.以下程序段的输出结果为。
public class TestArray
{
public static void main(String args[ ]){
int i , j ;
int a[ ] = { 5,9,6,8,7};
for ( i = 0 ; i < a.length-1; i ++ ) {
int k = i;
for ( j = i ; j < a.length ; j++ )
if ( a[j]<a[k] ) k = j;
int temp =a;
a = a[k];
a[k] = temp;
}
for ( i =0 ; i<a.length; i++ )
System.out.print(a+” “);
System.out.println( );
}
}
3.写出以下程序的功能。
import java.io.*;
public class TestFile
{
public static void main(String args[]) throws Exception
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new FileWriter(“input.txt”));
String s;
while (true)
{
System.out.print(“请输入一个字符串: “);
System.out.flush();
s=br.readLine();
if (s.length()==0) break;
bw.write(s);
bw.newLine();
}
bw.close();
}
}
4.阅读以下程序:
class Exp1
{
public static void main(String[] args)
{
String s,s1=”";
char c;
s=args[0];
for (int i=0;i<s.length();i++)
{
c=s.charAt(i);
if(c>=’a’ && c<=’z'){
s1=s1+Character.toUpperCase(c);
}else{
s1=s1+Character.toLowerCase(c);
}
}
System.out.println(s1);
}
}
若在dos命令行输入:java Exp1 abcDEF,则输出为。
5.以下程序段的输出结果为。
import java.util.*;
public class VecApp {
public 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),0);
Enumeration e = v.elements();
while(e.hasMoreElements())
System.out.print(e.nextElement()+” “);
System.out.println();
v.removeElement(“v1″ );
for(int i = 0; i < v.size() ; i++)
System.out.print(v.elementAt(i) +” “);
System.out.println();
}
}
6.以下程序段的输出结果为。
class IntORString{
void iosM( int i ){
System.out.print(“integer ”);
}
void iosM(String s){
System.out.print(“String ”);
}
public static void main(String args[ ])
{
IntORString ios=new IntORString ( );
ios.iosM(‘a’);
ios.iosM(“1”);
}
}
7.阅读以下程序,写出输出结果。
class Animal {
Animal() {
System.out.print (“Animal “); }
}
public
class Dog extends Animal {
Dog() {
System.out.print (“Dog “); }
public static void main(String[] args) {
Dog snoppy= new Dog(); }
}
8.写出以下程序的运行结果。
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; }
}
9.写出以下程序的运行结果。
public class TryCatchFinally{
static void Proc( int sel ){
try{
if( sel==0 ){System.out.println(“no Exception “);
return;}
else if( sel==1 ){ int i=0; int j=4/i;}
}
catch( ArithmeticException e ) {
System.out.println(“Catch “); }
catch( Exception e ) {
System.out.println(“Will not be executed”);}
finally{
System.out.println(“finally”); }
}
public static void main( String args[] ){
Proc( 0 ); Proc( 1 ); }
}
四.编程题(第1题6分,第2题8分,共14分)
1.(6分) 编写一个输出”Hello World!”的程序,用两种方式实现(Application、Applet)。
①Application(2分)
②Applet(4分)
2.(8分) 用输入/输出写一个程序,让用户输入一些姓名和电话。每一个姓名和电话将加在文件里。用户通过输入”quit”来告诉系统整个列表已输入完毕。如果用户输完整个列表,程序将创建一个输出文件phoneno.dat。
文件phoneno.dat中的数据格式如:
88078549,张三
12345678-123,李四