[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷30及答案与解析.doc
《[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷30及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷30及答案与解析.doc(13页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 30及答案与解析 一、必答题(共 4道大题,每道大题 15分) 0 阅读下列说明和有关图表,回答问题 1至问题 3。 【说明】 A公司决定开发一套公共交通自动售票系统,系统要求如下所述。 (1)乘客能按以下 3步操作购票:选定目的地,投入钱币,获得一张票。 (2)并且仅当乘客选定目的地后,系统才接收投钱;每次投入的钱只购买一张票。 (3)只要投入的钱不少于所需的票价,且票库中有所要求的票,则应尽快出票。 (4)如需找钱,则在出票的同时应退还多余的钱。 (5)如果乘客投入的钱不够票价,或者票库中没有所需要的票时,系统将全额退钱,并允许乘
2、客另选目的地,继续购票。 (6)出票前乘客可以单击 “取消 ”按钮取消购票,系统将全额退出该乘客投入的钱,并允许乘客另选目的地,继续购票。 (7)出票结束 (包括退还多余的钱 )后,系统应保存销售记录,并等待乘客购票。 该系统还要求快速响应和操作同步,所以它应是一个实时系统。为此, A公司在该系统的数据流程图中附加了过程控制部分,形成转换图。在该图中,控制流 (事件流 )用虚 线表示,数据流用实线表示。图中的数据流并没有画全,需要考生填补。 对售票全过程进行的控制可以用系统内部各个状态之间的迁移来描述,从而形成状态迁移图。在状态迁移图中,用双线框表示状态,用有向边表示状态的迁移。引起状态迁移的
3、事件以及由该事件引起的动作,在有向边旁用 “ ”形式注明。 该公司还制定了一个过程启动表,用以表明状态迁移图中的 4个动作与转换图中的 4个过程之间的 “启动 ”关系,即说明哪个动作将启动哪个过程。用 1表示启动,用 0表示不启动。启动的过程将根据获得的输入数据产生输出数据,未唐动的过程则不会产生输出数据,该表中没有列出的过程,其执行与否与事件无关。 【问题 1】 转换图中缺少哪 3条数据流 ?请指明每条数据流的名称、起点和终点。 【问题 2】 在状态迁移图中, a、 b、 c分别表示什么事件 ?请用转换图中给出的事件名解答。 【问题 3】 在过程启动表中, d、 e处应填什么 ?请分别用 4
4、位二进制码表示。 1 根据以下关于学校构成的说明回答问题 1至问题 3。 【说明】 学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授和副教授各带有若干研究生;每个班有若干学生,每个学生选修若干课程,每门课可由若干学生选修。 【问题 1】 用 E-R图 画出此学校的概念模型,用文字写出各实体和联系的属性。 【问题 2】 将 E-R图转换成关系模型。 【问题 3】 指出各关系模型的候选键。 2 阅读下列说明和有关图表,回答问题。 【说明】 (1)这是一个图书馆支持系统。 (2)图书馆应用系统可以将图书和杂志借给借书者,这些借书者已经在系统中注册了,图书和杂志也已经注册过
5、了。 (3)图书馆负责新书的购买,一本流行图书会多买几本。当旧书和杂志已经过时或破旧不堪时,将它们从图书馆应用系统中删除。 (4)图书馆馆员是图书馆的员工。他们与客户 (借 书者 )打交道,并且是在图书馆软件系统提供的支持下开展工作的。 (5)借书者可以预订图书馆中当前还没有的图书或杂志,这样,当某借书者所预订的图书或杂志归还回来或购进时,应用系统就通知这个预订人。当该借书者借阅了他所预订的图书或杂志后,或者通过一个显式的取消过程取消他的预订后,他的本次预订就被取消了。 (6)图书馆应用系统能够容易地建立、修改和删除系统中的信息,包括书名、借书者、借阅信息和预订信息。 (7)图书馆应用系统能够
6、在所有流行的 Web浏览器平台 (Internet Explorer 5.1以上,Netscape 4.0以上等等 )上运行。 (8)图书馆应用系统应该易于扩展新功能。 【问题】分析这个图书馆系统中涉及的角色和用例,完成用例图。 3 阅读下列 C程序和程序说明,将应填入 (n)处的字句写在对应栏内。 【说明】 本程序在 33方格中填入 1 N(N10)内的某 9个互不相同的整数,使所有相邻两个方格内的两个整数之和为质数。试求出满足这个要求的所有填法。 33方格中的每个方格按行按列 (先行后列 )序号排列为: 0, 1, 2, 3, 4, 5, 6, 7, 8。 程序采用试探法,即从序号为 0的
7、方格开始, 为当前方格寻找一个合理的可填整数,并在当前位置正确填入后,为下一方格寻找可填入的合理整数。如不能为当前方格找到一个合理的可填整数,就要回退到前一方格,调整前一方格的填入整数;直至序号为 8的方格也填入合理的整数后,就找到了一个解,将该解输出。再调整序号为 8的方格所填整数,继续去找下一个解。为了检查当前方格的填入整数的合理性,程序引入二维数组 check Matrix,存放需要进行合理性检查的相邻方格的序号。 # include stdio. h # define N 12 int bN+1; int pos; int a9;/* 用于存储诸方格所填入的整数 */ int AllN
8、um=0;/* 统计有多少种填法 */ int checkMatrix3= -1,0,-1,1,-1, 0,-1,1,3,-1,2,4,-1, 3,-1,4,6,-1,5,7,-1; void write(int a) int i, j; for(i=0; i 3; i+) for(j=0; j 3; j+) printf(“%3d“, a3*i+j); printf(“n“); int isPrime(int m) int i; if(m=2)return 1; if(m=1 m%2=0)return 0; for(i=3; i*i m;) if(m%i=0)return 0; i+=2;
9、return 1; int selectNum(int start) int j; for(j=start; j =N; j+) if(bj)return j; return 0; int check()/*检查填入 pos位置的整数是否合理 */ int i,j; for(i=0; (j=(1) =0; i+) if(!isPrime(apos+aj) (2); (3); extend ()/* 为下一方格找一个尚未使用过的整数 */ a(4)=selectNum(1); bapos=0; void change ()/*为当前方格找下一个尚未使用过的整数 (找不到回溯 )*/ int j;
10、 while(pos =0 if(pos 0)return; bapos=1; apos=j; bj=0; int find () int ok=1; pos=0; apos=1; bapos=0; do if(ok) if(pos=8) write(a); change(); AllNum+;/* 统计有多少种填法 */ else extend(); else change(); ok=check(); while(pos =0); void main() int i; for(i=1; i =N; i+) bi=1; find(); prinrf(“共有 %d种不同填法 !/n“, All
11、Num); 二、选答题(共 3道大题,每道大题 15分) 从下列 3道试题中任选 1道解答,如果解答的试题数超过 1道,则 仅题号小的 1道题解答有效。 4 阅读下列 C+程序和程序说明 , 将应填入 (n)处的字句写在答题纸的对应栏内。 【说明】构造最优二叉查找树。 具有 n个结点的有序序列 a1, a2, , an 存在于数组元素 a1、 a2, , an 之中 , a0未被使用。结点 a1, a2, , an -1, an的查找成功的概率 p1, p2, , pn -1, pn存在于数组元素 p1、 p2, , pn 1、 pn之中 , p0未用。另外 , 查找失败的概率 q0, q1,
12、 , qn -1, qn存 在于数组元素 q0、 p1, , qn -1、 qn之中。算法计算的序列 ai+1, ai+2, aj -1, aj的最优二叉查找树 Tij的代价Cij存在于数组元素 cij之中 , Tij的根结点的序号 rij存在于 rij之中 , 它的权值存在于 wij之中。为了便于内存的动态分配 , 统统使用一维数组取代二维数组。 const float MAXNUM=99999. 0; /尽可能大的浮点数 template (1) void OPtimal_Binary_Search_Tree(float p, float q, Type a, int n) float *
13、C, *W; c=(2); w=(3); int *r; r=new int(n+1)*(n+1); for(i=0; i =n; i+) ci*(n+1)+i=0. 0; / 即:cii=0.0, 用一维数组表示 wi*(n+1)+i=qi; / 即: wii=qi, 用一维数组表示 int i, j, k, m, length; / m表示根结点的下标或序号 , 范围为 0 n float minimum; for(length=1; length =n; length+) /处理的序列长度由 1到 n for(i=0; i =n-length; i+) /i为二叉查找树 Tij的起始序号
14、 j=i + length; /j为二叉查找树 Tij的终止序号。如:处理序列 a1a2a3时 , /相应的二叉查找树为 T03, i=0, 而 j=3 wi*(n+1)+j=(4); minimum =MAXMUM; for(k=i+1; k =j; k+) /考察以 ai+1、ai+2, , ai 为根的情况 if(5) minimum) minimum=ci*(n+1)+k-1+ck*(n+1)+j;m=k; ci*(n+1)+j=wi*(n+1)+j+ci*(n+1)+m-1+cm*(n+1)+j; ri*(n+1)+j=m; / rij=m /构造好的最优二叉查找树的根结点的序号在
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 中级 设计师 下午 应用技术 试题 模拟 30 答案 解析 DOC
