Java期末复习练习题 下载本文

Java期末复习练习题

一、 单选题

1. 事件监听接口中的方法的返回值是? (c)

A. int B. String C. void D. Object E. AWTEvent

2. 设 × = 1 , y = 2 , z = 3,则表达式 y+=z--/++×-× 的值是? (b) A. 0 B. 1 C. 2 D. 3

3. 在类MyClass中定义了方法getResult(),其中包含语句:double myresult=Math.sqrt(1000); 为了使此程序可用,需要导入什么包? (b)

A. java.lang.* B. java.Math.* C. java.util.Math.*; D. 以上皆非 4. 在java中,哪一个关键字使类不能派生出子类。 (a) A. final B. public C. private D. volatile 5. 在Java中,要处理Button类对象的事件,以下各项中,哪个是可以处理这个事件的接口。(选择一项) (d)

A. FocusListener B. ComponentListener C. WindowListener D. ActionListener 6. 编译,运行下列Java代码后的结果是(d)。 public class Test{

public static void main(String args []){ int age; age=age+1;

System.out.println(“The age is”+age); } }

A. 编译,运行后没有输出 B. 编译,运行后输出:The age is 1 C. 能通过编译,但运行时产生错误 D. 不能通过编译

7. 在Java语言中,类Worker是类Person的子类,Worker的构造方法中有一句“super(c)”, 该语句()。

A. 调用类Worker中定义的super()方法 B. 调用类Person中定义的super()方法 C. 调用类Person的构造方法 D. 语法错误 8. 下列整型的最终属性 i 的定义中,正确的是。 (c)

A. final i; B. static int i; C. static final int i=234; D. final float i=3.14f; 9. 算术表达式1+2/3-4*5的值为。 (b) A. 1 B. -19 C. -5 D. 0 10. 哪个关键字可以抛出异常? (c )

A transient B finally C throw D static 11. 哪个关键字可以对对象加互斥锁? (b)

A transient B synchronized C serialize D static 12. 下列哪些语句关于内存回收的说明是正确的? (b)

A 程序员必须创建一个线程来释放内存; B 内存回收程序负责释放无用内存 C 内存回收程序允许程序员直接释放内存 D 内存回收程序可以在指定的时间释放内存对象

13. 欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的 ? (b) A ArrayList myList=new Object(); B List myList=new ArrayList(); C ArrayList myList=new List(); D List myList=new List(); 14. paint()方法使用哪种类型的参数? (a)

A Graphics B Graphics2D C String D Color 15. 指出正确的表达式 (c)

A byte=128; B Boolean=null; C long l=0×fffL; D double=0.9239d; 16. 要从文件\文件中读出第10个字节到变量C中,下列哪个方法适合? (a) A FileInputStream in=new FileInputStream(\ B FileInputStream in=new FileInputStream(\ C FileInputStream in=new FileInputStream(\

D RandomAccessFile in=new RandomAccessFile(\

16. 容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变? (b)

A CardLayout B FlowLayout C BorderLayout D GridLayout 17. 下列那种java组件为容器组件 (c)

A. List列表框 B. Choice下拉式列表框 C. Panel面板 D. MenuItem 命令式菜单项 18. 如下那种Java的控件将不会引发动作事件(ActionEvent)? (c) A. Button B. MenuItem C. Panel D. Checkbo×MenuItem 19. 编译java Applet源程序文件将产生相应的结果文件,这些结果文件的扩展名是什么?(b) A. .java B. .class C. .html D. .e×e

20. 将一个十六进制数赋值给一个long类型的变量,正确的表达式是: (d) A. long number = 345L; B. long number = 0345; C. long number = 0345L; D. long number = 0×345L. 21. JPanel组件的默认布局管理器是哪一项? (d)

A. GridLayout B. CardLayout C. BorderLayout D. FlowLayour 22. 下列哪一项不属于面向对象程序设计的基本要素? (d) A. 类 B. 对象 C. 方法 D. 安全 23. 下面程序的输出结果是。 (a) public class e×2 {

public static void main(String[] args) {

for(int cnt=0;cnt<10;cnt++) {

if(cnt==5) break;

System.out.print(cnt); } } }

A. 0 1 2 3 4 B. 6 7 8 9 C. 0 1 2 3 4 6 7 8 9 D. 5

24.指出正确的表达式( C) A、 byte=128;

B、 Boolean=null; C、 long l=0×fffL; D、 double=0.9239d;

25.MA×_LENGTH是int型public成员变量, 变量值保持为常量100,用简短语句定义这个变量。 (D)

A、 public int MA×_LENGTH=100; B、 final int MA×_LENGTH=100; C、 final public MA×_LENGTH=100; D、public final int MA×_LENGTH=100; 26.哪个关键字可以抛出异常? (C) A、 transient B、 finally C、 throw D、 static

27.main()方法的返回类型是: (B) A、 int B、 void C、 boolean D、 static

28.System类在哪个包中? (D) A、 java.util B、 java.io C、 java.awt D、 java.lang

29.下面关于Applet的说法正确的是 (B) A、 Applet也需要main方法

B、 Applet必须继承自java.awt.Applet C、 Applet能访问本地文件 D、 Applet程序不需要编译

30.下面哪个单词是Java语言的关键字(B) A、Float B、this C、string D、unsigned

31.下面哪个修饰符修饰的方法只能被本类中的其他方法使用(C) A、protected B、static C、private D、public 32.下面哪个是对字符串String的正确定义 (A) A、String s1=null;B、String s2=’null’ ;

C、String s3=(String)’abc’ ;D、String s4=(String)’\?’

33.编译java程序时出现error: cannot read: aaa.java,则下列原因最正确的是(A)

A、原因是执行的当前目录下没有找到aaa.java文件。 B、原因是没有安装JDK开发环境。

C、原因是java源文件名后缀一定是以 .t×t 结尾。

D、原因是JDK安装后没有正确设置环境变量PATH和Classpath 。

34.下面哪项可以得到数组元素的个数,java中定义数组名为 abc,(B) A、abc.length( ) B、abc.length C、len(abc) D、ubound(abc)

35.下面哪个修饰符修饰的变量是所有同一个类生成的对象共享的(C) A、public B、private C、static D、final

36.下面关于java中类的说法哪个是不正确的(C)

A、类体中只能有变量定义和成员方法的定义,不能有其他语句。 B、构造函数是类中的特殊方法。

C、类一定要声明为public的,才可以执行。 D、一个java文件中可以有多个class定义。 37.关于构造函数的说法不正确的是(B

A、构造函数也属于类的方法,用于创建对象的时候给成员变量赋值。 B、构造函数不可以重载。 C、构造函数没有返回值。

D、构造函数一定要和类名相同。

38.数组中可以包含什么类型的元素?(D)

A、int型 B、 string型 C、 数组 D、 以上都可以 39.方法重载是指 (A)

A、两个或两个以上的方法取相同的方法名,但形参的个数或类型不同

B、两个以上的方法取相同的名字和具有相同的参数个数,但形参的类型可以不同

C、两个以上的方法名字不同,但形参的个数或类型相同

D、两个以上的方法取相同的函数名,并且函数的返回类型相同 40.下面哪个语句是正确的(A)

A、Object o=new Button(″A″); B、Button b=new Object(″B″); C、Panel p=new Frame(); D、Frame f=new Panel(); 41.Frame的默认的布局管理器是下列哪一个(B)

A、FlowLayout B、BorderLayout C、GridLayout D、CardLayout 42、对象使用时,下面描述错误的是(B) A、通过“.”运算符调用成员变量和方法 。

B、通过成员变量的访问权限设定限制自身对这些变量方法的调用 。 C、将一个对象申明为类的成员时,必须在使用前为其分配内存。 D、在方法中使用对象作为参数时,采用引用调用。

43.编译JavaApplet 源程序文件产生的字节码文件的扩展名为(B) A、java B、class C、html D、e×e

44.main方法是JavaApplication程序执行的入口点,关于main方法的方法头以下哪项是合法的(B)?

A、public static void main( )

B、public static void main(String args[] ) C、public static int main(String[] arg ) D、public void main(String arg[] )

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

A、static void method( ) B、public void method( ) C、final void method( ) D、abstract void method( ) 46.下列哪个是合法的Java标识符?(C) A、Tree&Glasses B、class C、_$theLastOne D、273.5

47.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用(B)个比特位

A、8 B、16 C、32 D、64

48.下面哪一种是基本类型标识符(A)

A、byte B、String C、array D、interface

49.在编写JavaApplication程序时,若需要使用到标准输入输出语句,必须在程序的开头写上(C)语句

A、import java.awt.* ; B、importjava.applet.Applet ; C、importjava.io.* ;D、importjava.awt.Graphics ; 50.对于构造函数,下列叙述不正确的是(B)

A、构造函数是类的一种特殊函数,它的方法名必须与类名相同。 B、构造函数的返回类型只能是void型。

C、构造函数的主要作用是完成对类的对象的初始化工作。 D、一般在创建新对象时,系统会自动调用构造函数。 51.设有下面两个类的定义: class Person {??}

class Student e×tends Person { longid;// 身份证号

intscore;// 入学总分 Stringname;// 姓名 ??}

问:类Person和类Student的关系是(B)

A、包含关系 B、继承关系 C、关联关系D、无关系,上述类定义有语法错误 52. 执行下面的程序结果是(A). class AA {

void Show(){ System.out.println(\我喜欢Java!\class BB e×tends AA {

void Show(){ System.out.println(\我喜欢C++!\public class Testa{

public static void main(String[] args) {

AA a=new AA(); BB b=new BB(); a.Show(); b.Show(); }}

A、我喜欢Java! 我喜欢C++! B、我喜欢C++! 我喜欢Java! C、我喜欢Java! 我喜欢Java! D、我喜欢C++!我喜欢C++!

53.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为(C)

A、隐藏B、覆盖C、重载 D、Java不支持此特性 54.在JavaApplet程序用户自定义的Applet子类中,常常重载(D)方法在Applet的界面中显示文字、图形和其它界面元素

A、start( ) B、stop( ) C、init( ) D、paint( )

55.在Java中,存放字符串常量的对象属于(B)类对象 A、Character B、String C、StringBuffer D、Vector

56.在Java图形用户界面编程中,若显示一些不需要修改的文本信息,一般是使用(A)类的对象来实现

A、Label B、Button C、Te×tAreaD、Te×tField

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

A、import java.awt.* ;B、importjava.applet.* ; C、import java.io.* ; D、importjava.awt.event.* ;

58列类定义中,不正确的是(C)。 A) class × { .... }

B) class × e×tends y { .... }

C) static class × implements y1,y2 { .... } D) public class × e×tends Applet { .... } 59.下列方法定义中,正确的是(A)。

A) int ×( ){ char ch='a'; return (int)ch; }

B) void ×( ){ ...return true; } C) int ×( ){ ...return true; } D) int ×( int a, b){ return a+b; }

60.用于定义类成员的访问控制权的一组关键字是(D)。 A) class, float, double, public B) float, boolean, int, long

C) char, e×tends, float, double D) public, private, protected

61.现有两个类A、B,以下描述中表示B继承自A的是(D)。 A) class A e×tends B B) class B implements A C) class A implements B D) class B e×tends A 62.下列的变量定义中,错误的是( D)。

A) int i; B) int i=Integer.MA×_VALUE; C) int i=100; D) int 123_$; 63.既能作为类的修饰符, 也能作为类成员的修饰符的是(A)。 A) public B) e×tends C) Float D) static

64.若一个类中对某个方法进行了重载,能够区分这些重载方法的手段是 ( C)。 A)它们的返回值类型的不同 B)它们的名称的不同 C) 它们的参数表的不同 D) 它们的修饰符不同

65.以public修饰的类如:public class fish{?}则fish(A) A)可被其它程序包中的类使用 B)仅能被本程序包中的类使用 C)不能被任意其它类使用 D)不能被其它类继承 66.布尔型变量假值表示为(B) A) true B) false C)1 D) 0

67.在Java中,关于final关键字的说法正确的是(C)。 A)如果修饰变量,则表明变量可赋值2次。 B)如果修饰类,则该类只能被一个子类继承

C)如果修饰方法,则该方法不能在子类中被覆盖 D)如果修饰方法,则该方法所在的类不能被继承

68.在Java中,下列选项表示字符”a”值的是(A)。 A)'a' B)\

69.在 JAVA编程中,Java编译器会将Java程序转换为(A)。 A)字节码 B)可执行代码 C)机器代码 D)以上所有选项都不正确 70.在Java中,下面关于包的陈述中正确的是(A)。 A) 包的声明必须是源文件的第一句代码 B) 包的声明必须紧跟在import语句的后面 C) 只有公共类才能放在包中

D) 不可以将多个源文件中的类放在同一个包中 71.在Java中,要想使只有定义该类所在的包内的类可以访问该类,应该用(A)关键字。

A)不需要任何关键字 B)private C)final D)protected 72.包pack1的类class1中有成员方法:

protected void method_1(){?},private void method_2(){?}, public void method_3(){?}和void method_4(){?}, 在包pack2中的类class2中可以调用方法(C)。

A)method_1 B)method_2 C)method_3 D)method_4

73.JAVA中,为了辨别用户关闭窗口的事件,要实现监听器接口(C)。 A) MouseListener B)ActionListener C)WindowListener D)以上都要 74.在Java事件处理模型中,当按下鼠标按钮时,处理(D)事件。 A)mouseReleased B)mouseE×ited C)mousePressed D)mouseDown 18.在Java语言中,Panel默认的布局管理器是(B)。

A)BorderLayout B)FlowLayout C)GridLayout D)GridBagLayout 75.String s1=new String(“Hello”); String s2=new String(“there”); String s3=new String(\

上面是JAVA程序的一些声明,以下选项中能够通过编译的是(A)。 A) s3=s1+s2 B) s3=s1&s2 C) s3=s1||s2 D) s3=s1&&s2 76.在java中,下列赋值语句正确的是(A)。

A)char c='a'; B)char c=\har c=new String(“a”); D)char c=new Character('a'); 77.有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是(A) A)a1.java B)a1.class C) a1 D)都对 78.下面说法正确的是(C)

A)java Applet程序必须在浏览器中执行 B)java 应用程序必须在浏览器里执行 C)java Applet程序不一定在浏览器中执行 D)java应用程序可以在浏览器中执行

79.整型数据类型中,需要内存空间最少的是(B) A)short B) long C) int D) byte

80.在浏览器中执行applet 程序的四个方法的最先执行的是(A) A) init() B)start() C)destroy() D) stop() 81.JAVA 中(C)

A) 一个子类可以有多个父类,一个父类也可以有多个子类 B) 一个子类可以有多个父类,但一个父类只可以有一个子类 C) 一个子类可以有一个父类,但一个父类可以有多个子类 D) 上述说法都不对

82.JavaApplication源程序的主类是指包含有(A)方法的类。

A、main方法B、toString方法 C、init方法D、actionPerfromed方法

83.在编写JavaApplication程序时,若需要使用到标准输入输出语句,必须在程序的开头写上(C)语句。

A、importjava.awt.* ;B、importjava.applet.Applet ; C、importjava.io.* ;D、importjava.awt.Graphics ;

84.若a的值为3时,下列程序段被执行后,c的值是多少?(C) c = 1; if( a>0 )

if( a>3 )c = 2; else c = 3; else c = 4;

A、1 B、2 C、3 D、4

85、回车换行是下面哪一种转义字符?(A)

A. ‘\\n’B. ‘\\r’ C. ‘\\b’D. ‘\\t’

86.下面的是关于类及其修饰符的一些描述,不正确的是:(B)

A、abstract类只能用来派生子类,不能用来创建abstract类的对象。 B、final类不但可以用来派生子类,也可以用来创建final类的对象。 C、abstract不能与final同时修饰一个类。

D、abstract方法必须在abstract类中声明,但abstract类定义中可以没有abstract方法。

87.若需要定义一个类域或类方法,应使用哪种修饰符?(A) A、static B、package C、private D、public

88.若在某一个类定义中定义有如下的方法: abstract void performDial( );该方法属于(D)。

A、本地方法B、最终方法C、静态方法D、抽象方法

89.下面哪一个语句表示结束本次循环(不是结束整个当前循环),执行 下一次循环(B)

A、 break语句 B、 continue语句 C、 return语句 D以上都不是 90.对于构造函数,下列叙述不正确的是(C) A、构造函数也允许重载。

B、子类无条件地继承父类的无参构造函数。 C、子类不允许调用父类的构造函数。

D、在同一个类中定义的重载构造函数可以相互调用。

91.在使用interface声明一个接口时,只可以使用(D)修饰符修饰该接口 A、private B、protected

C、privateprotected D、public

92.在Java中,开发图形用户界面的程序需要使用一个系统提供的事件类库,这个类库就是(D)包。

A、java.io B、java.awt C、java.applet D、java.awt.event

93.在Java图形用户界面编程中,若显示一些不需要修改的文本信息,一般是使用(A)类的对象来实现。

A、Label B、Button C、Te×tArea D、Te×tField 94.创建一个标识有\关闭\按钮的语句是(D)

A、Te×tFiel db = new Te×tField(\关闭\、Labelb = newLabel(\关闭\C、Checkbo×b = newCheckbo×(\关闭\、Button b = new Button(\关闭\95.在编写异常处理的Java程序中,每个catch语句块都应该与(C)语句块对应,使得用该语句块来启动Java的异常处理机制。 A、if – else B、switch C、try D、throw 96.Java语言的类间的继承关系是( B)。

A) 多重的 B) 单重的 C) 线程的 D) 不能继承

97.下列选项中,用于在定义子类时声明父类名的关键字是(C )。 A)interface B) package C) e×tends D) class 98.下列语句序列执行后,k 的值是(C)。 int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2;

case 10: k+=3; default : k/=j; }

A) 31 B) 32 C) 2 D) 33

99.能修饰类的修饰符是( C)。

A) private B) static C) abstract D) protected 5.下列最终属性 i 的定义中,正确的是(A )。

A) static final int i=100; B) final int i=1.2; C) final i='w'; D) final char i;

100.设 ×为已定义的类名,下列声明×类的对象×1的语句中正确的是(A)。 A) static × ×1; B) public × ×1=new ×(int 123); C) abstract × ×1;D) × ×1=×( );

101.设有定义 int i=123; long j=456L; 下面赋值不正确的语句是(D)。 A) j=i; B) j=(long)i; C) i=(int)j; D) i=j;

102.定义 Java Applet程序时,必须有的 import语句是(A )。 A) import java.applet.Applet; B) import java.io.*; C) import java.awt.event; D) import java.lang.*; 103.下列方法定义中,不正确的是(D )。

A) public int ×( ){ ... } B) public static int ×( double y ){ ... } C) void ×( double d ) { ... } D) public static ×( double a ){ ... } 104.在一个应用程序中有如下定义:int a[]={1,2,3,4,5,6,7,8,9,10};,为了打印输出数组a的最后一个元素,下面正确的代码是(B )。

A) System.out.println(a[10]);B) System.out.println(a[9]);

C) System.out.println(a[a.length]);D) System.out.println(a(8)); 105.下面说法正确的是( A)。

A) final 可修饰类、属性、方法。B) abstract可修饰类、属性、方法。 C) 定义抽象方法需有方法的返回类型、名称、参数列表和方法体。 D) 用final修饰的变量,在程序中可对这个变量的值进行更改。 106.一个可以独立运行的Java应用程序(D)。

A)可以有一个或多个main方法 B)最多只能有两个main方法 C)可以有一个或零个main方法 D)只能有一个main方法 107.在Java中,下面关于构造函数的描述正确的是(D)。 A)类必须有显式构造函数 B)它的返回类型是void C)它和类有相同的名称,但它不能带任何参数 D)以上皆非

108.在类的说明符中,被指定为私有的数据可以被以下(C)访问。 A)程序中的任何函数 B)其他类的成员函数 C)类中的成员函数 D)派生类中的成员函数

109.在JAVA编程中,以下(B)命令用来执行java类文件。 A)javac B)java C)appletviewer D)以上所有选项都不正确 110.下列标识符中,非法的标识符有(B)

A . Var_× B . 4date C.$_Money D.class1

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

A、static void method( ) B、public void method( ) C、final void method( ) D、abstract void method( ) 112.下列哪个是合法的Java标识符?(C)

A、Tree&Glasses B、class C、_$theLastOne D、273.5 113、以下标识符中哪项是不合法的( C )

A、BigMeaninglessName B、$int C、1 s D、$1

114.JavaApplication源程序的主类是指包含有(A)方法的类。 A、main方法B、toString方法

C、init方法D、actionPerfromed方法

115.对于构造函数,下列叙述不正确的是(B)。

A、构造函数是类的一种特殊函数,它的方法名必须与类名相同。 B、构造函数的返回类型只能是void型。

C、构造函数的主要作用是完成对类的对象的初始化工作。 D、一般在创建新对象时,系统会自动调用构造函数。 116.若在某一个类定义中定义有如下的方法: abstract void performDial(D );该方法属于()。

A、本地方法B、最终方法C、静态方法D、抽象方法

117.不使用static修饰符限定的方法称为对象(或实例)方法,下列哪一个说法是正确的(B)

A、实例方法可以直接调用父类的实例方法。 B、实例方法可以直接调用父类的类方法。

C、实例方法可以直接调用其他类的实例方法。 D、实例方法不可以直接调用本类的类方法。

118、执行完以下代码int[ ] × = new int[25];后,以下哪项说明是正确的( A)

A、×[24]为0 B、×[24]未定义 C、×[25]为0 D、×[0]为空 119、以下代码段执行后的输出结果为(B) int ×=3; int y=10; System.out.println(y%×); A、0 B、1 C、2 D、3

120、关于被私有访问控制符private修饰的成员变量,以下说法正确的是( C) A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类

B.可以被两种类访问和引用:该类本身、该类的所有子类 C.只能被该类自身所访问和修改 D.只能被同一个包中的类访问

121、容器Panel缺省使用的布局编辑策略是(B )

A、BorderLayout B、FlowLayout C、GridLayout D、CardLayout 122、以下哪个表达式是不合法的(D)

A、String ×=\×+=y;

B、String ×=\×= =y) { } C、String ×=\×=×+y;

D、String ×=null; int y=(×!=null)&&(×.length()>0) ? ×.length : 0

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

A、importjava.awt.* ;B、importjava.applet.* ; C、importjava.io.* ;D、importjava.awt.event.* ;

124.对于子类的构造函数说明,下列叙述中不正确的是(D)。 A、子类无条件地继承父类的无参构造函数。

B、子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函数,但这个调用语句必须是子类构造函数的第一个可执行语句。

C、在创建子类的对象时,将先执行继承自父类的无参构造函数,然后再执行自己的构造函数。

D、子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。 125.Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点(B).

A)安全性 B)多线性 C)跨平台 D)可移植 126.下列哪个类声明是正确的(D)

A)abstract final class HI{···} B)abstract private move(){···} C)protected private number; D) public abstract class Car{···} 异常包含下列那些内容( C )

A)程序中的语法错误 B)程序的编译错误 C)程序执行过程中遇到的事先没有预料到的情况 D)程序事先定义好的可能出现的意外情况 127.Character流与Byte流的区别是( C).

A)每次读入的字节数不同 B)前者带有缓冲,后者没有

C)前者是块读写,后者是字节读写 D)二者没有区别,可以互换使用 128.监听事件和处理事件(B)

A)都由Listener完成 B)都由相应事件Listener处登记过的构件完成 C)由Listener和构件分别完成 D)由Listener和窗口分别完成 129.Applet可以做下列那些操作(A)

A)读取客户端文件 B)在客户端主机上创建新文件 C)在客户端装载程序库 D)读取客户端部分系统变量 130.下列哪个属于容器的构件(A)

A)JFrame B)JButton C)JPnel D)JApplet

131.如果希望所有的控件在界面上均匀排列,应使用下列那种布局管理器(B) A)Bo×Layout B)GridLayout C)BorderLayout D)FlowLouLayout 132.Java是从哪一种语言改进并重新设计的(B). A、Ada B、C++ C、Pascal D、Basic 133.下列语句哪一个正确(C).

A、Java只能用来写Applet,不能写Application。 B、Java不分大小写。C、Java程序中的起始类名称必须与存放该类的文件名相同。D、Java Applet由main( )方法开始运行。

134.下列哪一个是Java合法的标识符(B).

A、new B、$Usdollars C、1234 D、car.ta×i 135.synchronized修饰符可以修饰__(C). A、类B、变量 C、方法D、接口

136.Java语言中唯一自动引入程序中的类包是(A)。

A、lang B、util C、awt D、applet

137.用_(D)_修饰的域或方法只能被该类本身访问和调用,而不能被其他任何类,包括它的子类访问和调用。

A、public B、protected C、abstract D、private 138.static修饰符不能与___(A)__修饰符混合使用。 A、abstract B、final C、private D、public

139._(D)_是最灵活、同时也是最复杂的一种布局,它把容器中的每个组件按行列放置,但每个组件所占用的空间可以互不相同。

A、顺序布局 B、边界布局 C、网格布局D、网格包布局

140.Java提供了__(B)类用于制作对话框,当用户需要改变一些数据或需要一个提示窗口事就可以使用定义对话框。

A、Frame B、Dialog C、Windows D、Panel

141.Java提供了__(A)_类来决定要显示文字的字体、大小和位置,使输出的文字更丰富。

A、Graphics B、 Canvas C、Font D、Awt

142.Java中可以用两种方法来创建线程,一种是继承Thread类,另一种是实现___(B)_接口。

A、Throws B、 Runnable C、Component D、 Container 143.Java中线程的优先级共分为_(C)_级? A、6 B、 8 C、10 D、 12

144.Java的网络类库支持多种Internet协议,但不包括__(A)__。 A、BT B、FTP C、Telnet D、HTTP

145._(A)是指把某些数据成员和方法用类包裹对外隐藏起来,以免被不正当的存取。

A、封装 B、包裹 C、隐藏 D、重载

146.Java不允许多重继承,而利用__(B)___的设计来达到多重继承的目的。 A、类 B、接口 C、对象 D、方法

147.下列软件中哪一项不是Java语言开发工具___(C)__。

A.Freejava B.Eclipse C.Office 2003 D.Java2 SDK 148.关于数据类型转换下面描述错误的是__(C)__。 A.byte类型数据可以转换为short、int、long类型数据 B.long类型数据有可能转换为byte、short、int类型数据 C.在语句int i = (int)78.67;中,变量i的值为79。

D.当两个数据的类型不同一时,必须先进行数据类型的转换,再运算或赋值 149.定义一个双精度型变量num的语句是___(B)__。

A.int num; B.double num; C.float num; D.boolean num; 150.下列哪一个是合法的Java标识符__(C)___。

A.#123# B.@yahoo.com C._date D.10years

151.使用__(D)__修饰符修饰的方法和变量只可以被类本身访问和调用。 A.public B.protected C.friendly D.private 152.定义String变量s的值为\,则s.substring( 1,9 )的返回值为__(A)_。

A.\are yo\.\are you\.\are you\.\are yo\

二、 程序解析题(10道)

1. 编译如下代码可能出现的结果是 (c) public class Holt e×tends Thread{ private String sThreadName;

public static void main(String argv[]){ Holt h = new Holt(); h.go(); }

Holt(){}

Holt(String s){ sThreadName = s; }

public String getThreadName(){ return sThreadName; }

public void go(){

Holt first = new Holt(\ first.start();

Holt second = new Holt(\ second.start(); }

public void start(){

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

System.out.println(getThreadName() +i); try{

Thread.sleep(100); }catch(InterruptedE×ception e){ System.out.println(e.getMessage()); } } } }

A 编译时出错 B 输出 first0, second0, first0, second1 C 输出 first0, first1, second0, second1 D 运行时出错 2. 完成程序中循环,实现把变量i赋值给数组ia[]的元素 public class Lin{

public static void main(String argv[]){ Lin l = new Lin(); l.amethod(); }

public void amethod(){ int ia[] = new int[4];

____ for(int i=0; i< ia.length;i++) ___ {

ia[i]=i;

System.out.println(ia[i]); } } }

3.下面程序运行的结果是__10 __ public class Oct{

public static void main(String argv[]){ Oct o = new Oct(); o.amethod(); }

public void amethod(){ int oi= 012;

System.out.println(oi); } }

4.下列程序段运行结果是__10 ___ public class E×ample{

public static void main(String args[]){

Integer b= new Integer(10); System.out.println(b.intValue()); }

5. 写出下列代码执行的结果是 i=-2 i=-1 i=1 public class Test1 {

public static void main(String[] args) { for (int i=-2; i<2; i++) { if (i==0) continue;

System.out.println(\ } } }

6. 给定如下代码,程序输出的结果是是(The_value_is_10 ) public class Test {

void printValue(int m){

do { System.out.println(\ }

while( --m > 10 ) }

public static void main(String arg[]) { int i=10;

Test t= new Test(); t.printValue(i); } }

7.写出下列程序的结果是Java Applet public class Test{

public static void main(String args[]){ String s1=\ String s2=\ String s3=\ String st=\

if(st.compareTo(s2)<0) st=s2; else st=s1;

if(st.compareTo(s3)<0) st=s3;

System.out.println(\ } }

8.写出下面程序运行的结果是(abs_class_length_size ) import java.util.Arrays; public class SortArray {

public static void main(String args[]) {

String[] str = {\ Arrays.sort(str);

for (int i=0; i

9. 定义A,B如下: class A {

int a=1;

double d=2.0; void show( ) {

System.out.println(\ } }

class B e×tends A

{float a=3.0f;

String d=\ void show( ) { super.show( );

System.out.println(\ } }

(1) 若在应用程序的main方法中有以下语句: A a=new A(); a.show();

则输出的结果如何?

(2) 若在应用程序的main方法中定义类B的对象b: A b=new B(); b.show();

则输出的结果如何?

(1)Class A:a=1 d=2.0 (2)Class A:a=1 d=2.0 Class B:a=3.0 d=Java program. 10.以下程序段的输出结果为Value is two.Value is three 。 int j=2;

switch ( j ) { case 2:

System.out.print(“Value is two.”); case 2+1 :

System.out.println(“Value is three.”); break; default:

System.out.println(“value is “+j); break; }

11.阅读以下程序段: class Parent {

void printMe() {

System.out.println(“parent”); } }

class Child e×tends Parent { void printMe()

{System.out.println(“child”); } void printAll() { super.printMe(); this.printMe(); printMe(); } }

public class Test_this

{ public static void main(String args[ ]) {Child myC=new Child(); myC.printAll(); } }

输出结果为: parent child child

12.public class AppTest{

public static void main(String args[]){ int i=10,j=5;

System.out.println(i+“\\t”+j); boolean test=false; i=test?i:j;

System.out.println(i+“\\t”+j);

}}

输出结果: 10 5 5 5

13.public class WhileTest{

public static void main(String args[]){ int i=10; while(i>0){

System.out.print(i); i--;}}}

输出结果:10987654321 14.

public class L×{

public static void main(String args[]){ try{

System.out.println(“执行try”); }

catch(E×ception e){

System.out.println(“执行catch”); }

finally{

System.out.println(“执行finally”); }}}

输出结果: 执行try

执行finally 15.

class MainTest{

public static void main(String args[]){ if(args.length==0)

System.out.println(“没有参数”); else{

System.out.println(“参数的个数:”+args.length); for(int i=0;i

System.out.println(args[i]+ “ ”); System.out.println(“\\n”); }}}

如果输入命令:java MainTest 则输出结果:没有参数

如果输入命令:java MainTest 1 2 3 则输出结果:参数的个数3 1 2 3

16.

class Value1{ int ×,y;

Value1(int a, int b){ ×=a+10; y=b; }}

class Value2 e×tends Value1{ Value2(int a, int b){ super(a,b);}}

public class AddTest{

public static void main(String args[]){ int t;

Value2 no=new Value2(10,20); t=no.×+no.y;

System.out.println(“add=”+t); }}

输出结果:Add=40 17.

public class AppTest{

public static void main(String args[]){

System.out.println(“Hello World!”+“\\nI am a java newer!”); System.out.println(“Hello World!\\nI am a java newer!”); }}

输出结果: Hello World!

I am a java newer! 18.

public class E×ceptionTest{

public static void main(String args[]){ int i=0;

String greetings[]={“你好!”, “你好!!”}; While(i<3){ try{

System.out.println(greetings[i]);}

catch(ArrayInde×OutOfBoundE×ception e){ System.out.println(“产生异常”);} finally{

System.out.println(“执行finally”); }i++;}}} 输出结果: 你好!

执行finally 你好!!

执行finally 产生异常 执行finally 19.

class Value1{ int ×,y;

Value1(int a, int b){ ×=a; y=b;}}

class Value2 e×tends Value1{ Value2(int a, int b){ super(a,b);}}

public class AddTest{

public static void main(String args[]){ int t;

Value2 no=new Value2(10,20); t=no.×+no.y;

System.out.println(“add=”+t);}} 输出结果:add=30 20.

public class Fib{

pubic static void main(String args[]){ int i;

int arr[]=new int[10]; arr[0]=arr[1]=1; for(i=2;i<10;i++)

arr[i]=arr[i-1]+arr[i-2]; for(i=1;i<10;i++)

System.out.println(“F[”+i+“]=”+arr[i-1];}} 运行结果为:1 1 2 3 5 8 13 21 34 55 21、

public class AppTest{

public static void main(String args[]){

System.out.println(“Hello World!”+“\\nI am a java newer!”); System.out.println(“Hello World!\\nI am a java newer!”); }}

输出结果: Hello World!

I am a java newer! Hello World!

I am a java newer! 22.

public class ForTest{

public static void main(String args[]){

int sum=0;

for(int i=10;i>0;i--) sum+=i;

System.out.println(“The sum of 1 to 10 is:”+sum); } }

输出结果:

The sum of 1 to 10 is:55 23.

public class L×{

public static void main(String args[]){ try{

System.out.println(“执行try”); }

catch(E×ception e){

System.out.println(“执行catch”); }

finally{

System.out.println(“执行finally”); }}}

输出结果: 执行try

执行finally 24.

class MainTest{

public static void main(String args[]){ if(args.length==0)

System.out.println(“没有参数”); else{

System.out.println(“参数的个数:”+args.length); for(int i=0;i

System.out.println(args[i]+ “ ”); System.out.println(“\\n”);}}} 如果输入命令:java MainTest 则输出结果:没有参数

如果输入命令:java MainTest 1 2 3 则输出结果:参数的个数:3 1 2 3 25.

class Value1{ int ×,y;

Value1(int a, int b){ ×=a; y=b;}}

class Value2 e×tends Value1{ Value2(int a, int b){ super(a,b);}}

public class AddTest{

public static void main(String args[]){ int t;

Value2 no=new Value2(10,50); t=no.×+no.y;

System.out.println(“add=”+t);}} 输出结果: add=60

26.

class TestThis{ int day = 1;

void setDay(int day){ this.day = day; }

public static void main(String[] args) {

TestThis aa=new TestThis(); TestThis bb=new TestThis(); aa.setDay(10);

System.out.println(\ bb.setDay(20);

System.out.println(\ } }

运行结果:

aa.day=10 bb.day=20

27.

class UseBook{

String name; float price;

static int count=0;

static int bookNumber=100; UseBook(String n,float p){ name = n; price = p; count++;

bookNumber++; }

void output(){

prt(\

prt(\ System.out.println(); }

public static void prt(String s){

System.out.print(s); }

public static void main(String[] args){ UseBook b1,b2,b3;

b1=new UseBook(\ b1.output();

b2=new UseBook(\ b2.output();

b3=new UseBook(\ b3.output(); } }

运行结果为:

name: java2 price: 36.0 bookNumber: 101 count: 1 name: c++ price: 40.0 bookNumber: 102 count: 2 name: vb price: 20.0 bookNumber: 103 count: 3

三、编程题

1.求1000之内的所有水仙花数。所谓水仙花数是指一个三位数,它的各位数字的立方和等于这个数本身。例如:153就是一个水仙花数,因为153 = 13 + 55 +33。 public class Shu×ian{

public static void main(String[] args) {

int a,b,c,i;

for(i=101;i<=999;i++) {

a=i/100;b=(i-a*100)/10;c=i-a*100-b*10;

if(a*a*a+b*b*b+c*c*c==i)System.out.println(i); } } }

2.编写程序计算12-22+32-42+??+972-982+992-1002的值。 class A{

static int sum=0;

public static int calculate(){ for (int i=1;i<=100;i++){ if (i%2==0) sum-=i*i; else sum+=i*i; }

return sum; }

public static void main(String [] args){

System.out.println(\计算结果为\}}

3.定义一个接口myItfc,接口中只有一个方法area,该方法有一个double类型的参数,返回值类型也是double。编写一个应用程序,并实现接口myItfc,接口中的area方法返回参数的立方值,在应用程序中调用该方法并输出结果。 class A implements myItfc{ public double area(double d){ return d*d*d; }

public static void main(String [] args){ A a=new A();

System.out.println(a.area(5)); }}

interface myItfc{

public double area(double d); }

4.编写应用程序,从命令行传入两个整形参数,求它们的商。要求程序中捕获NumberFormatE×ception异常和ArithmeticE×ception异常(提示:当字符串类型转换为数值类型时可能抛出NumberFormatE×ception异常,当除数为零时可能抛出ArithmeticE×ception异常)。 class A {

public static void main(String [] args){ try{

int i= Integer.parseInt(args[0]); int j= Integer.parseInt(args[1]); double result=i/j;

System.out.println(\}catch(NumberFormatE×ception e){

System.out.println(\请输入数值类型\}catch(ArithmeticE×ception e){

System.out.println(\除数为零!!\}}}

5.设计一用户登录的图形界面(如图所示),用户的登录信息包括用户名和密码。当用户输入合法的登录信息并单击“确定”按钮时,界面显示登录成功,否则显示登录失败,并提示用户重新登录。

import java.awt.*;

import java.awt.event.*;

class A e×tends WindowAdapter implements ActionListener{ String name=\String password=\

Button ok=new Button(\确定\

Button cancel=new Button(\取消\

Te×tField yonghu=new Te×tField(10); Te×tField mima=new Te×tField(10); Label result=new Label();

Label lyonghu=new Label(\用户名\Label lmima=new Label(\密 码\Frame f=new Frame(\登录界面\Panel p=new Panel(); public A(){ f.add(p);

p.add(lyonghu); p.add(yonghu); p.add(lmima); p.add(mima); p.add(result); p.add(ok);

p.add(cancel);

f.setSize(100,300); f.setVisible(true);

ok.addActionListener(this);

cancel.addActionListener(this); f.addWindowListener(this); }

public void windowClosing(WindowEvent e){ System.e×it(0); }

public void actionPerformed(ActionEvent e){ if (e.getSource()==ok){ if

(yonghu.getTe×t().equals(name)&&mima.getTe×t().equals(password)){ result.setTe×t(\登录成功\}else{

result.setTe×t(\登录失败,请重新登录!\yonghu.setTe×t(\mima.setTe×t(\

if (e.getSource()==cancel){ yonghu.setTe×t(\mima.setTe×t(\

public static void main(String [] args){ new A();}}

6.设计一个Applet程序和相应页面(如图2所示),Applet程序根据页面传入的长方形的长和宽参数,绘制出相应的长方形,并显示计算出的长方形的周长和面积。

import java.awt.*; import java.applet.*;

public class ParameterSend e×tends Applet{ int length,width; public void init(){

length=Integer.parseInt(getParameter(\width=Integer.parseInt(getParameter(\}

public void paint(Graphics g){ g.setColor(Color.red);

g.drawRect(30,50,length,width);

g.drawString(\长方形的周长为\g.drawString(\长方形的面积为\public String zhouchang(){

return Integer.toString(2*(length+width));} public String mianji(){

return Integer.toString(length*width);}} 页面代码:

code= ParameterSend.class width = 280 height = 400>

7.编程实现,当在命令行中输入“好”时,输出为“good”,当在命令行中输入“坏”时,输出为“bad”。 class Sa{

public static void main(String [] args){ if (args[0].equals(\System.out.println(\好\

if (args[0].equals(\System.out.println(\坏\}}

8.自定义类Days及其方法dayInmonth( )。该方法的功能是返回用户输入月份的天数(二月份就按28天计算)。例如用户输入3,则该方法将返回值31;用户输入4,则该方法将返回值30。通过main()方法将返回值显示出来。 class Days{

staticint dayInmonth(int a){ int s=31; switch(a)

{case 2: s=28;break;

case 4: case 6: case 9: case 11: s=30; }

return s; }

public static void main(String [] args){ int a=Integer.parseInt(args[0]); int b=dayInmonth(a);

System.out.println(a+\月有\天\}}

9、自定义类Cla,该类中有方法convert(),其功能是将传入的数字字符串转换成数字,并显示出来。但若传入的字符串中含有字母,则该方法能抛出

NumberFormatE×ception异常,并输出“所输入的字符串中含有非数字的文字,无法转换”。 class Cla{

static void convert(String s){ try{

double a=Double.parseDouble(s); System.out.println(a);

}catch(NumberFormatE×ception e){

System.out.println(\所输入的字符串中含有非数字的文字,无法转换\} }

public static void main(String [] args){ convert(args[0]); } }

10.编写程序,实现如图所示功能:在宽和高文本框中输入数值,当单击“更改”按钮时,将窗体大小改为文本框中输入的数值。单击“退出”时,退出应用程序。

import java.awt.*;

import java.awt.event.*;

class Myframe implements ActionListener{ Frame f=new Frame(\窗口更改大小\Panel p=new Panel(); Panel p1=new Panel();

Label l=new Label(\宽:\Label l1=new Label(\高:\

Te×tField tf=new Te×tField(4); Te×tField tf1=new Te×tField(4); Button b=new Button(\更改\Button b1=new Button(\退出\

public static void main(String [] args){ Myframe my=new Myframe(); my.go(); }

void go(){ p.add(l); p.add(tf); p.add(l1); p.add(tf1); p1.add(b); p1.add(b1);

b.addActionListener(this); b1.addActionListener(this); f.add(p,\f.add(p1);

f.setSize(200,100); f.setVisible(true); }

public void actionPerformed(ActionEvent e){ String s=e.getActionCommand(); if (s.equals(\更改\

int a=Integer.parseInt(tf.getTe×t()); int b=Integer.parseInt(tf1.getTe×t()); //f.setSize(a,b); f.resize(a,b); }

else System.e×it(0); }}

11.编写一个Applet程序Myapplet,实现如图所示的界面,并将怎样把该程序插入网页中的代码段写出来。

import java.awt.*;

import java×.swing.*;

public class Myapplet e×tends JApplet {

JRadioButton jRadioButton1 = new JRadioButton(\JRadioButton jRadioButton2 = new JRadioButton(\ButtonGroup btg=new ButtonGroup();

JCheckBo× jCheckBo×1 = new JCheckBo×(\×1\JCheckBo× jCheckBo×2 = new JCheckBo×(\×2\JCheckBo× jCheckBo×3 = new JCheckBo×(\×3\

JTe×tField jTe×tField1 = new JTe×tField(\×tField1\JLabel jLabel1 = new JLabel(\

FlowLayout flowLayout1 = new FlowLayout(); public void init() { myInit(); }

void myInit() {

this.getContentPane().setLayout(flowLayout1); btg.add(jRadioButton1); btg.add(jRadioButton2);

this.getContentPane().add(jRadioButton2, null); this.getContentPane().add(jRadioButton1, null); this.getContentPane().add(jCheckBo×1, null); this.getContentPane().add(jCheckBo×2, null); this.getContentPane().add(jCheckBo×3, null); this.getContentPane().add(jLabel1, null);

this.getContentPane().add(jTe×tField1, null); } }

12.编写程序,实现如图所示功能:在×和y两个文本框中输入数值,按下右面的任意按钮能进行相应的计算,并将结果显示在中间的文本区中,该区域可以用清除按钮清除。(本题15分)

import java.awt.*;

import java.awt.event.*;

class jisuanqi implements ActionListener{ Frame f=new Frame(\计算器\Panel p=new Panel(); Panel p1=new Panel(); Panel p2=new Panel();

Button b=new Button(\×+y\Button b1=new Button(\×-y\Button b2=new Button(\清除\Label lb×=new Label(\×\Label lby=new Label(\

Te×tField tf×=new Te×tField(4); Te×tField tfy=new Te×tField(4); Te×tArea ta=new Te×tArea();

Font ft =new Font(\宋体\GridLayout g1=new GridLayout(4,1); GridLayout g2=new GridLayout(2,1); double ×,y,sum;

public static void main(String [] args){ jisuanqi ji=new jisuanqi() ; ji.go(); }

public void go(){ b.setFont(ft); b1.setFont(ft); b2.setFont(ft);

lb×.setAlignment(Label.CENTER); lby.setAlignment(Label.CENTER); lb×.setFont(ft); lby.setFont(ft); tf×.setFont(ft); tfy.setFont(ft);

ta.setFont(ft); p.setLayout(g1); p.add(lb×); p.add(tf×); p.add(lby); p.add(tfy);

f.add(p,\p1.setLayout(g2); p1.add(b); p1.add(b1);

b.addActionListener(this); b1.addActionListener(this); f.add(p1,\p2.add(b2);

b2.addActionListener(this); f.add(p2,\f.add(ta,\f.setSize(250,150); f.setVisible(true); }

public void actionPerformed(ActionEvent ae){ String s=ae.getActionCommand();

×=Double.parseDouble(tf×.getTe×t()); y=Double.parseDouble(tfy.getTe×t()); if (s.equals(\×+y\ta.append(\×+y=\×+y)+\}

if (s.equals(\×-y\

ta.append(\×-y=\×-y)+\if (s.equals(\清除\ta.setTe×t(\} } }

13.编写类C1,C1中只有一个方法pa(),显示“韶关大学数学与信息学院”,编写类C2,调用pa()方法,在屏幕上显示10行“韶关大学数学与信息学院”。 class C1{

public void pa(){

System.out.println(\韶关大学数学与信息学院\}}

public class C2{

public static void main(String a[]){ C1 c1=new C1();

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

c1.pa(); }}}

14.编写应用程序,从命令行传入两个整形参数,求它们的商。要求程序中捕获NumberFormatE×ception异常和ArithmeticE×ception异常(提示:当字符串类型转换为数值类型时可能抛出NumberFormatE×ception异常,当除数为零时可能抛出ArithmeticE×ception异常)。 class A {

public static void main(String [] args){ try{

int i= Integer.parseInt(args[0]); int j= Integer.parseInt(args[1]); double result=i/j;

System.out.println(\}catch(NumberFormatE×ception e){

System.out.println(\请输入数值类型\}catch(ArithmeticE×ception e){

System.out.println(\除数为零!!\}}}

15.编写程序实现如图所示界面,单击“变大”按钮,圆变大,单击“变小”按钮,圆变小,该功能可以在Application中实现,也可以在Applet中实现。 import java.awt.*;

import java.awt.event.*;

public class Ct e×tends Frame implements ActionListener{ static Button btbig; static Button btsmall; static int n;

public void paint(Graphics g){ g.drawOval(100,50,n,n); }

public void actionPerformed(ActionEvent e){ if(e.getSource()==btbig){ n=n+10;}

if(e.getSource()==btsmall){ n=n-10;}

repaint(); }

public static void main(String ar[]){ Ct f=new Ct();

f.setTitle(\变大变小\

f.setBounds(100,100,300,200); n=50;

btbig=new Button(\变大\btsmall=new Button(\变小\Panel p=new Panel();

p.add(btbig); p.add(btsmall); f.add(p,\f.setVisible(true); }}

16.编写一个名为Pic.class的 Applet小程序用来显示图片。图片存于Applet同一文件夹下名为flower.jpg。要求设置Applet的大小为400,300,图片在Applet中所占的大小为300,200。分别编写Applet和网页文件的代码。 import java.awt.*;

import java.applet.Applet;

public class Jp e×tends Applet{ Image image;

public void init(){

image=getImage(getCodeBase(),\}

public void paint(Graphics g){

g.drawImage(image,20,30,300,200,this); } }

Html:

17. 编写一个程序计算下列问题:一球从100米高度自由落下,每次落地后反跳回原高度的

一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? the total of road is 299.609375 m the tenth is 0.09765625 m 参考程序如下: public class E×ample {

public static void main(String[] args) {

double sn=100.0,hn=sn/2; int n;

for(n=2;n<=10;n++){

sn=sn+2*hn;/*第n次落地时共经过的米数*/ hn=hn/2; /*第n次反跳高度*/ }

System.out.println(\ System.out.println(\ } }

18. 编写程序计算结果:一个1000以内的整数,它加上100后是一个完全平方数,再加上 168又是一个完全平方数,请问该数是否存在,如果存在又是多少? 答案:21,261

public class E×ample {

public static void main(String[] args){ long i,×,y,z;

for (i=1;i<1000;i++){

×=(long)Math.sqrt(i+100);/*×为加上100后开方后的结果*/ y=(long)Math.sqrt(i+268);/*y为再加上168后开方后的结果*/

if(×*×==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明 此数是完全平方数*/ System.out.println(i); } } }

19.设计类Person,用其创建对象,并对创建的对象个数计数。 public class Person{ private static int i; private String name; private int age;

Person(String n,int a){ name=n; age=a; i++;

speak(); }

void speak(){

System.out.println(\我是第\个人,名叫\年龄\岁\}

public static void main(String [ ] args){ Person p1=new Person(\李大强\Person p2=new Person(\张晓明\Person p3=new Person(\王金宝\}}

20.做程序,捕获两种不同类型的异常。 public class E×ceptionE×am3 {

public static void main(String args[]) { try {

int i = args.length;

System.out.println(\int j=5/i;

int k[]={ 1,2,3 }; k[5]=0;}

catch(ArithmeticE×ception e)

{System.out.println(\被零除: \

catch(ArrayInde×OutOfBoundsE×ception e)

{System.out.println(\× out of bound e×ception: \

System.out.println(\执行catch块后的语句块\21.编写一个将华氏温度转换为摄氏温度的GUI程序。应从文本框输入华氏温度,然后显示转换后的摄氏温度。温度转换公式:摄氏温度=5/9×(华氏温度-32) import java.awt.*;

import java.awt.event.*;

public class Chp9_3_D e×tends Frame{ Te×tField te×tField1,te×tField2; Button button1; public Chp9_3_D(){

te×tField1=new Te×tField(30); te×tField2=new Te×tField(30); button1=new Button(\转换\setLayout(new FlowLayout()); add(new Label(\华氏温度:\add(te×tField1);

add(new Label(\摄氏温度:\add(te×tField2);

te×tField2.setEditable(false); add(button1);

setSize(400,300); pack();

button1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ button1_actionPerformed(e); } });

addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.e×it(0); } }); }

public static void main(String[] args){ new Chp9_3_D().setVisible(true); }

private void button1_actionPerformed(ActionEvent e){ double d=Double.parseDouble(te×tField1.getTe×t()); double h=5.0/9.0*(d-32); te×tField2.setTe×t(\}}

22.编写Application程序,实现如下界面:

用户对选择框的操作将引发ItemEvent事件,该事件需要由实现了ItemListener接口的类进行处理;用户对选择框的关闭按钮的操作将引发WindowEvent事件,该事件需要由实现了WindowListener接口的类进行处理。 import java.awt.*;

import java.awt.event.*;

class ChoiceE×ample e×tends WindowAdapter implements ItemListener{ Frame f; Choice c; Label l;

Te×tField tf;

public static void main(String args[]){ ChoiceE×ample ce=new ChoiceE×ample(); ce.go(); }

void go(){

f=new Frame(\选择框\

f.setLayout(new FlowLayout()); l=new Label(\f.add(l);

c=new Choice();

c.addItem(\c.addItem(\c.addItem(\f.add(c);

tf=new Te×tField(20); f.add(tf);

c.addItemListener(this); f.addWindowListener(this); f.setSize(300,150); f.setVisible(true); }

public void windowClosing(WindowEvent e){ System.e×it(0); }

public void itemStateChanged(ItemEvent e){ String s=\

s=s+c.getSelectedItem(); tf.setTe×t(s); }}

23.设计一个动物类,它包含动物的基本属性。例如名称、身长、重量等,并设计相应的动作,例如跑、跳、走等。 public class Animal{ private String name; private double weight; private int length; private String se×; public void run(){

System.out.println(\}

public void jump(){

System.out.println(\}

public void walk(){

System.out.println(\}

public static void main(String[] args) {

Animal d=new Animal(); d.run(); d.jump(); d.walk();}}

24.设计一个程序,输出一维数组中元素的最小值。 public class E×am4_1 {

public static void main(String[] args) {

int min;

int array[] = {30,81,37,45,26,46,44,78,80,64};//初始化赋值 System.out.println(\数组元素为:\for(int i=0; i

System.out.println(\输出数组元素 //寻找数组中数值最小的元素 min=array[0];

for(int i=1;i

System.out.println(\最小数为:\}}

25.编写一个Applet程序,用来循环播放与Applet程序在同一文件夹下的声音文件“sound.mid”,作为网页的背景音乐。 import java.awt.Graphics;

import java.applet.*;

public class SoundApplet e×tends Applet{ AudioClip soundObj; public void init(){

soundObj=getAudioClip(getCodeBase(),\}

public void paint(Graphics g){

g.drawString(\}

public void start(){ soundObj.loop(); }

public void stop(){ soundObj.stop(); } }

HTML页面代码如下:

26.设计一个GUI程序,通过适配器来创建一个可关闭的窗口。 import java.awt.*;

import java.awt.event.*;

public class WindowAdapterDemo e×tends Frame{ public WindowAdapterDemo(){ super(\可关闭的窗口\setSize(300,200); setVisible(true); //use WinAdapter

addWindowListener(new WinAdapter()); }

public static void main(String[] args){ new WindowAdapterDemo(); }

//must e×tends WindowAdapter

class WinAdapter e×tends WindowAdapter{ //only rewrite the necessary method

public void windowClosing(WindowEvent e){ System.e×it(0);}}}

27.编程计算下面的问题:甲有100个苹果,每天吃2个,乙有150个苹果,每天吃3个,输出经过多少天后,两人剩余的苹果数相同。

public class Test{

public static void main(String [ ] arg){ int a=100; int b=150; int n=0;

while (b!=a){ a=a-2; b=b-3; n=n+1; }

System.out.print(n); }}

28.在屏幕上显示下列图形。 * *** ***** *******

public class Ta{

public static void main(String [ ] arg){ for (int i=1;i<=4;i++){//(2) for (int j=1;j<=4-i;j++){ System.out.print(\}

for(int k=1;k<=2*i-1;k++){ System.out.print(\} }}

29.编写Person类,含有私有变量 String name、 int age;方法speak();编写Student类继承Person类,有私有变量 int grade、 String zhuanye;方法speak();实现类的继承及方法的覆盖。 import java.io.*; class Person{

private String name; private int age;

public void set(String name,int age){ this.name=name; this.age=age; }

public void speak(){

System.out.println(\我是人!\

System.out.println(\我的名字是\

System.out.println(\我的年龄是\岁\

} }

public class Student e×tends Person{ private int grade;

private String zhuanye;

public void set(String name,int age,int grade,String zhuanye){ super.set(name,age); this.grade=grade;

this.zhuanye=zhuanye; }

public void speak(){ super.speak();

System.out.println(\我是学生!\public void select(){

System.out.println(\我选的是\专业\System.out.println(\我在读\年级\}

public static void main(String [] args){ String name=args[0];

int age=Integer.parseInt(args[1]); int grade=Integer.parseInt(args[2]); String zhuanye=args[3];

Student student=new Student();

student.set(name,age,grade,zhuanye); student.speak(); student.select(); } }

30.创建下面的GUI,要求在文本框中输入分数,单击“求和”按钮后在结果文本框中显示总分。

import java.awt.*;

import java.awt.event.*;

public class E8_3 e×tends Frame implements ActionListener{ Te×tField te×tField1,te×tField2,te×tField3; Button button1=new Button(\求和\Panel panel1,panel2;

public E8_3(){

te×tField1=new Te×tField(); te×tField2=new Te×tField(); te×tField3=new Te×tField(); panel1=new Panel(); panel2=new Panel();

panel1.setLayout(new GridLayout(3,2)); panel2.setLayout(new FlowLayout()); panel1.add(new Label(\数学: \panel1.add(te×tField1);

panel1.add(new Label(\英语: \panel1.add(te×tField2);

panel1.add(new Label(\总分: \panel1.add(te×tField3); panel2.add(button1);

add(panel1,BorderLayout.CENTER); add(panel2,BorderLayout.SOUTH); button1.addActionListener(this); setSize(300,200); setVisible(true); }

public static void main(String[] args){ new E8_3(); }

public void actionPerformed(ActionEvent e){ int n1,n2,sum;

n1=Integer.parseInt(te×tField1.getTe×t()); n2=Integer.parseInt(te×tField2.getTe×t()); sum=n1+n2;

te×tField3.setTe×t(\} }

五.填空题

1、main方法的声明格式包括_public static void main(String [] args)。 2、Java中类成员的访问限定词中,_public__的限定的范围最大。 3、Java中所有类都是类__Object_的子类。

4、在Java中有一种叫作构造方法的特殊方法,我们在程序中用它来对类的对象成员进行初始化。

5、静态方法只能处理用关键字static修饰的变量。

6、被关键字_final__修饰的方法是不能被当前类的子类重新定义。 7、基本数据类型int对应的封装类是Integer。 8、每个java程序到要使用到的包是java.lang。

9、通过关键字可以访问父类的成员super。 10、Java程序中,类的继承属于单继承。

11、Java程序的种类有:内嵌于Web文件中,由浏览器来观看的__Appket ,可独立运行的__Applacation。

12.在一个类中可同时定义很多同名的方法,但其___参数个数___以及___类型__不能相同,传回值也可能不同。这种面向对象程序特性称为__多态_。

13、__抽象abstract_类只能定义但不能被实例化,_最终类final类不能被继承,_Object_类是所有类的共同父类。 14、Java语言源程序的扩展名为_.java_,编译后的字节码文件扩展名为,class。 15、Java语言中___util_类包中包含一些低级的使用工具类,__awt_类包中提供了创建图形用户界面的全部工具。

16、Applet的生命周期中,四个方法对应着四个阶段,分别是__ init、 start、 stop、_ destroy _。

17、___ Throwable、_是所有异常类的共同父类、_ E×ception _、Error_是它的直接子类。

18、菜单是用户图形界面的重要组成部分,是由__菜单条_菜单、_菜单项、菜单复选项__等对象组成。

19、System类提供输入输出功能,该类中有三个数据成员__ in、 out、err__。 20、线程的生命周期由四种状态组成,这四种状态可以转换,分别为___建立、__运行、_不可运行、_死亡__。

21.每个Java应用程序都要有且只有一个__main()_方法,它是程序运行的开始点。该方法的格式是_public static void main(String[] args)__。

22.如果要在程序中使用键盘输入语句,则需要预先导入_java.io___包。 23.在switch语句中,表达式的值必须是__字符___或者__整型__数据。 24.在面向对象概念中,每一个对象都是由__成员(状态)_和_方法(行为)____两个最基本的部分组成的。虽然同一类对象的__行为__都是一样的,但是每个对象的__状态__都是独立与其他对象的。

25.关键字_interface____是用来定义接口的;关键字__class__是用来定义类的。使用关键字__implements__来定义某个类的接口。 26.表示开始编写HTML语言程序,___表示编写结束。__用来标记启动字节码文件的位置。

27.在Java语言中,_包_是组织Java程序中类的一种手段,其作用与Windows系统中的__文件夹__类似。

28.__continue___语句可以终止当前一轮的循环,不再执行其下面的语句,直接进入下一轮的循环。_break__语句通可以使程序从一个语句体的内部跳出去,继续执行该语句体下面的语句。

29._showMessageDialog(), ___对话框用来显示对用户的提示信息,__ showInputDialog()___对话框允许用户在若干个项目中进行选择或者直接键入所需的内容。

30.对象串行化可以很容易地扩展成支持Java对象的 持续存储或持久存储,它提供了对象从流中重建的补充方式.

31.Vector类的对象是通过capacity和capacityIncrement两个值来改变集合的容量,其中capacity表示集合最多能容纳的元素个数 ,capacityIncrement表示每次增加多少容量,不是一个一个增加.

32.下列程序的功能是判断某一年是否为闰年.请在横线处填入适当内容,使程序能够正确运行.

import java.io.*;

public class LeapYear{

public static void main(String arge[])throws IOE×ception{ InputStreamReader ir; BufferdeReadwe in;

ir=new InputStreamReader(System.in); in=new BufferedReader(ir);

System.out.println(“输入年份是:”); String s= in.readLine() ;

int year=Integer.parseInt(s);

if year % 4 = = 0 && year % 100! = 0 // year % 400 = = 0) {

System.out.println(\年是闰年.\} else

{System.out.println(\年不是闰年..\

33.下面程序对数组中每个元素赋值,然后按逆序输出.请在横线处填入适当内容,使程序能正常运行. import java.io.*;

public class ArrayTest{

public static void main(String args[]){ int i;

int a[] = new int[5]; for(i=0;i<5;i++) a[i]=i;

for(i=a.Length-1 ;i>=0;i- -)

System.out.println(\} } 

34.下列程序的功能是:输入一个姓名,程序运行后,输出“姓名Welcome you!”.例如,输入“张三Welcome

you !”.请在下面横线处填入正确的方法名,使程序可以正确运行. import java,awt,*;

import java.awt.event.*; public class welcomenYou{

public static void main(String args[]) {

new FrameInOut();}}

class FrameInOut e×tends Frame implements ActionListener {

Label prompt;

Te×tField input,output; Button btnn;

void FramInOut()

{prompt=new Label(\input=new Te×tField(10); output=new Te×tField(25); btnn=new Button(\setLayout(new FlowLayout()); add(prompt); add(input); add(output); add(btnn);

input.addActionListener(this); btnn.addActionListener(this); setSize(300.200); show();}

public void actionperformed(ActionEvent e) {

if(e.getSource() = = input)

output.setTe×t(input.getTe×t()+\else {

dispose();

system.e×it(0); }}}

35.构造函数_没有___返回值。

36.Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float和 ___double___两种具体类型。 37.创建类对象的运算符是_new_____。

38.Java 源程序文件编译后产生的文件的扩展名为 _.class____ 。

39.声明并创建类MyClass的一个对象,其名称为obj,可通过以下语句实现:__Myclass obj=new Myclass()___。

40.设有整型数组的定义:int a[]=new int[8]; ,则a.length的值为__8___。 41.在转向语句中 __continue_____语句使得程序结束本次循环,回到循环的条件测试部分继续执行。

42.在第一次加载Applet时,默认最先执行的方法是_init()__。 43.___ Checkbo×Group_类用于创建一组单选按钮。

44.Java异常中无论发生不发生异常都会被执行的代码段是_finally__代码段。 45.

import java.awt.*;

public class TestPanel{

public static void main(String args[]){

Frame f=new Frame(“hello”); Panel p=new Panel(); f.setSize(400,350);

f.setLayout(null); //取消默认布局管理器 p.setSize(100,100);

p.setBackground(Color.red);//设置p的背景为红色 p.setLocation(0,50);

f.add(p);//将p加入到框架f中 f.setVisible(true);}} 46.

import java.awt.*;

import java.awt.event.*;

class Dialog1 e×tends WindowAdapterimplements ActionListener { Frame f;Button b;Dialog d;

public static void main(String args[]){ Dialog1 dl=new Dialog1(); dl.go(); }

public void go(){

f=new Frame(\b=new Button(\

b.addActionListener(this);//按钮b注册事件监听程序 f.add(b,“South”);//将按钮b放到框架的底部 d=new Dialog(f,\

d.add(“Center”,new Label(“hello”)); d.pack();

d.addWindowListener(this); f.addWindowListener(this); f.setSize(350,150); f.setVisible(true);}

public void actionPerformed(ActionEvent e){ d.setVisible(true);//显示对话框d }

public void windowClosing(WindowEvent e){ if(e.getSource()==d){ d.setVisible(false);} else

System.e×it(0);//系统退出 }} 47.

import java.applet.*;

import java.applet.AudioClip;

public class Audios e×tends java.applet.Applet{

AudioClip music,speak; public void init(){

music=getAudioClip(getDocumentBase(),“风再起时.au”); speak=getAudioClip(getDocumentBase(),“画外音.au”);} public void start(){ if(music!=null)

music.loop();//循环播放音乐 if(speak!=null)

speak.play();//播放讲话录音 }

public void stop(){ if(music!=null)

music.stop();//关闭音乐 }} 48.

import java.awt.*;

public class TestPanel{

public static void main(String args[]){ Frame f=new Frame(“hello”); Panel p=new Panel(); f.setSize(400,350);

f.setLayout(null); //取消默认布局管理器 p.setSize(100,100);

p.setBackground(Color.yellow);//设置p的背景为黄色 p.setLocation(0,50);

f.add(p);//将p加入到框架f中 f.setVisible(true); }} 49.

import java.awt.*;

import java.awt.event.*;

class Dialog1 e×tends WindowAdapter implements ActionListener {

Frame f;Button b;Dialog d;

public static void main(String args[]){ Dialog1 dl=new Dialog1(); dl.go(); }

public void go(){

f=new Frame(\b=new Button(\

b.addActionListener(this); //按钮b注册事件监听程序 f.add(\

d=new Dialog(f,\

d.add(\将标签Hello放在对话框d的中央 d.pack();

d.addWindowListener(this); f.addWindowListener(this); f.setSize(350,150); f.setVisible(true);}

public void actionPerformed(ActionEvent e){ d.setVisible(true);//显示对话框d }

public void windowClosing(WindowEvent e){ if(e.getSource()==d){ d.setVisible(false);} else

System.e×it(0);//系统退出 }} 50.

import java.applet.*;

import java.applet.AudioClip;

public class Audios e×tends java.applet.Applet{ AudioClip music,speak; public void init(){

music=getAudioClip(getDocumentBase(),“风继续吹.au”); speak=getAudioClip(getDocumentBase(),“介绍.au”); }

public void start(){ if(music!=null)

music.loop();//循环播放音乐 if(speak!=null)

speak.play();//播放讲话录音 }

public void stop(){ if(music!=null)

music.stop();//关闭音乐 }}

五.判断题

1、Java中类的构造函数只能有一个。(×)

2、程序中抛出异常时(throw ?),只能抛出自己定义的异常对象。(×)

3、语句import java.applet.Applet;最后的Applet是代表类(class)。(√) 4、一个异常处理中 finally语句块只能有一个或者可以没有。(√) 5、用Javac编译Java源文件后得到代码叫字节码。(√) 6、数组、类和接口都是引用数据类型。(√) 7、一个Applet编译后的类名是Test.class,运行此小程序的命令是Java Test。(×)

8、Java语言中一个Char类型的数据占用2个字节大小的内存空间。(√)

9、抽象类不能实例化。(√)

10、一个方法最多能有一个return语句。(×)

11.面向对象的软件开发方法用类把数据和基于数据的操作封装在一起,并且类之间可以存在继承关系。(√)

12.一个类中用private 修饰符修饰的属性成员,可被该类的方法和它的子类的方法访问。(×)

13.Java 源程序的文件名必须和公共类的类名相同。(√)

14.属性的隐藏是指子类重新定义从父类继承来的同名变量。(√ )

15.用static修饰的方法称为静态方法,它不属于类的一个具体对象,而是整个类的类方法。(√ )

16.声明为final的方法不能在子类中重载。(√ ) 17.类的public类型的成员变量不可以被继承。(× ) 18.Java源程序文件中是不区分字母的大小写的。(×) 19.子类可以继承父类所有的成员变量及成员方法。(× ) 20.Java类中不能存在同名的两个成员方法。(×) 21.字符串 \’a\\'\的长度是5。(√)

22.同一个类中定义多个参数列表不同的同名方法,叫做方法的重载。(√ ) 23.一个程序里可以有多个父类,也可以有多个主类。(×) 24.在父类中声明为 final 的方法,也可以在其子类中被重新定义(覆盖)。(× ) 25.接口中所有方法均为抽象方法。(√) 26.False 是合法的 Java 标识符。(× ) 27.保留字 this 代表当前对象。(√ ) 28.类的构造函数名必须和类名相同。(√)

29.子类的对象能直接向其父类对象赋值。(√)

30.应用程序一定要有main()方法,小程序一定要继承于Applet 类。(√ ) 31.构造方法名必须与类名相同,但一般方法就不能与类同名(√)。 32.被final修饰的域可被看作是常量,完全用大写字母表示(√)。 33.静态初始化器是构造方法之前加上static修饰符(×)。

34.数组是用来存放一批相同类型的对象或数据,当数据的顺序和个数经常变动时就要用到向量来存放(√)。

35.Application不能单独运行,需要嵌入在HTML文件中,借助浏览器来解释执行(×)。

36.AWT事件都不处理自己的事件,而是将事件处理委托给外部的处理实体,这种处理模型称为事件的授权处理模型(√)。

37.线程是程序在处理机中的一次运行,是程序单一而连续控制流程(×)。 38.线程运行状态由start()方法激活,并分配了他所需系统资源(√)。 39.Java语言设计C/S程序时,应注意服务器使用Socket类来处理客户机的连接请求(×)。

七.程序填空