【计算机类职业资格】二级JAVA机试-92及答案解析.doc

上传人:bowdiet140 文档编号:1326612 上传时间:2019-10-17 格式:DOC 页数:7 大小:35.50KB
下载 相关 举报
【计算机类职业资格】二级JAVA机试-92及答案解析.doc_第1页
第1页 / 共7页
【计算机类职业资格】二级JAVA机试-92及答案解析.doc_第2页
第2页 / 共7页
【计算机类职业资格】二级JAVA机试-92及答案解析.doc_第3页
第3页 / 共7页
【计算机类职业资格】二级JAVA机试-92及答案解析.doc_第4页
第4页 / 共7页
【计算机类职业资格】二级JAVA机试-92及答案解析.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、二级 JAVA 机试-92 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.如下程序在编译时出错,请改正程序中的错误,使之顺利通过编译和运行。注意:不改动程序结构,不得增行或删行。class SubClass extends BaseClassclass BaseClassString str;public BaseClass()SyStem.out.println(“good“);public BasecClass(String s)str=s;public class ConstructTest1public static void

2、 main(String args)SubClass s=new SubClass(“hi“);BaseClass b=new BaseClass(“Java“);(分数:30.00)_二、2简单应用题(总题数:1,分数:40.00)2.请完成下列 Java 程序:运行 3 个线程有自己的标志,用 a,b,c 表示,每个线程显示一个“Start”信息和一个“End”信息并且间隔地显示 2 个“Loop”信息(间隔变化为 0.52 秒之间的随机延迟)。程序运行结果如下(注:由于事件间隔为随机数,所以,运行结果的顺序不唯一):a Startb Startc Startb Loopa Loopb L

3、oopb Endc Loopa Loopa Endc Loopc End注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。public class ex5_2 implements Runnablestatic char flag5_2=a;public static void main(String args)ex5_2 obj5_2=new ex5_2();Thread thread5_2=new Thread(obj5_2);Thread5_2.start();thread5_2=new Thread(obj2_2);thread5_2.start();t

4、hread5_2=new Thread(obj2_2);thread5_2.start();public void run()char myflag5_2;synchronized(this)_;System.out.println(myflag5_2+“Start“);for(int i=0;i2;i+)tryThread.sleep(rand(500,2000);System.out.println(myflag5_2+“Loop“);catch(InterruptedException ie)System.out.println(ie);System.out.println(myflag

5、5_2+“End“);final private iht rand(int low,int high)return(_);(分数:40.00)_三、3综合应用题(总题数:1,分数:30.00)3.现有磁盘文件 file a.txt 和 file b.txt,各存放一行字母,上述程序实现了将 2 个磁盘文件中的内容合并,并按照字母的升序排列,存放到一个新的文件 new.txt 中。请将程序补充完整。注意:不改动程序结构,不得增行或删行。package ch3;import java.util.*;import java.io*;public class ex3public static void

6、 main(String args)String s=“;tryRandomAccessFile f1=new RandomAccessFile(“ch3/filea.txt“,“rw“);_f2=new _(“ch3/fileb.txt“,“rw“);s=f1.readLine()+f2.readLine();char c=s.toCharArray();Arrays.sort(c);_Out=new_(“ch3/new.txt“);for(int i=0;i c.length;i+)Out._(ci);out._;f1.close();f2.close();catch(I0Exceptio

7、n ioe)ioe.printStackTrace();(分数:30.00)_二级 JAVA 机试-92 答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.如下程序在编译时出错,请改正程序中的错误,使之顺利通过编译和运行。注意:不改动程序结构,不得增行或删行。class SubClass extends BaseClassclass BaseClassString str;public BaseClass()SyStem.out.println(“good“);public BasecClass(String s)str=s;public

8、class ConstructTest1public static void main(String args)SubClass s=new SubClass(“hi“);BaseClass b=new BaseClass(“Java“);(分数:30.00)_正确答案:(改为 SubClass=new SubClass();)解析:讲解 本题是考查对类构造函数的理解。当一个类中未显示定义构造函数时,默认的构造函数是以类名为函数名,参数为空,函数体为空。虽然父类中的某一构造函数有字符串参数 s,但是,子类继承父类时,并不继承构造函数,所以它只能使用默认构造函数。二、2简单应用题(总题数:1,分

9、数:40.00)2.请完成下列 Java 程序:运行 3 个线程有自己的标志,用 a,b,c 表示,每个线程显示一个“Start”信息和一个“End”信息并且间隔地显示 2 个“Loop”信息(间隔变化为 0.52 秒之间的随机延迟)。程序运行结果如下(注:由于事件间隔为随机数,所以,运行结果的顺序不唯一):a Startb Startc Startb Loopa Loopb Loopb Endc Loopa Loopa Endc Loopc End注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。public class ex5_2 implements Ru

10、nnablestatic char flag5_2=a;public static void main(String args)ex5_2 obj5_2=new ex5_2();Thread thread5_2=new Thread(obj5_2);Thread5_2.start();thread5_2=new Thread(obj2_2);thread5_2.start();thread5_2=new Thread(obj2_2);thread5_2.start();public void run()char myflag5_2;synchronized(this)_;System.out.

11、println(myflag5_2+“Start“);for(int i=0;i2;i+)tryThread.sleep(rand(500,2000);System.out.println(myflag5_2+“Loop“);catch(InterruptedException ie)System.out.println(ie);System.out.println(myflag5_2+“End“);final private iht rand(int low,int high)return(_);(分数:40.00)_正确答案:(myflag5_2=flag5_2+(int)(high-lo

12、w+1)*(Math.random()+low)解析:讲解 本题主要考查线程的创建与同步和控制随机数产生范围的算法。解题关键是,熟悉线程的概念和使用、线程的同步控制、char 类型数据的操作,以及熟悉随机数产生的方法 Math.random(),并且能够进一步根据需要控制随机数产生的范围。在本题中,main()方法中创建 3 个线程,这 3 个线程使用。obj5_2 对象。线程调用 start()方法来中断,使一个新的线程开始执行,并且调用 run()方法。第 1 个空,run()方法为自己设置一个线程的标志,并为下一个线程的使用增加这个标志值,由于此时线程正在处理中,因此在同步块中完成修改标

13、志的语句放在同步块中。第 2 个空,通过 low 和 high 两个参数,控制产生随机数的范围,将基本的数学思想应用于程序设计中。三、3综合应用题(总题数:1,分数:30.00)3.现有磁盘文件 file a.txt 和 file b.txt,各存放一行字母,上述程序实现了将 2 个磁盘文件中的内容合并,并按照字母的升序排列,存放到一个新的文件 new.txt 中。请将程序补充完整。注意:不改动程序结构,不得增行或删行。package ch3;import java.util.*;import java.io*;public class ex3public static void main(S

14、tring args)String s=“;tryRandomAccessFile f1=new RandomAccessFile(“ch3/filea.txt“,“rw“);_f2=new _(“ch3/fileb.txt“,“rw“);s=f1.readLine()+f2.readLine();char c=s.toCharArray();Arrays.sort(c);_Out=new_(“ch3/new.txt“);for(int i=0;i c.length;i+)Out._(ci);out._;f1.close();f2.close();catch(I0Exception ioe)i

15、oe.printStackTrace();(分数:30.00)_正确答案:(RandomAccessFileRandomAccessFileFileOutputStreamPileOutputStreamwriteclose)解析:讲解 本题是考查对文件输出流及其常用方法的理解。输入流采用了 RandomAccessFile 类,输出流采用了 FileOutputStream,存放到新的文件要调用 write 方法,最后完成文件的读写操作时,相应的对象需要关闭自己所关联的文件。6 个空的答案分别是RandomAccessFile、RandomAccessFile、FileOutputStream、FileOutputStream、write 和 close.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1