【计算机类职业资格】中级软件设计师下午试题-58及答案解析.doc
《【计算机类职业资格】中级软件设计师下午试题-58及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】中级软件设计师下午试题-58及答案解析.doc(10页珍藏版)》请在麦多课文档分享上搜索。
1、中级软件设计师下午试题-58 及答案解析(总分:90.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)阅读下列说明和图,回答问题 1 至问题 3。【说明】某汽车数字仪表板将完成下述功能:(1)通过模/数转换,实现传感器和微处理器的接口。(2)在发光二极管面板上显示数据。(3)指示速度(mph)、行驶里程、油耗(mpg)等。(4)指示加速或减速。以下是经分析得到的数据流图,有些地方有待填充,假定顶层数据流图是正确的。图 9-14 是顶层数据流图,图 9-15 是第 0 层数据流图,图 9-16 是第 1 层数据流图,其中 A 是加工 1 的细化图,B 是加工 2 的细
2、化图。图中,sps 表示转速 sps 的瞬时变化值,若sps0 则汽车加速,sps0 则减速,sps=0 则匀速。假定题中提供的顶层图是正确的,请回答下列问题。(分数:15.00)(1).【问题 1】第 0 层数据流图(如图 9-15 所示)中有一条缺失的数据流,请指出该数据流的起点和终点。加工 1 的细化图(如图 9-16 中的 A 所示)中有一条缺失的数据流,请指出该数据流的起点和终点。(分数:5.00)_(2).【问题 2】加工 2 的细化图(如图 9-16 中的 B 所示)中有一条错误的数据流,请指出该数据流的起点或终点(若可以,指出两者)。(分数:5.00)_(3).【问题 3】小说
3、明是用来描述加工的。小说明的描述方法有哪些?请分别用这些描述方法描述加工 1.2。(分数:5.00)_二、B试题二/B(总题数:1,分数:15.00)阅读下列说明和图,回答问题 1 至问题 3。【说明】图书管理系统详细记录图书库存情况、读者信息及读者借阅记录(包括借书日期和还书日期)。新书入库时要为该书编制图书卡片,包括分类目录号、图书流水号(要保证每本书都有唯一的流水号,即使同类图书也是如此)、书名、作者、内容摘要、价格和购书日期。同一个书名由于版次、作者等不同有可能存在多“种”图书,其间用“分类目录号”区分。系统为每一位合法读者编制一个唯一的借书证号,读者需要提供姓名、单位。一个读者最多可
4、以同时借阅 5 本图书。借阅图书时,新添借阅记录,并将对应的“归还标记”字段置为“false”,表示“尚未归还”;归还图书时,将相应的“归还标记”字段置为“true”,表示“已经归还”。一本书可能供多位读者借阅,同一本书读者可以重复借阅。如图 9-17 所示为该系统的 E-R 图。(分数:15.00)(1).【问题 1】实体间的联系有“一对一”、“一对多”和“多对多”,指出“借阅”联系属于哪一种?“借阅”关系模式的外键是什么?有主键吗?为什么?(分数:5.00)_(2).【问题 2】由于同一个分类目录号(同一种图书)有多个副本,若用表 Book(图书流水号,分类目录号,书名,作者,内容摘要,价
5、格,购书日期)存储图书信息则有很多的冗余信息,该如何分解使之满足 BCNF,并指出分解后的关系模式的主键。(分数:5.00)_(3).【问题 3】若用表 Reader 存储读者信息,Book 表存储图书信息,Borrow 表存储借阅情况。以下 SQL 语句是“查询证号为 12345 的读者当前所借阅的图书书名(即尚未归还的图书)”,请补充完整。SELECT 书名 FROM Book WHERE 流水号U (1) /U(SELECT 流水号 FROMU (2) /U WHERE 证号=“12345“ ANDU (3) /U)以下 SQL 语句是“查询书名包含软件设计师的图书情况”,请补充完整。S
6、ELECT * FROM Book WHERE 书名U (4) /U “%软件设计师%“(分数:5.00)_三、B试题三/B(总题数:1,分数:15.00)阅读下列说明和图,回答问题 1 至问题 3。【说明】C 市刚开通了地铁线,为方便乘客,计划开发自动售票系统。该公司在每一个地铁站放置了多台自动售票机,每一台售票机有一唯一编号,售票记录统一汇总主机。自动售票机只发售从该站起始的各种地铁票,因此乘客只需输入目的站,起始站默认为该站,售票机给出从该站到达目的站的单程票。打印地铁票时为其编一个唯一的流水号,并同时打印自动售票机的编号及票价。售票机的状态变化如下:“空闲”时,显示地铁线路图,等待乘客
7、输入目的站;当乘客输入目的站后,转入“目的站确认/票数输入”状态,同时给出票价,此时若目的站有误,可返回到空闲状态重新输入,否则,输入票数;乘客输入票数后,转入“票数确认/付款”状态,同样此时若票数有误,可返回到上一状态重新输入,否则,投入钱币付款;当付款金额足够时,“出票/找零”(有必要时进行找零);然后转入“空闲”等待输入目的站状态。该系统采用面向对象方法开发,系统中的类及类之间的关系用 UML 类图表示,如图 9-18 所示是该系统类图的一部分,图 9-19 描述了自动售票机的状态转换图。(分数:15.00)(1).【问题 1】根据题意,给出“自动售票机”类的主要属性。(分数:5.00)
8、_(2).【问题 2】根据题意,给出“地铁票”类的主要属性。(分数:5.00)_(3).【问题 3】根据题中所述术语,指出图 9-19 中状态 1 到状态 4 分别是什么?(分数:5.00)_四、B试题四/B(总题数:1,分数:15.00)1.【说明】 所谓货郎担问题,是指给定一个无向图,并已知各边的权,在这样的图中,要找一个闭合回路,使回路经过图中的每一个点,而且回路各边的权之和最小。 应用贪婪法求解该问题。程序先计算由各点构成的所有边的长度(作为边的权值),按长度大小对各边进行排序后,按贪婪准则从排序后的各边中选择边组成回路的边,贪婪准则使得边的选择按各边长度从小到大选择。 函数中使用的预
9、定义符号如下:#define M 100 typedef struct/*x 为两端点 p1、p2 之间的距离,p1、p2 所组成边的长度*/ float x; int p1, p2; tdr; typedef struct/*p1、p2 为和端点相联系的两个端点,n 为端点的度*/ int n, P1, p2; tr; typedef struct/*给出两点坐标*/ float x,y; tpd; typedef int tlM; int n=10; 【函数】 float distance(tpd a,tpd b);/*计算端点 a、b 之间的距离*/ void sortArr(tdr a
10、M, int m); /*将已经计算好的距离关系表按距离大小从小到大排序形成排序表,m 为边的条数*/ int isCircuit(trM, int i, int j); /*判断边(i, j)选入端点关系表 rM后,是否形成回路,若形成回路返回 0*/ void selected(tr rM, int i, int j);/*边(i,j)选入端点关系表 r*/ void course(tr rM, tl 1M);/*从端点关系表 r 中得出回路轨迹表*/ void exchange(tdr aM, int m, int b); /*调整表排序表,b 表示是否可调,即是否有边长度相同的边存在*
11、/ void travling(tpd pdM, int n, float dist, t1 locusM) /*dist 记录总路程*/ tdr drM;/*距离关系表*/ tr rM;/*端点关系表*/ int i, j, k, h, m;/*h 表示选入端点关系表中的边数*/ int b;/*标识是否有长度相等的边*/ k=0; /*计算距离关系表中各边的长度*/ for(i=1;in;i+) for(j=i+1;j=n;j+) k+; drk.x=U (1) /U; drk.p1=i; drk.p2=j; m=k; sortArr(dr,m);/*按距离大小从小到大排序形成排序表*/
12、do b=1; dist=0; k=h=0; do k+; i=drk.p1; j=drk.p2; if(ri.n=1) h+; dist+=drk.x; else if(U (4) /U) /*最后一边选入 r 成回路,则该边必须加入且得到解*/ selected(r,i,j); h+; dist+=drk.x; while(k!=n) if(h=n)/*最后一边选入构成回路,完成输出结果*/ course(r,locus); else/*找不到解,调整 dr,交换表中边长相同的边在表中的顺序,并将 b 置 0*/ U (5) /U; while(!b); (分数:15.00)_五、B试题五
13、/B(总题数:1,分数:15.00)2.【说明】 以下程序实现数据的排序,将 n 个整数分别按照升序和降序进行排序,类 SortInt_1 实现升序排序,类 SortInt_2 实现降序排序。 【Java 代码】 class SortInt_1 int i,i,k,temp; void SortInt(int a1,int a2)/升序排序 for(i=0;ia1-1;i+) k=i; for(j=i+1;ja1;j+) if(U (1) /U) k=j; if(k !=i) temp=a2i;a2i=a2k;a2k=temp; class SortInt_2U (2) /U int i,j,
14、k,temp; void SortInt(int a1, int a2)/降序排序 for(i=0; ia1-1;i+) k=i; for(j=i+1;ja1;j+) if(U (3) /U)k=j; if(k !=i) temp=a2i;a2i=a2k;a2k=temp; public class test public static void main(String args) int a=10,55,100,35,87,90,100,16; SortInt_1 NewInt=U (4) /U; NewInt.SortInt(a.lenvh,a);/调用 SortInt_1 类的方法 Sy
15、stem.out.println(“升序排列的数据: “); for(int i=0;ia.length;i+) System.out.print(ai+“ “); System.out.println(); NewInt=new SortInt_2();/创建类 SortInt_2 的对象 U (5) /U;/调用相应方法进行降序排序 System.out.println(“降序排列的数据: “); for(int i=0;ia.length;i+) System.out.print(ai+“ “); (分数:15.00)_六、B试题六/B(总题数:1,分数:15.00)3.【说明】 本程序
16、将两个从小到大的有序链表合成一个新的从小到大的有序链表。链表的每一项由类 Node 描述,而链表由 List 描述,类 List 的成员函数有以下几个: creatList(): 创建从小到大的有序链表。 multiplyList(List L1, Llst L2): 将链表 L1 和链表 L2 合并。 print(): 打印链表。 【C+代码】 #include iostream using namespace std; class List; class Node friend class List; public: Node(int data) U (1) /U; private: in
17、t data; Node *next; ; class List public: List()list=NULL; void multiplyList(List L1, List L2); void creatList(); void print(); private: Node *list; ; void List:creatList() Node *p, *u, *pre; int dara; list=NULL; wbile(1) cout“输入链表的一项: (小于零,结束链表) “endl; cindata; if(dara0)break;/小于零,结束输入 p=list; while
18、(p !=NULL p=p-next; u=U (2) /U; if(p=list)list=u; else pre-next=u; U (3) /U; void List:multiplyList(List L1, List L2) Node *pL1, *pL2, *pL, *u; list = NULL; pL1 = L1.list; pL2 = L2.11st; while(pL1 != NULL pL1 = pL1-next; else u = new Node(pL2-data); pL2 = pL2-next; if(list = NULL) list =U (4) /U; el
19、se pL-next=u; pL=u; pL1 = (pL1 != NULL)? pL1:pL2; while(pL1 != NULL) u=U (5) /U; pL1 = pL1-next; if(list = NULL) list=pL=u; else pL-next=u; pL=u; void List:print() Node *p; p = list; while(p !=NULL) coutp-data“/t“; p=p-next; coutend1; void main() List L1, L2, L; cout“创建第一个链表/n“;L1.creatList(); cout“
20、创建第二个链表/n“;L2.creatList(); L1.print();L2.print(); L.multiplyList(L1,L2); L.print(); (分数:15.00)_中级软件设计师下午试题-58 答案解析(总分:90.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)阅读下列说明和图,回答问题 1 至问题 3。【说明】某汽车数字仪表板将完成下述功能:(1)通过模/数转换,实现传感器和微处理器的接口。(2)在发光二极管面板上显示数据。(3)指示速度(mph)、行驶里程、油耗(mpg)等。(4)指示加速或减速。以下是经分析得到的数据流图,有些地方有
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 中级 软件 设计师 下午 试题 58 答案 解析 DOC
