2012~2013学年第二学期硕士研究生考试试题
专 业: 软件工程和计算机技术 年 级: 2012 考试科目: Java程序设计(B)卷 课程类别: 专业课
一、判断题(每题1分,共10分,对的在括号内打∨,错的在括号内打×) 1、在java中一个类可以实现多个接口。( )
2、抽象类不可以包括非抽象方法。( )
3、如果类要求它的某个属性不能被外部类直接访问,应使用private修饰。( ) 4、泛型实质上就是使程序员定义安全的类型。( )
5、java的源程序经编译后可以直接在机器上运行,无需解释执行。( ) 6、在同一个类中,同名的方法,被编写多次,这属于多态的范畴。( ) 7、一个枚举类型成员不可以看作是枚举类型的一个实例。( ) 8、每个进程都有它自己的变量,而线程则共享相同的数据。( ) 9、FlowLayout布局将容器分为5个区。( ) 10、java.io包包含了标准的输入、输出类。( )
二、填空题(每空1分,共20分)
1、java源文件经编译后生成( )扩展名的文件。 2、java中,char类型的位长为( )。
3、java中线程体是由线程类的( )方法来定义的。
4、定义一个数组a,类型是整型,长度是20:( )。 5、创建菜单,首先要创建( )。
6、使用类FileInputStream的read方法会抛出( )异常。
第( 1 )页 共( 6 )页
7、抽象类不能用它来实例化一个对象,它只能被( )。 8、( )说明的类称为终极类。
9、在java中,常使用( )对象为文本区提供滚动条功能。
10、利用( )能显示多项可选项,用户可以从中选择一个或多个对象。 11、在java线程中,共享数据的所有访问都必须作为临界区,使用( ) 进行加锁控制。
12、( )类不包含标题栏或边界,它是Applet的父类。 13、在java中只允许( )继承。
14、( )是java提供的一种区别类名空间的机制。 15、将java程序中的对象保存在外存中,称为( )。 16、java Applet程序必须在( )下运行。
17、java中处理异常时,( )将抛出一个异常类的对象。 18、String str=”helloworld”;String s=str.substring(1,4);s的值( 19、在java语言中,用( )和continue控制循环的流程。 20、Swing中用来表示表格的类是javax.swing. ( )。
三、简答题(每题5分,共20分)
1、什么叫方法重载?什么叫方法覆盖?
2、java中,创建线程有哪两种方法?并回答线程的四个基本状态? 3、叙述Java Applet生命周期中的四个方法? 4、Java socket的通信基本步骤?
四、程序分析题(每题5分,共10分)
1、class MyException extends Exception{ private int detail; MyException(int a){ detail = a; }
public String toString(){return \"MyException[\"+detail+\"]\"; } }
第( 2 )页 共( 6 )页
。 ) public class ExceptionDemo{
static void compute(int a) throws MyException{
System.out.println(\"Called compute(\"+a+\")\"); if (a>10) throw new MyException(a);
System.out.println(\"Normal exit\");
}
public static void main(String args[]){ try{
compute(1);compute(25); compute(30);
}catch(MyException e){ System.out.println(\"Exception caught \"+e.toString()); }
} }
给出上述程序的输出结果: 2、
import java.io.*; public class FilePrint{
public static void main(String[] args) throws IOException { byte ba[]={'a','b','c','d','e','f','\\r','\\n'}; byte bd[]={'1','2','3'}; byte bu[]={'A','B','C','D'};
FileOutputStream fos=new FileOutputStream(\"aaa.txt\"); OutputStream os=new BufferedOutputStream(fos,1024); try{os.write(ba,0,ba.length);os.write(bd,0,bd.length); os.write(bu,0,bu.length); }finally{os.close();} }//main
}
在不考虑异常的情况下,按行写出aaa.txt文件中的内容:
第( 3 )页 共( 6 )页
五、程序填空题(每空2分,共16分)
阅读下列说明和 Java 代码,将应填入 (n) 处的字句写在答题纸上。 1、现欲实现一个图像浏览系统,要求该系统能够显示 BMP、JPEG 和 GIF 三种格式的文件,并且能够在 Windows 和 Linux 两种操作系统上运行。系统首先将 BMP、JPEG 和 GIF三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,采用桥接(Bridge)设计模式进行设计所得类图如下图所示。
采用该设计模式的原因在于:系统解析 BMP、GIF 与 JPEG 文件的代码仅与文件格式相关,而在屏幕上显示像素矩阵的代码则仅与操作系统相关。 class Matrix{ //各种格式的文件最终都被转化为像素矩阵 //此处代码省略 };
abstract class ImageImp{ public abstract void doPaint(Matrix m); //显示像素矩阵m };
class WinImp extends ImageImp{
public void doPaint(Matrix m){
/*调用windows系统的绘制函数绘制像素矩阵*/ } };
class LinuxImp extends ImageImp{
public void doPaint(Matrix m){
/*调用Linux系统的绘制函数绘制像素矩阵*/ } };
第( 4 )页 共( 6 )页
abstract class Image {
protected (1) imp; public void setImp(ImageImp imp){
(2) = imp; }
public abstract void parseFile(String fileName); }
class BMP extends Image{
public void parseFile(String fileName){
//此处解析BMP文件并获得一个像素矩阵对象m
(3) ;// 显示像素矩阵m } };
class GIF extends Image{ //此处代码省略 } class JPEG extends Image{ //此处代码省略 }; public class javaMain{
public static void main(String[] args){
//在windows操作系统上查看demo.bmp图像文件 Image image1 = (4) ;
ImageImp imageImp1 = (5) ; (6) ; image1.parseFile(\"demo.bmp\"); } }
2、在applet文本中显示“欢迎来到java考试”,将程序补充完整。 import java.applet.*;
import java.awt.Graphics;
public class Java_2 extends (7) { public void paint(Graphics g){ g. (8) (“欢迎来到java考试”); } }
第( 5 )页 共( 6 )页
六、编程题(每题8分,共24分)
1、编写一个MatrixTest类,其中定义一个整型二维数组(5行5列),要求数
组中的数据由键盘输入,最终能在屏幕上按行列显示数据,并能给出数组中的最大数(如果有多个最大数,显示一个即可),并给出其行号和列号。
2、编写一个Car类,包含这样两个属性:当前速度speed(整型)及车主的
姓名name(字符串型)包含一个show()方法可用来显示两个属性的值,包含一个构造器可以初始化两个属性,在main方法中定义两个Car类型的对象c,d并调用各自的方法。
3、设计一个窗口,窗口北区放一个单行文本域,中心区放一个多行文本区,
南区放四个按钮,标签分别为”Set”,”Copy”,”Clear”,”Exit”,当单击”Set”时,将北区单行文本域的内容设置为”Hello World!”, 当单击”Copy” 时, 将北区单行文本域的内容拷贝到中心区文本区,当单击”Clear” 时,将北区的单行文本域和中心区的文本区内容设置为空,当单击”Exit” 时,关闭窗口。
第( 6 )页 共( 6 )页
因篇幅问题不能全部显示,请点此查看更多更全内容