2004上半年软件设计师考试真题及答案-下午卷.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2004上半年软件设计师考试真题及答案-下午卷.doc》由会员分享,可在线阅读,更多相关《2004上半年软件设计师考试真题及答案-下午卷.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2004上半年软件设计师考试真题及答案-下午卷试题一 阅读下列说明和数据流图,回答问题1至问题4,将解答填入答题纸的对应栏内。 说明 某基于微处理器的住宅安全系统,使用传感器(如红外探头、摄像头等)来检测各种意外情况,如非法进入、火警、水灾等。 房主可以在安装该系统时配置安全监控设备(如传感器、显示器、报警器等),也可以在系统运行时修改配置,通过录像机和电视机监控与系统连接的所有传感器,并通过控制面板上的键盘与系统进行信息交互。在安装过程中,系统给每个传感器赋予一个编号(即 id)和类型,并设置房主密码以启动和关闭系统,设置传感器事件发生时应自动拨出电话号码。当系统检测到一个传感器事件时,就激
2、活警报,拨出预置的电话号码,并报告关于位置和检测到事件的性质等信息。 数据流图4-1 1、问题1 数据流图4-1(住宅安全系统顶层图)中的A和B分别是什么? 数据流图4-22、问题2 数据流图4-2(住宅安全系统第0层DFD图)中的数据存储“配置信息”会影响图中的哪些加工? 数据流图4-3 3、问题3 将数据流图4-3(加工4的细化图)中的数据流补充完整,并指明加工名称、数据流的方向 (输入/输出)和数据流名称。 4、问题4 试说明逻辑数据流图(logical data flow diagram)和物理数据流图(physical data flow diagram)之间的主要差别。试题二阅读下
3、列说明和算法,回答问题1和问题2,将解答填入答题纸的对应栏内。 说明 算法2-1是用来检查文本文件中的圆括号是否匹配。若文件中存在圆括号没有对应的左括号或者右括号,则给出相应的提示信息,如下所示: 文件 提示信息 (1+2) abc) 缺少对应左括号:第2行,第4列 (def)8x) 缺少对应左括号:第3行,第10列 (h) ij)(k (1ml) 缺少对应右括号:第5行,第4列;第4行,第1列 在算法2-1中,stack为一整数栈。算法中各函数的说明如表4-1所示。 算法2-1 将栈stack置空,置EOF为False chnextch(); while(not EOF. kkind(ch)
4、; if(k= (1) ) push( (2) );push( (3) ); elself(k= (4) ) if(not empty() pop(),pop(), else 显示错误信息(缺少对应左括号或右括号); 显示行号row;显示列号col; endif endif chnextch(); endwhile if(not empty() 显示错误信息(缺少对应左括号或右括号); while(not empty() rowpop();colpop(); 显示行号row;显示列号col cndwhile endif 为了识别更多种类的括号,对算法2-1加以改进后得到算法2-2。算法2-2能
5、够识别圆括号,方括号和花括号(不同类型的括号不能互相匹配)。改进后,函数kinnd(char ch)的参数及其对应的返回值如表4-2所示。 表4-2 函数的参数及其返回值 算法2-2 将栈stack置空,置EOF为False chnextch(); while(not EOF. kkind(ch); if(k0) if( 判断条件1 ) push( (5) );push( (6) );push( (7) ); elseif( 判断条件2 and 判断条件3 ) pop();pop();pop(); else 显示错误信息(缺少对应左括号或右括号); 显示行号row;显示列号col; endif
6、 endif chnexteh(); endwhile if(not empty() 显示错误信息(缺少对应左括号或右括号); while(not empty() pop();rowpop();colpop(); 显示行号row;显示列号col; endwhile endif5、问题1 试将算法2-1)和算法2-2中(1)(7)处补充完整。问题2 从下面的选项中选择相应的判断逻辑填补算法2-2中的“判断条件1”至“判断条件 3”。注意,若“判断条件2”的逻辑判断结果为假,就无需对“判断条件3”进行判断。 (a)字符是括号(b)字符是左括号(c)字符是右括号(d)栈空(e)栈不空 (f)栈顶元素
7、表示的是与当前字符匹配的左括号 (g)栈顶元素表示的是与当前字符匹配的右括号试题三阅读下列说明以及图4-4和图4-5,回答问题1、问题2和问题3,将解答填入答题纸的对应栏内。 说明 某电话公司决定开发一个管理所有客户信息的交互式网络系统。系统的功能如下。 1浏览客户信息:任何使用因特网的用户都可以浏览电话公司所有的客户信息(包括姓名、住址、电话号码等)。 2登录:电话公司授予每个客户一个账号。拥有授权账号的客户,可以使用系统提供的页面设置个人密码,并使用该账号和密码向系统注册。 3修改个人信息:客户向系统注册后,可以发送电子邮件或者使用系统提供的页面,对个人信息进行修改。 4删除客户信息:只有
8、公司的管理人员才能删除不再接受公司服务的客户的信息。系统采用面向对象方法进行开发,在开发过程中确定的类如表4-3所示。 表4-3 开发过程中确定的类 图4-4 图4-5 6、问题1 在需求分析阶段,采用UML的用例图(use case diagram)描述系统功能需求,如图4-4所示。指出图中的A,B,C和D分别是哪个用例?7、问题2 在UML中,重复度(multiplicity)定义了某个类的一个实例可以与另一个类的多个实例相关联。通常把它写成一个表示取值范围的表达式或者一个具体的值。例如,图4-5中的类InternetClient和CustomerList,InternetClient端的
9、“0.*”表示:1个 CustomerList的实例可以与0个或多个InternetClient的实例相关联;CustomerList端的“1”表示:1个InternetClient的实例只能与1个CustomerList的实例相关。 指出图4-5中(1)(4)处的重复度分别为多少?8、问题3 类通常不会单独存在,因此当对系统建模时,不仅要识别出类,还必须对类之间的相互关系建模。在面向对象建模中,提供了4种关系:依赖(dependency)、概括(generaliza tion)、关联(association)和聚集(aggregation)。分别说明这4种关系的含义,并说明关联和聚集之间的主
10、要区别。试题四9、程序4 START PRUGBC LD GR0,DATA LEA GR1,0 LEA GR3,48 LOOP1 CPL GR0,WDT,GR1 JP2 LOOP2 ST GR3,BTASC,GR1 LEA GR1,1,GR1 LEA GR2,-4,GR1 JN2 LOOP1 (1) LOOP2 LEA GR2,48 LOOP3 CPL GR0,WDT,GR1 JMI NEXT (2) LEA GR2,1,GR2 JMP LOOP3 NEXT (3) LEA GR1,1,GR1 LEA GR2,-4,GR1 JNZ LOOP2 LAST (4) ;处理个位数 (5) EXIT
11、C48 DC 48 WDT DC 10000 DC 1000 DC 100 DC 10 BTASC DS 5 DATA DC #FA59H END试题五10、函数5 int DeleteNode(Bitree *r,int e) Bitree p=* r,pp,s,c; while( (1) )/ * 从树根结点出发查找键值为e的结点 * / ppp; if(epdata)ppLchild; else ppRchild if(! p)return-1;/ * 查找失败 * / if(p-Lchild & p-Rchild)/ * 处理情况 * / s= (2) ;pp=p; while( (3
12、) )pp=s;s=s-Rchild; p-dara=s-data;P=s; / * 处理情况、 * / if( (4) )c=p-Lchild; else c=p-Rchild if(p=*r) *rc; else if( (5) )pp-Lchild=c; else pp-Rchild=c; free(p); return 0; 试题六11、程序6 #includeioStream.h templateclass Tclass Array; templateclass Tclass ArrayBody friend (1) ; T* tpBody; int iRows,iCurrentRo
13、w; ArrayBOdy(int iRsz,int iCsz) tpBody= (2) ; iRows=iRsz,iColumns=iCsz;iCurrentRow=-1; public: T& operator(int j) bool row_error,column_error; row_error=column_error=false; try if(iCurrentRow0|iCurrentRowiRows) row_error=; if(j0| jiColumns column_error=; if(row_error=true | column_error=true) (3) ;
14、eatch(char) if(row error=true) cerr“行下标越界“iCurrentRow”; if(column error=true) cerr“列下标越界“j”; cout“n”; return tpBodyiCurrentRow * iColumns+j; ArrayBody()deleretpBody; ; templateclass Tclass Array ArrayBodyT tBody; public: ArrayBodyT & operator(int i) (4) ; return tBody; ; void main() Arrayint a1(10,2
15、0); Arraydouble a2(3,5); int b1; double b2; b1=a1-510; / * 有越界提示:行下标越界-5 * / b1=a11015; / * 有越界提示:行下标越界10 * / b1=a114; / * 没有越界提示 * / b2=a226; / * 有越界提示:列下标越界6 * / b2=a21020; / * 有越界提示:行下标越界10列下标越界20 * / b2=a214; / * 没有越界提示 * / 答案:试题一1、A:传感器;B:报警器试题1分析 本题是一道分层数据流图的题目。解答此类问题最关键的一点就是要细心,把题目看清,不要丢掉任何一个
16、条件。另外解题有一定的技巧,从一些常规的入口作为突破口,会事半功倍。现在就利用分层数据流图的数据流的平衡原则(即父图和子图(加工图)的一致性)来解题。 子图是其父图中某一部分内部的细节图(加工图)。它们的输入输出数据流应该保持一致。如同看到地上有只蚂蚁有6条细细的腿,中间是一个小黑点,要看得更清楚一些就拿放大镜看。这时能看到它的头、触角、身体和比较粗的腿,但是看到的一定还是6条腿,不是7条,也不是3条。子图也是如此,在上一级中有几个数据流,它的子图也一定有同样的数据流,而且它们的输送方向是一致的(也就是说原图有3条进的数据流,2条出的数据流,子图同样也是)。 用这条原则可以轻松地解决问题3。在
17、0层图中,“4监控传感器”模块有1条输入数据流“传感器状态”和3条输出数据流“电话拨号”、“传感器数据”和“告警类型”。在加工4的细化图中,仅看到了输出数据流“告警类型”,所以知道此加工图少了“传感器状态”、“电话拨号”、“传感器数据”这3条数据流。加工4的结构非常清晰,所以只需把这 3条数据流对号入座即可,“电话拨号”应是“4.5拨号”的输出数据流;“传感器状态”应是作为“4.4读传感器”处理的输入数据流;“传感器数据”应该是经“4.1显示格式”处理过的数据流,所以作为“4.1显示格式”的输出数据流。 问题1 此题和以往试题有所不同。以往都给定了完整正确的顶层图。现在顶层图不完整,可以通过题
18、目说明信息以及顶层图来分析顶层图并解答问题。题目中提到了“房主可以在安装该系统时配置安全监控设备(如传感器,显示器,报警器等)”在顶层图中这3个名词都没有出现,但仔细观察,可以看出“电视机”实际上就是“显示器”。因为它接收TV信号并输出。再看其他的几个实体都和“传感器”“报警器”没有关联。又因为A中输出“传感器状态”到“住宅安全系统”所以A应填“传感器”。B接收“告警类型”,所以应填“报警器”。2、密码处理;4监控传感器;5显示信息和状态首先,毫无疑问“4监控传感器”用到了配置信息文件,这点可以在加工4的细化图中看出。接着,观察。层图,“3密码处理”这个处理是用于检验密码的,且它只有1个输出数
19、据流“检验ID信息”到“显示信息和状态”,没有反馈回来的数据流,所以“检验ID信息”是已经验证通过的用户的信息,用户输入密码应是在“3密码处理”这个环节中进行验证的(因为如果密码验证是在“5显示信息和状态”中进行的,那么从“5显示信息和状态”应有1条不合法用户的数据流反馈到“密码处理”)。所以“密码处理”一定要用到配置信息文件中的用户名和密码。同时由于输出到“5显示信息和状态”的数据流是“检验ID信息”,所以“5显示信息和状态”也用到了配置信息文件。3、 4、物理数据流图关注的是系统中的物理实体,以及一些具体的文档、报告和其他输入输出硬拷贝。物理数据流图用作系统构造和实现的技术性蓝图。 逻辑数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2004 上半年 软件 设计师 考试 答案 下午
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内