2011年春季学期Java程序设计第三次作业
一、单项选择题(本大题共20分,共 10 小题,每小题 2 分) 1. 下列说法不正确的是( )
A. java语言里的线程是没有优先级的 B. String类在java.lang包中 C. java语言支持类的序列化
D. 能序列化的类必须实现java.io.Serializable接口
2. 下列哪个类或接口是类FilterOutputStream 的构造方法的输入参数( ) A. InputStream B. OutputStream C. File
D. RandomAccessFile
3. 如果要向文件file.txt中添加数据,应如何构建输出流( ) A. OutputStream out=new FileOutputStream(“file.txt”);
B. OutputStream out=new FileOutputStream(“file.txt”, “append”); C. FileOutputStream out=new FileOutputStream(“file.txt”, true);
D. FileOutputStream out=new FileOutputStream(new file(“file.txt”)); 4. 假定组件List定义为List l=new List(5,true),则下列描述正确的是( )
A. 该列表的最大容量为5
B. 该列表可显示5行,并且为多选模式 C. 该列表可显示5行,并且为单选模式 D. 以上均不对
5. 下列哪个选项不能使当前线程停止执行( ) A. 一个异常被抛出
B. 线程执行了sleep()调用
C. 高优先级的线程处于可运行状态 D. 当前线程产生了一个新线程
6. 下面关于Applet的说法正确的是( ) A. Applet也需要main方法
B. Applet必须继承自java.awt.Applet C. Applet能访问本地文件 D. Applet程序不需要编译
7. 关于下列程序 public class Q { public static void main(String argv[]){ int anar[]= new int[]{1,2,3};
System.out.println(anar[1]); } } 以下结论正确的是( ) A. 发生编译错误 B. 1 C. 2
D. 数组长度未指定
8. 下列哪个方法可以创建一个新线程() A. 继承javlang.Thread并重写方法run
B. 继承javlang.Runnable并重写start方法 C. 实现javlang.thread 并重写方法run
D. 实现javlang.Thread并重写方法start
9. 下面关于javapplet.Applet和其祖先类的描述语句哪个不对() A. Applet是 Container的 一种 B. Applet是 Window的 一种 C. Applet是 Component的一种 D. Applet是 Panel的 一种
10. Applet不能从下列哪个选项中运行:( ) A. IE
B. appletviewer C. 命令行 D. Netscape
二、判断题(本大题共10分,共 10 小题,每小题 1 分) 1. 组件必须放置在一定的容器中才能显示.( ) 2. 线程一旦被创建就处于可运行状态.( )
3. 程序中抛出异常时(throw „),只能抛出自己定义的异常对象。
4. 应用程序一定要有main()方法,Applet一定要继承于Applet 类.( ) 5. 类RandomAccessFile提供了对随机文件访问的支持.( ) 6. 一个异常处理中 finally语句块只能有一个或者可以没有。 7. 通过类FileOutputStream可以实现对文件的随机处理 8. 在执行更新数据库操作时,不能设置输入参数 9. 一个布局容器中可以混合使用多种布局策略 10. Frame能产生鼠标事件
三、程序阅读题(本大题共36分,共 6 小题,每小题 6 分) 1. import java.io.* ; public class Reverse {
public static void main(String args[ ]) {
int i , n =5 ; int a[ ] = new int[5]; for ( i = 0 ; i < n ; i ++ ) try {
BufferedReader br = new BufferedReader( new InputStreamReader(System.in));
a[i] = Integer.parseInt(br.readLine( )); }
catch ( IOException e ) { } ;
for ( i = n-1 ; i >= 0 ; i ―― ) System.out.print(a[i]+\" \"); System.out.println( ); } }
如果从键盘输入1 2 3 4 5 则运行结果为: 2. import java.io.*;
public class test {
public static void main(String argv[]) {
test m=new test();
System.out.println(m.amethod()); }
public int amethod() { try {
FileInputStream dis=new FileInputStream(\"Hello.txt\"); }
catch (FileNotFoundException fne) {
System.out.println(\"No such file found\"); return -1; }
catch(IOException ioe) { }
finally{ System.out.println(\"Doing finally\"); }
return 0; } }
如果文件Hello.txt并不存在,则运行结果为? 3. import java.io.*; import java.net.*; public class Test {
public static void main(String args[]) throws Exception {
URL url=new URL(“http://www.163.com:80/news.html”); System.out.println(“protocol=”+url.getProtocol()); System.out.println(“host=”+url.getHost()); System.out.println(“filename=”+url.getFile()); System.out.println(“path=”+url.getPath()); } }
4. import java.awt.Graphics; import java.applet.Applet; public class ttt extends Applet {
public void paint( Graphics g ) {
int count, xPos = 25;
for ( count = 1; count <= 10; count++ ) {
if ( count == 8 ) break;
g.drawString( \" \" + count, xPos, 25 ); xPos += 10; } } }
问题:程序的输出结果是什么? 5. import java.util.*; class Test {
public static void main(String args[]) {
Stack mystack=new Stack(); mystack.push(new Integer(1)); mystack.push(new Integer(1)); int k=1; while(k<=4) {
Integer F1=(Integer)mystack.pop(); int f1=F1.intValue();
Integer F2=(Integer)mystack.pop(); int f2=F2.intValue();
Integer temp=new Integer(f1+f2);
System.out.println(\"\"+temp.toString()); mystack.push(temp); mystack.push(F2);k++; } } }
6. 写出以下程序的运行结果。
四、简答题(本大题共20分,共 4 小题,每小题 5 分) 1. 使用socket进行通讯的基本步骤是什么? 2. 如何构造一个线程(两种方法)? 3. 什么是对象的串行化? 4. 什么是JDBC?
五、程序设计题(本大题共14分,共 1 小题,每小题 14 分) 编写程序删除指定文件,要求文件名通过main方法的参数传入.
答案:
一、单项选择题(20分,共 10 题,每小题 2 分)
1. A 2. B 3. C 4. B 5. D 6. B 7. C 8. A 9. B 10. C
二、判断题(10分,共 10 题,每小题 1 分)
1. √ 2. × 3. × 4. √ 5. √ 6. √ 7. × 8. × 9. √ 10. √
三、程序阅读题(36分,共 6 题,每小题 6 分) 1.
参考答案: 5 4 3 2 1 解题方案:
评分标准:
完全一样才得分 2.
参考答案:
No such file found Doing finally -1 解题方案:
评分标准: 完全一样才得分 3.
参考答案:
protocol=http host=www.163.com filename=/news.html path=/news.html 解题方案:
评分标准: 完全一样才得分 4.
参考答案: 1 2 3 4 5 6 7 解题方案:
评分标准: 完全一样才得分 5.
参考答案: 2 3 5 8 解题方案:
评分标准:
完全一样才得分,多写不得分 6.
参考答案:
解题方案:
评分标准:
四、简答题(20分,共 4 题,每小题 5 分) 1.
参考答案:
(1)创建socket;(2)打开连接到socket的输入/出流; (3)按照一定的协议对socket进行读/写操作; (4)关闭socket.
解题方案:
评分标准: 1个步骤1分 2.
参考答案:
构造线程体有两种方式 1定义一个线程类,它继承Thread类,并重写其中的run()方法.直接生成这个类的对象就可以构造一个线程.
2提供一个实现接口?Runnable的类作为线程的目标对象.在构造线程对象时,通过方法?Thread(Runnable?target,String?name)把目标对象传给这个线程实例. 解题方案:
评分标准: 1个方法2分 3.
参考答案:
对象的寿命通常随着生成该对象的程序的终止而终止.有时候,需要将对象的状态保存下来,在需要时,再将对象恢复. 对象通过写出描述自己状态的数值来记录自己,这个过程叫作对象的串行化(Serializa tion). 解题方案:
评分标准: 意思对就给分 4.
参考答案:
JDBC是: 1、将Java语言和Sql结合的一个很好的编程接口. 2、通用的一般的SQL数据库访问和存储结构. 3、支持基本SQL功能的一个通用低层的应用程序编程接口,在不同的数据库功能模块上提供了一个统一的用户界面. 4、和ODBC一样,建立在X/Open SQL CLI基础之上. 5、是为Java语言定义的一个SQL调用级(CLI)界面. 解题方案:
评分标准: 意思对就给分
五、程序设计题(14分,共 1 题,每小题 14 分) 0.
参考答案:
import java.io.*;
public class Delete { public static void main(String[] args) {
if (args.length != 1) {
System.err.println(\"使用方法: java Delete \"); System.exit(0); } try {
delete(args[0]); }
catch (IllegalArgumentException e) {
System.err.println(e.getMessage()); } }
public static void delete(String filename) { File f = new File(filename);
if (!f.exists()) fail(\"删除:没有这样的文件或者目录: \" +filename); if (!f.canWrite()) fail(\"删除:目标被写保护: \" + filename);
boolean success = f.delete(); if (!success) fail(\"删除:删除失败\"); }
protected static void fail(String msg) throws IllegalArgumentException {
throw new IllegalArgumentException(msg); } }
解题方案:
评分标准:
结构3分,功能实现4分,语法3分
因篇幅问题不能全部显示,请点此查看更多更全内容