java复习题带答案

更新时间:2024-04-19 08:37:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、选择题:

1. 运行Java程序需要的工具软件所在的目录是 A 。

A.JDK的bin目录 B.JDK的demo目录 C.JDK的lib目录 D.JDK的jre目录

解析:运行Java的JDK一共包含五个目录,分别是:bin目录,该目录包含Java编译器、解释器和许多工具(如服务器工具、IDL、package工具等);lib目录,该目录包含Java库文件jre目录,该目录是Java程序运行环境的根目录,它下面包含 bin子目录,包括平台所用工具和库的可执行文件以及DLL文件;demo目录,该目录包含源代码的程序示例;include目录,该目录包含Win32子目录,都是本地方法的文件。因此,本题的正确答案是A。

2. 下列关于Java语言特点的叙述中,错误的是 A 。

A.Java是面向过程的编程语言 B.Java支持分布式计算 C.Java是跨平台的编程语言 D.Java支持多线程

解析:Java是新一代编程语言,具有很多特点:简单易学;利用面向对象技术:分布式计算:健壮性(鲁棒性);安全性;跨平台(即体系结构中立):可移植性:解释执行;高性能;多线程;动态性。因此,本题的正确答案是A。

3. Java的核心包中,提供编程应用的基本类的包是 A 。

A.java.lang B.java.util C.java.applet D.java.rmi

解析:Java的核心包一共有12个,其中:java.lang包中封装了所有编程应用的基本类;java.util包提供实用程序类和集合类,如系统特性定义和使用、日期函数类、集合等常用工具;java.applet包为Applet提供执行需要的所有类,。主要是访问Applet内容的通信类。java.rmi包提供程序远程方法调用所需的类。因此,本题的正确答案是A。

4. 下列关于Java对import语句规定的叙述中,错误的是 C 。

A.在Java程序中import语句可以有多个 B.在Java程序中import语句可以没有

C.在Java程序中import语句必须有一个 D.在Java程序中import语句引入在所有类定义之前

解析:Java程序中使用import关键字导入一个包中的类。在一个Java源程序中,可以有0个或多个import语句,但是必须在所有类定义之前引入标准类。因此,本题中选项C的说法是错误的。

5. 在编译Java程序时,用于指定生成.class文件位置的选项是 B 。

A.-g B.-d C.-verbose D.-vonarn

解析:javac.exe是Java编译器,能将源程序代码编译成字节码,以.class扩展名存入Java工作目录中。它的命令格式为:javac[选项]文件名。其中[选项]包括几下几个: ●-g 输出文件中加行号以及局部变量信息,为调试程序时用。 ●-o 对类文件进行优化编译。

●-nowarn 关闭警告信息,只显示错误信息。

●-verbose 显示源代码文件和字节码文件的相关信息。 ●-d<目录> 指定存放生成的类(.class)文件的位置 根据上述介绍可知,在编译Java程序时,可以通过选项-d来指定生成的.class文件的位置。因此,本题的正确答案是B。

1

6. 下列关于构造方法的叙述中,错误的是 C 。

A.Java语言规定构造方法名与类名必须相同

B.Java语言规定构造方法没有返回值,但不用void声明 C.Java语言规定构造方法不可以重载 D.Java语言规定构造方法只能通过new自动调用

解析:本题考查的是构造方法的使用。Java浯言中,构造方法是一种特殊的方法,是为对象初始化操作编写的方法,用它来定义对象的初始状态。Java中的每个类都有构造方法,它也是由方法名、参数和方法体组成的。构造方法有如下特点: ●构造方法的名字必须与类名相同。

●构造方法不返回任何数据,但不用void来声明。

●用户不能直接调用构造方法,必须通过关键字new自动调用。

●构造方法可由用户在类中定义,默认时由Java语言自动生成。但它是个空方法,变量被赋予该数据类型的默认值。

●在构造方法实现中,可以进行方法重载,即定义多个构造方法。重载构造方法的目的是使类具有不同的初始值,为类对象的初始化提供方便。

根据上述构造方法的特点可知,本题选项C的说法是错误的

7. 下列叙述中错误的是 D 。

A.Java Application与Applet所用编译命令相同

B.通常情况下,Java Application只能有一个main()方法 C.Java Applet必须有HTML文件才能运行 D.Java Applet程序的.class文件可用Java命令运行

解析:本题考查的是Java中的Applet以及Applt与Application的区别。选项A, Applet的运行方式和Java Application不同,但是Applet在运行前也必须被编译为类文件,这点和Application是一样的。因此,它们都用javac进行编译。因此,选项A的说法是正确的。选项B,在每个应用程序Application中可以包含多个方法,但应用程序都是以main()方法为入口点执行,因此必须有且只能有一个main方法。故选项B的说法是正确的。选项C,Applet是能够嵌入HTML语言中,并能够在浏览器中运行的类。Applet的运行环境是Web浏览器,所以必须建立HTML文件,告诉浏览器如何加载与运行Applet。所以,选项C的说法是正确的。选项D,根据选项C的分析,Applet是不能直接通过Java命令行启动运行的。因此,选项D的说法是错误的。

8. 处理对象传输的接口是 A 。

A.Serializable B.Cloneable C.ItenListener D.ActionListener 解析:处理对象传输就是把对象串行化。Java语言中,如果要串行化某些类的对象,这些类就必须实现Serializable接口。因此,本题的正确答案是A。

9. 在读取二进制数据文件的记录时,为了提高效率常常使用的一种辅助类是 C 。

A.InputStream B.FileInputStream C.BufferedInputStream D.BufferedReader 解析:本题考查Java语言的输入/输出流。选项A的InputStream类、选项B、的 FilelnputStream类、选项D的BufferedReader类都是Java语言中和输入输出直接相关的类,不属于辅助类,因此可以直接判断出选项C为正确答案。

另一方面,我们也可以详细分析每个选项。题目中要求读取二进制数据文件的记录,因此要使用字符输入流。选项A的InputStream是.java.io包中的抽象类,是所有字节输入流的父类。题目要求的是字符输入流,显然,选项A不对。选项B的 FileInputStream是一个字节输入流,它可以对一个磁盘文件涉及的数据进行处理。和选项A一样,选项B是错的。

2

选项C的StringBuffer是一个表示可变长度字符串的类,在读取文件时并不知道读取字符的具体长度,因此为StringBuffer类对象分配的内存会自动扩展从而容纳新增的字符,这提高了读取的效率。所以,StringBuffer是一个可以提高读取文件效率的辅助类。故选项C是正确答案。选项D的BufferedReader虽然是一个字符输入流,用于从字符输入流中读取文本并将字符存入缓冲区。但是, BufferedReader直接用于文件的读取,不起辅助作用。所以,选项D是错误的。

10.下列事件监听器中,无法对TextField对象进行事件监听和处理的是 D 。

A.ActionListener B.FocusListener C.MouseMotionListener D.ChangeListen 解析:本题考查AWT事件处理。事件就是发生在用户界面上的用户交互行为所产生的一种效果。每类事件都有对应的事件监听器,监听器就是接口。在单行文本输入区(TextFielD) 构件上可能发生的事件包括:FocusEvent焦点事件,焦点的获得和丢失。这类事件所对应的事件监听器是FocusListener:ActionEvent动作事件,按钮按下,TextField中按Enter键。这类事件所对应的事件监听器是ActionListener; MouseEvent鼠标事件,鼠标单击、释放、拖动、移动。这类事件所对应的事件监听器是MousetMofionListener。当然还包括其他一些,但是在所有事件及其所对应的事件监听器中,不包括ChangeListener这样一个事件监听器。因此,本题的正确答案是 D。

11.有一段java 应用程序,它的主类名是Abc,那么保存它的源文件名可以是 C 。

A.abc.java B.Abc.class C.Abc.java D.以上都可以

12.每个Java小应用程序必须定义为 A 。

A.Applet类或JApplet类的子类 B.JFrame类的子类 C.Frame的子类 D.Window的子类

解析:本题考查Applet的基本知识。Applet类定义了小应用程序(Applet)与其运行环境之间的一个接口;JApplet是Applet类的扩展,它继承了Applet的方法和执行机制,同时也增加了对Swing构件的支持。每个Java小应用程序都必须是Applet类或JApplet类的子类。因此,本题的正确答案是A。

13.在Applet的init()方法被调用后,接下来最先被调用的方法是 B 。

A.run() B.start() C.stop() D.destroy()

解析:Applet生命周期包括Applet的创建、运行与消亡几个状态。Applet类提供了在生命周期不同阶段响应主要事件的4种方法,这4种方法的调用次序如下图所示。

由上图可知,在调用完init()方法后,接下来最先被调用的是start()方法。因此,本题的正确答案是B。

14.整型数据类型中,需要内存空间最少的是 D 。

A.short B.long C.int D.Byte

15.下列标识符(名字)命名原则中,正确的是 D 。

A.类名的首字母小写 B.变量和方法名的首字母大写

3

C.接口名的首字母小写 D.常量完全大写 解析:Java命名的基本原则包括如下几条:、$不作为变量名、方法名的开头;变量名、方法名首单词小写,其余单词只有首字母大写;接口名、类名首单词第一个字母大写;常量完全大写。根据上述命名规则,选项D的说法是正确的。

16.Java中定义常量的保留字是 B 。

A.const B.final C.finally D.Native 解析:fmal是最终的修饰符,其修饰的是常量。

17.在调用方法时,若要使方法改变实参的值,可以 C 。

A.用基本数据类型作为参数 B.用指针作为参数 C.用对象作为参数 D.以上都不可以

18.下列有关Java布尔类型的描述中,正确的是 A 。

A.一种基本的数据类型,它的类型名称为boolean B.用int表示类型 C.其值可以赋给int类型的变量 D.有两个值:1代表真,0代表假

19.Java中所有类的父类是 D 。

A.Father B.Lang C.Exception D.Object 解析:ObJeot是所有类的根。

20.下列数中为八进制的是 C 。

A.27 B.0x25 C.026 D.028

解析:采用0,1,2,3,4,5,6,7八个数码,逢八进位,并且开头一定要以数字0开头的为八进制。

21.容器被重新设置大小后, B 布局管理器的容器中的组件大小不随容器大小的变化而改变?

A. CardLayout B. FlowLayout C. BorderLayout D. GridLayout

22.下列包中,包含Scanner类的是 C 。

A.javax.swing B.java.lang C.java.util D.Java.applet

23.下列选项中,与成员变量共同构成一个类的是 B 。

A.关键字 B.方法 C.运算符 D.表达式 解析:类体中定义的两种成员,数据成员和成员函数。

24.Java中的抽象类Reader和Writer所处理的流是 D 。

A.图像流 B.对象流 C.字节流 D.字符流 解析:Reader/Writer所处理的流是字符流,InputStream/OutputStream的处理对象是字节流。

25.下列命令中, A 是Java的编译命令。

A.java B.javadoc C.javac D.Jar 解析:本题考查java中JDK工具。javac是Java编译命令,能将源代码编译成字节码,以.class扩展名存入java工作目录中。java是Java解释器,执行字节码程序,该程序是

4

类名所指的类,必须是一个完整定义的名字。javadoc是Java文档生成器,对Java源文件和包以MML格式生成AP文档。appletviewer是avaApplet浏览器。选项A正确。

26.用于在子类中调用被重写父类方法的关键字是 B 。

A.this B.super C.This D.Super

27.下列不属于表达式语句的是 C 。

A.++i; B.--j; C.b#a; D.b*=a; 解析:前两项是自加减运算,最后一项是b=b*a。

28.下列为窗口事件的是 B 。

A.MouseEvent B.WindowEvent C.ActionEvent D.KeyEvent 解析:MouseEvent鼠标事件,AcfionEvent组件事件,KeyEvent键盘事件。

29.用鼠标点击菜单项(MenuItem)产生的事件是 B 。

A.MenuEvent B.ActionEvent C.KeyEvent D.MouseEvent

解析:ActionEvent组件事件,当特定于组件的动作(比如被按下)发生时,由组件(比如Button)生成此高级别事件。事件被传递给每一个ActionListener对象,这些对象是使用组件的addActionListener方法注册的,用以接收这类事件。

30.当一个Applet被加载,后续对Applet生命周期方法的调用中,可能存在的次序是 B 。

A.start(),stop(),destroy()

B.init(),start(),stop(),start(),stop(),destroy() C.start(),init(),stop(),destroy() D.init(),start(), destroy()

31. 在HTML文件的标志中作为可选属性的是 C 。

A.Applet主类的文件名 B.Applet显示区域的宽度 C.Applet主类的路径 D.Applet显示区域的高度

32.将长整型(long)数据转换为较短的整数类型(int)数据,要进行 B 。

A.类型的自动转换 B.类型的强制转换 C.无需转换 D.无法实现

解释:精度由小到大自由转换,由大到小强制转换

33.下列特点中不属于Java的是 B 。

A.多线程 B.多继承 C.跨平台 D.动态性

34.下列标识符定义中,不合法的是 D 。

A.int $x; B.int _123; C.int Sum_2; D.int #dim;

35.下列选项中为单精度数的是 C 。

A.2 B.5.2 C.0.2f D.023

36.类变量必须带有的修饰符是 A 。

A.static B.final C.public D.volatile

5

37.下列选项中属于字符串常量的是 B 。

A.’abc’ B.”abc” C.[abc] D.(abc)

38.Java程序默认引用的包是 C 。

A.java.ext包 B.java.awt包 C.java.lang包 D.java.util包

39.当一个Applet所在的Web页面被其他页面覆盖后,不可能被调用的Applet方法是 B

A.destroy() B.init() C.stop() D.start()

40.用于设置组件大小的方法是 B 。

A.paint() B.setSize() C.getSize() D.repaint()

解析:在构件类的方法中,paint()方法是绘制构件.selSize()方法是设置组件大小,getSize()方法是获得组件大小, repaint()方法是重新绘制构件。

41.点击窗口内的按钮时,产生的事件是 C 。

A.MouseEvent B.WindowEvent C.ActionEvent D.KeyEvent 解析:在构件的事件类中,MouseEvent事件是鼠标事件,鼠标单击,移动,WindowEvent事件是窗口事件,关闭窗口,窗口闭合,图标化,ActionEvent事件是动作事件,按钮按下,TextField中按Enter键,KeyEvent事件是键盘事件,键按下、释放。

42.AWT中用来表示对话框的类是 D 。

A.Font B.Color C.Panel D.Dialog

解析:AWT中Font是表示字体的类,Color是表示颜色的类,Panel是表示面板的类,Dialog是表示对话框的类。

43.下列运算符中,优先级最高的是 D 。

A.+= B.== C.&& D.++ 解析:算术运算符的优先级中,++和--级别最高。

44.下列运算中结果为1的是 B 。

A.8>>1 B.4>>>2 C.8<<1 D.4<<<2

解析:>>是按位右移运算符,<<是按位左移运算符,>>>是添零右移运算符,没有<<<运算符。

45.在关闭浏览器时调用,能够彻底终止Applet并释放该Applet所有资源的方法是 B 。

A.stop() B.destroy() C.paint() D.start()

解析:APpld的生命周期中有四个状态:初始态、运行态、停止态和消亡态。当程序执行完init()方法以后,Applet程序就进入了初始态;然后马上执行start()方法,Applet程序进入运行态;当Applet程序所在的浏览器图标化或者是转入其它页面时,该Applet程序马上执行stop()方法,Applet程序进入停止态;在停止态中,如果浏览器又重新装载该Applet程序所在的页面,或者是浏览器从图标中复原,则Applet程序马上调用start()方法,进入运行态;当然,在停止态时,如果浏览器关闭,则Applet程序调用destroyO方法,进入消亡态。

46.自定义异常类的父类可以是 C 。

6

A.Error B.VirtualMachineError C.Exception D.Thread

解析:自定义异常类都是Throwable及其子集,所以只有C可以做它的父类。

47.Applet的默认布局管理器是 B 。

A.BorderLayout B.FlowLayout C.GridLayout D.PanelLayout

解析:布局管理器主要有:FlowLayout,BorderLayout,GridLayout,CardLayout和 GridBagLayout等,可根据不同的布局需要选择不同的管理器。布局管理器不能直接响应用户操作,需要在程序中添加响应用户操作的代码。 FlowLayout布局管理器,是Panel和Applet的默认布局管理器。使用FlowLayout进行布局,在大小不变的容器中,构件的放置规律是从上到下、从左到右依次放置;当容器大小发生变化时,构件变化规律是构件大小不变,但其相对位置改变。FlowLayout的构造方法包括:FlowLayout(<对齐方式>.<横向间隔>,<纵向间隔 >)、FlowLayout(<对齐方式>)默认的横向和纵向间隔都是5、FlowLayout()默认居中方式,以及横向和纵向间隔是5。

48.Java中类ObjectOutputStream支持对象的写操作,这是一种字节流,它的直接父类是 C 。

A.Writer B.DataOutput C.OutputStream D.ObjectOutput 解析:ObjectOutputStream的直接父类是IutputStream。

49.在方法内部使用,代表对当前对象自身引用的关键字是 D 。

A.super B.This C.Super D.This

解析:super关键字为实现对父类变量的访问和对父类方法的调用。对当前对象自身的引用应使用this关键字。

50.下列语句中,语法正确的是 。 A.byte y = 11; byte x = y +y; B.String x = new Object();

C.Object x = new String(“Hellow”); D.int a[11] = new int[11];

51.下列 A 事件表明在一个java.awt.Component构件之上有一个按键按下。

A. KeyEvent B. KeyDownEvent C. KeyPressEvent D. KeyTypedEvent

52. D 创建一个监听类,当鼠标移动时,它可以接受事件。

A. 通过继承MouseListener接口 B. 通过实现MouseListener接口

C. 通过继承MouseMotionListener接口 D. 通过实现MouseMotionListener接口

53. 以下说法正确的是 A 。

A.一个gridLayout布局管理器可以将多个构件定位在多行或多列上

B.一个borderLayout布局管理器的North位置是放置一个Frame的菜单条的恰当位置 C.一个gridLayout布局管理器的各单元的大小由各自所放置的构件决定 D.一个borderLayout布局管理器中的构件的大小不随容器大小的改变而改变

54. 假定有一个动作事件(ActionEvent), B 方法可以判别出产生事件的构件。

A. public Class getClasses() B. public Object getSource() C. public EventObject getSource() D. public Component getTarget()

7

解析:a,没有此方法,返回的是此ActionEvent的class的方法应该是继承Object类的 方法 public final Class getClass();

55. A 布局管理器使用的是组件的最佳尺寸。

A.FlowLayout B.BorderLayout C.GridLayout D.CardLayout

56. 可以构建一个BufferedStream流。

A.new BufferedInputStream(“in.txt”);

B.new BufferedInputStream(new File(“in.txt”));

C.new BufferedInputStream(new InputStream(“in.txt”)); D.new BufferedInputStream(new File InputStream(“in.txt”));

57. 可以确定prefs是一个目录或文件。

A.Boolean exists=Directory.exists(“prefs”); B.Boolean exists=(new File(“prefs”)).isDir();

C.Boolean exists=(new Directory(“prefs”)).exists(); D.Boolean exists=(new File(“prefs”)).isDirectory();

58. B 可以获得文件file.txt的父目录名。

A.String name=File.getParentName(“file.txt”); B.String name=(new File(“file.txt”)).getParent(); C.String name=(new File(“file.txt”)).getParentName(); D.String name=(new File(“file.txt”)).getParentFile(); 解析:a,File 没有getParentName(String path)静态方法 c,同上,没有getParentName()这个方法 d, File的getParentFile() 返回的是一个File对象,可以这样写

String name=(new File(\

59. 以下说法正确的是 D 。

A. Error类是一个RuntimeException异常

B. 任何抛出一个RuntimeException异常的语句必须包含在try块之内 C. 任何抛出一个Error对象的语句必须包含在try块之内 D. 任何抛出一个Exception异常的语句必须包含在try块之内

60. 以下说法正确的是 D 。

A. 应用程序中可以使用的所有语句都可以在Applet中使用 B. Applet程序中可以使用的所有语句都可以在应用程序中使用 C. Applet程序都可以当做应用程序使用 D. System.exit(0)不能在Applet中使用

二、填空题

1. JVM指的是Java 虚拟机 。

2. Java中的字符变量在内存中占 16 位。

3. Java语言对简单数据类型进行了类包装,int对应的包装类是 integer 。 4. Java字节码文件的扩展名是 .class 。

5. 若类声明时加上修饰符 final ,则表示该类不能有子类。

8

6. Java的类库中提供Throwable类来描述异常,它有Error和 Exception 两个直接子类。

7. 一个Applet被浏览器加载后,是从 inti() 方法开始执行的。 8. 类方法不但可以由对象调用,还可以由 类名 调用。 9. Java接口内的方法都是公共的、 抽象 的。 10.运用 内部类 流可以提高读写数据的效率。

11.在Java语言中,用 abstract 修饰符定义的类称为抽象类。 12.在Java中,字符是以16位的 unicoed(国际) 码表示的。 13.抛出异常的语句是 throw 语句。

14.Java中用 private 修饰的成员变量不能被不同包中的类访问。

15. 在实现Serializable接口的类中,用 transient 关键字可使某些数据不被串行化。

16. 一个类只有实现了 serializable 接口,它的对象才是可串行化的。 17. 对Java对象的读写的过程被称为 对象的串行化 。

18. 在类的声明中,通过使用 extends 关键字创建一个类的子类。 19. 用户不能直接调用构造方法,只能通过 new 关键字自动调用。

20. AWT中的布局管理器包括FlowLayout、BorderLayout、GridLayout、CardLayout和

GridBagLayout。

21. 对于重写或继承的方法,Java运行时系统根据调用方法的 的类型来决定调用哪个方法。

22. Java不直接支持多继承,但可以通过 接口 实现多继承。

23. Java 源文件中最多只能有一个_ public ___类,其他类的个数不限。

24. Java对象串行化技术,主要是通过ObjectInputStream类和 ObjectOutputStream 类来实现。 25. 根据程序的构成和运行环境的不同,Java源程序分为两大类:__ Application __

程序和Applet程序。

26. 创建包的语句应该放在程序的位置为 程序第一行 。

27. 按作用域分类,变量有局部变量、__ 类成员变量 __、方法参数和异常处理参数。 28. Java虚拟机能自动处理_ 运行 ___异常。

29. RandomAccessFile所实现的接口是___DataInput _和DataOutput 接口。 30. 开发与运行Java Application程序需要经过的三个主要步聚为编辑源程序、编译生成

字节码、__ 解释运行 字节码 __。

31. 用 修饰符修饰的方法没有方法体.

32. 子类如果想用父类的构造方法,必须在子类的构造方法中用 super 关键字调

用。

33. 在关键字中能代表当前类或对象本身的是 this 。 34. Java中使用 interface 关键字定义接口。

35. java中一个类通过使用 imlement 关键字声明自己使用一个或多个接口。 36. 接口中的方法的默认访问权限是 public 。

37. 数组声明后,必须使用 new 运算符分配内存空间。 38. Button类的直接父类是 。

39. 一个容器可以使用 add() 方法将组件添加到该容器中。 40. Java中 TextArea 类可以用来建立多行文本区。

三、判断题

1. Java编译器使用文件系统来保存程序包。(T)

9

2. Java源程序文件中是不区分字母的大小写的。(F) 3. 可以用new来创建一个类的实例,即\对象\。(T) 4. 匿名类没有构造方法。()

5. Java的接口方法必须声明成public。( ) 6. Java中缺省浮点型是float。( F)

7. protected修饰的类成员只能被其子类访问。(F) 8. Java中类的构造方法只能有一个。(F)

9. 在构造方法中如调用super()语句,则必须使其成为构造方法的第一条语句。() 10.类的public类型的成员变量不可以被继承。(F) 11.子类可以继承父类所有的成员变量及成员方法。(F) 12.Java类中不能存在同名的两个成员方法。(F)

13.覆盖后的方法的访问权限不能比被覆盖的方法的访问权限大。( ) 14.覆盖后的方法可以比被覆盖的方法抛出更多的异常。() 15.覆盖后的方法与被覆盖的方法的返回值可以不一样。() 16.内部类可以访问它所在类中的所有成员变量和方法。() 17.Java可以在方法的输入参数位置定义匿名内部类。()

18.无参数、无返回值的抽象方法sp可声明为”abstract void sp(){ };”。( ) 19.抽象类不能实例化。()

20.实现接口的类不能是抽象类。()

21.抽象类中只能有抽象方法,不能包含非抽象的方法 。 ()

22.实现一个接口的非抽象类中一定要实现接口中的所有方法。 () 23.一个类可以实现多个接口。 ()

24.定义在接口中的常量都默认为public、static和final。 () 25.语句String[] s=new String[10];执行后,s[0] 为 未定义。(F) 26.StringBuffer类型的字符串是常量字符串。 (F)

27.用Javac编译Java源文件后得到代码叫字节码。 (T) 28.break语句可以用在循环和switch语句中。 () 29.无名包中的类不能被其他包中的类引用。()

30.FileInputStream可以作为BufferedInputStream的参数。() 31. 在使用BorderLayout时,最多可以放入五个组件。() 32. 扩展的适配器类允许只覆盖想要使用的特定方法。()

33. RandomAccessFile并不是单纯的输入或输出流,它的直接父类是File类。() 34. Applet是一种特殊的Panel,它是java Applet的最外观容器。()()

35. Applet的类定义中虽然没有标准的main()方法,但仍可以用java命令独立运行。()

四、阅读程序,写出程序的运行结果

1.public class DoublearithmaticOperator{

public static void main(String args[]){ int a=10,b=4,c=20,d=6; System.out.print(a+b*c+d); System.out.print(\System.out.print(a+c%b); System.out.print(\

System.out.println(a++*b+c*--d); } }

10

2.public class PrintTest{

public static void main(String args[]){ int a=4,b=6,c=8; String s=\

System.out.println(a+b+s+c); System.out.println(); } }

3.public class SwitchTest{

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

case 0: System.out.print(\case 1: System.out.print(\case 2: System.out.print(\

default: System.out.println(\

} } }

4. public class MultiplyList {

public static void main(String[] args) { String output=\

blabel: for(int row=1;row<=9;row++){ for(int col=row;col<=9;col++){ if(row<8)continue blabel;

output+=col+\

}

output+=\ }

System.out.println(output); System.exit(0); } }

11

5. public class Koo{

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

int[] anArray=new int[5]; while(i

anArray[i]=5-i;

System.out.print(anArray[i]+“ ”); i++; }

System.out.println(); } }

6. public class CatchTest{

public static void main(String args[]){ int[] x={0,1,2,3}; for(int i=0;i<3;i+=2){ try{

System.out.println(x[i+2]/x[i]+x[i+1]); }catch(ArithmeticException e){

System.out.println(“error1”); }catch(Exception e){

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

7. class GrandFather{

GrandFather(){System.out.println(“GrandFather”);}

}

class Book{

Book(){System.out.println(“Book”);} }

class Father extends GrandFather{

Father(){System.out.println(“Father”);}

}

public class Son extends Father { private Book b=new Book();

public Son(){System.out.println(“GrandFather”);} public static void main(String args[]){

12

new Son();

}

8. class Count{

public static int counter = 0 ; public Count( ){ counter++ ; }

public int getCount(){ return counter; }

}

public class StaticTest{

public static void main(String[] args){ Count[] c = new Count[5]; for(int i=0;i

System.out.println(c[i].getCount()); } } }

9. public class Calculation {

public float avg(int... nums) { int sum = 0;

for ( int x : nums ) { sum += x; }

return ((float) sum) / nums.length; }

public static void main(String args[]){ Calculation cal = new Calculation(); float av1 = cal.avg(10, 20, 30); System.out.println(av1); } }

13

10. package test;

public class OuterClass{ private class InterClass{ public InterClass(){

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

public OuterClass(){

InterClass ic= new InterClass(); System.out.println(“OuterClass”); }

public static void main(String args[]){ OuterClass oc=new OuterClass(); } }

11. import java.io.*;

public class FileTest{

public static void main(String args[]){ File f=new File(\ File d=new File(\ d.mkdir();

f.renameTo(new File(\ String l[]=d.list();

for(int i=0;i

12. interface ShowMessage { void 显示商标(String s); } class TV implements ShowMessage{

public void 显示商标(String s) { System.out.println(s); } }

class PC implements ShowMessage{

public void 显示商标(String s) { System.out.println(s); } }

public class Example4_28{

public static void main(String args[]){

ShowMessage sm; sm = new TV();

14

sm.显示商标(\长城牌电视机\

sm = new PC(); sm.显示商标(\联想奔月5008PC机\} }

五、程序填空

1. 以下为一个applet的完整程序,它使用”宋体”字体,在applet窗口中显示背景色为黑色,前景色为绿色的字符串”您好!”。 import java.awt.*; import Java.applet.*;

public class DrawStringDemo extends Applet{ private Font afont= Font(“宋体”,Font.BOLD,18); public void init(){

this.setBackground (Color.black); }

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

this.setFont (afont);

g.drawString (“您好!”,10,40); } }

2. 以下为一个java的完整程序,它定义了一个类Car,并在程序中创建了一个该类的对象DemoCar,调用该对象的set_number方法设置车号属性为3388,调用该对象的show_number方法输出车号。 //Car.java class Car{

int car_number;

void set_number(int car_num) {

car_number= car_number =car_num; ; }

void show_number(){

System.out. System.out.println (“My car No.

is :”+car_number);

} }

//CarDemo.java class CarDemo{

public static void main(String args[]){

Car Democar= Car Democar=new Car();

DemoCar.set_number( Democar.set_number(3388); ); DemoCar.show_number ();

} }

15

3. 该程序是一个Applet 小程序,它将当前系统时间显示在浏览器中。Java源程序和网页代码如下:

import java.awt.*; import java.util.Date;

public class showDate extends Applet { Date timeNow= new Date();

Font msgFont=new Font(\ public void paint( Graphics g) { g. setFont (msgFont); g.setColor(Color.blue);

g.drawString(timeNow.toString(),5,50); } }

4. 下面程序对数组中每个元素赋值,然后按逆序输出。请在横线处填入适当内容,使程序能正确运行。

import java.io.*; public class ArrayTest{

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

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

for( i=4 ;i>=0;i--)

System.out.println(\]=\} }

5. 下列程序从键盘输入若干个整数,当输入0时,输入终止;当输入的数小于0,或大于100时抛出异常。

import java.util.*;

class DigitException extends Exception {

//在下行空白处填上声明抛出DigitException异常的语句 void test(int x) { //在下行空白处填上抛出DigitException异常的语句 if(x<0 ||x>100)

16

} }

public class MyInput{

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

Scanner scanner=new Scanner( ); DigitException t=new DigitException(); while(scanner.hasNext()){ try{

input=scanner. ;

if(input==0)break; t.test(input);

}catch(DigitException e){

System.out.println(e.toString()); } }

} }

6. Applet界面上有一个标签(Label)、一个列表(list)和一个文本区域(TextArea)。程序实现以下功能:一旦用户在列表中(单击鼠标)选中了某书名选项,该书名将被立即显示在文本区域中。请在横线处填入适当内容,使程序能正确运行。 import java.awt.*;

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

public class MyChoice extends Applet{

String[] bookstore={\程序设计\程序设计\网络基础\Label la=new Label(\请选择你要的书籍:\TextArea t=new TextArea(5,30); List c=new List(); public void init(){

for(int i=0;i<3;i++) c.add(bookstore[i]); add(la);

add(c); ; add(t);

c. addItemListener (new Cli()); }

class Cli implements ItemListener{

public void itemStateChanged(ItemEvent e){

t. setText (c.getSelectedItem()+\} } }

六、编程题

1. 编写一个矩形类Rectangle的Java程序,矩形类有两个数据成员,分别是长rLength

17

和宽rWidth,可以通过getLength()、getWidth()、getArea()方法分别查看矩形的长、宽和面积,也可以通过setLength()和setWidth()方法重新设置矩形的长和宽。

public class Rectangle { }

float rLength; float rWidth;

public float getLength(){ }

public float getWidth(){ }

public float getArea(){ }

public void setLength(float l){ }

public void setWidth(float w){ }

Rectangle(float l, float w){ }

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

Rectangle r= new Rectangle(1 ,2); setLength(l); setWidth(w);

System.out.println(\+getLength()); System.out.println(\+getWidth()); System.out.println(\+getArea()); this.rWidth = w; this.rLength = l;

return (rLength*rWidth); return this.rWidth; return this.rLength;

2.编写程序创建一个按钮和一个文本域,按钮上的文字为“change”,文本域中的文字为“color”,当单击按钮时,“color”的颜色在yellow和red之间切换。

import java.awt.*; import java.awt.event.*; import javax.swing.*;

public class ArtFont extends JFrame implements ActionListener{

JButton colorBtn; JTextArea txtArea; Font font;

Color colorStyle = Color.red; public ArtFont(){

super(\字体设置\);

font = new Font(\宋体\, 1,15);

colorBtn = new JButton(\); txtArea = new JTextArea(10, 80);

18

txtArea.setFont(font);

}

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

public void actionPerformed(ActionEvent e) {

if(colorStyle == Color.red){ } else{ }

colorStyle = Color.red;

ArtFont a = new ArtFont(); txtArea.setText(\);

txtArea.setForeground(colorStyle); colorBtn.addActionListener(this); Container container = getContentPane(); container.setLayout(new BorderLayout()); setSize(300, 200);

container.add(txtArea, BorderLayout.CENTER); container.add(colorBtn, BorderLayout.PAGE_END); setVisible(true);

colorStyle = Color.yellow;

txtArea.setForeground(colorStyle); } }

3.设已定义了一个Book类,该类包括书名bookName和单价price属性。编写程序定义一个方法writeToFile(Book[] b),利用ObjectOutputStream类的writeObject()方法将若干本书籍的信息写入到当前路径下的文件book.dat中;定义一个方法readFromFile(),利用ObjectInputStream类的readObject()方法将若干本书籍的信息从当前路径下的文件book.dat中读出。 import java.io.*; public class SGH {

public static void writeToFile(Book b[],int n)throws Exception{ FileOutputStream fout=new FileOutputStream(\); ObjectOutputStream oout=new ObjectOutputStream(fout); for(int i=0; i

oout.writeObject(b[i]); }

oout.close(); }

public static Book[] readFromFile(int n)throws Exception{ Book Book1[] = new Book[n];

FileInputStream fin=new FileInputStream(\); ObjectInputStream oin=new ObjectInputStream(fin); for(int i=0; i

Book1[i]=(Book)oin.readObject();

19

}

oin.close(); return Book1; }

public static void main(String args[]) throws Exception {

Book Book1[] = new Book[3]; for(int i=0; i<3; i++ ){

Book1[i] = new Book((3+i),(\书\+(i))); }

Book Book2[];

writeToFile(Book1, 3); Book2 = readFromFile(3); } }

class Book implements Serializable {

public float price;

public String bookName;

public Book(float p,String b) {

this.price=p; this.bookName=b; }

public String toString() {

return \+price+\+bookName; } }

4.编写一个计算面积类CalculatorArea类的Java程序,该类有5个成员变量,分别是长cLength、宽cWidth、高cHeight、半径cRadius和面积cArea,该类可根据实例化参数的不同,设置不同的成员变量的值,并计算不同的图形面积。当参数是1个时,设置的是半径cRadius的值,计算的是圆的面积;当参数是2个时,设置的是长cLength和宽cWidth的值,计算的是矩形的面积;当参数是3个时,设置的是长cLength、宽cWidth和高cHeight的值,计算的是长方体的表面积。 import java.io.*;

public class CalculatorArea { float cLength; float cWidth; float cHeight; float cRadius; double cArea;

CalculatorArea(float r){ this.cRadius = r;

this.cArea = (3.14*2.0*r); System.out.println(cArea);

20

}

}

CalculatorArea(float l, float w){ this.cLength = l; this.cWidth = w; this.cArea = w*l;

System.out.println(cArea); }

CalculatorArea(float l, float w, float h){ this.cLength = l; this.cWidth = w; this.cHeight = h;

this.cArea = 2*(w*l+w*h+h*l); System.out.println(cArea); }

public static void main(String[] args) {

CalculatorArea s[] = new CalculatorArea[3]; s[0] = new CalculatorArea(1); s[1] = new CalculatorArea(1,1); s[2] = new CalculatorArea(1,1,1); }

5. 编写Applet程序:求三个整数的最小值。 import java.applet.*; import java.awt.*;

import java.awt.event.*;

public class FindMin extends Applet implements ActionListener {

Label result;

TextField in1,in2,in3; Button btn1,btn2;

int a=0,b=0,c=0,min; public void init() {

result=new Label(\请先输入三个待比较的整数\); in1=new TextField(5); in2=new TextField(5); in3=new TextField(5); btn1=new Button(\比较\); btn2=new Button(\关闭\); add(in1); add(in2); add(in3); add(btn1); add(btn2); add(result);

21

btn1.addActionListener(this); btn2.addActionListener(this); }

public void actionPerformed(ActionEvent e) {

if (e.getSource()==btn1)

{ a=Integer.parseInt(in1.getText()); b=Integer.parseInt(in2.getText()); c=Integer.parseInt(in3.getText()); min=a;

if (b

result.setText(\三数中最小值是:\+min); }

else

System.exit(0);

} }

6. 创建一个标题为“按钮”的窗框,窗框中显示有“按下我”字样的按钮盒一个文本框,当单击时会在文本框上显示“Hello Java”。 import java.awt.*;

import java.awt.event.*; import javax.swing.*;

public class ArtFont extends JFrame implements ActionListener{ JButton Btn;

JTextArea txtArea; Font font;

public ArtFont(){

super(\按钮\);

font = new Font(\宋体\, 1,15); Btn = new JButton(\按下我\);

txtArea = new JTextArea(10, 80); txtArea.setFont(font);

Btn.addActionListener(this);

Container container = getContentPane(); container.setLayout(new BorderLayout()); setSize(300, 200);

container.add(txtArea, BorderLayout.CENTER); container.add(Btn, BorderLayout.PAGE_END); setVisible(true); }

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

22

public void actionPerformed(ActionEvent e) { txtArea.setText(\); } }

7. 编写一个具有标准的菜单条的独立应用程序,包含菜单File,File菜单又包含菜单项Exit,当单击菜单项Edit时关闭窗口。

8. 编写一个Frame来显示字符串,显示字符串及位置,字体、字体大小和颜色通过HTML文件中的参数来传递。

23

本文来源:https://www.bwwdw.com/article/6ofp.html

Top