东华大学继续教育学院 2020年秋季学期 远程学历教育《Java程序设计》期末大作业 一、选择题(本大题共10小题,每小题 1分, 共10分) 1. 下列哪个不是面向对象程序设计的基本特征( ) A.封装性 B. 继承性 C. 安全性 D. 多态性 2. 关于Java程序设计语言,不正确的说法是( ) A. 垃圾回收困难 B. 健壮性强 C. 支持多线程编程 D. 安全性较高 3. 关于类,不正确的是( ) A. 类是Java语言中用于封装的程序单元 B. 类的静态方法和属性可以通过类本身和类的实例访问 C. 一个Java类可以实现多个接口 D. 一个Java类可以从多个基类派生 4. 关于Java程序中的对象,不正确的说法是( ) A. 对象的状态通过相应的方法来获取和改变 B. 对象的删除通过Delete来实现 C. this代表当前对象 D. new操作通过调用构造函数创建相应的对象 5. 关于Java中的数组,下列叙述中正确的是( ) A. 一个数组中可以包含不同类型的数据 B. 数组的下标从1开始 C. Java程序中可以定义变长数组 D. 数组可以静态初始化也可以动态初始化 6. 关于类的静态成员,下列说法中不正确的是( ) A. 静态成员只能通过类访问,不能通过类的实例访问 B. 静态变量是全局变量 C. 所有Java程序中的main() 方法都是静态方法 D. 静态成员是指独立于对象的类成员 7. 关于方法的重载与覆盖,不正确的是( ) A. 可以通过返回的类型不同来重载类的方法 B. 在一个类中,可以按重载要求对一个方法进行多次重载 C. 子类可以在覆盖父类某个方法的同时,对这个方法进行重载 D. 一个类的构造函数也可以重载多次 8. 关于线程不正确的是( ) A. 线程机制提供了一种更高效的程序并行执行手段 B. 线程是一个程序进程中的一个执行分支 C. 一个Java进程的多个线程有各自的代码区和数据区 D. Java语言对多线程编程提供了良好的支持 9. 关于Java中的异常,不正确的是( ) A. 所有异常都必须捕获并处理 B. 异常是程序运行时的非正常情况 C. Java程序的健壮性得益于Java系统的异常处理机制 D. 在Java语言中,异常是作为一种对象来处理的 10. 关于图形容器不正确的是 ( ) A. 图形界面中的组件通过容器来组织 B. 中间容器用来分组管理界面中的基本组件 C. 每个图形界面最多只有一个顶层容器 D. 所有的容器中都可以加入基本组件 二、填空题(本大题共15小题,每小题2分,共30分) 1. Java类的三种显示访问控制符分别为________、________与________。 2. Java源程序通过编译器__________编译为__________码文件; 3. 编译后的目标Java程序在__________上__________执行。 4. Java中的一个普通整型、字符数据和字节数据在机器中分别占________位、________位与________位。 5. 对象的状态由________表现,状态的建立和改变由________实现。 6. Applet程序是嵌入在__________中的小程序,而且是直接在 ____________端执行的。 7. 在Java语言中,图形用户界面GUI组件可分为_______组件和________组件。 8. Java语言系统内置的3个可以直接使用的流对象分别是___________、____________、____________。 9. Java程序中的所有线程类都必须实现接口____________,其中的方法____________决定了线程的执行行为。 10. Java程序中抛出异常的关键字为_______,捕获异常的关键字为________。 11. 程序填空题 (1) 以下程序需要引入java.util包中所有的类,请在下划线上填入相应的关键字或符号 _____ java.util._____ class DateDemo { Date d; public void f(){....} } (2) 补充下列Rect类中的空缺代码 public class Rect{ int w, h; public Rect (intw, int h) { ______=______; ______=______; } public String getW( ) { ____________ ; } public String getH( ) { ____________ ; } public void setW(int w) {____________; } public void setH (int h) { ____________; } } (3) 对于以下Applet程序和相应的HTML文档,补充缺少的部分 public class AppletOne extends _______ { public voidpaint(_______ g) { g.drawString("AppletDemo",10,10); } } <HTML> <APPLET CODE=“_______” WIDTH=“100” HEIGHT=“200”> </ APPLET> </HTML> (4) public class IntParse { publicstatic void main(String[] args) { Strings="150"; long l=newLong(s). _________ ( ); int i=Integer._________ (s); } } (5) public class JFPDemo{ publicstatic void main(String[] args){ JFramejf=new JFrame("GUI ONE"); JPanel p=newJPanel(); JLabell1=new JLabel("Label one"); JLabell2=new JLabel(" Label two"); p.add(l2); Containerc=jf._________(); c.add(p,"North"); c.add(l1,"Center"); jf.setSize(100,200); jf.set_______(true); } } 三、简答题与程序分析(本大题共5小题,每小题 5分, 共25分) 1. Java语言的特点有哪些? 2. 分别解释进程与线程及其相互之间的关系。 3. 图形界面中界面对象的布局有哪几种? 4. 解释Java程序中的异常机制。 5. 分析以下程序,当分别输入数字1、3和字符’Y’时的执行结果,并解释其原因。 public class Exam{ public static void main(String[] args) { int i=0; String[] ch={"A","B","C"}; Scanner cin =new Scanner(System.in); try { System.out.println("----F1 ----"); System.out.println("请输入你的选项(1,2,3)"); i=cin.nextInt(); System.out.println(ch[i-1]); } catch(InputMismatchExceptione) { System.out.println("----F2 ----"); System.out.println("输入数据格式错,要求是整型!"); } catch(ArrayIndexOutOfBoundsException e) { System.out.println("----F3 ----"); System.out.println("数组越界!"); } finally { System.out.println("----F4 ----"); System.out.println("执行完毕!"); } } } 四、编程题 (每小题7分,计35分) 1. 编写循环程序打印如图所示的X图案(要求使用循环,否则无效)。 V V V V V V V V V V V V V V V V V 2. 编写程序MaxNum,接收键盘输入一系列整数(不超过8个),将它们存入数组A,然后按降序排序,最后显示排序后的数组及最大值。 3. 设计一个实数域上二次方程的解方案:首先定义一个方程类 Equ,使得方程对象包含三个实系数属性A,B和C,传输三个参数可构造方程对象,其解方法answer()给出方程在实数域中的完整解决方案(即各种情况下的答案)。最后在主函数中定义各种情况的方程对象实例并显示方程属性和答案。 4. 开发一个完整的Applet程序,以坐标点 (1,5)为左上角,分别以3和5为宽和高画一个矩形Rec,并嵌入到一个HTML文档Rec.html中,然后结合本例说明开发一个Applet程序的过程。 5. 定义两个线程类You和Me,执行线程时分别显示“I’m Thread A”和“I’mThread B”, 然后在main()函数中创建两个线程的对象,并分别启动两个线程。
|