ImageVerifierCode 换一换
格式:DOC , 页数:3 ,大小:42KB ,
资源ID:1326699      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1326699.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

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

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

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

2、t 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+“

3、,学生人数 100“); 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)_二、B2简单应用题/B(总题数:1,分数:40.00)2.在程序中,使用适当的布局管理器,在 Frame框的 North位置添加一句提示信息,在 South位置添加一个单行文本框,在

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

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

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

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

8、 e) public class advance public 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)_二级 JAVA机试 96答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数:30.00)1.在程序中

9、,随机产生 100个学生的成绩,并计算出他们的平均成绩。学生的成绩按照五级打分制,“A”表示 4分、“B”表示 3分、“C”表示 2分、“D”表示 1分、“E”表示 0分。平均成绩用浮点数表示。请填写横线处的内容。 注意:请勿修改 main()主方法和其他已有语句内容,仅在横线处填入适当语句。 import java.math.*; public class basic public 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=

10、 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“); System.out.println(“得 A的学生有“+a+“人“); System.out.println(“得

11、B的学生有“+b+“人“); System.out.println(“得 C的学生有“+c+“人“); System.out.println(“得 D的学生有“+d+“人“); System.out.println(“得 E的学生有“+e+“人“); (分数:30.00)_正确答案:()解析:int i=0 (char)sd switch 讲解 本题考查知识点:for 循环、多分支语句、数据类型之间的转换。解题思路:程序中用一个 for循环控制 100个学生成绩的录入。sd 是随机产生的一个 65到 69之间的数,将其转换为字符型数据以后赋值给 score。使用多分支语句统计分数,最后算出平均

12、值。第 1个空考查 for循环的使用。for 循环的结构是“for(循环初始化语句;循环结束条件;迭代部分)”,初始化语句中可以声明一个变量,这个变量的作用域是整个 for循环。因此第 1个空应该声明变量。在本题中,i可以是除布尔型以外的任意数据类型。第 2个空考查数据类型之间的转换,凡是从高优先级次序的数据类型转换为低优先次序的数据类型,都必须使用强制类型转换。所以第 2个空不能填写 sd,只能填写(char)sd。第 3个空考查多分支语句的使用。Java 语言中的多分支语句为 switch-case语句,由此得到第 3个空的结果。二、B2简单应用题/B(总题数:1,分数:40.00)2.在

13、程序中,使用适当的布局管理器,在 Frame框的 North位置添加一句提示信息,在 South位置添加一个单行文本框,在这个文本框中输入的内容将会显示在 Center位置。运行结果如下图所示。 注意:请勿修改 main()主方法和其他已有语句内容,仅在横线处填入适当语句。 (分数:40.00)_正确答案:()解析:System.exit(0) BorderLayout() 讲解 本题考查知识点:AWT 库的使用,布局管理器的使用。解题思路:程序使用 label Title来显示提示信息,使用 text Field来获取用户的输入,最后将用户输入的结果通过 showTextLabel显示出来。

14、Frame 的关闭按钮的处理方式与 JFrame的方式不同,Frame 必须手动实现退出按钮的事件处理机制,否则单击关闭按钮程序不会做出响应。本题的第 1空就是对退出按钮事件响应的内容。BorderLayout 布局管理器将容器分为五个区域:North、South、East、West 和 Center。可以指定构件放在哪个区域,但是每个区域只能放置一个构件。第 2个空即是为 Frame设置BorderLayout类型的布局管理器。三、B3综合应用题/B(总题数:1,分数:30.00)3.本题程序中实现了一个“生产者一消费者问题”。生产者产生一个随机数存入 DataPool类中,消费者从中取出数

15、据。DataPool 类一次只能存放一个数据。请更正题中带下划线的部分。 注意:不改变程序的结构,不得增行或删行。 class DataPool private int data; private boolean isFull; public DataPool() isFull=false; public synchronized void putData(int d) if(isFull= =true) try Uthis.notify/U(); catch(InterruptedException e) data=d; isFull=true; System.out.println(“生产

16、了一个数据:“+data); this.notify(); public synchronized int getData() if(isFull= =false) try this.wait(); catch(InterruptedException e) isFull=false; System.out.println(“消费了一个数据“+data); Uthis.wait()/U; return this.data; boolean getIsFull() return isFull; class Producer extends Thread DataPool pool; public

17、 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(data); class Consumer implements Runnable DataPool pool; public Consumer(DataPool pool) this.pool=pool; public voi

18、d run() for(int i=0; i10; i+) int data=pool.getData(); try /用于处理数据 Usleep(int) (Math.random()*1000)/U; catch(InterruptedException e) public class advance public static void main(String args) Data Pool pool=new Data Pool(); Producer pro=new Producer(pool); Runnable con=new Consumer(pool); Thread conT

19、h=new Thread(con); pro.start(); conTh.start(); (分数:30.00)_正确答案:()解析:this.wait() this.notify() thread.sleep(int)(Math.random()*1000) 讲解 本题考查知识点:多线程同步与互斥、线程的概念和实现方法。解题思路:Data Pool 是一个用来存放数据的缓冲池,其中可以存放一个血型数据,变量 isFull作为标志量,标志该缓冲池中是否有数据。Put Data()方法负责向 Data Pool中存放数据,本方法调用成功,缓冲池中就存入了数据,getData()方法负责从 Da

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

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