《Java程序设计》练习题
一、判断题
1、Java语言采用面向对象的思想编程,具有跨平台、分布式、多线程等优点。 ( 对 ) 2、在main方法中可以直接调用非静态的方法。 ( 错 ) 3、方法重载就是一个类中有多个同名但有不同形参和方法体的方法。 ( 对 ) 4、抽象类可有构造方法,因此也能用new进行实例化。 ( 错 ) 5、一个类可继承多个父类,实现多个接口。 (错 ) 6、用final修饰的类不能被继承。 ( 对 ) 7、在Java程序中发生异常时,JVM会找到每个符合条件的catch都执行一次。 ( 错 ) 8、一个Java源程序可有多个类,但只仅有一个public类,而且源程序名与public类名相同。( 对 ) 9、类A和类B在同一个包中,则除了私有成员外,类A可以访问类B的所有成员。( 对 )
10、接口中的成员变量全部为常量,方法为抽象方法。 ( 对 )
11、方法中的形参可以和方法所属类的属性同名。 ( 对 ) 12、接口无构造器,不能有实例,也不能定义常量。 ( 错 ) 13、java的类不允许嵌套定义。 ( 错 ) 14、在接口中所有的方法都是抽象方法,所以必须在方法定义之前加上abstract关键字。 ( 错 ) 15、抽象类中不能包含final修饰的方法。 ( 对 ) 16、在Java程序中异常分为运行时异常和非运行时异常,非运行异常必须进行处理( 错 ) 17、System.out和System.err都是标准的输出流,都可以在监视器上打印输出 ( 对 ) 18、在JFrame中添加组件时不能直接用add方法。 ( 对 ) 19、如果想让Frame窗口能够被关闭,则可以实现WindowListener接口,并且实现
windowClosing()方法。 ( 对 ) 20、GridLayout的构造器可以包含两个参数,分别是指网格的行数和列数,行数为0则表示可以有任意行,列数为0则表示可以有任意列 ( 对 ) 21、启动多线程必须调用start()方法, 如果调用run方法则没有启动新的线程 ( 对 ) 22、run方法是运行线程的主体,若run方法运行结束,线程就消亡了。 (对 ) 23、利用File对象可以判断一个文件或目录是否存在。 ( 错 )
24、JFrame,JPanel,JApplet和JButton四种组件都属于容器组件。 ( 错 ) 25、BorderLayout是面板的缺省布局管理器。 ( 错 ) 26、BorderLayout最多可以使用5个组件。 ( 对 ) 27、一个面板(JPanel)不能被加入另一个面板(JPanel)中。 ( 错 ) 28、菜单需要一个JMenuBar对象,以使他们能被添加到JFrame。 ( 对 ) 29、线程可以用yield使同优先级的线程运行。 ( 对 ) 30、System.in是标准输入流,能用read方法读取键盘的输入。 ( 对 )
31、数据流就是数据通信通道,指在计算机的输入输出之间运动的数据序列。( 对 ) 32、标签(JLabel)可以在屏幕上显示一个字符或一幅画。 ( 对 )
33、BorderLayout是容器javax.swing.JFrame默认的布局管理器。 ( 对 ) 34、编写小应用程序(Applet)一般需要编写两种类型的文件,即Java源文件和Html文件。 ( 对 ) 35、要在程序中实现多线程,必须在源程序前面使用import语句显示的导入Thread类。
( 错)
36、通过类java.net.URL中的成员方法可获得网络资源定位器的相关信息( 对 ) 37、catch块后必须有finally块。 (错 ) 38、JTextArea可以用来接收多行文本的输入。 (对)
39、一个线程创建并启动后,它将执行自己的run()方法。 ( 对 ) 40、Socket的实例对象调用其成员方法getInputStream来获得该Socket所对应的输入流。( 对 )
41、在Java坐标系统中,X值从左向右增加。( 对 )
42、BorderLayout布局管理器把组件排列在北、南、东、西和中间区域。( 对 ) 43、JTextArea是提供操作单行文本的区域。( 错 ) 44、异常处理器的排列次序影响处理异常的方法。( 对 ) 45、线程可以用yield方法使较低优先级的线程运行。( 错 ) 46、随机存取文件中的记录必须等长。( 错 )
47、数据报(DatagramPacket)传输是不可靠的,无法保证包按顺序到达。( 对 ) 48、用catch(Exception exception)语句可以捕获所有异常和错误。( 错 ) 49、每个Java线程的优先级都设置在常数1~12之间,默认的优先级设置为常数6。(错) 50、当Socket连接上面的传输结束后,服务器执行Socket的shutdown方法来关闭连接。(错)
二、填空题
1、javac,java,jar,appletview 2、0.0f,false,基本,引用 3、6,248 4、false,3 5、MyPrg.java
6、Interger,parseInt() 7、2
8、抽象(或abstract),final 9、“abc”
10、引用(或复合),arraycopy 11、package MyPackage,第一行 12、implements
13、new,protected 14、继承,接口
15、对象,interface
16、abstract, 提供了一个基本类,实现代码或算法的重用
17、Object,import java.util.* ; 18、Error和Exception
19、finally,throw,throws
20、InputStream,OutputStream,字节,字符 1、在JDK操作命令中,编译命令(或编译器)是___javac__________,运行命令(或解释器)是____java_______,Java类文件归档命令是__________jar______________,使 Applet应用小程序脱离Web浏览器环境进行运行和调试的命令是___________appletview______。 2、在Java基本数据类型中,float的缺省值是______0.0f_______,boolean的缺省值是__________________。Java的变量类型分为____基本___数据类型和_____引用______数据类型。
3、已知int x=123,则表达式x/100+x%100/10+x%10的值为__6________,表达式++x + x++的值为_____248__________。
4、设 int x=12,y=5; 执行语句(x%y==0)&&(x>y)的值为__false______,执行语句 x=x++/--y 后x的值为 3 。 5、某Java源程序中有一个类的定义为:public class MyPrg,则该源程序的文件名应该为: MyPrg.java 。
6、将一个字符串s转换为int型整数,需要用到包装类___ Interger 的 __parseInt() _ 方法。
7、语句String s = new String(\"xyz\");创建了 2 个String对象。
8、 抽象 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。 final 方法是不能被当前类的子类重新定义的方法。 9、定义字符串:
String s = new StringBuffer().append(\"a\").append(\"b\").append(\"c\").toString();, 则s的值是____ _。
10、数组在Java语言中是一种_______引用(或复合)___________形式的数据类型,它存储的是数组的地址,而不是数组的元素值,System类里的_________arraycopy_________方法是复制数组的一种方法,它可指定需要复制元素和存放目标数组的位置。
11、创建一个名为 MyPackage 的包的语句是 package MyPackage , 该语句应该放在程序的位置为: 第一行 。 12、在java源程序的类头中使用关键字_____implements___声明该类实现某个接口。 13、对象是用________new________关键字实例化类之后的结果,______protected________访问修饰符所声明的类成员,仅能被同包(同路径)或具有继承关系的相关类使用。
14、当一个类获取另一个类中所有的非私有的数据和操作作为它自己的部分或全部成分时,就称为这两个类之间具有_____继承_关系。________接口________是用来实现类间多重继承功能的结构。
15、用new关键字实例化类之后的结果是_____对象_____,接口是指利用_____interface______关键字来声明,其中不包含任何实现语句,仅建立抽象成员方法的一种类。
16、抽象类用关键字_____abstract______修饰,抽象类的目的是____ 提供了一个基本类,实现代码或算法的重用__。
17、Java中所有类都是类 Object 的子类。引用ArrayList和Vector都要加载的语句是__________import java.util.* ;____________________。 18、Throwable的直接子类是____Error和Exception ______。
19、java通过五个关键字来管理异常处理:try,catch,_finally,throw,throws___。 20、输入流和输出流在Java中对应两个抽象类____InputStream和OutputStream____。
InputStream及其子类读取__字节___流数据。Reader及其子类用于读取 字符 流数据。
21、IOException,ArrayIndexOutOfBoundsException
22、new FileInputStream(“c:\\\est.txt”),readLine()
23、RandomAcessFile raf=new RandomAcessFile(“c:\\\est.txt”,“rw”);
i= raf.readInt(); 24、GridLayout、CardLayout
25、轻量级,getContentPane(),setLayout 26、JFrame,JWindow,JDialog
27、Applet,MyApplet.java 28、init(),destroy() 29、add,GUI
30、Thread,Runnable 31、start,run
32、synchronized,
从全局考虑获得锁的顺序,并且在整个程序中都遵守这个顺序;释放锁时,要按加锁的反序释放。
33、sleep,setPriority()
34、Runnable,public void run(),new Thread(rt),myThread.start() 35、TCP,UDP
36、getPort(),getLength() 37、ServerSocket,Socket 38、ServerSocket,Socket 39、accept(),receive() 40、accept(),receive()
21、输入输出异常类的类名是: 、数组下标越界异常类的类名是: 。
22、用FileInputStream类创建文件(c:\est.txt)对象的语句是____________________________________________,DataInputStream对象提供___________________方法可以按行读取文件内容。 23、创建以读写方式打开文件(c:\est.txt)的RandomAcessFile对象,并使得raf成为该对象的应用变量的语句是 ;之后,从c:\est.txt文件中读取一个int型整数到变量i中可以使用语句: 。
24、在编写Java界面程序时,常用的布局管理器包括流式布局管理器FlowLayout、边界布局管理器BorderLayout、_____________________和__________________。
25、相对于AWT的组件来说,swing中的组件被称作 ,JFrame是swing中的顶层容器组件,不能直接在它上面放置其他组件,而必须将组件放置在它内容面板上,
获得其内容面板容器的方法是: 。容器组件的布局管理器 决定放置在它上面的各组件的大小和位置,可以用 方法设置容器组件的
布局管理器。
26、在Swing GUI层次体系中的顶层容器主要包括 javax.swing. 、javax.swing. 和javax.swing. 。
27、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是 类的子类并且存储该源程序文件的文件名为 。
28、当小应用程序被调用时,类Applet成员方法 被首先调用,当关闭小应用程序时,类Applet成员方法 被最后调用。
29、Container 的________方法可以将_______组件加入容器。
30、编写一个线程可以用继承 类和实现 接口来实现。
31、在执行Java线程的程序中,程序通过调用_______方法启动线程,随后又调用________方法。
32、如果几个并发线程对相同的数据对象进行存取,可能导致数据不一致,为避免发生这种情况,需要编程实现线程同步,在执行访问共享数据的代码时对数据加互斥锁,加锁语句的关键字是_______ ___________,如果编程时不注意,加锁可能导致死锁,避免死锁的一般做法是 。 33、Java线程程序可以调用____________方法,使线程进入睡眠状态,可以通过调用___________________方法设置线程的优先级。
34、通过实现接口 可以创建一个包含线程体的类,该接口只申明了一个方法: ,假定一个线程体对象为rt,则可以用Thread myThread = 语句来创建一个线程对象,并用语句 启动myThread线程对象。
35、Java提供两种套接字,其中使用_______协议的被成为流套接字,使用____协议的被称为数据报套接字。
36、DatagramPacket类的________方法返回一个整数,它指定DatagramPacket的端口;DatagramPacket类的_________方法返回一个整数, 它代表DatagramPacket中的字节数。 37、在TCP协议下建立通信程序,在服务器端首先要创建类 的实例对象;在客户端,创建类 实例对象。
38、java.net中提供了两个类_________________和_______________,分别用于服务器端和客户端的Socket通信。
39、用Java实现网络编程时,在有连接的Socket通信机制中,服务器端阻塞用Socket对象的_________________方法,而在无连接的Socket通信机制中, 服务器端阻塞用DatagramSocket对象的_____________________方法。
40、基于TCP的Java网络编程中,服务器端阻塞用Socket对象的 方法。 基于UDP的Java网络编程中, 服务器端阻塞用DatagramSocket对象的 方法。
三、选择题
1-10 BCCBA DCCAA 11-20 BABCD BABBC 21-30 CDBCB DADBC 31-40 CABBD ACCAA
1、编译Java源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )
A) .java B) .class C) .html D) .exe 2、Java 编译程序的文件名是( )
A) java.exe B) javadoc.exe C) javac.exe D) jar.exe
3、下述那一个保留字不是类及类成员的访问控制符( ) A) public B) private C) static D) protected 4、下列变量定义合法的是 ( ) A) boolean flag=False; B) int k = 1+‘1’; C) char c = “b”; D)float radius = 1.2;
5、下面哪个是不合法的变量名称? ( ) A) 2D B) True C) _name D) T1
6、 下面哪个定义变量的语句不合规范? ( ) A、 int retireAge=60;
B、 final int RETIREAGE=60; C、 static int retireAge=60; D、 private int RETIREAGE=60;
7、下列数组的定义不合法的是: ( ) A) char c[][]=new char[2][3]; B) char c[][]=new char[6][]; C) char [][]c=new char[][4];
D) int []a[] = new int[10][10];
8、下列数组的定义合法的是( )
A) int a = (1,2,3); B) int d[]= (1…3);
C) int []a[] = new int[3][]; D) char [][]c=new char[][4]; 9、下述哪个说法是不正确的?( )
A) 局部变量在使用之前无需初始化,因为有该变量类型的默认值 B) 类成员变量由系统自动进行初始化,也无需初始化 C) 参数的作用域就是所在的方法
D) for语句中定义的变量,当for语句执行完时,该变量就消亡了 10、下列说法中,不正确的是( )
A) 一个java源程序编译通过后,得到的结果文件数也只有一个。 B) 一个java源程序经过编译后,得到的文件的扩展名一定是.class。
C) 一个java源程序只能有一个public class类定义,且源文件的名字与public class的类名相同,扩展名必须是.java。
D) 一个java源程序可以包含多个class类。
11、下列说法中,不正确的是: ( ) A、一个java源程序经过编译后,得到的文件的扩展名一定是.class。 B、一个java源程序编译通过后,得到的结果文件数也只有一个。 C、一个java源程序编译通过后,得到的结果文件数可能有个。 D、一个java源程序编译通过后,不一定能用java解释器执行。
12、对于以下声明:
String s1=\"hello\";
String s2=\"world\"; String s3;
下面的操作合法的是( )
A)s3=s1+s2; B)s3=s1-s2; C)s3=s1&s2; D)s3=s1&&s2; 13、下面的代码合法的是: ( ) A) public abstract method();
B) public abstract void method(); C) public abstract void method(){ };
D) public void method() implements abstract;
14、执行语句:int n = 7; int b = 2 * n++;后,b和n的值分别是 A) b = 15, n = 8 B) b = 16, n = 8 C) b = 14, n = 8 D) b = 14, n = 7
15、下列哪个不能作为switch表达式的数据类型( ) A) int B) char C) short D) long 16、下面哪一项是Java实现动态多态性的具体手段( ) A) 重载; B) 覆盖(重写) C) 接口 D) 抽象类 17、下列哪一个是创建数组的正确指令( ) A) int[] a = new int[10]; B) int[] a = new int(10); C) int a[]; D) int[] a;
18、System.out.print(“1”+2)打印到屏幕的结果是( ) A) 3 B) 12 C) 1+2 D) 4
19、对于下列代码: public class Example{
String str=new String(\"hello\"); char ch[]={'d','b','c'};
public static void main(String args[]){ Example ex=new Example(); ex.change(ex.str,ex.ch);
System.out.println(ex.str+\"and\"+ex.ch[0]); }
public void change(String str,char ch[]){ str=\"world\";
ch[0]= 'a';
} }
输出结果是: ( ) A) hello and d B) hello and a
( ) C) world and d D) world and a
20、下列说法哪个是正确的? ( ) A) 子类不能定义和父类同名同参数的方法 B) 子类只能继承父类的方法,而不能重载
C) 重载就是一个类中有多个同名但有不同形参和方法体的方法 D) 子类只能覆盖父类的方法,而不能重载
21、如果一个程序段中有多个catch,则程序会按如下哪种情况执行? ( ) A) 找到合适的例外类型后继续执行后面的catch B) 找到每个符合条件的catch都执行一次
C) 找到合适的例外类型后就不再执行后面的catch D) 对每个catch都执行一次
22、以下哪一项不是File类的功能: ( ) A) 创建文件 B) 创建目录 C) 删除文件 D) 拷贝文件
23、下列说法哪个是正确的? ( ) A) BorderLayout是面板的缺省布局管理器
B) 当鼠标指针位于一个GUI组件的边上时,发生一个MouseEvent事件 C) 一个面板(JPanel) 不能被加入到另一个面板(JPanel)中
D) 在BorderLayout中,添加到NORTH区的两个按钮将并排显示。 24、下列类不属于java.lang.*包的是( )
A) Math B) System C) Date D) StringBuffer 25、System类属于下列哪个包?( )
A) java.io.* B) java.lang.* C) java.util.* D) java.awt.* 26、下列哪个不属于File类中的方法( )
A) exists( ) B) delete( ) C) mkdir( ) D) copy( ) 27、下列哪个不属于StringBuffer类中的方法?( ) A) compareTo ( ) B) indexOf( ) C) append( ) 28、下列接口或类不属于java.util.*包的是( )
D) charAt( )
A) Collection B) StringTokenizer C) Map D) Character 29、假设int x=4,y=100,下列语句的循环体共执行几次?( )
while(y/x>3){ if(y%x>3) { x=x+1; } else{
y=y/x; } }
A) 1次 B) 2次 C) 3次 D) 4次 30、Test.java程序代码如下:
1) public class Test{
2) public static void main(String[] args){
3) System.out.println(args[2]); 4) } 5) }
以上程序编译后用java Test 1 2 3 4运行的输出结果是什么? ( ) A) 1 B) 2 C) 3 D) 4
31、对于异常处理语句try…catch…finally,下面哪个说法是正确的?( ) A) 如果有多个catch语句,对所有的catch都执行一次 B) 如果有多个catch语句,对每个符合条件的catch都执行一次 C) 找到合适的异常类型后就不再执行后面的catch
D) 任何情况下,finally部分都会被执行一次
32、对于异常处理语句try…catch,下面那句话不正确? ( )
A、一个符合条件的catch的处理语句中没有break语句,则执行后会继续执行后续catch B、不管有没有捕获异常,finally部分都会被执行 C、找到合适的异常类型后就不再执行后面的catch D、应该先处理子异常类,再处理父异常类。
33、用文件字节输出流对文件进行写操作时,需要先创建文件输出流对象,文件输出数据流的构造方法是 public FileOutputStream(String name,Boolean append) throws FileNotFoundException,当参数append的值为true时,表示 ( ) A、创建一个新文件 B、在原文件的尾部添加数据 C、覆盖原文件的内容
D、在原文件的指定位置添加数据
34、下列哪种操作不会抛出异常?( ) A) 浮点数除0
B) 浮点数乘0
D) 用负数索引访问数组
C) 打开不存在的文件
35、在java程序中,下列关于线程的说法错误的是( ) A) 线程启动调用start方法 B) 线程的主体是run方法
C) 线程运行中调用sleep方法可以进入阻塞状态
D) 在java中,优先级的数值为1的线程可以抢占优先级为5的线程的资源 36、下述哪一组方法,是一个类中方法重载的正确写法? ( ) A、int addValue( int a, int b ){return a+b;}
float addValue ( float a, float b) {return a+b;} B、int addValue (int a, int b ){value=a+b; }
float addValue ( int a, int b) {return (float)(a+b);} C、int addValue( int a, int b ){return a+1;} int addValue ( int a, int b) {return a+b;} D、int addValue( int a, int b ) {return a+b;} int addValue ( int x, int y ) {return x+y;} 37、若编译和运行下列代码,出现的结果将是 ( ) class MyClass{ int i = 0;
public int myMethod(int x){ return i+x; }
public static void main(String args[]) { System.out.println(myMethod(10)); } }
A、0 B、10 C、编译出错 D、 以上答案都不对 38、以下是接口I的定义: interface I{
void setValue(int val); int getValue(); }
以下哪个代码能通过编译?( ) A) class A extends I{ int value;
void setValue(int val){value=val;} int getValue(){return value;}
}
B) class B implements I{ int value;
void setValue(int val){value=val;}
}
C) interface C extends I{ void increment( );
}
D) interface D implements I{ void increment();
}
39、对于以下类: class A{}
class B extends A{} class C extends A{} public class Test {
public static void main(String args[]) { A x= new A(); B y=new B(); C z=new C();
//此处插入一条语句 } }
下面哪个语句可以放到插入行? ( )
A) x=y; B) z=x; C) z=(C)y; D) y=(A)y;
? 40、若编译和运行下列代码,出现的结果将是 ( )
public class MyAdd extends Thread{ static int total = 10; int n;
public MyAdd(int n) { this.n=n; }
public void run() { try{
sleep(n);
total=total+n;
System.out.println(total); }
catch(Exception e){
System.out.println(“EXCEPTION!”); }
}
public static void main(String[] args) { MyAdd t1 = new MyAdd(3000); MyAdd t2 = new MyAdd(1000); t1.start(); t2.start(); } }
A、打印 1010, 4010 B、 打印 3010, 4010 C、打印 1010, 3010 D、 打印 3010, 1010
41-50 DBADB DCABA 51-60 DADDD ADDCD 61-70 DABCB ACCBB 71-80 CDCBD ABDDC
41、若编译和运行下列代码,出现的结果将是___________? ( ) public class MyThread implements Runnable { String myString = \"Yes \"; public void run() {
this.myString = \"No \"; }
public static void main(String[] args) { MyThread t = new MyThread(); new Thread(t).start(); for (int i=0; i < 10; i++)
System.out.print(t.myString); } }
A、打印 yes yes yes yes yes yes yes yes yes yes B、 打印 no no no no no no no no no no
C、打印 yes no yes no yes no yes no yes no D、 打印结果无法确定
42、下列说法哪个是不正确的? ( ) A、一个组件可以注册多个事件监听器 B、一个监听器只能监听一个组件 C、一个组件可以引发多种事件
D、一个监听器可以监听处理多种事件
43、Java不支持何种继承方式?( ) A) 多重继承 B) 单重继承
C) 多接口实现 D) 单接口实现
44、下面说法错误的是( )
A) 单击CheckBox (复选框)产生ItemEvent事件,并由ItemListener处理。 B) 处理Button和TextField事件监听器接口都是ActionListener。 C) 一个面板(Panel) 可以加入到另一个面板(Panel)中。
D) 在BorderLayout中,添加到NORTH区的两个按钮将并排显示。
45、下列说法错误的是: ( ) A) TCP是面向连接的协议,而UDP是无连接的协议。 B) 数据报传输是可靠的,可以保证数据包按顺序到达。
C) Socket是一种软件形式的抽象,用于表达两台机器间一个连接的“终端”。 D) 端口(port)并不是机器上一个物理上存在的场所,而是一种软件抽象。
46、下列语句错误的是: ( ) A) ServerSocket svrsoc= new ServerSocket(8000);
B) URL urlBase=new URL(“http://www. zjut.edu.cn/”) ; C) File inFile = new File(“C:/ test.txt”);
D) BufferedReader br = new BufferedReader(“C:/ test.txt”);
47、下面说法错误的是: ( ) A) 单击JCheckBox (复选框)产生ItemEvent事件,并由ItemListener处理。 B) 处理JButton和JTextField事件监听器接口都是ActionListener。 C) 处理鼠标事件的事件监听器接口只有MouseListener。
D) 在JTextField和JPasswordField中输入数据后按Enter键会激发一个事件。48、下列关于接口和抽象类的说法不正确的是?( ) A) 接口也有构造方法
B) 实现接口时,需对接口中的所有方法都要实现 C) 抽象类也有构造方法 D) 抽象类可以派生出子类
49、下列说法哪个是不正确的?( )
A)一个面板(Jpanel) 能被加入到另一个面板(Jpanel)中 B)一个监听器只能监听一个组件
C)Frame,Panel,Applet都属于容器组件。
D)Button和TextField都可用ActionListener接口实现事件处理 50、对于下列代码:
String str1=\"java\"; String str2=\"java\";
String str3=new String(\"java\");
StringBuffer str4=new StringBuffer(\"java\"); 以下表达式的值为true的是( ) A) str1= =str2; B) str1= =str3; C) str2= =str3; D) str3= =str4;
51-60 DADDD ADDCD 61-70 DABCB ACCBB 71-80 CDCBD ABDDC
51、对于下列代码:
public class SupperClass {
public int sum( int a, int b) { return a+b; } }
class SubClass extends SupperClass { }
下述哪个方法可以加入类SubClass? ( ) A) int sum ( int a, int b ){ return a+b;} B) public void sum (int a, int b ){ return ;} C) public float sum ( int a, int b){ return a+b;} D) public int sum ( int a, int b ) { return a+b;}
52、为AB类的一个无形式参数无返回值的方法method书写方法头,使得用类名AB作为前缀就可以调用它,该方法头的形式为( )
A) static void method( ) B) public void method( ) C) final void method( ) D) abstract void method( ) 53、关于JDBC访问数据库的说法错误的是: ( ) A) 建立数据库连接时,必须加载驱动程序,可采用Class.forName()实现
B) 用于建立与某个数据源的连接可采用DriverManager类的getConnection方法 C) 建立数据库连接时,必须要进行异常处理
D) JDBC中查询语句的执行方法必须采用Statement类实现
54、将组件垂直摆放在一列或水平摆放在一行中的布局管理器是 ( ) A) BorderLayout B) FlowLayout C) CardLayout D)BoxLayout 55、下列有关Java Swing组件说法正确的是: ( ) A) 创建一个JFrame时,必须创建至少一个菜单,并将它加入JFrame中。 B) JTextArea的文本总是只读的。
C) 加载swing组件包的语句是“import java.swing.*; ” 。 D) 在JFrame中添加组件时不能直接用add方法。
56、下列说法错误的是: ( ) A) 程序员必须创建System.in、System.out和System.err对象。
B) 在随机存取文件中查找指定记录时不必检查每一条记录。 C) seek方法必须以文件头为基准进行查找。 D) 计算机做的所有工作最终是对0和1的处理。
57、下列说法错误的是: ( ) A)TCP是面向连接的协议,而UDP是无连接的协议。 B)数据报传输是可靠的,可以保证包按顺序到达。 C)URL代表的统一资源定位符一共包括五个部分
D)Socket和ServerSocket分别表示连接的Client端和Server端
58、下列语句错误的是: ( ) A)ServerSocket svrsoc= ServerSocket(8000);
B)URL urlBase=new URL(“http://www. zjut.edu.cn/”); C)File inFile = new File(“C:/ test.txt”);
D)BufferedReader br = new BufferedReader(“C:/ test.txt”);
59、下面说法错误的是: ( ) A) 单击JCheckBox (复选框)产生ItemEvent事件,并由ItemListener处理。 B) 处理JButton和JTextField事件监听器接口都是ActionListener。 C) 处理鼠标事件的事件监听器接口只有MouseListener。
D) 在JTextField和JPasswordField中输入数据后按Enter键会激发一个事件。60、对于下列代码:
public class Parent {
public int addValue( int a, int b) { int s; s = a+b; return s; } }
class Child extends Parent { }
下述哪些方法可以加入类Child? ( ) A) int addValue( int a, int b ){// do something...}
B) public void addValue (int a, int b ){// do something...} C) public int addValue( int a ){// do something...}
D) public int addValue( int a, int b ) {//do something...} 61、对于下列代码: 1) class Person {
2) public void printValue(int i, int j) {//... } 3) public void printValue(int i){//... } 4) }
5) public class Teacher extends Person { 6) public void printValue() {//... } 7) public void printValue(int i) {//...} 8) public static void main(String args[]){ 9) Person t = new Teacher(); 10) t.printValue(10);
11) }
第10行语句将调用哪行语句? ( ) A) line 2 B) line 3 C) line 6 D) line 7
62、编译和运行下面的应用程序,并在命令行界面输入12345,则回车后屏幕输出的结果是( )。
public class A {
public static void main(String args[]) throws IOException{ BufferedReader buf=new BufferedReader(
new InputStreamReader(System.in)); String str=buf.readLine();
int x=Integer.parseInt(str); System.out.println(x%1000); } }
A) 345 B)5 C) 123 D) 12345 63、以下程序段输出结果的是( )。 public class A implements B {
public static void main(String args[]) { int i;
A c1 = new A(); i= c1.k;
System.out.println(\"i=\"+i); } }
interface B { int k = 10; }
A) i=0 B) i=10 C) 程序有编译错误 D) i=true 64、下面的程序段执行后输出的结果是( )
StringBuffer buf=new StringBuffer(\"Beijing2008\");
buf.replace(0,7,”Hangzhou”)
System.out.println(buf.toString());
A) Hangzhou2008 B) Hangzhoug2008 C)Hangzhou008 D) Beijing2008 65、应用程序的main方法中有以下语句,则输出的结果是 ( )。
String s1=\"Abc\
int b1=s1.compareTo (s2); System.out.println(b1);
A) false B)-32 C) 32 D) 0 66、下面的程序段的功能是( )。
File file1=new File(\"e:\\\\xxx\\\\yyy\"); file1.mkdir();
A)在当前目录下生成子目录:\\xxx\\yyy B)生成目录: e:\\xxx\\yyy C)在当前目录下生成文件xxx.yyy D)以上说法都不对
67、网络资源定位器对应于Java的类java.net.URL,通过其成员方法( )获得端口。 A) getHost() B) getProtocol() C) getPort() D) getRef()
68、下面关于Java中线程的说法不正确的是( )?
A)调用join()方法可能抛出异常InterruptedException。 B)sleep()方法是Thread类的静态方法。
C)调用Thread类的sleep()方法可终止一个线程对象。 D)线程启动后执行的代码放在其run方法中。 69、给Java线程设定优先级的成员方法是( )。 A) getPriority() B) setPriority() C) getTread() D) setTread()
70、编写小应用程序(Applet)需要( )源程序文件和( )文本文件。 A) HTML、Java B) Java、HTML C) Applet、txt D) Java、txt
71、JTextArea实现了可以处理( )文本信息的文本框,但其不能自动进行( )处理。 a) 单行、滚屏 b) 多行、编辑 c) 多行、滚屏 d) 单行、编辑
72、常规菜单是由( )、( )和菜单项组成。 a) JMenuItem、JCheckBoxMenuItem b) JButton、JRadioButton c) JPopupMenu、JMenuItem d) JMenuBar、JMenu
73、GUI组件的左上角坐标是( ), 一个坐标系由X坐标和( )坐标构成。 a) (1,1)、Y b) (0,1)、X c) (0,0)、Y d) (1,0)、X
74、Color类定义了颜色( )和颜色( ),用于控制Java程序中的颜色。 a) 常量、内容 b) 常量、方法 c) 方法、对象 d) 方法、数据
75、Swing组件是( )组件。AWT组件由于捆绑在本地平台上,所以称为( )组件。 A)重量级、轻量级 B)高级、低级 C)低级、高级 D)轻量级、重量级
76、JFrame和JApplet不是( )的子类,因此它们没有( )方法。 A)JComponent、paintComponent B)JComponent、paint
C)JApplet、paintComponent D)JApplet、paint
77、程序员将可能发生异常的代码放在( )块中,后面紧跟着一个或多个( )块。 a) catch、try b) try、catch c) try、exception d) exception、try
78、RandomAccessFile类的( )方法可用于从指定流读取整数。 a) readLine b) readByte c) readInteger d) readInt
79、ServerSocket构造函数的第( )个参数指定了可以等待连接到服务器的最多客户机数目。
a) 1 b) 3 c) 4 d) 2
80、FlowLayout布局管理器按照组件加入容器的次序从( )到( )排列组件。 a) 上、下 b) 右、左 c) 左、右 d) 前、后
四、程序阅读题
1、阅读下面的程序:
① public class Test{
② public static void main(String[] a){ ③ int i = Integer.parseInt(a[0]); ④ switch (i) {
⑤ case 1:System.out.println(\"Frist season\");break; ⑥ case 2:System.out.println(\"Second season\"); ⑦ case 3:System.out.println(\"3th season\");break; ⑧ case 4:System.out.println(\"Last season\"); ⑨ } ⑩ } ⑪ }
上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,用java Test 2 运行得到的输出结果是什么?
2、阅读下面的程序:
1) public class Test{
2) public static void main(String[ ] args) { 3) int x,y=2,i=0,j=0;
4) if(args.length<2) System.exit(-1); 5) x = Integer.parseInt(args[1]); 6) switch(x){
7) case 2:switch(y){
8) case 1:i++;break; 9) case 2:j++;break; 10) default:i++;j++;
11) }
12) case 3:i++;j++;break; 13) default:i++;j++; 14) }
15) System.out.println(\"i=\"+i); 16) System.out.println(\"j=\"+j); 17) } 18) }
上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,用java Test 1 2 3 运行得到的运行结果是什么?
3、写出下列程序代码的运行结果: public class Test {
public static void main(String args[]) { int x = 10, y = 0; for(int i=2;i case 0: System.out.print(0); case 1: System.out.print(1);break; case 2: System.out.print(2); case 3: System.out.print(3);break; default: System.out.print(4); } } } 4、写出下列程序代码的运行结果: class Person{ public Person(){ System.out.println(\"hi!\"); } public Person(String s){ this(); System.out.println(\"I am \"+s); } } public class Who extends Person{ public Who(){ this(\"I am Tony\"); } public Who(String s){ super(s); System.out.println(\"How do you do?\"); } public static void main(String args[]){ Who w = new Who(\"Tom\"); } } 5、阅读下面的程序,程序保存为Test.java: 1) public class Test 2) { 3) short mValue; 4) public static void main(String[] args) 5) { 6) int a = 32; 7) int b = 56; 8) Test os = new Test(a+b); 9) os.Show( ); 10) } 11) protected Test(short aValue) { mValue = aValue; } 12) public void Show( ) { System.out.println(mValue); } 13) } 上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么? 6、阅读下面的程序: class test { public static void main(String[] args) { int i = 1; int All = 0; for (;i<=10;i++) { if (i%6==0) break; if(i%2==0) {i=i+2;continue;} All = All + i; } System.out.println(All); } } 上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么? 6 7、阅读下面的程序: 1) public class test 2) { 3) public static void main(String argv[]) 4) { 5) Bird b = new Bird(); 6) b.Fly(3); 7) } 8) } 9) class Bird{ 10) static int Type = 2; 11) private void Fly(int an_Type){ 12) Type = an_Type; 13) System.out.println(\"Flying...\"+Type); 14) } 15) } 上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么? 8、写出下列程序代码的运行结果: public class Example{ String str=new String(\"Hello\"); char ch[]={'J','a','v', 'a'}; public static void main(String args[]){ Example ex=new Example(); ex.change(ex.str,ex.ch); System.out.println(ex.str); System.out.println(new String(ex.ch)); } public void change(String str,char ch[]){ str=\"World\"; ch[0]= 'Y'; } } 9、阅读下面的程序TestMonth.java: public class TestMonth{ public static void main(String []args){ try{ int month=Integer.parseInt(args[0]); if(month<0||month>12){ throw new ArithmeticException(\"没有\"+month+\"月份!\"); } System.out.println(\"您输入的月份为\"+month+\"月份\"); }catch(ArrayIndexOutOfBoundsException e){ System.out.println(\"请输入月份!\"); }catch(ArithmeticException e){ System.out.println(\"捕获ArithmeticException异常\"); System.out.println(e.toString()); } } } 已知ArrayIndexOutOfBoundsException和ArithmeticException都是java.lang.*下的异常类,编译TestMonth.java后,用java TestMonth 13的运行结果是什么? 10、写出下列程序代码的运行结果: class userException extends Exception{ userException(){} userException(String str){ super(str); } } class MyException { final static int ARRAY_MAX_LENGTH=10; void judge(int []a){ try{ if(a.length throw new userException(\"数组可能越界!\"); } }catch(userException e){ System.out.println(e.toString()); } finally{ System.out.println(\"退出返回!\"); } } public static void main(String agrs[]){ try{ int a[]=new int[10]; MyException myE=new MyException(); myE.judge(a); }catch(Exception e){ System.out.println(e.toString()); } } } 11、阅读下面代码片段,写出输出结果。(如果代码有错,请写出错误原因) public class ExceptionExample { public static void main(String[] args) { int a = 8; int b = 2; int c = 0; try{ c = a/(b-2); System.out.println(\"计算结果:\"+ c); }catch(ArithmeticException arithmeticException) { System.out.println(\"捕获了一个零除异常\"); }catch(Exception exception) { System.out.println(\"捕获了一个异常\"); } } } 12、阅读下面代码片段,找出其中的错误并改正其中的错误。 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ButtonTest extends JFrame { private JButton plainButton, fancyButton; public ButtonTest() { super( \"Testing Buttons\" ); Container container = getContentPane(); container.setLayout( new FlowLayout() ); plainButton = new JButton( \"Plain Button\" ); container.put( plainButton ); fancyButton = new JButton( \"Fancy Button\"); container.put( fancyButton ); ButtonHandler handler = new ButtonHandler(); fancyButton.addItemListener( handler ); plainButton.addItemListener( handler ); setSize( 275, 100 ); setVisible( true ); } public static void main( String[] args ) { ButtonTest application = new ButtonTest(); application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE ); } private class ButtonHandler implements ActionListener { public void itemStateChanged( ActionEvent event ) { JOptionPane.showMessageDialog( null, \"You pressed: \" + event.getActionCommand() ); } } } 13、写出下列程序代码的运行结果: 1) class MinusException extends Exception { 2) int number; 3) public MinusException (String msg, int i) { 4) super(msg); 5) this.number = i; 6) } 7) } 8) 9) class Salary { 10) private String name; 11) private int salary; 12) public Salary(String n, int s ) throws MinusException { 13) this.name=n; 14) if (s<0) throw new MinusException(\"工资不能为负!\15) this.salary=s; 16) } 17) public void print() { 18) System.out.println(name+\"的工资为\"+salary+\"元。\"); 19) } 20) } 21) 22) class TestSalary { 23) public static void main(String [] args) { 24) try { 25) Salary s1=new Salary(“张三”,1000); 26) s1.print( ); 27) Salary s2=new Salary(“李四”,-10); 28) s2.print( ); 29) } 30) catch(MinusException e) { 31) System.out.println(\"异常:\"+e.getMessage()); 32) } 33) } 34) } 14、仔细阅读下面的程序代码,若经编译和运行后,请写出打印结果。 1. public class Outer { 2. private int size = 1; 3. 4. public class Inner{ 5. private int size=2; 6. public void doStuff(int size){ 7. size++; 8. this.size++; 9. Outer.this.size++; 10. System.out.println(\"size in Inner.doStuff(): \"+size); 11. System.out.println(\"size of the Inner class: \"+this.size); 12. System.out.println(\"size of the Outer class: \"+Outer.this.size); 13. } 14. } 15. 16. Inner i=new Inner(); 17. 18. public void increaseSize(int s){ 19. i.doStuff(s); 20. } 21. 22. 23. public static void main(String[] a){ 24. Outer outer=new Outer(); 25. outer.increaseSize(10); 26. } 27. } 15、阅读下面的程序代码,写出程序运行的打印结果。 1. class ParentClass{ 2. int x=0; 3. int sum(int a,int b, int c){ 4. return a+b+c; 5. } 6. int sum(int a,int b){ 7. return a+b; 8. } 9. } 10. class ChildClass extends ParentClass{ 11. public ChildClass( ) {x=10;} 12. int sum(int a,int b){ 13. return a+b+1; 14. } 15. } 16. class Test{ 17. public static void main(String args[]){ 18. ParentClass p=new ChildClass(); 19. System.out.println(p.sum(5,5,5)); 20. System.out.println(p.sum(5,5)); 21. System.out.println(p.x); 22. } 23. } 16、阅读下面的程序,修改程序中错误的地方: 1) public class Test implements Runnable { 2) String str[]=new String[10]; 3) static { 4) for (int i = 0; i < str.length; i++) { 5) str[i]=i+”-”; 6) } 7) } 8) public void run() { 9) try { 10) for (int i = 0; i < str.length; i++) { 11) sleep(1000); 12) System.out.print(str[i]); 13) } 14) } catch (InterruptedException e) { 15) e.printStackTrace(); 16) } 17) } 18) public static void main(String args[]) { 19) Test t = new Test(); 20) t.run(); 21) } 22) } 17、仔细阅读下面的程序代码,若经编译和运行后,请写出打印结果。 1) class TestString{ 2) public void stringReplace (String text) { 3) text = text.replace('j' , 'i'); 4) text=text+\"C\"; 5) } 6) public void bufferReplace (StringBuffer text) { 7) text.setCharAt(0,'i'); 8) text = text.append(\"C\"); 9) } 10) public void change(char ch[]){ 11) ch[0]= 'Y'; 12) } 13) public static void main(String args[]){ 14) String str1=\"java\"; 15) StringBuffer str2=new StringBuffer(\"java\"); 16) char ch[]={'j','a','v','a'}; 17) TestString t=new TestString(); 18) t.change(ch); 19) t.stringReplace (str1); 20) t.bufferReplace (str2); 21) System.out.println(str1); 22) System.out.println(str2.toString()); 23) System.out.println (new String(ch)); 24) } 25) } 18、阅读下面的程序代码,判断18~27行(带划线部分)各语句编译是否通过,如果编译通过,直接写出该行的打印结果。 1. class TestString{ 2. public static String stringReplace (String text) { 3. text = text.replace('j' , 'i'); 4. text=text+\"C\"; 5. return text; 6. } 7. public static StringBuffer bufferReplace (StringBuffer text) { 8. text.setCharAt(0,'i'); 9. text = text.append(\"C\"); 10. return text; 11. } 12. public static void main(String args[]){ 13. String str1=\"java\"; 14. String str2=\"java\"; 15. String str3=\"j\"+\"a\"+\"v\"+\"a\"; 16. String str4=new String(\"java\"); 17. StringBuffer str5=new StringBuffer(\"java\"); 18. System.out.println(str1= =str2); 19. System.out.println(str2= =str3); 20. System.out.println(str2= =str4); 21. System.out.println(str4= =str5); 22. System.out.println(str3.equals(str4)); 23. System.out.println(str4.equals(str5)); 24. System.out.println (stringReplace (str1)); 25. System.out.println(bufferReplace (str5)); 26. System.out.println (str1); 27. System.out.println(str5); 28. } 29. } 19、阅读下面的程序,修改程序中错误的地方: 23) public class Test implements Runnable { 24) String str[]=new String[10]; 25) for (int i = 0; i < str.length(); i++) { 26) str[i]=i+”-”; 27) } 28) public void run() { 29) try { 30) for (int i = 0; i < str.length(); i++) { 31) sleep(1000); 32) System.out.print(str[i]); 33) } 34) } catch (InterruptedException e) { 35) e.printStackTrace(); 36) } 37) } 38) public static void main(String args[]) { 39) Test t = new Test(); 40) t.run(); 41) } 42) } 20、阅读下面的Applet程序AppletDemo.java: import java.applet.Applet; import java.awt.Graphics; public class AppletDemo extends Applet { StringBuffer buffer; public void init() { buffer = new StringBuffer(); addItem(\"Applet初始化…\"); } public void start() { addItem(\"Applet启动... \"); } public void stop() { addItem(\"Applet停止运行... \"); } public void destroy() { addItem(\"准备卸载...\"); } void addItem(String newWord) { System.out.println(newWord); buffer.append(newWord); repaint(); } public void paint(Graphics g) { g.drawString(buffer.toString(), 5, 15); } } 编译AppletDemo.java后,将AppletDemo.class嵌入HTML文件中,然后用AppletViewer命令打开该HTML文件,问: (1)小应用程序在加载阶段,在屏幕上打印结果是什么? (2)关闭这个小应用程序时,在屏幕上打印结果是什么? 21、阅读下面的程序: 1) abstract class Base{ 2) abstract public void myfunc(); 3) public void another(){ 4) System.out.println(\"Another method\"); 5) } 6) } 7) public class Abs extends Base{ 8) public static void main(String argv[]){ 9) Base b = new Abs(); 10) b.another(); 11) } 12) public void myfunc(){ 13) System.out.println(\"My Func\"); 14) } 15) public void another(){ 16) myfunc(); 17) } 18) } 以上程序经编译后,运行结果是什么? 22、阅读下面程序代码,写出程序运行的输出结果。 1) class TestException{ 2) public static void main(String []args){ 3) try{ 4) callMethod(); 5) }catch(Exception e){ 6) System.out.print('a'); 7) } 8) System.out.println('b'); 9) } 10) static void createException(){ 11) throw new ArrayIndexOutOfBoundsException(); 12) } 13) static void callMethod(){ 14) try{ 15) createException(); 16) System.out.print('c'); 17) }catch(ArrayIndexOutOfBoundsException e){ 18) System.out.print('d'); 19) } 20) finally{ 21) System.out.print('e'); 22) } 23) System.out.print('f'); 24) } 25) } 23、阅读下面的程序: 1) class Super{ 2) public int i=0; 3) public Super(){ 4) i=1; 5) } 6) } 7) public class Sub extends Super{ 8) public Sub(){ 9) i=2; 10) } 11) public static void main(String args[]){ 12) Sub s=new Sub(); 13) System.out.println(s.i); 14) } 15) } 上面的程序经编译后,运行结果是什么? 24、阅读下面的程序,程序保存为Test.java: 1) public class Test { 2) public static void main(String[ ] args) { 3) int index=0; 4) while (index<=100) { 5) index+=10; 6) if (index==40) 7) break; 8) System.out.println(\"The index is \"+index); 9) } 10) } 11) } 上面的程序经编译,运行后输出的结果是什么? 25、阅读下面的程序: 1) class ValHold{ 2) public int i = 10; 3) } 4) public class ObParm{ 5) public static void main(String argv[]){ 6) ObParm o = new ObParm(); 7) o.amethod(); 8) } 9) public void amethod(){ 10) int i = 99; 11) ValHold v = new ValHold(); 12) v.i = 30; 13) another(v,i); 14) System.out.print(v.i); 15) } 16) public void another(ValHold v, int i){ 17) i = 0; 18) v.i = 20; 19) ValHold vh = new ValHold(); 20) v = vh; 21) System.out.print(v.i); 22) System.out.print(i); 23) } 24) } 上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么? 26、仔细阅读下面的程序代码,若经编译和运行后,请写出打印结果。 class StaticTest { static int x = 1; int y; StaticTest() { y++; } public static void main(String args[]) { StaticTest st = new StaticTest(); System.out.println(\"x=\" + x); System.out.println(\"st.y=\" + st.y); st = new StaticTest(); System.out.println(\"x=\" + x); System.out.println(\"st.y=\" + st.y); } static { x++; } } 27、阅读下面的程序Test.java: 1) import java.io.*; 2) public class Test{ 3) public static void main(String argv[]){ 4) Test t = new Test(); 5) System.out.println(t.fliton()); 6) } 7) public int fliton(){ 8) try{ 9) FileInputStream din = new FileInputStream(\"test.txt\"); 10) din.read(); 11) }catch(IOException ioe){ 12) System.out.println(\"one\"); 13) return -1; 14) } 15) finally{ 16) System.out.println(\"two\"); 17) } 18) return 0; 19) } 20) } 如果文件test.txt与Test.java在同一个目录下,test.txt中仅有一行字符串“hello world!”,上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么? 28、仔细阅读下面的程序代码,写出程序运行的输出结果。 class Test1 { private int i = 1; public class Test11{ private int i = 2; public void methodI(int i) { i++; this.i++; Test1.this.i++; System.out.println(\"i of methodI():\"+i); System.out.println(\"i of Test11:\"+this.i); System.out.println(\"i of Test1:\"+Test1.this.i); } } Test11 ic=new Test11(); public void increaseI(int k) { ic.methodI(k); } public static void main(String [] args) { Test1 oc=new Test1(); oc.increaseI(20); } } 29、仔细阅读下面的程序代码,若经编译和运行后,请写出打印结果。 public class Test { public static void main(String args[]){ int [ ] a = {10, 20, 30, 40, 50}; int s =0; for (int c: a) s +=c; System.out.print(s ); } } 30、仔细阅读下面的程序代码,若经编译和运行后,请写出打印结果。 class myException extends Exception{} public class Sample{ public void foo(){ try{ System.out.print(1); bar(); System.out.print(2); }catch(myException e){ System.out.print(3); } finally{ System.out.print(4); } } public void bar() throws myException{ throw new myException(); } public static void main(String args[]){ Sample s=new Sample(); s.foo(); } } 31、请简要画出编译运行下面程序的界面效果图。 import java.awt.*; import javax.swing.*; public class ColorSelect extends JFrame { private JButton ok, cancel; private JCheckBox background, foreground; private JComboBox colorList; private JPanel panel, panel2; private Container c; public ColorSelect(){ super( \"ColorSelect\" ); c=getContentPane(); c.setLayout(new BorderLayout()); colorList = new JComboBox(); colorList.addItem( \"RED\" ); c.add( colorList, BorderLayout.NORTH ); panel = new JPanel(); background = new JCheckBox( \"Background\" ); foreground = new JCheckBox( \"Foreground\" ); panel.add( background ); panel.add( foreground ); c.add( panel, BorderLayout.CENTER ); ok = new JButton( \"Ok\" ); cancel = new JButton( \"Cancel\" ); panel2 = new JPanel(); panel2.add( ok ); panel2.add( cancel ); c.add( panel2, BorderLayout.SOUTH ); setSize( 300, 125 ); setVisible(true); } public static void main ( String args[] ){ ColorSelect app = new ColorSelect(); app.setDefaultCloseOperation( EXIT_ON_CLOSE ); } } 32、仔细阅读下面的程序,简单的画出GUI的界面 import java.awt.*; public class Test extends Frame { public Test() { super(\"test\"); setLayout(new BorderLayout()); add(new Button(\"one\"),BorderLayout.NORTH); add(new Button(\"two\"),BorderLayout.SOUTH); add(new Button(\"three\"),BorderLayout.WEST); add(new Button(\"four\"),BorderLayout.EAST); add(new Button(\"five\"),BorderLayout.CENTER); } public static void main(String args[]){ Test t=new Test(); t.pack(); t.show(); } } 33、仔细阅读下面的程序,写出程序的执行顺序(写出编号): public class UsingExceptions { public static void main( String args[] ){ try{ method1(); // 1 }catch(Exception e){ System.err.println(e.getMessage()); // 2 } finally{ System.out.println(\"Program is end!\"); // 3 } } public static void method1() throws Exception { method2(); //4 } public static void method2() throws Exception { method3(); //5 } public static void method3() throws Exception{ throw new Exception( \"Exception thrown in method3\" ); //6 } } 34、阅读下面的程序: public class Timer extends Thread{ int time=0; public Timer(int time) { this.time=time; } public void run(){ try{ for(int i=0;i