欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】计算机水平考试中级软件设计师2004年上半年下午真题及答案解析.doc

    • 资源ID:1339211       资源大小:64.50KB        全文页数:7页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】计算机水平考试中级软件设计师2004年上半年下午真题及答案解析.doc

    1、计算机水平考试中级软件设计师 2004 年上半年下午真题及答案解析(总分:85.00,做题时间:90 分钟)一、B试题一/B(总题数:4,分数:16.00)1.问题 1 数据流图 4-1(住宅安全系统顶层图)中的 A 和 B 分别是什么? 数据流图 4-2(分数:4.00)_2.问题 2 数据流图 4-2(住宅安全系统第 0 层 DFD 图)中的数据存储“配置信息”会影响图中的哪些加工? 数据流图 4-3 (分数:4.00)_3.问题 3 将数据流图 4-3(加工 4 的细化图)中的数据流补充完整,并指明加工名称、数据流的方向 (输入/输出)和数据流名称。 (分数:4.00)_4.问题 4 试

    2、说明逻辑数据流图(logical data flow diagram)和物理数据流图(physical data flow diagram)之间的主要差别。(分数:4.00)_二、B试题二/B(总题数:1,分数:15.00)5.问题 1 试将算法 2-1)和算法 2-2中(1)(7)处补充完整。 问题 2 从下面的选项中选择相应的判断逻辑填补算法 2-2中的“判断条件 1”至“判断条件 3”。注意,若“判断条件 2”的逻辑判断结果为假,就无需对“判断条件 3”进行判断。 (a)字符是括号(b)字符是左括号(c)字符是右括号(d)栈空(e)栈不空 (f)栈顶元素表示的是与当前字符匹配的左括号 (

    3、g)栈顶元素表示的是与当前字符匹配的右括号(分数:15.00)_三、B试题三/B(总题数:3,分数:9.00)6.问题 1 在需求分析阶段,采用 UML 的用例图(use case diagram)描述系统功能需求,如图 4-4 所示。指出图中的 A,B,C 和 D 分别是哪个用例?(分数:3.00)_7.问题 2 在 UML 中,重复度(multiplicity)定义了某个类的一个实例可以与另一个类的多个实例相关联。通常把它写成一个表示取值范围的表达式或者一个具体的值。例如,图 4-5 中的类 InternetClient和 CustomerList,InternetClient 端的“0.

    4、*”表示:1 个 CustomerList 的实例可以与 0 个或多个InternetClient 的实例相关联;CustomerList 端的“1”表示:1 个 InternetClient 的实例只能与 1 个CustomerList 的实例相关。 指出图 4-5 中(1)(4)处的重复度分别为多少?(分数:3.00)_8.问题 3 类通常不会单独存在,因此当对系统建模时,不仅要识别出类,还必须对类之间的相互关系建模。在面向对象建模中,提供了 4 种关系:依赖(dependency)、概括(generaliza tion)、关联(association)和聚集(aggregation)。分

    5、别说明这 4 种关系的含义,并说明关联和聚集之间的主要区别。(分数:3.00)_四、B试题四/B(总题数:1,分数:15.00)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 U (1) /U LOOP2 LEA GR2,48 LOOP3 CPL GR0,WDT,GR1 JMI NEXT U (2) /U LEA GR2,1,GR2 JMP LOOP3 NEXT

    6、U (3) /U LEA GR1,1,GR1 LEA GR2,-4,GR1 JNZ LOOP2 LAST U (4) /U;处理个位数 U (5) /U EXIT C48 DC 48 WDT DC 10000 DC 1000 DC 100 DC 10 BTASC DS 5 DATA DC #FA59H END(分数:15.00)_五、B试题五/B(总题数:1,分数:15.00)10.函数 5 int DeleteNode(Bitree *r,int e) Bitree p=* r,pp,s,c; while(U (1) /U)/ * 从树根结点出发查找键值为 e 的结点 * / ppp; if

    7、(epdata) ppLchild; else ppRchild if(! p)return-1;/ * 查找失败 * / if(p-Lchild & p-Rchild)/ * 处理情况 * / s=U (2) /U;pp=p; while(U (3) /U)pp=s;s=s-Rchild; p-dara=s-data;P=s; / * 处理情况、 * / if(U (4) /U)c=p-Lchild; else c=p-Rchild if(p=*r) *rc; else if(U (5) /U)pp-Lchild=c; else pp-Rchild=c; free(p); return 0;

    8、 (分数:15.00)_六、B试题六/B(总题数:1,分数:15.00)11.程序 6 #includeioStream.h templateclass Tclass Array; templateclass Tclass ArrayBody friendU (1) /U; T* tpBody; int iRows,iCurrentRow; ArrayBOdy(int iRsz,int iCsz) tpBody=U (2) /U; iRows=iRsz,iColumns=iCsz;iCurrentRow=-1; public: T& operator(int j) bool row_error

    9、,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) U (3) /U; eatch(char) if(row error=true) cerr“行下标越界“iCurrentRow”;if(column error=true) cerr“列下标越界“j”; cout“/n”; return tpBodyiCurrentR

    10、ow * iColumns+j; ArrayBody()deleretpBody; ; templateclass Tclass Array ArrayBodyT tBody; public: ArrayBodyT & operator(int i) U(4) /U; return tBody; ; void main() Arrayint a1(10,20); Arraydouble a2(3,5);int b1; double b2; b1=a1-510; / * 有越界提示:行下标越界-5 * / b1=a11015; / * 有越界提示:行下标越界10 * / b1=a114; / *

    11、 没有越界提示 * / b2=a226; / * 有越界提示:列下标越界6 * / b2=a21020; / * 有越界提示:行下标越界10列下标越界20 * / b2=a214; / * 没有越界提示 * / (分数:15.00)_计算机水平考试中级软件设计师 2004 年上半年下午真题答案解析(总分:85.00,做题时间:90 分钟)一、B试题一/B(总题数:4,分数:16.00)1.问题 1 数据流图 4-1(住宅安全系统顶层图)中的 A 和 B 分别是什么? 数据流图 4-2(分数:4.00)_正确答案:()解析:A:传感器;B:报警器 试题 1分析 本题是一道分层数据流图的题目。解答

    12、此类问题最关键的一点就是要细心,把题目看清,不要丢掉任何一个条件。另外解题有一定的技巧,从一些常规的入口作为突破口,会事半功倍。现在就利用分层数据流图的数据流的平衡原则(即父图和子图(加工图)的一致性)来解题。 子图是其父图中某一部分内部的细节图(加工图)。它们的输入输出数据流应该保持一致。如同看到地上有只蚂蚁有 6 条细细的腿,中间是一个小黑点,要看得更清楚一些就拿放大镜看。这时能看到它的头、触角、身体和比较粗的腿,但是看到的一定还是 6 条腿,不是 7 条,也不是 3 条。子图也是如此,在上一级中有几个数据流,它的子图也一定有同样的数据流,而且它们的输送方向是一致的(也就是说原图有 3条进

    13、的数据流,2 条出的数据流,子图同样也是)。 用这条原则可以轻松地解决问题 3。在 0 层图中,“4监控传感器”模块有 1 条输入数据流“传感器状态”和 3 条输出数据流“电话拨号”、“传感器数据”和“告警类型”。在加工 4 的细化图中,仅看到了输出数据流“告警类型”,所以知道此加工图少了“传感器状态”、“电话拨号”、“传感器数据”这 3 条数据流。加工 4 的结构非常清晰,所以只需把这 3 条数据流对号入座即可,“电话拨号”应是“4.5 拨号”的输出数据流;“传感器状态”应是作为“4.4 读传感器”处理的输入数据流;“传感器数据”应该是经“4.1 显示格式”处理过的数据流,所以作为“4.1

    14、显示格式”的输出数据流。 问题 1 此题和以往试题有所不同。以往都给定了完整正确的顶层图。现在顶层图不完整,可以通过题目说明信息以及顶层图来分析顶层图并解答问题。题目中提到了“房主可以在安装该系统时配置安全监控设备(如传感器,显示器,报警器等)”在顶层图中这 3 个名词都没有出现,但仔细观察,可以看出“电视机”实际上就是“显示器”。因为它接收 TV 信号并输出。再看其他的几个实体都和“传感器”“报警器”没有关联。又因为 A 中输出“传感器状态”到“住宅安全系统”所以 A 应填“传感器”。B 接收“告警类型”,所以应填“报警器”。2.问题 2 数据流图 4-2(住宅安全系统第 0 层 DFD 图

    15、)中的数据存储“配置信息”会影响图中的哪些加工? 数据流图 4-3 (分数:4.00)_正确答案:()解析:密码处理;4监控传感器;5显示信息和状态 首先,毫无疑问“4 监控传感器”用到了配置信息文件,这点可以在加工 4 的细化图中看出。接着,观察。层图,“3 密码处理”这个处理是用于检验密码的,且它只有 1 个输出数据流“检验 ID 信息”到“显示信息和状态”,没有反馈回来的数据流,所以“检验 ID 信息”是已经验证通过的用户的信息,用户输入密码应是在“3 密码处理”这个环节中进行验证的(因为如果密码验证是在“5 显示信息和状态”中进行的,那么从“5 显示信息和状态”应有 1 条不合法用户的

    16、数据流反馈到“密码处理”)。所以“密码处理”一定要用到配置信息文件中的用户名和密码。同时由于输出到“5 显示信息和状态”的数据流是“检验 ID 信息”,所以“5 显示信息和状态”也用到了配置信息文件。3.问题 3 将数据流图 4-3(加工 4 的细化图)中的数据流补充完整,并指明加工名称、数据流的方向 (输入/输出)和数据流名称。 (分数:4.00)_正确答案:()解析:4.问题 4 试说明逻辑数据流图(logical data flow diagram)和物理数据流图(physical data flow diagram)之间的主要差别。(分数:4.00)_正确答案:()解析:物理数据流图关

    17、注的是系统中的物理实体,以及一些具体的文档、报告和其他输入输出硬拷贝。物理数据流图用作系统构造和实现的技术性蓝图。 逻辑数据流图强调参与者所做的事情,可以帮助设计者决定需要哪些系统资源;为了运行系统用户必须执行的活动;在系统安装之后如何保护和控制这些系统等。在逻辑数据流图中说明应该具有哪些加工和数据存储,而不关心这些加工和数据存储是如何实现的;物理数据流图则要说明加工和数据存储是如何实现的。二、B试题二/B(总题数:1,分数:15.00)5.问题 1 试将算法 2-1)和算法 2-2中(1)(7)处补充完整。 问题 2 从下面的选项中选择相应的判断逻辑填补算法 2-2中的“判断条件 1”至“判

    18、断条件 3”。注意,若“判断条件 2”的逻辑判断结果为假,就无需对“判断条件 3”进行判断。 (a)字符是括号(b)字符是左括号(c)字符是右括号(d)栈空(e)栈不空 (f)栈顶元素表示的是与当前字符匹配的左括号 (g)栈顶元素表示的是与当前字符匹配的右括号(分数:15.00)_正确答案:()解析:1 (2)col (3)row (4)2 (5)col (6)row (7)k 判断条件 1:(b) 判断条件 2:(e) 判断条件 3:(f) 分析 本程序的功能是检查文本文件中的圆括号是否匹配。从提示信息中,可以看出程序不但可以检查出是否有括号匹配错误,而且还知道具体错在哪个括号。由于括号匹配

    19、的规则是把最近的左右括号配成一对,所以括号匹配最常用的方法是遇到左括号则入栈,遇到右括号就出栈,出栈的友括号与当前的右括号是匹配的。此算法也不例外。 下面具体分析算法: 首先,把栈置空,置 EOF 为 False,并从文件中读取第一个字符到 ch。然后进入循环,循环体执行一次处理一个 ch。进入循环,利用 kind 函数算出 ch 的类型 k,接下来就是一大堆的空了,这个算法本身并不长,但空有这么多,而且比较集中,为解题增加了一定的难度。这里虽然空多,但基本结构却很明显,大致流程如下: 当 k 等于什么的时候把什么入栈,当k 等于什么的时候且栈不为空的时候出栈,如栈为空打印错误信息,如果都不是

    20、则读文件下一个字符再次进入循环。 再结合上面提到的算法,可以知道,入栈应是在类型 k 为 1(即 ch 为左括号时),出栈应是在类型 k 为 2(即 ch 为右括号时)。所以(1)空应填 1,(4)空应填 2。 (2)和(3)到底是把什么压入栈了呢?在(4)下面出栈时,并没有用到栈的内容。在此有些考生理所当然地认为栈中的内容没有什么用,随便压个ch 进去了,而且 2 个都是写的 ch。其实从逻辑上就可以推翻这种解答,如果是压的同样的数据,又是在同一位置出栈,算法大可只用个 push,pop 就可以了。这时继续往后面看,来寻找正确的答案。当看到“rowpop();colpop();”时,所有的疑

    21、惑可迎刃而解了,应该把 row 和 col 压入堆栈!那么row 和 col 谁先谁后呢?由于是先弹出 row 后弹出 col,按栈的后进先出的规则,可知先压入栈的是 col,再压入 row。所以(2)空填写 col,(3)空填写 row。 完成算法 2-1的分析后,分析算法 2-2就比较轻松了。(5)(6)(7)空的答案可直接到后面找到,因为后面有“pop();row-pop();colpop();”所以(5)空应填 col,(6)空应填 row。 因为判断条件 1 为真时要人栈,所以判断条件 1 应是判断字符是否是左括号,如果是就入栈。所以判断条件 1 选 b。 判断条件 2 和 3 是联

    22、系在一起的,当判断条件 2 和 3 都为真时,要进行出栈操作,因此要判断栈是否为空。由此可以得出判断条件 2 和 3 中,有一个是用来判断栈是否为空的。 备选答案的一些选项给了一些提示,就是用判断栈顶元素,来确定当前括号是否和栈中压人括号是同一类型的。但前提是左括号类型入了栈,而且要在栈顶,如果(7)空压入的是 k,就正好吻合了。所以(7)空应填 k,判断括号是否匹配的条件也就可以确定了。如果当前 ch 是右括号且当前栈顶的左括号(只有左括号入了栈)类型与 ch 匹配,则匹配成功。因为在题目中有提示“若判断条件 2”的逻辑判断结果为假,就无需对“判断条件 3”进行判断。所以应把“栈不空”作为判

    23、断条件 2,“栈顶元素表示的是与当前字符匹配的左括号”作为判断条件 3。即判断条件 2 填 e,判断条件 3 填 f。三、B试题三/B(总题数:3,分数:9.00)6.问题 1 在需求分析阶段,采用 UML 的用例图(use case diagram)描述系统功能需求,如图 4-4 所示。指出图中的 A,B,C 和 D 分别是哪个用例?(分数:3.00)_正确答案:()解析:A:浏览客户信息;B:修改个人信息;C:登录;D:删除客户信息。 分析 图 4-4 是一个 UML 的用例图。在工程的分析阶段,例图被用来鉴别和划分系统功能,它们把系统分成动作者(actor)和用例。 动作者(actor)

    24、表示系统用户能扮演的角色(role)。这些用户可能是人,可能是其他的计算机、一些硬件或者是其他软件系统。惟一的标准是它们必须要在被划分到用例的系统部分以外。它们必须能刺激系统部分,并接收返回。 用例描述了当某个动作者给系统特定的刺激时系统的活动。这些活动被文本描述。它描述了触发用例的刺激的本质,输入和输出到其他活动者,转换输入到输出的活动。用例文本通常也描述每个活动在特殊的活动线时可能的错误,以及系统应采取的补救措施。 了解用例图、动作者、用例的基本概念后,题目就迎刃而解了。图中的网络用户、公司客户、管理人员都是动作者。题目说明中提到了系统有 4 个功能:浏览客户信息、登录、修改个人信息、删除

    25、客户信息。这也就是 4 个用例。现在只需把他们对号入座即可。根据题目说明,可以知道任何使用 Internet 的网络用户都可以浏览电话公司所有的客户信息,在图中符合这一条件的只有 A,所以 A 应填浏览客户信息。因为只有公司的管理人员才能删除不再接受公司服务的客户的信息。所以 D 应填删除客户信息。 剩下只有登录和修改个人信息 2 个用例了,那么究竟是 B 填登录还是修改呢?先介绍包含和扩展的概念。 2 个用例之间的关系可以主要概括为 2 种情况:一种是用于重用的包含关系,用构造型include表示;另一种是用于分离出不同的行为,用构造型extend表示。 (1)包含关系:如果可以从 2 个或

    26、 2 个以上的原始用例中提取公共行为,或者发现能够使用一个构件来实现某一个用例的部分功能时,应该使用包含关系来表示它们。示意图如图 4-6 所示。 (2)扩展关系:如果一个用例明显地混合了 2 种或 2 种以上的不同场景,即根据情况可能发生多种事情。可以断定将这个用例分为一个主用例和一个或多个辅用例描述可能更加清晰。示意图如图 4-7 所示。 因为要先登录才能修改信息,显然 B 应填修改个人信息,C 应填登录。 7.问题 2 在 UML 中,重复度(multiplicity)定义了某个类的一个实例可以与另一个类的多个实例相关联。通常把它写成一个表示取值范围的表达式或者一个具体的值。例如,图 4

    27、-5 中的类 InternetClient和 CustomerList,InternetClient 端的“0.*”表示:1 个 CustomerList 的实例可以与 0 个或多个InternetClient 的实例相关联;CustomerList 端的“1”表示:1 个 InternetClient 的实例只能与 1 个CustomerList 的实例相关。 指出图 4-5 中(1)(4)处的重复度分别为多少?(分数:3.00)_正确答案:()解析:1 (2)0.* (3)0.1 (4)0.18.问题 3 类通常不会单独存在,因此当对系统建模时,不仅要识别出类,还必须对类之间的相互关系建模

    28、。在面向对象建模中,提供了 4 种关系:依赖(dependency)、概括(generaliza tion)、关联(association)和聚集(aggregation)。分别说明这 4 种关系的含义,并说明关联和聚集之间的主要区别。(分数:3.00)_正确答案:()解析:4 种关系的含义如下: 依赖表示类之间的使用关系。 概括表示一般类和特殊类之间的关系。 关联和聚集都表示实例之间的结构关系。 关联和聚集的区别:关联指明一个类的对象与另一个类的对象间的联系;2 个类之间的关联表示了 2 个同等地位类之间的结构关系,这 2 个类在概念上是同级别的。聚集是一种特殊的关联,它表示整体与部分的关系

    29、。四、B试题四/B(总题数:1,分数:15.00)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 U (1) /U LOOP2 LEA GR2,48 LOOP3 CPL GR0,WDT,GR1 JMI NEXT U (2) /U LEA GR2,1,GR2 JMP LOOP3 NEXT U (3) /U LEA GR1,1,GR1 LEA GR2,-4,GR1 J

    30、NZ LOOP2 LAST U (4) /U;处理个位数 U (5) /U EXIT C48 DC 48 WDT DC 10000 DC 1000 DC 100 DC 10 BTASC DS 5 DATA DC #FA59H END(分数:15.00)_正确答案:()解析:JMP LAST (2)SUB GR0,WDT,GR1 (3)ST GR2,BTASC,GR1 (4)ADD GR0,C48 (5)ST GR0,BTASC,GR1 分析 本程序是将 16 位无符号二进制数转换为 5 位十进制数。 程序的前 3 句是对寄存器赋初值,DATA 数据(即要转换的数)被读取到 GR0,GR1 置为

    31、 0,GR3 置为 48。第四句是一个逻辑比较语句(从这个语句可以看出,GR1 用作 WDT 的偏移地址),比较 GR0 和 WDT 中的数据的大小。 WDT 开始的5 个连续空间的数据分别为“10000,1000,100,10,5”。因为当前的 GR1 为 0,所以 WDT 对应的为“10000”,当 GR0 大于等于(WDT)时转 LOOP2,小于 (WDT)则继续往下执行。其实在这种情况下,最好的分析方法就是把 DATA 中的数据自己手动转成十进制,然后把数据代到程序里,跟踪程序的执行,这样能最快的了解程序的执行流程和处理方法,同时也做了验证工作。 因为#FA59H 转成十进制是 640

    32、89。所以现在程序转到 LOOP2 执行。GR2 置 48,单从这里无法了解 GR2 是什么用途。比较 GR0 与(WDT+GR1)的大小,GR0 比 10000 大,所以执行(2),再执行“LEAGR2,1,GR2”即把 GR2 自加 1(结合题目提到的“转换结果用 ASCH 码表示”,可以了解到 GR2 的用途,因为 48 正好是 ASCII 码的“0”,自加就变成“1”了,所以GR2 是统计 GR0 中(WDT+GR1)的个数并把它转化为 ASCII 码形式)。 然后再转向 LOOP3 执行,这样又回到了前面比较。在已知的语句中并没有对 GR0, GR1 进行变动,所以(2)中一定是对这

    33、 2 个寄存器值的改变,不然这段循环就成了死循环了。结合“LEAGR2,1,GR2”的功能,可知(2)应是对 GR0 自减一个(WDT+GR1),即 SUB GR0,WDT,GR1。 程序分析到这里,可以了解到 NEXT 标号后的语句是为下一步的统计做准备,即首先保存上一步已统计的“10000”的个数,再为统计“1000”的个数,为寄存器置初始值,程序已有“LEA GR1,1,GR1”,它能使 WDT+GR”指向 1000,所以(3)空要完成的功能是把“10000”的个数放到指定的位置,又因为题目中提到“转换结果用 ASCII 码表示,并从高位至低位依次存放在首地址为 BTASC 的连续 5

    34、个内存单元中”,所以(3)空应填 ST GR2,BTASC,GR1。 接下来执行“LEAGR2,-4,GR1”GR1 中存的是偏移量。当统计万位时,GR1 为 0;当统计千位时,GRl 为 1,要(GR1)-4 为 0,即 GR1 为 4,应是统计个位数字。所以(4)和 (5)空是统计个位数字,其实这点在程序注释部分也有提及。 那么如何利用已知数据,且用 2 步完成功能呢?这里注意到一个重要寄存器 GR0。 GR0 中现存的数就是个位数了,因为通过上面的几次循环,GR0 中高位都被减掉了,所以现在只需把 GR0 加上一个 48,然后再存入(BTASC+4)内存空间即可。其实把 GR0 加 48

    35、 的方法很多,但是一定要注意一个问题,不能用 LEA GR0,48,GR0,因为GR0 寄存器是不能用变址寻址的。又因为程序中用到了 C48,但一直没有语句用到过,所以用 ADD GR0,C48 是最合适的。至此(5)空毫无疑问填 ST GR0,BTASC,GR1。 最后就剩(1)了。当万位为 0 时,就可以执行“JPZ LOOP2”后面的一段程序了,“ST GR3,BTASC,GR1”是把“0”存入 BTASC+GR1 位置。接下来的 3 条语句都已经很明显了,与程序的倒数第 3,4,5 条语句完成同样的功能,即判断是否已经处理到个位了,如果是,则直接转到 LAST 进行个位处理,所以(1)

    36、空应填 JMP LAST。五、B试题五/B(总题数:1,分数:15.00)10.函数 5 int DeleteNode(Bitree *r,int e) Bitree p=* r,pp,s,c; while(U (1) /U)/ * 从树根结点出发查找键值为 e 的结点 * / ppp; if(epdata) ppLchild; else ppRchild if(! p)return-1;/ * 查找失败 * / if(p-Lchild & p-Rchild)/ * 处理情况 * / s=U (2) /U;pp=p; while(U (3) /U)pp=s;s=s-Rchild; p-dara

    37、=s-data;P=s; / * 处理情况、 * / if(U (4) /U)c=p-Lchild; else c=p-Rchild if(p=*r) *rc; else if(U (5) /U)pp-Lchild=c; else pp-Rchild=c; free(p); return 0; (分数:15.00)_正确答案:()解析:p & p-data !=e 或 p&(*p).data!e (2)p-Lchild 或(*P).Lchild (3)s-Rchild 或(*s).Rchild (4)p-Lchild 或(*p).Lchild (5)p=pp-Lchild 或 p=(*PP).

    38、Lchild 分析 本程序的功能是删除二叉查找树的一个结点。二叉查找树又称二叉排序树(binary sort tree)。一棵二叉查找树或者是一棵空树,应满足以下递归条件: 查找树的左、右子树各是一棵查找树。 若查找树的左子树非空,则其左子树上的各结点值均小于根结点的值。 若查找树的右子树非空,则其右子树上的各结点值均大于根结点的值。 例如,图 4-8 就是一棵二叉查找树。 六、B试题六/B(总题数:1,分数:15.00)11.程序 6 #includeioStream.h templateclass Tclass Array; templateclass Tclass ArrayBody f

    39、riendU (1) /U; T* tpBody; int iRows,iCurrentRow; ArrayBOdy(int iRsz,int iCsz) tpBody=U (2) /U; 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_erro

    40、r=; if(row_error=true | column_error=true) U (3) /U; 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

    41、i) U(4) /U; return tBody; ; void main() Arrayint a1(10,20); 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; / * 没有越界提示 * / (分数:15.00)_正确答案:()解析:c


    注意事项

    本文(【计算机类职业资格】计算机水平考试中级软件设计师2004年上半年下午真题及答案解析.doc)为本站会员(sofeeling205)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开