教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 综合文档 >

《Java程序设计》笔试卷B试题(3)

来源:网络收集 时间:2026-01-11
导读: XXXXXX大学 XXX学院 41、程序中已定义如下字符串数组faces,用来表示牌面面值: String faces[]={ \ \ \并已定义名为hand1的Card数组如下,存放一幅牌(共5张): Card hand1[]=new Card[5]; 设已发了一幅牌,并存

XXXXXX大学 XXX学院

41、程序中已定义如下字符串数组faces,用来表示牌面面值: String faces[]={ \ \ \并已定义名为hand1的Card数组如下,存放一幅牌(共5张): Card hand1[]=new Card[5];

设已发了一幅牌,并存放在hand1数组中,为了统计该幅牌(54张牌中的任意5张)的每个面值的牌各有多少(因花色不同,不同面值的牌可能有0、1、2、3、4张),程序中已定义一个整型数组: int numbers1[]=new int[13] ;

存放5张牌中13个不同面值中的张数。

请编写方法:void totalHand(),方法的功能是统计一幅牌中不同面值的牌的张数,结果保存在整型数组numbers1中。

42、为了模拟两个线程共享数据,并实现线程对共享数据的同步操作,模拟生产和消费的同步。定义SynchronizedBuffer类做为生产线程和消费线程的共享数据类,类中定义整型缓冲区buffer,用来存放一个整数;定义方法set,用来模拟生产过程,即给变量buffer设置值,该方法由生产线程调用;定义方法get,用来模拟消费过程,即取变量buffer的值,该方法由消费线程调用。生产和消费的逻辑要求是:必须先生产一个整数,然后才能消费该整数;消费后才能继续生产。请完成程序中set方法的编写。

public class SynchronizedBuffer { private int buffer = -1;

private boolean occupiedBuffer= false;

/*编写set方法设置buffer值,该方法将由生产线程调用,模拟生产过程*/ …….;

/*编写get方法得到buffer值,该方法将由消费线程调用,模拟消费过程*/ public synchronized int get() {

String name = Thread.currentThread().getName(); while (!occupiedBuffer) { try {

System.err.println( name

+\试图消费,但还没有生产!等待生产!\ wait(); }

catch ( InterruptedException e ) { e.printStackTrace(); } }

occupiedBuffer=false;

System.out.println( name+ \消费一个整数:\ notify();

return buffer; } }

第 11 页 共 11 页

《Java程序设计》笔试卷B试题(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/402613.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)