[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷19及答案与解析.doc
《[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷19及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷19及答案与解析.doc(17页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 19及答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 阅读以下说明和数据流图,回答问题 1 3问题。 说明 干部信息管理系统(CMIS)是用于对干部信息进行管理的特定系统。利用该系统,干部科可以对本单位干部信息进行管理,根据不同命令对信息进行增、删、改、内部调动,打印人事表格,进行统计、检索。干部科输入的系统命令需要合法性检查才能被接受、处理。系统命令可以是检索命令、统计命令、打印命令、维护命令中的任何一种。干部科的输入的干部信息数据 包括输入信息、检索项、统计项、打印项、维护项等条目。一个完整的输入信息应包括干部的档号
2、、干部的姓名、干部的性别、干部的年龄、干部的级别、干部的职称、干部的政治面貌等内容。系统进行检索处理时可以根据干部的档号、姓名或年龄进行简单检索,也可以根据 “档号 +姓名 ”或者 “性别 +年龄 ”进行组合检索。系统进行统计处理时,可以根据干部的性别、年龄或职称进行简单统计,也可以根据 “年龄 +职称 ”或 “性别 +职称 ”进行综合统计。通过系统授权,用户可以对系统进行维护。当用户需要对系统进行维护时,输入维护命令,得到合法性确认后,可以对系 统数据库信息进行修改维护。维护命令包括:增加命令,根据输入信息增加干部信息;修改命令,根据修改项修改干部信息;检索命令,根据检索项检索干部信息。系统
3、可以输出统计信息、人事表格、检索信息以供干部科用户使用。 干部信息管理系统的顶层图如图 9-1所示;干部信息管理系统的第 0层 DFD图如图 9-2所示,其中,加工 3的细化图如图 9-3所示。1 数据流图 9-1缺少了一条数据流 (在图 9-2中也未给出该数据流 ),请给出此数据流的起点和终点,并采用说明中的词汇给出此数据流名。 2 数据流图 9-3中缺少了与 “增加干部 信息 3.2”加工相关的数据流,请指出此数据流的方向,并采用说明中的词汇给出此数据流名。 3 请补齐下列数据字典条目: 系统命令 =检索命令 |统计命令 |打印命令 |维护命令; 干部信息 =_ 输入信息 =_ 检索项 =
4、_ 统计项 =_ 4 阅读以下说明和表,回答问题 1 4问题。 说明 一个描述学校的部分关系模式的结果描述如下: 1一个系有若干学生,但一个学生只能在一个系; 2一个系只有一名主任; 3一个学生可以选修多门课程,每门课程有若干学生选修; 4每个学生所学的每门课程都有一个成绩; 5 “学生 ”和 “课程表 ”及 “选课表 ”的关系示例分别如表 9-1、表 9-2、表 9-3所示。 Student(学生表 )的字段按顺序为学号(Sno)、姓名 (Sname)、性别 (Ssex)、年龄 (Sage)、所属院系 (Sdept)、系主任(Smaster); Course(课程表 )的字段按顺序为课程编号
5、 (Cno)、课程名 (Cname)、先行课程 (Cpno)、课程学分 (Ccredit); SC(选课表 )的字段按顺序为学号 (Sno)、课程号(Cno)、成绩 (Grade)。 各表的记录如下:4 试分析该关系模式中的函数依赖,并指出关系模式的候地选码。 5 如下的 SQL语句是检索 “信息系 (IS)和计算机科学系 (CS)的学生的姓名和性别 ”的不完整语句,请在空缺处填入正确的内容。 SELECT(1) FROM(2) WHERE(3) 6 如下的 SQL语句是检索 “每个学生及其选修的课程名和成绩 ”的不完整语句,请在空缺处填入正确的内容。 SELEC(1) FROM(2) WHE
6、RE(3) 7 阅读下列说明以及图 3-1和图 3-2,回答问题 1、问题 2和问题 3。 说明 下面是某公司开发的电梯管理系统,系统功能如下: 1响应用户召唤指令。当用户需要电梯时可以通过按楼层面板召唤。 2进入电梯后,乘客可以通过电梯面板选择目的楼层。 3当电梯到达调度楼层后,判断是否响应停止运行,开启电梯 门,完成调度。 4当电梯到达非调度楼层时,不作响应,继续运行。 5乘客在电梯中能够知道电梯的运动状态,如运动方向、电梯运行到的楼层等。 6电梯超载报警。 系统采用面向对象方法进行开发。在开发过程中某设计室设计的电梯管理系统用例如表 9-4所示。电梯管理系统用例图如图 9-4所示。根据说
7、明,回答下面问题: 7 仔细分析系统的用例说明和用例图,从功能要求角度来看,该系统的用例并不完善。请根据功能要求补充至少两个用例,并作简单说明。 8 图 9-5为电梯管理系统状态图。以下有 8个引起状态转移的事件。请根据 说明和系统状态图将对应的事件标号填入相应的 (n)内。 A召唤请求 B发生超载 C超载解除 D电梯就绪且状态正常 E电梯就绪但状态异常 P电梯到达非调度层 G电梯响应目的地请求 H电梯到达调度层或遇到紧急情况 9 根据 Steve Cook和 John Danils的观点,类图可以分为三个层次:概念层(Conseptual)、说明层 (Specification)和实现层 (
8、Implementation)。如何理解着三个层的划分 ?这种观点在软件开发中有什么样指导作用 ?请简要说明。 10 阅读以下说 明和 C程序,填入 (n)外。 说明 以下 C程序实现了将字符串转化为浮点数的功能。例如字符串 “1234567”转化为浮点数 1234567;字符串 “100.02035”转化为浮点数 100.02035;字符串 “-100.02035”转化为浮点数 -100.02035。程序中的部分变量的含义如表 9-5。 C程序 double StrToDouble(char*s) char hexch=“0123456789“; int i,j,psign=1; DWORD
9、 n,k,intpart=0; double doublepart=0,kdouble,resoult; char ch; if (*s=. (1); (2); char*s1=s,*temp=NULL; temp=strrchr ( s1,. ); if (!temp) k=1; intpart=0; for (i=strlen (s); i 0;i-) ch=si-1; if (ch 0x3f) ch n=0; for (j=0; j 10; j+) if ( ch=hexchj) n=j; intpart+= (n*k); k*=10; else s1=temp+1; kdouble=0
10、.1; doublepart=0; for (3) ch=s1i-1; if (ch 0x3f) ch n=0; for (j=0; j 10; j+ ) if (ch=hexchj) n=j; doublepart+= (n*kdouble); (4); *temp=NULL; k=1; intpart=0; for (5);) ch=si-1; if (ch 0x3f) ch n=0; for (j=0; j 10; j+) if (ch=hexchj) n=j; intpart+= (n*k); k*=10; /end else (6); return resoult; 二、选答题(共
11、3道大题,每道大题 15分) 从下列 3道试题中任选 1道解答,如果解答的试题数超过 1道,则仅题号小的 1道题解答有效。 11 阅读下列程序说明和 C程序,将应填入程序中 (n)处的字句,写在对应栏内。 【程序说明】 本程序 先从文件读人各考生的准考证号 (设为整型数 )及成绩,并将其存放在一棵检索二叉树上,二叉树结点的健值是成绩,每个结点带一链表,链表结点存放取得该成绩的考生的准考证号。然后,程序按中序遍历检索二叉树,从高分到低分输出结果,使每行输出成绩及其取得成绩的考生的准考证号。 【程序】 #include stdio. h typedef struet idnode int id;
12、struct idnode * next; ldNode; typedef struct marknode I int mark; ldNode * head; struct marknode * left, * right; MarkNode; char fname = “sp07.dat“; main( ) int id, mark; MarkNode * root = null; FILE * fp = fopen(fname,“ r“ ); if(!fp) printf(“file%s open error, n“ , fname); exit(0); while (!feop(fp)
13、 fscanf(fp,“ %d%d“, btree( fclose(fp); print(root); btree(MarkNod * * mpptr, int id, int mark) ldNode * ip; MarkNode *mp = * mpptr; if (1) if (mark=p- mark) addldNODE (2), id); else if ( mark mp - mark) btree ( else btree( else Imp = ( marknode * ) malloc(sizeo (marknode) ); mp - mark = mark; mp - l
14、eft =mp - right = NULL; (3) addldNode( (4); addldNode(ldNode * * ipp, int id) ldNode * ip = * ipp; if (5)addldNode (6), id; else ip = (ldNode * )malloc(sizeof(ldNode) ); sp - id = id; ip - next = NULL; (7) print(MarkNode * rap) ldNode *ip, *ip0; if (mp) print ( mp - left); printf(“ %6d: t“ ,mp - mar
15、k); ip = mp - head; while(ip) printf(“ %6d“ ,ip - id); ip0 =ip; ip = ip - next; free (ip0); printf(“ n“ ); printf( mp - right); free(mp); 12 阅读以下说明和 C+代码,将应填 (n)处的字句写在对应栏内。 【说明】 本题将有向网 (带权有向图 )定义为类 Adjacency WDigraph。类中的数据成员 n表示有向网中的顶点数; a为带权邻接矩阵,用于存储有向网中每一对顶点间弧上的权值; c为二维数组,存储有向网中每一对顶点间的最短路径长度; kay为
16、二维数组,存储最短路径, kayij=k表示顶点 i到达顶点 j的最短路径必须经过顶点 k。类中的主要成员 函数有: Input():输入有向网的顶点数、各条弧及权值,建立带权领接矩阵 a。若顶点 i到顶点 j有弧,则 aij取弧上的权值,否则 aij的值取 NoEdge。 AllPairs();用弗洛伊德 (Floyd)算法求有向网中每一对顶点间的最短路径长度。 OutShortestPath (int i, int j:计算顶点 i到顶点 j的最短路径。 outputPath(int i, int j):输出顶点 i到顶点 j的最短路径上的顶点。 Floyd算法的基本思想是递推地产生一 个
17、矩阵序列 C0, C1, C2, , Cn,其中C0是已知的带权邻接矩阵, a, Ck(i, j(0i, j )表示从顶点 i到顶点 j的中间顶点序号不大于 k的最短路径长度。如果 i到 j的路径没有中间顶点,则对于 0k n,有 Ck(i,j)=C0(i,j)= aij。递推地产生 C1, C2, , Cn的过程就是逐步将可能是最短路径上的顶点作为路径上的中间顶点进行试探,直到为全部路径都找遍了所有可能成为最短路径上的中间顶点,所有的最短路径也就全部求出,算法就此结束。 【 C+代码】 #include iostream. h #define NoEdge 10000/ 当两个顶点之间没有边
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 中级 设计师 下午 应用技术 试题 模拟 19 答案 解析 DOC
