欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:1326468       资源大小:41.50KB        全文页数:8页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、二级 JAVA 机试-141 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.在程序中,随机产生 100 个学生的成绩,并计算出他们的平均成绩。学生的成绩按照五级打分制,“A”表示 4 分、“B”表示 3 分、“C”表示 2 分、“D”表示 1 分、“E”表示 0 分。平均成绩用浮点数表示。请填写横线处的内容。注意:请勿修改 main()主方法和其他已有语句内容,仅在横线处填入适当语句。import java.math.*;public class basicpublic static void main(String args)flo

    2、at aver=0;int a=0, b=0, c=0, d=0, e=0, f=0;for(_; i 100; i+)double sd= Math.random()*5+A;char score=_;_(score)caseA: aver+=4;a+;break;caseB: aver+=3;b+;break;caseC: aver+=2;c+;break;caseD: aver+=1;d+;break;caseE: aver+=0;e+;break;default: break;aver/=100;System.out.println(“平均分数为“+aver+“,学生人数 100“);

    3、System.out.println(“得 A 的学生有“+a+“人“);System.out.println(“得 B 的学生有“+b+“人“);System.out.println(“得 C 的学生有“+c+“人“);System.out.println(“得 D 的学生有“+d+“人“);System.out.println(“得 E 的学生有“+e+“人“);(分数:30.00)_二、2简单应用题(总题数:1,分数:40.00)2.在程序中,使用适当的布局管理器,在 Frame 框的 North 位置添加一句提示信息,在 South 位置添加一个单行文本框,在这个文本框中输入的内容将会

    4、显示在 Center 位置。运行结果如下图所示。注意:请勿修改 main()主方法和其他已有语句内容,仅在横线处填入适当语句。(分数:40.00)_三、3综合应用题(总题数:1,分数:30.00)3.本题程序中实现了一个“生产者一消费者问题”。生产者产生一个随机数存入 DataPool 类中,消费者从中取出数据。DataPool 类一次只能存放一个数据。请更正题中带下划线的部分。注意:不改变程序的结构,不得增行或删行。class DataPoolprivate int data;private boolean isFull;public DataPool()isFull=false;publi

    5、c synchronized void putData(int d)if(isFull= =true)trythis.notify();catch(InterruptedException e)data=d;isFull=true;System.out.println(“生产了一个数据:“+data);this.notify();public synchronized int getData()if(isFull= =false)trythis.wait();catch(InterruptedException e)isFull=false;System.out.println(“消费了一个数

    6、据“+data);this.wait();return this.data;boolean getIsFull()return isFull;class Producer extends ThreadDataPool pool;public Producer(DataPool pool)this.pool=pool;public void run()for(int i=0; i10; i+)int data=(int) (Math.random()*1000);try/用于生产数据sleep(data);catch(InterruptedException e)pool.putData(dat

    7、a);class Consumer implements RunnableDataPool pool;public Consumer(DataPool pool)this.pool=pool;public void run()for(int i=0; i10; i+)int data=pool.getData();try/用于处理数据sleep(int) (Math.random()*1000);catch(InterruptedException e)public class advancepublic static void main(String args)Data Pool pool=

    8、new Data Pool();Producer pro=new Producer(pool);Runnable con=new Consumer(pool);Thread conTh=new Thread(con);pro.start();conTh.start();(分数:30.00)_二级 JAVA 机试-141 答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.在程序中,随机产生 100 个学生的成绩,并计算出他们的平均成绩。学生的成绩按照五级打分制,“A”表示 4 分、“B”表示 3 分、“C”表示 2 分、“D”表示 1 分、“

    9、E”表示 0 分。平均成绩用浮点数表示。请填写横线处的内容。注意:请勿修改 main()主方法和其他已有语句内容,仅在横线处填入适当语句。import java.math.*;public class basicpublic static void main(String args)float aver=0;int a=0, b=0, c=0, d=0, e=0, f=0;for(_; i 100; i+)double sd= Math.random()*5+A;char score=_;_(score)caseA: aver+=4;a+;break;caseB: aver+=3;b+;bre

    10、ak;caseC: aver+=2;c+;break;caseD: aver+=1;d+;break;caseE: aver+=0;e+;break;default: break;aver/=100;System.out.println(“平均分数为“+aver+“,学生人数 100“);System.out.println(“得 A 的学生有“+a+“人“);System.out.println(“得 B 的学生有“+b+“人“);System.out.println(“得 C 的学生有“+c+“人“);System.out.println(“得 D 的学生有“+d+“人“);System.

    11、out.println(“得 E 的学生有“+e+“人“);(分数:30.00)_正确答案:(int i=0(char)sdswitch)解析:讲解 本题考查知识点:for 循环、多分支语句、数据类型之间的转换。解题思路:程序中用一个 for 循环控制 100 个学生成绩的录入。sd 是随机产生的一个 65 到 69 之间的数,将其转换为字符型数据以后赋值给 score。使用多分支语句统计分数,最后算出平均值。第 1 个空考查 for 循环的使用。for循环的结构是“for(循环初始化语句;循环结束条件;迭代部分)”,初始化语句中可以声明一个变量,这个变量的作用域是整个 for 循环。因此第

    12、1 个空应该声明变量。在本题中,i 可以是除布尔型以外的任意数据类型。第 2 个空考查数据类型之间的转换,凡是从高优先级次序的数据类型转换为低优先次序的数据类型,都必须使用强制类型转换。所以第 2 个空不能填写 sd,只能填写(char)sd。第 3 个空考查多分支语句的使用。Java 语言中的多分支语句为 switch-case 语句,由此得到第 3 个空的结果。二、2简单应用题(总题数:1,分数:40.00)2.在程序中,使用适当的布局管理器,在 Frame 框的 North 位置添加一句提示信息,在 South 位置添加一个单行文本框,在这个文本框中输入的内容将会显示在 Center 位

    13、置。运行结果如下图所示。注意:请勿修改 main()主方法和其他已有语句内容,仅在横线处填入适当语句。(分数:40.00)_正确答案:(System.exit(0)BorderLayout()解析:讲解 本题考查知识点:AWT 库的使用,布局管理器的使用。解题思路:程序使用 label Title来显示提示信息,使用 text Field 来获取用户的输入,最后将用户输入的结果通过 showTextLabel 显示出来。Frame 的关闭按钮的处理方式与 JFrame 的方式不同,Frame 必须手动实现退出按钮的事件处理机制,否则单击关闭按钮程序不会做出响应。本题的第 1 空就是对退出按钮事

    14、件响应的内容。BorderLayout 布局管理器将容器分为五个区域:North、South、East、West 和 Center。可以指定构件放在哪个区域,但是每个区域只能放置一个构件。第 2 个空即是为 Frame 设置 BorderLayout 类型的布局管理器。三、3综合应用题(总题数:1,分数:30.00)3.本题程序中实现了一个“生产者一消费者问题”。生产者产生一个随机数存入 DataPool 类中,消费者从中取出数据。DataPool 类一次只能存放一个数据。请更正题中带下划线的部分。注意:不改变程序的结构,不得增行或删行。class DataPoolprivate int da

    15、ta;private boolean isFull;public DataPool()isFull=false;public synchronized void putData(int d)if(isFull= =true)trythis.notify();catch(InterruptedException e)data=d;isFull=true;System.out.println(“生产了一个数据:“+data);this.notify();public synchronized int getData()if(isFull= =false)trythis.wait();catch(I

    16、nterruptedException e)isFull=false;System.out.println(“消费了一个数据“+data);this.wait();return this.data;boolean getIsFull()return isFull;class Producer extends ThreadDataPool pool;public Producer(DataPool pool)this.pool=pool;public void run()for(int i=0; i10; i+)int data=(int) (Math.random()*1000);try/用于

    17、生产数据sleep(data);catch(InterruptedException e)pool.putData(data);class Consumer implements RunnableDataPool pool;public Consumer(DataPool pool)this.pool=pool;public void run()for(int i=0; i10; i+)int data=pool.getData();try/用于处理数据sleep(int) (Math.random()*1000);catch(InterruptedException e)public cla

    18、ss advancepublic static void main(String args)Data Pool pool=new Data Pool();Producer pro=new Producer(pool);Runnable con=new Consumer(pool);Thread conTh=new Thread(con);pro.start();conTh.start();(分数:30.00)_正确答案:(this.wait()this.notify()thread.sleep(int)(Math.random()*1000)解析:讲解 本题考查知识点:多线程同步与互斥、线程的

    19、概念和实现方法。解题思路:Data Pool 是一个用来存放数据的缓冲池,其中可以存放一个血型数据,变量 isFull 作为标志量,标志该缓冲池中是否有数据。Put Data()方法负责向 Data Pool 中存放数据,本方法调用成功,缓冲池中就存入了数据,getData()方法负责从 DataPool 中获得数据,本方法调用成功,缓冲池就为空。Producer 类负责产生随机数据,然后将数据存放到 DataPool 中。Consumer 类负责才能够从 DataPool 中取出数据。Producer 和Consumer 共享同一个 Data Pool 对象。当某个线程进入 synchron

    20、ized 块后,共享的数据并不一定能满足该线程的需要,这样线程就需要等待其他线程修改共享数据,直到满足需要以后才继续执行,但是当前线程必须释放锁以使得其他线程可以运行。wait()和 notify()方法是实现线程之间通信的两个方法。wait()用来释放线程拥有的锁,使线程进入等待队列;notify()用来唤醒等待队列中的线程,并把它加入到申请锁的队列。本题中生产者在 DataPool 有数据的情况下需要进入等待消费者取出数据,所以需要调用 wait()方法,因此第 1 个下划线的地方应该改为 this.wait()。消费者线程在取出数据以后,必须通知生产者线程 DataPool 中已经没有数据了,因此第 2 个下划线的地方改为 this.notify()。第 3 个下划线的地方,考查常用的线程类的使用。Runnable 接口的目的是使任何类都可以为线程提供线程体,但它本身并不是线程,所以并不能直接调用 Thread 类的方法,需要改为 thread.sleep。


    注意事项

    本文(【计算机类职业资格】二级JAVA机试-141及答案解析.doc)为本站会员(towelfact221)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开