java试卷B答案 (1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

物理与电信工程学院2011—2012学年第(一)学期期末考试
《Java程序设计》试卷(B)
一、选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干前的括号内。

每小题1分,共20分)
(D )1、数组中可以包含什么类型的元素?_____________。

A、int型
B、 string型
C、数组
D、以上都可以
(A )2、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。

A. static void method( )
B. public void method( )
C. final void method( )
D. abstract void method( )
(B )3、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。

A..java
B..class
C. .html
D. .exe
(D)4、如果类中的成员变量可以被同一包访问,则使用如下哪个约束符?
A、 private
B、public
C、protected
D、no modifier
(C )5、以下哪个方法用于定义线程的执行体?
A、 start()
B、init()
C、run()
D、main()
(D )6.MAX_LENGTH是int型public成员变量, 变量值保持为常量100,用简短语句定义这个变量。

A、 public int MAX_LENGTH=100;
B、 final int MAX_LENGTH=100;
C、 final public int MAX_LENGTH=100;
D、 public final int MAX_LENGTH=100.
(B )7.下面哪些选项是正确的main方法说明?
A、public main(String args[])
B、 public static void main(String args[])
C、private static void main(String args[])
D、void main()
(A )8. ,JA V A对象主要属性有________。

A. 状态与行为
B. 抽象和封装
C. 继承与多态
D. 可重用和可扩展
( A )9.下列正确的Java的标识符是________。

A. userName
B. %passwd
C. 3d_game
D. class
( B )10.main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的________?
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[])
( B )11.下列说法中正确的一个是________。

A、length是合法的Java保留字
B、null和NULL一样是Java保留字
C、使用一个变量之前可以不用定义该变量
D、布尔型属于复合数据类型
( A)12.在Java图形用户界面编程中,若显示一些不需要修改的文本信息,一般是使用()类的对象来实现。

A、Label
B、Button
C、TextArea
D、TextField
( D )13.在Java中,下面关于包的陈述中正确的是________。

A、包的声明必须是源文件的任意位置;
B、包的声明必须紧跟在import语句的后面;
C、只有公共类才能放在包中;
D、可以将多个源文件中的类放在同一个包中
( D )14.创建一个标识有“关闭”按钮的语句是________。

A、TextField b =new TextField(“关闭”);
B、Label b = new Label(“关闭”);
C、Checkbox b = new Checkbox(“关闭”);
D、Button b = new Button(“关闭”);
( B )15. 在Java语言中,如果希望一个public类中的某个变量能被本包中的其他类和所有其他包中的子类访问的话,这个变量应被声明为________。

A、public
B、protected
C、private
D、private protected
( A )16. JA V A对象主要属性有________。

A. 状态与行为
B. 抽象和封装
C. 继承与多态
D. 可重用和可扩展
( D )17.下列哪一项不属于面向对象程序设计的基本要素?
A、类
B、对象
C、方法
D、安全
( C )18.在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的_______方法来完成主类实例的初始化工作。

A、start( )
B、stop( )
C、init( )
D、paint( )
( D )19.在编写Java Applet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上________语句。

A、import java.awt.* ;
B、import java.applet.* ;
C、import java.io.* ;
D、import java.awt.event.*
( C )20.下列说法中,正确的一项是________。

A、线程可以不运行于程序中
B、一个程序中只能有一个线程
C、线程必须运行于程序中
D、线程本身就是程序
二、填空题(每空格1分,共20分)
21. 列举Java语言最主要的两个特点:_面向对象_ 、__分布式__ 。

22.开发与运行Java程序需要经过的三个主要步骤为、、。

编辑源程序、编译生成字节码、解释运行字节码
23. 在程序中使用多线程可以用的两程基本方法是和。

派生Thread子类、实现Runnable接口
24. Java中的多态有两种方式:、。

子类对父类方法的覆盖、同类中方法的重载
25.对象的创建语法是__ new__,声明接口的关键字是_interface___。

26.Java语言中的__方法__与其他语言中的函数或过程类似。

它用于实现类的行为,只能作为类的一部分存在。

27. 引起一个活动的线程会终止的两种情况可能是:执行其stop( )方法,其run( )方法运行完毕。

28.在Java程序中,通过类的定义只能实现单重_ 继承,但通过接口的定义可以实现__多重__继承关系。

29. 包中定义的两个类、分别用来实现双向连接的Client和Server端。

Socket 、ServerSocket;
30. main方法的声明格式包括、。

(public )(static )(void)(main)(String args[])
三、判断改错题(正确的打√,错误的打×并改正,每小题1分,共10分)
(√)31. 如果程序运行到try块中的某个语句产生了异常,则流程将跳过try块后面的语句,直接进入try 块后面的catch块;如果try块中没有语句产生异常,则在执行完try块中的全部语句后,再进入try块后面的catch块。

×,如果程序没有产生异常,将不会进入try块后面的catch块。

(√)32.一个源程序里有且只能有一个公共类,它就是主类。

(×)33.一个Java Application程序欲从某个URL地址中读取文件内容,程序需要用import语句引入的类库只有.*。

(×)34.新创建的Frame窗框对象,会自动显示在屏幕上。

×,新建的Frame是不可见的,需要使用setVisible(boolean)方法,并使用参数true使之可见。

(×)35. 一个暂时终止运行的线程(例如,睡眠或阻塞)在排除了终止原因后直接运行。

×,先回到就绪状态排队
(√)36. 在Applet中,绘制图形的语句不一定写在paint方法中,但是需要paint方法把其Graphics对象参数g传递给这个用户自己的绘图方法。

(×)37.有的类定义时可以不定义构造函数,所以构造函数不是必须的。

(√)38.Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out和标准错误输出System.err()。

(√)39. 接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。

()(√)40.创建Socket对象时,如果程序找不到指定的服务器,将引发UnknowHostException类的异常。

四、简答题(每小题4分,共5题,20分)
41.Java常用的开发工具有哪几种?简单比较他们的特点与优缺点。

Java编程工具有哪些?各有什么特点?答:Java编程工具主要包括8种:JDK,Jbuilder,Jcreator,Java Workshop,Visual Age for Java,Visual Cafe for Java,FreeJava,VJ++ 6.0。

Java常用的开发工具主要有如下几种:JDK,Jcreator,Eslipse, Jbulider。

它们的特点与优缺点有:
JDK:Sun Java自带的,最常用,最简单,包含了最常用的是程序包和基本功能。

是一切程序的基础。

Jcreator:是界面简洁,功能强大的IDE开发环境,操作简单,编程效率高,必须运行在JDK基础上。

Eslipse:目前功能最强大的Java IDE之一,完全开源,可以开发大型的软件项目,是目前应用较多的Java IDE。

Jbulider:是Broland 公司推出的Java IDE环境,功能强大,界面友好,是程序员应用开发大型软件系统工具之一。

42.什么是面向对象编程?什么是对象、类、包、方法?比较它们之间的联系与区别。

答:类是对象的一个集合,类是对象的抽象和描述,是该类对象的模板。

类是一个事物的轮廓,用代码的描述。

对象是类的一个实例,实例和对象的概念是一样的,类实例化后就是对象。

方法是用于实现类的行为,作为类的一部分存在。

面向对象编程(Object-Oriented Programming ,OPP)是一套概念和想法,它与面向过程的编程方法相对应,是一种利用计算机程序来描述实际问题的思路,也是一种直观,效率更高的解决问题的方法。

面向对象的程序设计方法按照现实世界的特点来管理复杂的事物,把它们抽象为对象,具有自己的状态和行为,通过对消息的反应来完成一定的任务。

对象就是变量和相关的方法的集合,其中变量表明对象的状态,方法表明对象所具有的行为,一个对象的变量构成这个对象的核心,包围在它外面的方法使这个对象和其它对象分离开来。

类是对一组具有相同特征的对象的抽象描述,所有这些对象都是这个类的实例。

在程序设计语言中,类是一种数据类型,而对象是该类型的变量,变量名即是某个具体对象的标识名。

43. 详细比较 applet与application的异同(定义、创建、查看、编译等方面)。

答:每次运行applet时都必须下载所有的相关文件,因此显示某些applet时可能需要花不少的时间。

为了保证网页运行的安全,applet无法访问本地文件。

除非它通过了“数字签名”。

Java applet与application之间大多可以相互转换,不过,编写一个既可作为applet运行,又可作为application运行的程序或许更有实际意义。

一般来说,编写这样的程序并不难。

Application使用解释器java.exe执行;Applet在浏览器中运行;Applet程序必须继承Java的Applet类。

44.试述委托方式(监听器方式)的事件处理机制。

Window组件可以使用哪些类型的监听器?
答:监听器模型:当界面操作事件产生并被发送到产生事件的组件时,该组件将把事件发送给能接受和处理该事件的监听器;委托方式的事件处理机制的实现包括:定义监听器类和注册监听器。

WindowActiratal Windowclosed Windowclosing WindowDectivated
WindowDeiconified WindowIconified WindowOpened
45. Applet生命周期相关的方法有哪些?这些方法是如何被调用的?Applet 显示或刷新过程中要调用哪些方法?
答:①void init()-------在Applet被下载时调用,一般用来完成所有必需的初始化操作;
②void start()------在Applet初始化之后以及Applet被重新访问时调用;
③void stop()------在Applet停止执行时调用。

一般发生在Applet所在的WEB页被其他页覆盖时调用;
④void destroy()-------在关闭浏览器Applet从系统中撤出时调用。

Stop()总是在此之前被调用。

①pain() 具体执行Applet的绘制
②update() 用于更新Applet的显示
③repaint() 用于Applet的重新显示
五、程序填充题,完善下列程序不完整部分,指出程序错误或写出程序的运行结果(每小题3分,共12分) 46.import java.io.*;
public class Class1 {
public static void main( String args[] )
{
Fact N = new Fact( 4 );
System.out.println( N.fact( ) );
}
}
class Fact {
int n ;
Fact( int nn ) { n = nn; }
int fact( ) {
int i , f = 1;
for ( i=1; i<=n; i++ )
f = f*i;
return f;
}
}
答:定义一个计算n!的类Fact,然后主类中创建一个对象求解4!的值。

47.import java.io.*;
class Parent{
void printMe() { System.out.println("parent"); }
}
class Child extends Parent{
void printMe() { System.out.println("child"); }
void printAll() { super.printMe();this.printMe();printMe(); }
}
public class Class1{
public static void main(String args[ ])
{
Child myC = new Child( );
myC.printAll( );
}
}
答:parent
child
child
48. 下列程序的运行结果是什么?
写出下面程序的功能
import java.applet.Applet;
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class DataType extends Applet implements ActionListener
{ Label prompt=new Label("请分别输入整数和浮点数:");
TextField input_int=new TextField(6);
TextField input_double=new TextField(6);
TextField output=new TextField(35);
int getInt; double getDouble;
public void init() {
add(prompt); add(input_int); add(input_double);
add(output); output.setEditable(false);
input_double.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
getInt=Integer.parseInt(input_int.getText());
getDouble=Double.parseDouble(input_double.getText());
output.setText("您输入了整数: "+getInt+"和浮点数:
"+getDouble);
}
}
答:功能:从图形界面输入一个整数和一个浮点数,然后将其输出来。

49.说明下面程序是否有误,如有误,请将错误的地方指(写)出来,并改正。

import java.io.*;
public class MyFirstJavaProgram{
public static void main(String args[])
{ MySecondClass testclass=new MySecondClass( );
System.out.println(“This is my first Java Program!”);
}
}
public class MySecondClass{
{
System.out.println(“This is my second class.”);
}
}
答:public class MySecondClass;
应改为:class MySecondClass;
因为在一个Java源程序中不能定义两个public类。

六、编程题(第50、51题各9分,共18分)
50.构造一个类来描述屏幕上的一个点,该类的构成包括点的x和y两个坐标,以及一些对点进行的操作,包括:取得点的坐标值,对点的坐标进行赋值,编写应用程序生成该类的对象并对其进行操作。

答案:
import java.io.*;
public class Point
{
int x,y;
public Point(int x,int y)
{
this.x = x;
this.y = y;
}
public Point getPoint()
{
Point tempPoint = new Point(x,y);
return tempPoint;
}
public void setPoint(Point point)
{
this.x = point.x;
this.y = point.y;
}
public static void main(String args[])
{
Point Point1 = new Point(3,4);
System.out.println("Point1:"+"("+Point1.x+","+Point1.y+")");
Point Point2 = Point1.getPoint();
System.out.println("Point2:"+"("+Point2.x+","+Point2.y+")");
Point Point3 = new Point(5,6);
Point1.setPoint(Point3);
System.out.println("Point1:"+"("+Point1.x+","+Point1.y+")");
}
}
51.编写如下功能的Applet程序。

它的GUI界面如下所示:利用所学的Java语言知识,完成一个实现秒表功能的Applet程序。

它的GUI界面如下所示:
要求该程序能够完成以下功能:
(1)在界面上方的文本框中,按照"小时:分钟:秒"的顺序实时显示系统时间;
(2)当按下界面中间的"Current Time:"按钮时,当前系统时间能够在界面下方的文本框中显示出来。

提示:可以通过调用java.util.Data类的方法,获得系统时间。

Data类的接口如下所示,public class Date {
// 返回当前系统时间的小时值
public String getHours( ) { …}
// 返回当前系统时间的分钟值
public String getMintues( ) { … }
// 返回当前系统时间的秒钟值
public String getSeconds( ) { …}

}
答:import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.util.*;
public class TimeViewer extends Applet implements ActionListener, Runnable { Thread timer;
TextField in, out;
Button bb;
Panel p1, p2, p3;
boolean state;
public void init() {
in = new TextField(20);
out = new TextField(20);
bb = new Button("Current Time:");
p1 = new Panel();
p2 = new Panel();
p3 = new Panel();
setLayout(new GridLayout(3, 1));
setSize(200,100);
p1.add(in);
p2.add(bb);
p3.add(out);
add(p1);
add(p2);
add(p3);
bb.addActionListener(this);
timer = new Thread(this);
state = true;
timer.start();
}
public void actionPerformed(ActionEvent e) {
//out.setText(in.getText());
out.setText(currentTime());
}
public void run() {
while(true) {
try {
timer.sleep(1000);
} catch (InterruptedException e) { }
in.setText(currentTime());;
}
}
String currentTime() {
Date now = new Date();
String str = now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds();
return str;
}
}。

相关文档
最新文档