文档库 最新最全的文档下载
当前位置:文档库 › 厦门理工期末JAVA复习题

厦门理工期末JAVA复习题

Java程序设计总复习

一、单选题

1. 设在Java源程序文件“MyClass.java”中只含有一个类,而且这个类能够被位于一个庞

大的软件系统中的所有Java类访问到,那么下面哪些声明可能符合要求:BC A.private class MyClass extends Object

B.public class myclass extends Object

C.public class MyClass

D. protected class MyClass extends Object

2. 以下哪一项会产生编译时错误? D

A.int a=5; B.double b=4.0;

C.long c=2; D.float d=1.0;

3. 关于以下程序,结论正确的是D

class My{

public final void method(){

System.out.print ("1");

}

}

public class You extends My{

public final void method(){

System.out.print ("2");

}

public static void main(String s[]){

You m=new You();

m.method();

}

}

A.程序可以通过编译,但无法正常运行

B.程序无法通过编译,因为方法调用有问题

C.程序可以通过编译并正常运行,输出“2”

D.程序无法通过编译,因为具有final属性的方法不能被重写(覆盖)

4. 下面哪条语句有可能改变容器对象ct的布局方式?A

A.c t.setLayout(new FlowLayout())

B.ct.setLayout(FlowLayout)

C.ct.setFlowLayout()

D.ct.set(FlowLayout)

5. 下面哪种方式最有可能在容器底端依次摆放三个组件? D

A.将容器的布局管理器设置为BorderLayout方式,并将三个组件依次加入到容器的“BorderLayout.SOUTH”位置。

B.将容器的布局管理器设置为GridLayout方式,并将三个组件依次加入到容器中。C.将容器的布局管理器设置为FlowLayout方式,并将三个组件依次加入到容器中。

D.将容器的布局管理器设置为BorderLayout方式,并在容器的“BorderLayout.SOUTH”位置上添加另一个容器,新容器的布局管理器设置为FlowLayout方式,然后将三个组件依次加入到新容器中。

6.在编写Java Applet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上( )语句。D

A. import java.awt.* ;

B. import java.applet.* ;

C. import java.io.* ;

D.import java.awt.event.* ;

7.容器Panel和Applet缺省使用的布局编辑策略是B

A. BorderLayout

B. FlowLayout

C. GridLayout

D. CardLayout

8.在Java Applet程序用户自定义的Applet子类中,一般需要重写父类的( )方法来完成一些画图操作。D

A. start( )

B. stop( )

C. init( )

D. paint( )

9.下列不属于Java关键字的是A

A. event

B. final

C. if

D. for

10.关于以下代码所画图形的说明,正确的是B

1. g.setColor(Color.black);

2. g.drawLine(10,10,10,50);

3. g.setColor(Color.red);

4. g.drawRect(100,100,150,150);

A. 一条40像素长的垂直红线,一个边长为150像素的红色四方形

B.一条40像素长的垂直黑线,一个边长为150像素的红色四方形

C. 一条50像素长的垂直黑线,一个边长为150像素的红色四方形

D. 一条50像素长的垂直红线,一个边长为150像素的红色四方形

11.以下声明常量的语句不正确的是B

A. final double PI=3.1415;

B. double PI=3.1415;

C. static final double PI=3.1415;

D. public static final double PI=3.1415;

12.通过以下init方法的代码,可以使得applet C

public void init( ){

SetLayout(new BorderLayout());

Add(“East”,new Button(“hello”)); }

A.不会显示任何组件

B.出现位于applet左边的一个按钮

C.出现位于applet右边的一个按钮

D.出现充满整个applet的一个按钮

13.main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的 B

A. public static void main()

B. public static void main(String[ ] args)

C. public static int main(String[ ] args)

D. public void main(String args[ ])

14.Applet缺省的布局管理器为 D

A.BorderLayout B.GridLayout

C.CardLayout D.FlowLayout

15.编译以下代码,将出现什么情况? D

class MyString extends String {

}

A. 可以成功编译

B. 无法编译,因为没有main方法

C. 无法编译,因为String是抽象类

D.无法编译,因为String是final类

16.JDK中提供的文档生成器是 B

A. javap.exe

B.javadoc.exe

C. java.exe

D. javac.exe

17.下列关于继承的叙述正确的是 D

A. 在java中一个类只能实现一个接口

B. 在java中一个类不能同时继承一个类和实现一个接口

C. 在java中允许多重继承

D. java的单一继承使代码更可靠

18.不允许作为类及类成员的访问控制符的是 C

A. public

B. private

C. static

D. protected

19.已经声明了类“public class Th implements Runnable”,下面哪条

语句可以启动该类型的线程? A

A. Thread t=new Thread(new Th()); t.start();

B. new Th.start();

C. Th t=new Th(); t.start();

D. Th t=new Th(); t.run();

20.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为 A

A. static void method( )

B. public void method( )

C. final void method( )

D. abstract void method( )

21. 以下哪个方法用于定义线程的执行体? C

A. start( )

B.init( )

C.run( )

D. main( )

22.假设有一个public类Myclass,其中定义了如下的一个main方法 D

public static void main(String a[])

{ System.out.println(a[1]+a[0]);}

假设你已经编译成功该类,并以以下的方式运行该程序

java Myclass My You

将会发生什么?

A.编译通过并输出 My

B.运行时错误:main的定义不正确

C.编译通过并输出 MyYou

D.编译通过并输出YouMy

23. 已经声明了类“public class Th extends Thread”,下面哪条语句可以启动该类型的线程? D

A. Th t=new Th(); t.run();

B. new Th.start()

C. new Th.run();

D. Th t=new Th(); t.start();

24. 以下哪一个类定义了合法的抽象类? D

A. class Animal { abstract void growl(); }

B. abstract Animal {abstract void growl();}

C. class abstract Animal {abstract void growl();}

D. abstract class Animal {abstract void growl();}

25.Java中整数类型包括 A

A.int,short,long和byte

B.int,byte和char

C.int,short,byte和char

D.int,short,long和char

26.下面可作为变量名的是 B

A. try

B. $300

C. continue

D. 24Hour

27. 假设B是A的一个子类,C是B的一个子类。假定在A中定义了2个方法:

public int mary(int anInt)

public char bob (int anInt)

在B中定义了2个方法:

public char join (int anInt)

public int alice (boolean aBool)

在C中定义了1个方法:

public boolean ted ( )

如果一个对象是类C的一个实例,可以给该对象传递多少个不同的消息? C

A.3

B.4

C.5

D. 6

28.要求设计一个类,它拥有一个特殊的成员域,该成员域必须能被这个类的子类访问到,但是不能被不在同一个包中的其他类访问到,则下面那些设计可以满足上述要求? C

A.该成员域的封装属性设置为public

B. private

C. protected

D. 该成员域不需要特殊的封装属性

29.要使某一类能被同一个包的其他类及其子类访问,但不能被这个包以外的类访问,可以 B

A. 让这个类不使用任何关键字;

B.使用protected关键字;

C. 使用private关键字;

D. 使用final关键字;

30.e为MouseEvent对象,则以下哪条表达式可以获得鼠标在程序运行窗口中的横坐标数值? B

A. e.getSource()

B. e.getX()

C. e.x

D. e.getActionCommand()

31. 下面不会发生编译错误的是 B

A. char a[10]=new float[5];

B. double []b=new float[10];

C. int c[10]=null;

D. int [10]d;

32.通过以下init方法的代码,可以使得applet C

public void init( ){

setLayout(new BorderLayout());

add(new Button(“hello”)); }

A. 不会显示任何组件

B. 出现位于applet左边的一个按钮

C.出现充满整个applet的一个按钮

D. 出现位于applet右边的一个按钮

33. 已知类InterruptedIOException是类IOException的子类,下面各个方法均有可能会抛出InterruptedIOException类型的异常,则下面哪些方法的头部声明是不合法的(即不会引起编译错误)? B

A.public void method() throws Exception

B.public void method() throw Exception

C.public void method() throws IOException

D.public void method() throws InterruptedIOException

34. 关于以下程序,结论正确的是 A

public class MyClass extends Runnable{

public void run(){

System.out.print("Java");

}

public static void main(String s[]){

Thread t=new Thread(new MyClass());

t.start();

}

}

A.上面程序可以通过编译,并且在运行时输出“Java”

B.上面程序可以通过编译,但是在运行时什么也不输出

C.上面程序无法通过编译

D.上面程序可以通过编译,并且在运行时不停地输出“Java”,直到程序被强行中断

35. 编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为 B

A. .java

B. .class

C. .html

D. .exe

36.在编写Java Applet程序时,一般需要在程序的开头写上( )语句。

A.import java.awt.* ;

B.import java.applet.* ;

C.import java.io.* ;

D.import java.awt.event.* ;

37.Applet的方法()可以返回小应用程序所在的URL地址。 B

A. init()

B. getCodeBase()

C. repaint()

D. getDocumentBase()

38.Java为移动设备提供的平台是 A

A. J2ME

B. J2SE

C. J2EE

D. JDK4.0

39.下面哪些结论是正确的? BD

A. 如果多个事件监听器被注册到一个组件上,则只有最后一个事件监听器会起作用

B.如果多个事件监听器被注册到一个组件上,则这些事件监听器一般都会起作用,但各个事件的处理顺序不确定

C. 如果多个事件监听器被注册到一个组件上,则会引起编译错误

D.一个事件监听器可以被注册到多个组件上

40.以下程序,结论正确的是()。 D

public class MyClass implements Runnable{

public void run(){

System.out.print("World");

}

public static void main(String s[]){

Thread t=new Thread(new MyClass ());

t.start();

}

}

A. 上面程序可以通过编译,但是在运行时什么也不输出

B. 上面程序无法通过编译

C. 上面程序可以通过编译,并且在运行时不停地输出“World”,直到程序被强行中断

D.上面程序可以通过编译,并且在运行时输出“World”

41. 下面哪些选项的语句置于指定的位置时,会使得程序在控制台窗口输出鼠标在程序运行窗口中的横坐标数值?B

import java.awt.*;

import java.awt.event.*;

Public class Class1 implements MouseAdapter{

Public static void main(String args[]){

Frame f=new Frame();

f.setSize(100,100);

f.setVisible(true);}

public void mouseClicked(MouseEvent e)

{ //选项插入的位置 }

}

A.System.out.println(e.x)

B.System.out.println(e.getX())

C.System.out.println(e.getActionCommand())

D.System.out.println(e.getSource())

42.Applet的方法()可以返回小应用程序所在的网页文件的URL地址。D

A. init()

B. getCodeBase()

C. repaint()

D. getDocumentBase()

43. 下面不会发生编译错误的是( )。D

A. float a[10]=new float[5];

B. float [10]b;

C. float c[10]=null;

D. float []d=new float[10];

44. 小应用程序一般不能____? D

A. 在网页上显示一幅图片

B. 在网页上播放音乐

C. 在网页上处理键盘事件

D.将网页内容写到主机硬盘上

45. 以下定义了合法的最终类的是( )。C

A.class final Animal { }

B.final Animal { }

C.final class Animal { }

D.class Animal { }

46. 下面哪些结论是不正确的?C

A. 在同一个类中的所有线程都会同时结束

B. Daemon线程是运行在后台的线程,它并不会妨碍程序结束,即当程序中所有非Daemon 线程结束之后,程序也就结束了。

C.当对一个线程调用start方法之后,该线程马上就进入运行态

D. 线程可能会在具有修饰词synchronized的程序块入口处堵塞

二、多选题

1.下面哪几个函数是public void example(){...}的重载函数? AD

A. public void example( int m){...}

B. public int example(){...}

C. public void example2(){...}

D. public int example ( int m, float f){...}

2.通过调用 new List(4,false)创建一个列表,关于该列表的几个说法中正确的是。ABD A.该列表可能有垂直滚动条 B.该列表支持4个可见选项

C.该列表有4个选项 D.该列表不支持复选

3.面向对象的特点主要概括为()。ACD

A.继承性

B. 可扩展性

C.封装性

D. 多态性

4. 哪些有编译警告或错误?ABD

A.float f=1.3;

B.char c=”a”;

C.byte b=25;

D.boolean d=null;

5. 设容器对象c的布局管理器是BorderLayout,则下面哪些语句可以在c的“Center”位置上添加一个按钮组件b?()BCD

A. b.add(c, BorderLayout.CENTER)

B. c.add(b, BorderLayout.CENTER)

C. c.add(BorderLayout.CENTER,b)

D. c.add(b)

6.在如下源代码文件Test.java中, 哪个是正确的类定义? BD

A. public class test {

public int x = 0;

public test(int x)

{

this.x = x;

}

}

B. public class Test{

public int x=0;

public Test(int x) {

this.x = x;

}

}

C. public class Test extends T1, T2 {

public int x = 0;

public Test (int x) {

this.x = x;

}

}

D. public class Test extends T1{

public int x=0;

public Test(int x){

this.x = x;

}

}

7.下面哪些方法与applet的显示有关? ACD

A. update()

B. draw()

C. repaint()

D. paint()

8. 下面哪个方法被调用后可以改变原有对象? C

A. String的toUpperCase()

B. String的replace()

C. StringBuffer的append()

D. StringBuffer的capacity()

9. 关于小应用程序执行过程的生命周期,下面哪些结论是正确的? ACD

A.当关闭小应用程序所在的网页时,首先要调用的成员方法是stop()。

B. 当小应用程序从运行态进入停止态时,首先要调用的成员方法是pause()。

C.当小应用程序从停止态进入运行态时,首先要调用的成员方法是start()。

D.首次加载小程序时,首先要调用的成员方法是init()。

10.下面哪些不是Java中的容器? AB

A. List

B. Scrollbar(滚动条)

C. Applet

D. Dialog

11.下面哪些方法是小应用程序类Applet的生命周期方法? ABD

A. start()

B. init()

C. paint() //绘图方法,属于关键方法之一

D. destroy()

12.以下声明的类中哪些不是线程类? AC

A. public class My extends Applet

B. public class My implements Runnable

C. public class My implements ActionListener

D. public class My extends Thread

13.已知如下定义:String s = "story";下面哪个表达式是合法的? AD A. s += "books"; B. char c = s[1];

C. int len = s.length;

D. String t = s.toLowerCase(); 14.下列方法中,属于WindowListener接口的是。 ABCD

A. windowOpened()

B. windowClosing()

C. windowActivated()

D. windowDeactivated()

15.下面哪个赋值语句是合法的? BCD

A. float a = 2.0

B. double b = 2.0

C. int c = 2

D. long d = 2

16.下面哪些方法是小应用程序类Applet的关键方法? BCD

A. draw()

B. init()

C. paint()

D. destroy()

17.以下()和()是分别用来运行Java applicaiton和Java applet 的命令。 AB

A. java

B. appletviewer

C. jdb

D. javac

18.下面哪些事件监听器接口在Java中有事件适配器? ABD

A. MouseListener

B. KeyListener

C. ActionListener

D. WindowListener

19. 假设“s=”JavaWorl””,则下面语句返回“orl”的是? ABC

A. s.substring(5)

B. s.substring(5,8)

C. s.substring(5,s.length())

D. s.substring(5,7)

20. 下面哪些类型的实例化对象可以通过throw语句抛出? AD

A. Exception

B.Vector

C. Event

D.IOException

21. 下面哪些是Java的关键字,哪些不是?

sizeof, abstract, null, String

For, for, FOR, true

null, false length, instanceof

22. 下列关于继承的叙述错误的是。 ABC

A.在java中允许多重继承

B.在java中一个类只能实现一个接口

C.在java中一个类不能同时继承一个类和实现一个接口

D. java的单一继承使代码更可靠

23. 下列关于Frame类的说法正确的是。ABD

A. Frame的默认布局管理器为BorderLayout

B. Frame对象显示的效果是一个窗口

C. Frame被默认初始化为可见

D. Frame是Window类的子类

24. 以下哪个会产生编译错误

float a=2.0;

double b=2.0;

ing c=2;

long d=2;

25. 哪些选项为真?

int i=1;

float f=1.0f;

double d=1.0;

Boolean b=true;

a,i= =f

b. i= =d;

c. f= =d;

d. 2.1>i= =b;

26.下面声明的哪些类可以用来响应窗口事件? AB

A. class A extends WindowAdapter

B. class B implements WindowListener

C. class A extends ActionAdapter

D. class B implements ActionListener

27.设容器对象c的布局管理器是BorderLayout,则下面哪些语句可以在c的“South”位置上添加一个按钮组件b? BCD

A. b.add(c, BorderLayout.SOUTH)

B. c.add(b, BorderLayout.SOUTH)

C. c.add(BorderLayout.SOUTH,b)

D. c.add(“South”,b)

28.以下哪些组件不是容器? AD

A. TextArea

B. ScrollPane //滚动面板

C. Applet

D. list

29. 用substring( )方法写出从s="Hjava"中取出字符串"va"的代码,以下哪些是正确的表达式? BCD

A. s.substring(2,5)

B. s.substring(3)

C. s.substring(3,s.length())

D. s.substring(3,5)

30. 以下哪些Graphics方法可以画一个多边形? CD

A. drawOval()

B. fillOval()

C. drawPolygon()

D. fillPolygon()

三、判断题

1.标签(Label)内显示的内容一般是不可更改的,既标签一旦创建并设置内容,其内容便不可以改变。×

2.菜单项可以看作另一种形式的按钮。当用鼠标左键单击菜单项时,可以触发菜单命令。√3.在Java中一个类不能同时继承一个类和实现一个接口。×

4.Java中数组的元素可以是简单数据类型的量,也可以是某一类的对象。√

5.Applet的默认布局管理器是BorderLayout;Frame的默认布局管理器是FlowLayout。×

6.接口ActionListener所对应的事件适配器是ActionAdapter. ×

7. 构造方法是类的一种特殊方法,它的方法名必须与类名相同。√

8.在一个Java源程序文件中,可以有多个public类。×

9.Java语言含有指针。×

10.Java程序编译之后所生成文件的扩展名为“.java”。×

11.假设有一个Java源程序文件,它只定义了一个具有public属性的类Hello,那么编译该文件的命令是”javac Hello”。×

12. BorderLayout使用"东","西","南","北","居中"来指定组件的位置。√

13.构造方法一般不允许返回任何值,但也不允许标注void。√

14. 要启动一个线程需要调用Thread的方法start.在运行完start之后,该线程就处于运行态了。×

15. 当执行到同步语句“synchronized”的语句块时,引用类型表示式所指向的对象就会被锁住,不允许其他线程对其进行访问,即当前的线程独占该对象。√

16. 接口ItemListener所对应的事件适配器是ItemAdapter。×

17. 抽象类可以实例化,但不能被继承;最终类不能实例化,可以被继承。√

18. Java语言不含有指针与析构方法,所以Java程序只有在结束运行时,才能释放所占用的内存。×

19. Java语言是不区分大小写的。×

20. Java程序源文件的扩展名为“.jar”。×

21.Frame是顶层容器,要使得Frame对象可见可以调用方法setVisible(true)。√22.以//开始的是多行注释语句。×

23. 编写小应用程序实际上就是要实现类Applet的子类,该子类必须是public类型,否则将在运行时出现异常。√

24 . Applet的方法getCodeBase()返回小应用程序所在的URL地址,方法getDocumentBase()返回的是小应用程序所嵌入的HTML文件的URL地址。√

25. 构造方法的返回类型只能是void型。×

26. Java语言的标识符是不区分大小写的。×

27. 在Java语言中,每个ASCII码英文字符占用8个二进制位,而每个中文汉字字符则占用16个二进制位。×

28. 在Java中一个类只能实现一个接口。×

29. 在同一个类中,允许存在具有相同方法名和相同参数列表的方法,只要这些方法的返回类型不相同。×

30.对于数组int [][]t={{1,2,3},{4,5,6}};来说,t.length等于3,t[0].length等于3. ×

31.Vector和Stack对象是一种动态数组,其中可以放入任何类型的数据。√

//jdk1.5.0以后的Vector和Stack中可以放入任何类型的数据了。

32.抽象方法不能含有方法体,并且必须在抽象类中。√

33.Math类中的方法round()的功能是返回与参数最近的整数即:四舍五入后取整。√

34.int t=640 和 short s=640在语法上都正确。×

35.BorderLayout以由上到下的方式从左到右排列组件。×

36.Java数组中可以放入不同类型的数据。×

37.boolean t=1;×

38.b=9a+2;×

39.Java程序分成应用程序和小程序两类,一个Java程序有可能既是应用程序,又是小程序。√

40.Applet生命周期是指从Applet下载到浏览器开始,到用户退出浏览器终止Applet运行的过程。√

https://www.wendangku.net/doc/9e12462864.html,ng包是Java程序自动导入的,因此可以直接用其中的类和接口;位于类继承关系层次结构的根部的类Object就在此包中。√

42.有时候为了避免引起混淆,构造方法名可以不与所属的类名同名。×

43.以/*开始,*/结束的是单行注释。×

五、写出下列程序的运行结果

1. class J{

public static void main(String args[]){

String a=new String("java");

StringBuffer b=new StringBuffer("java");

a=a.replace('j','i');

b=b.append("c");;

System.out.println(a+b);

}}

2.class A {

A( ) {

System.out.println("A");

}}

class B extends A {

B( ) {

System.out.println("B");

}}

public class C {

public static void main (String args[]) { B b = new B();

}}

3. class J{

public static String s;

public static void main(String args[]){

String s1="1234";

String s2=s1;

s2+="5678";

s1.concat("5678");

System.out.println(s1+s2+s);

}

}

4. class MyClass

{

public static void main(String args[]){

String s="Hello";

StringBuffer su=new StringBuffer(s);

int i=su.length();

for(int j=i-1;j>=0;j--) //j=i? j=i-2? su.append(s.charAt(j));

System.out.println("su="+su);

}

}

5. public class Class1{

public static int method(int x){

int j=1;

switch(x){

case 1: j++;//如果都加上break呢?

case 2:j++;

case 3:j++;

case 4:j++;

case 5:j++;

default: j++;

}

return j+x;

}

public static void main(String a[]){

System.out.println("value="+method(4));

}

}

6. public class Try{

static void Proc(int sel){

try{

if (sel==0)

System.out.println("no exception");

else if (sel==1)

{ int iArray[]=new int[3]; iArray[4]=3; } }

catch(ArrayIndexOutOfBoundsException e){

System.out.println("1"); }

finally {System.out.println("finally"); }

}

public static void main(String args[]){

Proc(0);

Proc(1);

} }

7. class A {

int a;

A(int new_value) {

a = new_value;

}

}

class B extends A {

int b, c;

B( ){ this(2, 3) ; }

B(int new_b, int new_c) {

super(1);

b = new_b;

c = new_c;

}

}

class Demo {

public static void main(String[] args) {

B obj_b = new B();

System.out.println("a= "+obj_b.a + ";b= "+obj_b.b); }

}

8. class Test{

public static void main(String args[]){

int n;

for (n=1; n<=10; n++)

{

if (n>5)

continue; //break?

}

System.out.print(n);

n=0;

while (n<=0)

{

System.out.print(" "+n+" ");

n++;

}

System.out.print(n);

}

}

9. class J{

public static void main(String args[]){

String [] s={"1","2"};

swap(s[0],s[1]);

System.out.println(s[0]+s[1]);}

static void swap(String s0,String s1){

String s=s0;

s0=s1;

s1=s;

}

}

10. public class My{

public static void main(String args[]){

try {

float a[]={1,2,3};

a[3]=0;

}

catch(Exception e){System.out.print("0");}

finally{System.out.print("1");}

System.out.println("2");

}

}

教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。

相关文档