ImageVerifierCode 换一换
格式:DOC , 页数:13 ,大小:221.50KB ,
资源ID:507244      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-507244.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷8及答案与解析.doc)为本站会员(medalangle361)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷8及答案与解析.doc

1、软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 8及答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 【说明】 某直达列车车票预售系统接受顾客的订票、取票和售票处工作人员的查询业务。 1顾客为了提前订票,可向系统提供个人信息及其预订购的车次及日期,系统根据个人信息是否齐全以及车次是否正确来判断订票单是否合格。对于合格的订票单系统,如果相应的车次有剩余票,则记录顾客个人信息以及订票信息,并向顾客提供取票单。 2到了可以取票的时间,顾客向系统提供取票单,在检查单据合格的情况下,系统向顾 客提供火车票。 3售票处的工作人员可以利用系统查询各车次车票的售票情况。 该直达列车车票

2、预售系统的分层数据流图中部分数据流和文件的组成如下: 文件: 火车时刻表 =车次 +开车时间 +到站时间 +起始站 +终点站 +上铺票价 +下铺票价 订票信息表 =车次 +车票日期 +旅客身份证号 +座位号 +是否领票 旅客信息表 =旅客身份证号 +姓名 +性别 +联系电话 座位表 =车次 +座位号 数据流: 订票单 =旅客姓名 +性别 +身份证号 +联系电话 +车次十车票日期 车票 =车次+起始站生终点站 +开车日期 +开车时间 +座位号 +票价假定顶层图是正确的, “火车时刻表 ”和 “座位表 ”文件已由其他系统生成。1 指出哪张图的哪个文件可以不必画出。 2 指出数据流图 4-1和数据流

3、图 4-2中错误的数据流。 3 根据题中说明和数据流图分析, “查询处理 ”是否可以查询出剩余票的信息 ?为什么 ? 4 【算法说明】 下面是一段插入排序的程序,将 Rk+1插入到 R1.k的适当位置。 R0=Rk+1; j=k; while(Rj R0) Rj+1=Rj; j- -; Rj+1=R0;【测试用例设计】 (while循环次数 为 0、 1、 2次 ) 4 指出算法的流程图中 (1) (3)处的内容。 5 指出测试用例设计中 (4) (9)处的内容。 6 对文法 GS: Sa| |(T); TT , S|S:回答问题 1问题 3。6 对文法 G进行改写,然后对每个非终结符写出不带

4、回溯的递归子程序。 7 经改写后的文法是否是 LL(1)的 ?指出它的预测分析表中 (1) (3)处的内容。 8 说明输入串 (a, a)#是否为 G的句子。 9 阅读下列程序和控制流图,将应填入 (n)的字句写在答题纸的对应栏内。 【程序】 下面是一段求最 大值的程序,其中 datalist是数据表, n是 datalist的长度 + int GetMax (int n, int datalist) int k=0; for (int j=1;j n;j+) if (datalistj datalistk) k=j; retum k; 9 该程序的控制流图中 A E分别是什么 ? 10 计算

5、控制流图的 McCabe环路复杂性。 11 用基本路径覆盖法给出测试路径。 12 为各测试路径设计测试用例。 13 阅读下列程序说明和 C程序, 将应填入 (n)处的字句写在答卷纸的对应栏内。 【程序说明】 该程序定义了两个子函数 strsort和 strmerge。它们分别实现了将一个字符串按字母顺序排序和将两个字符串合并排序,并删去相同字符。在主函数里,先输入两个字符串 s1和 s2,然后调用 strsort函数对它们分别排序,然后调用 strmerge函数将s1和 s2合并,将合并后的字符串赋给字符串 s3,最后输出字符串 s3。 【程序】 #include stdio.h void s

6、trmerge(char *a,char *b,char *c) /将字符串 a,b合并到字符串 c char t,*w; W=c; while( (1) ) /找到字符串 a,b当前字符中较小的字符 if(*a *b) t=-*a, (2) else if(*a *b) t=*b; (3) else /字符串 a,b 当前字符相等 t=-*a; a-H-; b-H-; if( (4) ) /开始,可直接赋值 *w=t; else if(t!=*w) /如果 a,b中较小的当前字符与 c中当前字符不相等,才赋值 (5) if(*a!=O) /如果字符串 a还没有结束,则将 a的剩余部分赋给 c

7、 while(*a!=0) if(*a!=*w) *(+w)=*a; a+; else (6) if(*b!=“,0) /如果字符串 b 还没有结束,则将 b 的剩余部分赋给 c while(*b !=0) if(*b!=*w) *(+w)=*b; b+; else b+; (7) void strsort(char *s) /将字符串 s 中的字符排序 int i,j,n; char t,*w; w=s; for(n=O;*w!=O;n+) /得到字符串长度 n w+; for(i=O;i n-1;i+) /对字符串 s 进行排序,按字母先后顺序 forO=i+ 1 ;j n;j+) if(

8、 (8) t=si; si=sj; (9) void mainO char s1 100,s2100,s3100; prinff(“nlPlease input the first string:“); scanfC(“% s“,s1 ); prinff(“nPlease input the second string:“); scanf(“%s“,s2); strsort(s1); /将字符串 s1 排序 strson(s2); /将字符串 s2 排序 prinff(“%sn,s1); printfC % sW,s2); s30=O; /字符串 s3 的第一个字符先置 0结束标志 (10);

9、 /将 s1和 s2合并,按照字母顺序排列 , prinff(“%s“,s3); 软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 8答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 【正确答案】 0层图中文件 “座位表 ”是局部数据文件,不必画出。 【试题解析】 “不必画出 ”是指在数据流图中,只画流程图中各加工之间的公共数据文件,隐藏某加工的局部数据文件,这个规则只是为了使整个数据流图的层次结构更科学、更清晰,不过画出 “不必画出的数据文件 ”对数据流图不会造成理解错误。在 0层图中有文件 “火车时刻表 ”、 “订票信息表 ”、 “旅客信息表 ”和 “座位表 ”,其中

10、 “座位表 ”是加工 1“顾客订票 ”的局部数据文件,所以不必画出。 2 【正确答案】 (1)数据流图 4-1中从加工 “1.1检查订票单 ”到文件 “列车时刻表 ”的数据流。 (2)数据流图 4-1中从文件 “旅客信息表 ”到加工 “1.3填写取票单 ”的数据流。 (3)数据流图 4-2中从加工 “2.1枪查取票单 ”到文件 “旅客信息表 ”的数据流。 【试题解析】 本题是找出错误的数据流。解决这种问题的关键是父图与子图的平衡,即子图的输入输出数据流与父图相应的加工的输入输出数据必须一致。 从 0层图中可以看到对于加工 1“顾客订票 ”,有到文件 “旅客信息表 ”的输出流,从文件 “列车时刻

11、表 ”得到的输入流,以及与文件 “订票信息表 ”的输入输出流。而加工 l子图中只有从加工 1.1到文件 “列车时刻表 ”的数据流,与父图不一致,因此是错误的,应该为从 文件 “列车时刻表 ”到加工 1.1的数据流。同理,从文件 “旅客信息表 ”到加工 1.3的数据流也与父图不一致,应该改为从加工 1.3到文件 “旅客信息表 ”的数据流。 0层图中加工 2“顾客取票 ”中存在从文件 “旅客信息表 ”到加工 2的数据流,而加工 2子图中从加上 2.1到文件 “旅客信息表 ”的数据流是与 0层图相悖的,因此也是错误的。应该改成从文件 “旅客信息表 ”到加工 2.1“检查信息表 ”的数据流。 3 【正

12、确答案】 不可以。从 0层图中可以看出,加工 3“查询处理 ”仅有从文件 “订票信息表 ”的输入流,而从说明中的文件组成可以 看出,订票信息表仅记录了旅客订票和取票的信息,不能知 道总的座位数,因此加工 3能查询已订购和已售出的车票情况,而不能查询出剩余票的情况。 【试题解析】 每个加工的功能要从提供给该加工的文件的信息量决定。从 0层图中可以看出,加工 3“查询处理 ”仅有从文件 “订票信息表 ”的输入流,而从说明中的文件组成可以看出,订票信息表仅记录了旅客订票和取票的信息,不能知道总的座位数,因此加上 3能查询己订购和已售出的车票情况,而不能查询出剩余票的情况。要向查询出剩余票的情况,需要

13、利用文件 “座位表 ”来了解车次座位的总的情况,再 利用文件 “订票信息表 ”的已订和已售车票信息共同得出剩余票信息。 4 【正确答案】 (1)F (2)Rj+1=R0 (3)T 5 【正确答案】 (4) (5) (6) (7) (8) 1 (9) 3 【试题解析】 本题考查用路径覆盖方法为算法设计足够的测试用例,属于基本概念的送分题。这类题拿分的关键是考生平时对于理论的理解和临场的细心。 6 【正确答案】 改写文法为: (0)Sd (1)S (2)S(T) (3)TSN (4)N,SN (5)N 非终结符 FIRST集 FOLLOW集 S a, , ( #, T a, , ( N , 对左部

14、为 N的产生式可知: FIRST( , SN); , FIRST() : FOLLOW(N)= 7 【正确答案】 文法是 LL(1)的。 (1)SN (2)(T) (3)C 8 【正确答案】 输入串 (a, a)#是文法的句子。 【试题解析】 对于 文法 Sd|(T) TT,S|S 由于 SELECT(N ,SN)SELECT(N)= , = ,所以文法是。 LL(1)的。 也可由预测分析表中无多重入口判定文法是 LL(1)的。 (3)对输入串 (a,a)#的分析过程为: 栈 当前输入符 剩余输入符 所用产生式 (STACK) (CUR CHAR) (1NOUT STRING) (OPERAT

15、ION) #S ( a,a)#. #)T( ( a,a)#. S(T) #)T a ,a)#. . #)NS a ,a)#. TSN #)Na a ,a) Sa #)N , a)#. . #)NS, , a)#. N,SN #)NS a )#. . #)Na a )#. Sa #)N ) #. . #) ) #. N # # 可见输入串 (a, a)#是文法的句子。 9 【正确答案】 (1)j n (2)return k; (3)datalistj datalistk (4)k=j; (5)j+; 10 【正确答案】 McCabe环路复杂性为 3。 11 【正确答案】 测试 路径: Path1

16、: Path2: . Path3: 12 【正确答案】 测试用例: Path1:取 n=1, datalist0=1, 预期结果: k=0 Path2:取 n=2, datalist0=1, datalist1=0, 预期结果: k=O Path3:取 n=2, datalist0=0, datalist1=1, 预期结果: k=1 【试题解析】 本题考查对软件测试概念和过程的理解,结合 具体实例运用各种测试技术,学会测试用例设计、软件测试与程序调试的方法。软件测试是为了发现错误而执行程序的过程,其目的在于以最少的时间和人力系统地找出软件中潜在的各种错误和缺陷。根据 2004新大纲和最近两次软

17、件设计师考试的真题,不难发现各类系统分析理论的实例化考核比例逐渐升温,只要读者平时对这部分知识的实例多分析、多思考,这部分分数其实不难拿到。 13 【正确答案】 (1)(*a!=0)&(*b!=0) (2)a+ (3)b+ (4)*w=0 (5)*(+w)=t (6)a+ (7)*(+w)=0 (8)si sj (9)sj=t (10)strmerge(s1,s2,s3) 【试题解析】 根据题意,对字符串的处理分为三步:第一步是从键盘上输入两个字符串:第二步是将两个字符串分别排序;第三步是将字符串合并;第四步是显示处理结果。 第一步和第四步容易实现,关键是第二步和第三步的处理,下面分别加以说明

18、。 字符串排序是指将一个字符串中各个字符按照 ASCII码值的大小排序。例如,字符串 “Beijing”由小到大的排序结果应该是: ”Bejiign“。 排序算法很多,第二个例子,我们就要介绍快速排序算法。在这里使用简单的冒泡排序算法:即将字符串中的每一个字符一个个进行比较,找出最小的字符,然后再在剩下的字符中找最小的字符。例如,字符 “Beijing”的排序过程如下: 第一次将字符 “Beijing”中的每一个字符: B、 e、 i、 j、 i、 n、 g进行比较,找到最小的字符 B。 第二次在剩下的字符 e、 i、 j、 n、 g中,找到最小的字符 e。 第三次在剩下的字符 i、 j、 i

19、、 n、 g中 ,找到最小的字符 j。 第三步是合并字符串,合并后的字符串仍然由小到大排序。由于待合并的两个字符串已经排好序。假定两个排好序的字符串分别为 A和 B,合并后的字符串为巴要使待合并后的字符串仍然由小到大排序,可采取下述步骤: 1从前往后取 A中的字符,并按从前往后的顺序与 B中的字符比较,若 A中的字符较小,则将该字符存入 C,并移到 A的下一个字符,继续与 B中的字符比较。 2若 A中的字符较大,则将 B中的字符存入 C,并移到 B的下一个字符,继续与 A中的字符比较。 3若 A与 B中的字符相等,则将 A或 B中的字符存入 C并将 A和 B均移到下一个字符。 4若 A或 B字符串到达末尾,则将 B或 A的剩余部分加到字符串 C中。 需要注意的是: A、 B和 C三个字符串均可以用字符数组来表示, C数组的长度不能小于 A、 B两数组的长度之和。另外,判别字符串是否结尾的方法是:从 A或 B中取出的字符是否为 0,所有字符串都是以 0结尾的。

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1