物理与电信工程学院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
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. java包中定义的两个类、分别用来实现双向连接的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语句引入的类库只有java.*。
(×)34.新创建的Frame窗框对象,会自动显示在屏幕上。
×,新建的Frame是不可见的,需要使用setVisible(boolean)方法,并使用参数true使之可见。
(×)35. 一个暂时终止运行的线程(例如,睡眠或阻塞)在排除了终止原因后直接运行。
×,先回到就绪状态排队
(√)36. 在Applet中,绘制图形的语句不一定写在paint方法中,但是需要paint方法把其Graphics对象参数g传递给这个用户自己的绘图方法。
(×)37.有的类定义时可以不定义构造函数,所以构造函数不是必须的。
(√)38.Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out和标准错误输出()。
(√)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.什么是面向对象编程?什么是对象、类、包、方法?比较它们之间的联系与区别。
答:类是对象的一个集合,类是对象的抽象和描述,是该类对象的模板。类是一个事物的轮廓,用代码的描述。对象是类的一个实例,实例和对象的概念是一样的,类实例化后就是对象。
import语句
方法是用于实现类的行为,作为类的一部分存在。
面向对象编程(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(Text());
getDouble=Double.parseDouble(Text());
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.”);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。