【计算机类职业资格】中级软件设计师下午试题-95及答案解析.doc
《【计算机类职业资格】中级软件设计师下午试题-95及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】中级软件设计师下午试题-95及答案解析.doc(19页珍藏版)》请在麦多课文档分享上搜索。
1、中级软件设计师下午试题-95 及答案解析(总分:102.99,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)说明一个新的音像商店准备向比较广泛的人群出租录像带和光碟。该商店的管理决定在计算机系统的支持下来运作。音像商店在货架上存放着题材广泛的当前流行的电影库。由于同一个电影片名可能有于不同的导演而有不同的版本,因此电影用电影代码区分,而不用电影片名;同一个版本有多份拷贝,因此音像制品用一个唯一的编号标识。某个特定的电影可以存放在录像带或光碟上,录像带和光碟的租金不同。录像带要么是Beta 格式要么是 VHS 格式;光碟为 DVD 格式,容量比较大,一张光碟可以存储同一电影片名
2、的不同版本。每个电影都有特定的租用期(用天表示),并带有在租用期内的租金。音像商店必须能够立即回答关于某个电影的库存和有多少供租用的带子或光碟。音像商店的店员负责定购音像、联系客户、音像上架,并对客户的询问给出答复。该系统采用面向对象方法开发,系统中的类以及类之间的关系用 UML 类图表示,图 1-1 是该系统的用例图,图 1-2 是该系统的类图的一部分。图 1-1图 1-2(分数:15.00)_二、试题二(总题数:1,分数:13.00)说明为了有效记录交通事故情况,欲设计一个交通事故记录系统。一辆汽车有一个唯一的“车牌号”,车主购买汽车时需要提供相关信息,包括身份证、姓名、年龄、性别、地址等
3、。一个车主可以拥有多辆汽车,而一辆汽车只有一个车主。驾驶员不一定是车主,因此记录交通事故时要记录驾驶员身份证号,同时记录事故发生时刻。图 2-1 描绘了人、汽车、交通事故三个实体类型及实体间联系的一个 E-R 图。图 2-1(分数:12.99)_三、试题三(总题数:1,分数:15.00)1.说明在数据链路层扩展局域网时使用网桥。网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发。网桥具有过滤帧的功能:当网桥收到一个帧时,并不是向所有的端口转发此帧,而是先检查此帧的目的 MAC 地址,然后确认将该帧转发到哪个端口。最简单的网桥有两个端口(即接口)。网桥的每个端口与一个网段相连。
4、每当收到一个帧时,通过查找转发表将收到的帧转发。当一个网桥刚刚连接到局域网上时,其转发表是空的,此时若收到一个帧,按照以下算法处理和建立自己的转发表:(1)从端口 x 收到的无差错的帧(如有差错即丢弃),在转发表中查找目的站 MAC 地址;(2)如有,则查找出到此 MAC 地址应走的端口 d,然后进行(3),否则转到(5);(3)如到这个 MAC 地址去的端口 d=x,则丢弃此帧(因为这表示不需要经网桥进行转发),否则从端口 d 转发此帧;(4)转到(6);(5)向网桥除 x 以外的所有端口转发此帧(这样做可以保证找到目的站);(6)如源站不在转发表中,则将源站 MAC 地址加入转发表,登记该
5、帧进入网桥的端口号,设置计时器,然后转到(8),如源站在转发表中,则执行(7);(7)更新计时器;(8)等待新的数据帧,转到(1)。这时,网桥就在转发表中登记以下三个信息:站地址登记收到帧的源 MAC 地址、端口登记收到的帧进入该网桥的端口号、时间登记收到的帧进入该网桥的时间。现有五个工作站分别连接在三个局域网上,并且用两个网桥连接起来,如图 3-1。每一个网桥的两个端口号都标明在图上。在一开始,两个网桥中的转发表都是空的。以后有以下各站向其他的站发送了数据帧,即 H1 发送给 H5,H3 发送给 H2,H4 发送给 H3,H2 发送给 H1。图 3-1(分数:15.00)_四、试题四(总题数
6、:1,分数:15.00)说明在进行文法分析的时候,通常需要检测一个单词是否在我们的单词列表里。为了提高查找和定位的速度,通常都要画出与单词列表所对应的单词查找树。程序构造一棵二叉排序树,每个节点存储一个单词,按字典序列,较小的在左子树,较大的在右子树。函数中使用的预定义符号如下:typedef struct TreeNode/*二叉排序树节点*/char *word;struct TreeNode *left, *right;BNODE;函数int getWord(FILE *fpt, char *word)/*从文件 fpt 中读取单词到 word 中,到达文件结束时返回 0*/char c
7、;c = fgetc(fpt);if(c = EOF)return 0;/*跳过单词间的非字母字符*/while(!(tolower(c) = a ptr = (BNODE*)malloc(sizeof ptr);ptr-left = ptr-right = NULL;ptr-word = (char*)malloc(strlen(word) + 1);strcpy(ptr-word, word);if(p = NULL)(4) ;else if(compres 0)p-right = ptr;elsep-left = ptr;int main()FILE *fpt;char word40;B
8、NODE *root = NULL;if(fpt = fopen(“text.in“, “r“) = NULL)printf(“不能打开文件 text.in! /n“);return 1;while(getWord(fpt, word) = 1)BTree (5) ;fclose(fpt);return 0;(分数:15.00)_五、试题五(总题数:1,分数:15.00)说明任何一种程序都是为了解决问题而撰写的,解决问题时需要实现一些特定的运算法则。在策略(Strategy)模式下,可以更换实现算法的部分而不留痕迹,切换整个算法,简化改为采用其他方法来解决同样问题。以下是一个“剪刀石头布”游戏
9、。猜拳时的“策略”有 2 种方法:第一种是“猜赢后继续出同样的招式”(WinningStrategy),第二种是“从上一次出的招式中,以概率分配方式求出下一个招式的几率”(ProbStrategy)。程序中定义了 Hand 类表示猜拳时的“手势”,类内部以 0(石头)、1(剪刀)、2(布)来表示。Hand 类的实例只会产生 3 个。以下是 C+语言实现,能够正确编译通过。C+代码class Handprivate:int handvalue;static Hand *hand0;static Hand *hand1;static Hand *hand2;(1) ;Hand(int handva
10、lue)this-handvalue = handvalue;public:(2) Hand* getHand(int handvalue)/*省略具体实现*/;Hand *Hand:hand0 = new Hand(0);Hand *Hand:hand1 = new Hand(1);Hand *Hand:hand2 = new Hand(2);class Strategypublic:(3) Hand* nextHand() = 0;class WinningStrategy : public Strategyprivate:bool won;Hand *prevHand;public:wi
11、nningStrategy()won = false;Hand* nextHand()if(!won)prevHand = Hand:getHand(rand()%3);return prevHand;class probstrategy : public Strategypublic:Hand* nextHand()int handvalue = 0;/*省略具体实现*/return Hand:getHand(handvalue);class Playerprivate:string name;Strategy* strategy;public:Player(string name, (4)
12、 strategy)this-name = name;this-strategy = strategy;Hand *nextHand()(/向战略请示手势return (5) ;(分数:15.00)_六、试题六(总题数:1,分数:15.00)说明任何一种程序都是为了解决问题而撰写的,解决问题时需要实现一些特定的运算法则。在策略(Strategy)模式下,可以更换实现算法的部分而不留痕迹,切换整个算法,简化改为采用其他方法来解决同样问题。以下是一个“剪刀石头布”游戏。猜拳时的“策略”有 2 种方法:第一种是“猜赢后继续出同样的招式”(WinningStrategy),第二种是“从上一次出的招式种
13、,以概率分配方式求出下一个招式的几率”(ProbStrategy)。程序中定义了 Hand 类表示猜拳时的“手势”,类内部以 0(石头)、1(剪刀)、2(布)来表示。Hand 类的实例只会产生 3 个。以下是 Java 语言实现,省略了不相关属性及方法,方法实现体亦有所省略,能够正确编译通过。Java 代码/Hand.java 文件public class Handpublic static final int HANDVALUE_GUU = 0; /石头public static final int HANDVALUE_CHO = 1; /剪刀public static final int
14、HANDVALUE_PAA = 2; /布public static final Hand hand = new Hand(HANDVALUE_GUU),new Hand(HANDVALUE_CHO),new Hand(HANDVALUE_PAA),;private int handvalue;(1) Hand(int handvalue)this.handvalue = handvalue;public (2) Hand getHand(int handvalue)(/从值取得对象实例return handhandvalue;/Strategy.java 文件public interface
15、 Strategypublic (3) Hand nextHand();/ProbStrategy.java 文件import java.util.Random;public class ProbStrategy implements Strategypublic Hand nextHand()int handvalue = 0;/*省略具体实现*/return Hand.getHand(handvalue);/WinningStrategy.java 文件import java.util.Random;public class WinningStrategy implements Strat
16、egy /*省略了不相关属性*/public Hand nextHand()if(!won)prevHand = Hand.getHand(random.nextInt(3);return prevHand;/Player.java 文件public class Player private String name;private Strategy strategy;public Player(String name, (4) strategy)this.name = name;this.strategy = strategy;public Hand nextHand()/向战略请示手势ret
17、urn (5) ;(分数:15.00)_七、试题七(总题数:1,分数:15.00)说明任何一种程序都是为了解决问题而撰写的,解决问题时需要实现一些特定的运算法则。在策略(Strategy)模式下,可以更换实现算法的部分而不留痕迹,切换整个算法,简化改为采用其他方法来解决同样问题。以下是一个“剪刀石头布”游戏。猜拳时的“策略”有 2 种方法:第一种是“猜赢后继续出同样的招式”(WinningStrategy),第二种是“从上一次出的招式种,以概率分配方式求出下一个招式的几率”(ProbStrategy)。程序中定义了 Hand 类表示猜拳时的“手势”,类内部以 0(石头)、1(剪刀)、2(布)来
18、表示。Hand 类的实例只会产生 3 个。以下是 C 语言实现,省略了不相关属性及方法,方法实现体亦有所省略,能够正确编译通过。C 代码typedef (1) (*funl)();enum HandValueHANDVALUE_GUU=0, HANDVALUE_CHO=1, HANDVALUE_PAA=2;/手势可取值,依次为“石头”、“剪刀”、“布”/其大小顺序是循环相克的,即:石头赢剪刀,剪刀赢布,布赢石头bool won;struct Hand *WSprevHand;struct Hand/手势enum HandValue handvalue;hand3=HANDVALUE_GUU,
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 中级 软件 设计师 下午 试题 95 答案 解析 DOC
