1、中级软件设计师上午试题-37 及答案解析(总分:75.00,做题时间:90 分钟)XP is (71) of interesting twists that encourage one to think-for example, how about “Test and then code“? Ive worked with software companies and a few IT organizations in (72) programmer performance was measured on lines of code delivered and testing was meas
2、ured on defects found- (73) side was motivated to reduce the number of defects prior to testing. XP uses two types of testing: unit and functional. (74) , the practice for unit testing involves developing the test for the feature prior to writing the code and further states that the tests should be
3、automated. Once the code is written, it is immediately (75) to the test suite bringing instant feedback.(分数:5.00)A.filledB.stuffC.packD.fullA.themB.whereC.thatD.whichA.bothB.neitherC.noD.eitherA.whereasB.AlthoughC.HoweverD.And thenA.subjectedB.submittedC.sentD.suffered1. (9) 算法策略与递归技术的联系最弱。(分数:1.00)
4、A.动态规划B.贪心C.回溯D.分治2.结构化分析方法(SA)的主要思想是 (12) 。(分数:1.00)A.自顶向下、逐步分解B.自顶向下、逐步抽象C.自底向上、逐步抽象D.自底向上、逐步分解3.现有下列说法:模型是对现实的简化,建模是为了更好地理解所开发的系统。用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。软件技术复审是对用户和测试人员的一种质量保证活动。错误的是 (19) 。(分数:1.00)A.B.C.D.4.利用逐点插入法建立序列(49,73,43,85,75,21,35,45,
5、65,31)对应的二叉排序树后,查找元素35 要进行 (2) 次元素间的比较。(分数:1.00)A.4B.5C.7D.95.顺序图反映对象之间发送消息的时间顺序,它与 (29) 是同构的。(分数:1.00)A.用例图B.类图C.活动图D.协作图6.关于各种非空线索二叉树中空指针的个数有如下说法:任一非空先序线索二叉树有 2 个空指针。任一非空中序线索二叉树有 2 个空指针。任一非空后序线索二叉树有 2 个空指针。其中说法准确的个数是 (5) 。(分数:1.00)A.0B.1C.2D.37.广义表 B(a,b,(c,d),(e,(f,g),h,(i),则 tail(tail(head(tail(
6、tail(B)的值为 (6) 。(分数:1.00)A.dB.(d)C.cD.()8.产生死锁的 4 个必要条件为:互斥条件、请求保持条件、 (56) 、环路条件。(分数:1.00)A.永久性条件B.相互等待条件C.不可剥夺条件D.资源均分条件9.软件调试技术包括 (14) 。(分数:1.00)A.边界值分析B.演绎法C.循环覆盖D.集成测试10.不属于网络安全控制技术的是 (69) 。(分数:1.00)A.防火墙技术B.访问控制技术C.入侵检测技术D.差错控制技术11.在 C 语言程序段“int x=2008;int*p i=49;i+)for(j=0; j=49;j+)Aij=0;程序 B:
7、for(i=0; i=49; i+)for(j=0; j=49; j+)Aij=0;若每页可存放 50 个整数,执行程序 A 会发生 (52) 次缺页,执行程序 B 会发生 (53) 次缺页。(分数:2.00)A.50B.100C.1000D.2500A.50B.500C.2000D.2500职员关系模式为 E(Eno,Ename,Dept,Eage,Eaddr),其中 Eno 表示职员号,Ename 表示职员名,Dept表示职员所在部门,Eage 表示年龄,Eaddr 表示职员的家庭住址。建立“开发部”职员的视图 DS_E(DS 表示开发部)如下,要求进行修改、插入操作时保证该视图只有开发部
8、的职员。CREATE VIEW DS_EAS SELECT Eno,Ename,Dept,Eage,EaddrFROM E WHERE (64) 如下 SQL 语句可以查询开发部姓“王”职员的姓名和家庭住址。SelectEname,Eaddr From DS_E Where (65) ;(分数:2.00)A.Dept=DSB.Dept=DS WITH CHECK OPTIONC.DeptDSD.DeptDS WITH CHECK OPTIONA.Ename王%B.Ename LIKE王%C.Ename王*D.Ename LIKE王*26.关于码距、检错和纠错的说法有:为了检验 e 个误码,要求
9、编码系统的码距 d 应满足:d2e+1;为了检验 t 个误码,要求编码系统的码距 d 应满足:dt+1;4 位二进制编码 1000 与 1010 的码距为10;海明码能纠正 2 位错误。其中正确的个数为 (43) 。(分数:1.00)A.0B.1C.2D.327.结构化程序中的基本结构不包括 (38) 。(分数:1.00)A.嵌套B.顺序C.循环D.选择28.对关键码序列 28,16,32,12,60,2,5,72 快速排序,从小到大一次划分结果为 (8) 。(分数:1.00)A.(2,5,12,16)28(60,32,72)B.(5,16,2,12)28(60,32,72)C.(2,16,1
10、2,5)28(60,32,72)D.(5,16,2,12)28(32,60,72)若要封装对象,并提供不同的接口时,可采用 (33) ;若要将请求封装成对象,则可采用 (34) ;若要将可互换的行为封装起来,并采用委托的方式来决定使用哪一个,则可采用 (35) 。(分数:3.00)A.代理模式B.外观模式C.访问者模式D.适配器模式A.命令模式B.模板方法模式C.观察者模式D.适配器模式A.抽象工厂模式B.策略模式C.迭代器模式D.单身模式减少指令执行周期数是 RISC 计算机性能提高的基础,它是通过 (46) 、指令控制部件 (47) 微代码和 (48) 等来实现的。(分数:3.00)A.超
11、长指令字B.单指令多功能C.精简指令系统D.适当扩充指令系统A.尽可能多用原有B.增加C.软件固化D.不用A.减少寄存器B.增加寻址方式C.限制访问内存D.增加通道29. (36) 将一个活动图中的活动分组,由相应的类或业务组织来负责,它也是活动图区别于状态图的一大标志。(分数:1.00)A.泳道B.边界线C.生命线D.分组线30.一棵完全二叉树上有 1001 个结点,其中叶子结点的个数是 (3) 。(分数:1.00)A.490B.500C.501D.50531.在 UML 中,有如图 13-14 所示的图。(分数:1.00)A.B.C.D.给定关系模式 R(U,F),UA,B,C,D,E,F
12、,FBF,DA,AE, AEB,那么属性 A 的闭包为 (62) ,R 的候选关键字为 (63) 。(分数:2.00)A.ADEB.ABEC.ABCED.ABEFA.ABDB.ADEC.ACDD.CD32.若需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而你想避免让这些操作“污染”这些对象的类,那么应选择哪种设计模式? (30) 。(分数:1.00)A.职责链模式B.中介者模式C.访问者模式D.适配器模式33.在一个分页存储管理系统中,页表内容如表 13-6 所示,若页的大小为 2K,则地址转换机构将逻辑地址 0 转换成的物理地址为 (45) 。表 13-6 页 表页号 块号0 2
13、1 12 63 34 7(分数:1.00)A.8192B.4096C.2048D.1024现需要一个 32M8 规格的存储器,现只有规格为 1M8 的存储器芯片,则需要 (49) 个这样的存储器芯片。存储芯片的地址长度需要 (50) 位,主存储器的地址长度需要 (51) 位。(分数:3.00)A.16B.18C.32D.8A.20B.10C.24D.12A.20B.10C.24D.2534.在数据库设计中,当合并局部 E-R 图时,“职工”在某一局部应用中被当做实体,而在另一局部应用中被当做属性,这种冲突被称为 (60) 冲突。(分数:1.00)A.属性B.命名C.结构D.联系中级软件设计师上
14、午试题-37 答案解析(总分:75.00,做题时间:90 分钟)XP is (71) of interesting twists that encourage one to think-for example, how about “Test and then code“? Ive worked with software companies and a few IT organizations in (72) programmer performance was measured on lines of code delivered and testing was measured on d
15、efects found- (73) side was motivated to reduce the number of defects prior to testing. XP uses two types of testing: unit and functional. (74) , the practice for unit testing involves developing the test for the feature prior to writing the code and further states that the tests should be automated
16、. Once the code is written, it is immediately (75) to the test suite bringing instant feedback.(分数:5.00)A.filledB.stuffC.packD.full 解析:A.themB.whereC.thatD.which 解析:A.bothB.neither C.noD.either解析:A.whereasB.AlthoughC.However D.And then解析:A.subjected B.submittedC.sentD.suffered解析:这是一篇关于极限编程(XP)测试的短文,
17、译文如下:XP 充满发人深思的有趣的难题。例如:什么是先测试后编码?我曾在软件公司和一些 IT 机构工作,在那里他们用代码的行数来度量程序员的工作,而对于测试则用发现的缺陷数量来度量。这两种方法对于减少测试前产生的缺陷数量都不富有鼓励性。XP 使用两种测试:单元测试和功能测试。单元测试的准则要求在写代码之前就为相关特征开发出相应功能的测试,并进一步要求测试是自动化的。代码一旦编写完成,就对其进行一系列测试,从而得到迅速的反馈。1. (9) 算法策略与递归技术的联系最弱。(分数:1.00)A.动态规划B.贪心 C.回溯D.分治解析:分治法:对于一个规模为 n 的问题,若该问题可以容易地解决(比如
18、说规模 n 较小)则直接解决;否则将其分解为 k 个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并即可得到原问题的解。动态规划法:这种算法也用到了分治思想,它的作法是将问题实例分解为更小的、相似的子问题,并存储子问题的解而避免计算重复的子问题。贪心算法:它是一种不追求最优解,只希望得到较为满意解的方法。贪心算法一般可以快速得到满意的解,因为它省去了为找到最优解而穷尽所有可能所必须耗费的大量时间。贪心算法常以当前情况为基础做最优选择,而不考虑各种可能的整体情况,所以贪心算法不要回溯。回溯算法(试探法):它是一种系统地搜索问题的解的方法。回溯算法
19、的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。其实现一般要用到递归和堆栈。以上算法中的分治法和动态规划法通常要用到回溯算法,而回溯算法又一般要用到递归,所以只有贪心算法与递归技术联系最弱。2.结构化分析方法(SA)的主要思想是 (12) 。(分数:1.00)A.自顶向下、逐步分解 B.自顶向下、逐步抽象C.自底向上、逐步抽象D.自底向上、逐步分解解析:略。3.现有下列说法:模型是对现实的简化,建模是为了更好地理解所开发的系统。用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能
20、要求。软件技术复审是对用户和测试人员的一种质量保证活动。错误的是 (19) 。(分数:1.00)A.B.C.D. 解析:软件技术复审是由软件开发人员实施的一种质量保证活动。4.利用逐点插入法建立序列(49,73,43,85,75,21,35,45,65,31)对应的二叉排序树后,查找元素35 要进行 (2) 次元素间的比较。(分数:1.00)A.4 B.5C.7D.9解析:二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左右子树也分别为二叉排序树。二叉排序树也叫
21、二叉查找树。二叉排序树是一种动态树表。其特点是,树的结构通常不是一次生成的,而是在查找过程中逐步插入结点形成的,即当树中不存在关键字等于给定值的结点时再进行插入。新插入的结点一定是一个新添加的叶子结点,并且是查找不成功时查找路径上访问的最后一个结点的左孩子或者右孩子(若给定值小于最后一个结点的关键字值,则插入成为其左孩子,否则便插入成为其右孩子)。此题中建立二叉排序树的过程如图13-38 所示。*当查找元素 35 时,依次要跟 49、43,21、35 比较,因此要比较 4 次。5.顺序图反映对象之间发送消息的时间顺序,它与 (29) 是同构的。(分数:1.00)A.用例图B.类图C.活动图D.
22、协作图 解析:顺序图和协作图都是交互图,顺序图强调对象交互行为的顺序,而协作图强调对象的协作,它们在逻辑本质上是一样的,亦即它们是同构的,只是表现形式不同而已。6.关于各种非空线索二叉树中空指针的个数有如下说法:任一非空先序线索二叉树有 2 个空指针。任一非空中序线索二叉树有 2 个空指针。任一非空后序线索二叉树有 2 个空指针。其中说法准确的个数是 (5) 。(分数:1.00)A.0B.1 C.2D.3解析:非空先序线索二叉树有 1 或 2 个空指针,如图 13-39 所示。*易知,先序序列的最后一个结点一定是叶子结点,该结点无后继,于是其右指针为空。先序序列的第一个结点一定是根结点,其无前
23、驱,若根结点无左子树,显然其左指针为空,同时注意到,第一个结点的右指针、最后一个结点的左指针以及夹在第一个结点(根结点)和最后一个结点之间的任一结点的左右指针不是指向其左右子树便是指向前驱或后继的线索,均非空,于是该树中共有 2 个空指针;若根结点有左子树,那么根结点的左指针指向其左子树,同时也注意到,第一个结点(根结点)的右指针、最后一个结点的左指针以及夹在第一个结点和最后一个结点之间的任一结点的左右指针不是指向其左右子树便是指向前驱或后继的线索,均非空,于是该树中便只有一个非空指针。因此错误。易知,任一非空中序线索二叉树中,中序遍历的第一个结点肯定是左子树为空的结点,它无前驱,其左指针为空
24、;最后一个结点肯定是右子树为空的结点,它无后继,其右指针为空;第一个结点的右指针、最后一个结点的左指针以及夹在第一个结点和最后一个结点之间的任一结点的左右指针不是指向其左右子树便是指向前驱或后继的线索,均非空。因此,空指针一定是 2 个。因此准确。非空后序线索二叉树有 1 或 2 个空指针(如图 1340 所示)。*其推理论证类似于非空先序线索二叉树,在此不再赘述。因此不准确。7.广义表 B(a,b,(c,d),(e,(f,g),h,(i),则 tail(tail(head(tail(tail(B)的值为 (6) 。(分数:1.00)A.dB.(d)C.cD.() 解析:当广义表 B 非空时,
25、称第一个元素为表头,称其余元素组成的表(注意,是其余元素组成的表,而不是其余元素)为 B 的表尾,用操作 head(B)便可得到 B 的表头,用 tail(B)便可得到 B 的表尾。tail(tail(head(tail(tail(B)的求值过程如下:tail(B):(b,(c,d),(e,(f,g),h, (i);tail(tail(B):(c,d),(e,(f,g),h,(i);head(tail(tail(B):(c,d);tail (head(tail(tail(B):(d);tail(tail(head(tail(tail(B):()。8.产生死锁的 4 个必要条件为:互斥条件、请求
26、保持条件、 (56) 、环路条件。(分数:1.00)A.永久性条件B.相互等待条件C.不可剥夺条件 D.资源均分条件解析:产生死锁的 4 个必要条件为:互斥条件:进程对其所要求的资源进行独占性控制;请求保持条件:进程已经保持了至少一个资源,但又提出新的资源申请,而该资源又得不到满足,于是该进程阻塞,但其原先获得的资源保持不放;不可剥夺条件:进程已获得的资源在未使用完之前,不能被剥夺,只能在使用完后由自己释放;环路条件:当发生死锁时,在进程资源有向图中存在环路。9.软件调试技术包括 (14) 。(分数:1.00)A.边界值分析B.演绎法 C.循环覆盖D.集成测试解析:软件测试也是一个系统工程,在
27、做测试时,需要先做测试计划和规格说明,然后设计测试用例,定义策略,最后将测试结果与预先给出的期望结果进行比较,再做评价分析。而软件调试则是在进行了成功的测试之后才开始的工作。它与软件测试不同,软件测试的目的是尽可能多地发现软件中的错误,但进一步诊断和改正程序中潜在的错误,则是调试的任务。简单地说,软件调试(也称为纠错)是在测试发现错误之后排除错误的过程,它总发生在测试之后。当排除了错误之后,一般再设计新的测试用例再进行测试,然后再进行调试纠错,如此反复,直到软件质量达到要求为止。目前,常用的调试方法有:强行排错、回溯法排错、归纳法排错、演绎法排错。10.不属于网络安全控制技术的是 (69) 。
28、(分数:1.00)A.防火墙技术B.访问控制技术C.入侵检测技术D.差错控制技术 解析:此题考点是网络安全,备选答案中的几种技术均为常见网络相关技术,是需要掌握的,下面简单介绍一下这些技术。访问控制是网络安全防范和保护的主要核心策略,它的主要任务是保证网络资源不被非法使用和访问。访问控制规定了主体对客体访问的限制,并在身份识别的基础上,根据身份对提出资源访问的请求加以控制。它是对信息系统资源进行保护的重要措施,也是计算机系统最重要和最基础的安全机制。防火墙是一块硬件或软件或者是硬件和软件的结合体,在联网环境中发挥作用,以避免安全策略中禁止的一些通信,与建筑中的防火墙功能相似。防火墙对流经它的网
29、络通信进行扫描,这样能够过滤掉一些攻击,以免一些攻击程序在目标计算机上自动执行。防火墙也可以关闭不使用的端口,而且它还能禁止特定端口的通信,封锁特洛伊木马。防火墙还可以禁止来自特殊站点的访问,从而防止来自不明入侵者的攻击。入侵检测是防火墙的合理补充,可帮助系统对付网络攻击,扩展系统管理员的安全管理能力(包括安全审计、监视、进攻识别和响应),提高信息安全基础结构的完整性。它从计算机网络系统中的若干关键点收集信息,并分析这些信息,看网络中是否有违反安全策略的行为和遭到袭击的迹象。入侵检测被认为是防火墙之后的第二道安全闸门,在不影响网络性能的情况下能对网络进行监测,从而提供对内部攻击、外部攻击和误操
30、作的实时保护。由于通信线路上总有噪声存在,因此通常情况下噪声和信息是混在一起传输的,当噪声大到一定程度的时候,会干扰信息,使接收到的信息出现差错。差错控制就是通过一些技术手段,对接收到的信息进行正确性检查并纠正。如海明校验编码就是一种具有纠错功能的编码。从以上分析可知,差错控制技术不属于网络安全控制技术,所以答案为 D。11.在 C 语言程序段“int x=2008;int*p i=49;i+)for(j=0; j=49;j+)Aij=0;程序 B:for(i=0; i=49; i+)for(j=0; j=49; j+)Aij=0;若每页可存放 50 个整数,执行程序 A 会发生 (52) 次
31、缺页,执行程序 B 会发生 (53) 次缺页。(分数:2.00)A.50 B.100C.1000D.2500解析:A.50B.500C.2000D.2500 解析:由题目中所给条件可知,数组 A 有 5050 个整数,系统中共有 2 个内存页用于存放数据,信息数组中的元素按行编址。若每页可以存放 50 个整数,则一个内存页中可以存放 1 行数组元素,对于程序 A,数组元素的访问顺序为:A00,A01A049A10,A11A149A490,A491A4949显然,程序 A 对数据 A 的访问顺序与存储顺序一致,也是按行进行的。因此程序 A 每访问 1 行数据元素都会产生一次缺页中断,则访问整个数
32、据会产生 50 次缺页中断。对于程序 B,数组元素的访问顺序为:A00,A10A490A01,A11A491A049,A149A4949显然,程序 B 对数据 A 的访问顺序与存储顺序不一致,因此程序 B 每访问 1 个数据元素都会产生一次缺页中断,则访问整个数据会产生 2500 次缺页中断。经过上述分析,不得不引人深思,平时写程序的过程中,一个很细微的改变,可能导致计算机工作量数十倍的增长。职员关系模式为 E(Eno,Ename,Dept,Eage,Eaddr),其中 Eno 表示职员号,Ename 表示职员名,Dept表示职员所在部门,Eage 表示年龄,Eaddr 表示职员的家庭住址。建
33、立“开发部”职员的视图 DS_E(DS 表示开发部)如下,要求进行修改、插入操作时保证该视图只有开发部的职员。CREATE VIEW DS_EAS SELECT Eno,Ename,Dept,Eage,EaddrFROM E WHERE (64) 如下 SQL 语句可以查询开发部姓“王”职员的姓名和家庭住址。SelectEname,Eaddr From DS_E Where (65) ;(分数:2.00)A.Dept=DSB.Dept=DS WITH CHECK OPTIONC.DeptDSD.DeptDS WITH CHECK OPTION 解析:A.Ename王%B.Ename LIKE王
34、% C.Ename王*D.Ename LIKE王*解析:建立“开发部”职员的视图 DS_E,Dept 为字符类型,因此 WHERE 子句为 DeptDS;加入 WITH CHECK OPTION,表示对视图进行修改、插入操作时需要满足视图定义中的条件,即保证对该视图的修改、插入只针对于开发部的职员。在 SQL 中,谓词 LIKE 用来对字符串进行匹配,%代表任意长度的字符串,一代表任意单个字符,是字符串的比较操作;*号不是 SQL 中的通配符。选项 A 用代替了 LIKE,所以此时查询的职员名字就是“王%”。选项 D 中,“王*”中的*不是通配符,所以此时查询的职员名字就是“王*”。26.关于
35、码距、检错和纠错的说法有:为了检验 e 个误码,要求编码系统的码距 d 应满足:d2e+1;为了检验 t 个误码,要求编码系统的码距 d 应满足:dt+1;4 位二进制编码 1000 与 1010 的码距为10;海明码能纠正 2 位错误。其中正确的个数为 (43) 。(分数:1.00)A.0 B.1C.2D.3解析:码距就是两个编码不同位的数目,1000 与 1010 左起第 2 位不相同,其它位都相同,所以码距为1。根据编码理论,在一个编码系统里为了检测 e 个误码,要求其码距 d 应满足:de+1在一个编码系统里为了纠正 t 个误码,要求其码距应满足:d2t+1由于海明码的码距为 3,因此
36、它能检测出 2 个误码,但只能纠正一位误码。下面再举个例子来说明检错和纠错的问题。假如现在要对 A、B 两个字母进行编码。我们可以选用不同长度的编码,以产生不同码距的编码,分析它们的检错、纠错能力。若用 1 位长度的编码,则 A1,B0。这样 A,B 之间的最小码距 d1。根据上面的规则可知此编码的检错、纠错位数都为 0,即无检错、纠错能力。其实道理很简单,这种编码无论由 1 错为 o,或由。错为1,接收端都无法判断是否有错,因为 1、0 都是合法编码。若用 2 位长度的编码,可选用 11、00 作为合法编码,也可以选用 01、10 作为合法编码。这里我们以选A11,B00 为例。A、B 之间
37、的最小码距为 2。根据上面的规则可知此编码的检错位数为 1 位,无法纠错。因为如果 A(00)或 B(11)发生一位错码,必将变成 01 或 10,这都是禁用码组,故接收端可以判断为误码,却不能纠正其错误,因为无法判断误码(01 或 10)是 A(00)错误造成还是 B(11)错误造成,即无法判定原信息是 A 或 B,或说 A 与 B 形成误码(01 或 10)的可能性(或概率)是相同的。如果产生二位错码,即00 错为 11,或 11 错为 00,结果将从一个合法编码变成另一个合法编码,接收端就无法判断其是否有错。所以此种编码的检错能力为 1 位,纠错能力为 0 位。若用 3 位长度的编码,可
38、选用 111、000 作为合法编码。A、B 之间的最小码距为 3。根据上面的规则可知此编码的检错位数为 2 位,纠错位数为 1 位。例如,当信息 A(000)产生 1 位错误时,将有 3 种误码形式,即 001 或 010 或 100,这些都是禁用码组,可确定是误码。而且这 3 个误码与合法编码 000 的距离最近,与另一个合法编码 111 的距离较远,根据误码少的概率大于误码多的概率的规律,可以判定原来的正确码组是 000,只要把误码中的 1 改为 0 即可得到纠正。同理,如果信息 B(111)产生 1 位错误时,则有另 3 种误码可能产生,即 110 或 101 或 011,根据同样道理可
39、以判定原来的正确码组是 111,并能纠正错误。但是,如果信息 A(000)或信息 B(111)产生两位错误时,虽然能根据出现禁用码组识别其错误,但纠错时却会作出错误的纠正而造成误纠错。如果信息 A(000)或信息 B(111)产生 3 位错误时,将从一个合法编码 A(或 B)变成另一个合法编码 B(或 A),这时既检不出错,更不会纠错了,因为误码已成为合法编码,译码后必然产生错误。所以检错位数为 2 位,纠错位数为 1 位。27.结构化程序中的基本结构不包括 (38) 。(分数:1.00)A.嵌套 B.顺序C.循环D.选择解析:这是个基本概念题。结构化程序中的基本控制结构只有三种:顺序、循环和
40、选择。嵌套不是基本的控制结构,它可以通过上述三者组合而成。28.对关键码序列 28,16,32,12,60,2,5,72 快速排序,从小到大一次划分结果为 (8) 。(分数:1.00)A.(2,5,12,16)28(60,32,72)B.(5,16,2,12)28(60,32,72) C.(2,16,12,5)28(60,32,72)D.(5,16,2,12)28(32,60,72)解析:显然,这里要以 28 为界把序列分成两部分,前一部分比 28 小,后一部分比 28 大。这里采用双向指针交换法来排序。一个指针 front 指向最前的元素,一个指针 rear 指向最后的元素。从后面开始搜索,
41、当 front 指针所指的值大于 rear 指针所指的值时便交换,而且换一头搜索,直到两指针重合为止,此时算做一趟划分或一次划分,如图 13-43 所示。*若要封装对象,并提供不同的接口时,可采用 (33) ;若要将请求封装成对象,则可采用 (34) ;若要将可互换的行为封装起来,并采用委托的方式来决定使用哪一个,则可采用 (35) 。(分数:3.00)A.代理模式B.外观模式C.访问者模式D.适配器模式 解析:A.命令模式 B.模板方法模式C.观察者模式D.适配器模式解析:A.抽象工厂模式B.策略模式 C.迭代器模式D.单身模式解析:适配器模式将一个类的接口转化成客户希望的另外一个接口,使得
42、原本接口不兼容而不能一起工作的那些类可以一起工作。适配器模式的主要目的是为了在两个互不兼容的数据格式之间进行信息格式转换。可见,第(33)空应选择适配器模式。命令模式将一个请求封装成一个对象,从而可用不同的请求对客户进行参数化,或对请求进行排队或者记录请求日志,它还支持可撤消的操作,简单地说,命令模式将方法调用封装起来,将运算块封装成形,调用此运算的对象不必关心事情是具体如何完成的,只需要知道如何使用包装好的方法来完成事情就可以了。可见,第(34)空应选择命令模式。策略模式定义一系列的算法(算法族),并将它们分别封装起来,而且使它们可以相互替换,该模式使得算法的变化可独立于使用它的客户。可见,
43、第(35)空应选择策略模式。减少指令执行周期数是 RISC 计算机性能提高的基础,它是通过 (46) 、指令控制部件 (47) 微代码和 (48) 等来实现的。(分数:3.00)A.超长指令字B.单指令多功能C.精简指令系统 D.适当扩充指令系统解析:A.尽可能多用原有B.增加C.软件固化D.不用 解析:A.减少寄存器B.增加寻址方式C.限制访问内存 D.增加通道解析:精简指令系统计算机 RISC 通过精简指令系统、指令控制部件不用微代码、增加寄存器、减少寻址方式和限制访问内存等方法来减少指令执行周期数,从而提高计算机的性能。因此,减少指令执行周期数是 RISC 计算机性能提高的基础。29.
44、(36) 将一个活动图中的活动分组,由相应的类或业务组织来负责,它也是活动图区别于状态图的一大标志。(分数:1.00)A.泳道 B.边界线C.生命线D.分组线解析:泳道将一个活动图中的活动分组,由相应的类或业务组织来负责,一般用垂直直线把活动分组,使其属于不同的类或业务组织,从视觉上看类似游泳比赛中的泳道,因而得名。泳道也是活动图区别于状态图的一大标志。30.一棵完全二叉树上有 1001 个结点,其中叶子结点的个数是 (3) 。(分数:1.00)A.490B.500C.501 D.505解析:这棵完全-X树的高度为*根据二叉树的性质,从第 1 层到第 9 层共有结点 29-1511 个。第10
45、 层全部是叶子结点,因此处于第 10 层的叶子结点数为 1001-511490。同时注意到,第 9 层有 29-1-490/211 个叶子结点。因此共有 490+11 =501 个叶子结点。也可以用另外一种方法来做。设二叉树的总结点数为 n,叶子结点数为 n0,度为 1 的结点数为 n1,度为 2的结点数为 n2,根据二叉树的性质有:n 0=n2+1,n=n 1+2n2+1,于是可得,n=n 1+2n0-1,由于在完全二叉树中,度为 1 的结点总数 n1要么为 0 要么为 1,此题中显然为 0,这样才能保证等式两边都是奇数,因此10012n 0-1,解得 n0501。31.在 UML 中,有如
46、图 13-14 所示的图。(分数:1.00)A.B. C.D.解析:构件通常指的是源代码文件、二进制代码文件和可执行文件等,而构件图用来显示编译、链接或执行时构件之间的依赖关系。构件图中的主要元素有构件、接口及各种关系。构件有多种表示方法,题中的两幅图是构件 Query.dll 的两种不同的表示方法。图中的小圆表示构件提供给其它构件的接口,半圆表示需要别的构件提供的接口,在题目所示的图中,构件 Query.dll 可向外界提供接口“查询”,它需要别的构件向自己提供接口 Java.sq1.conection。端口是不同于接口的概念,端口可应用于 UML 中的多种元素,端口可以把类别的行为和它的内
47、部组成之间的关系作为协议状态机的一部分来建模。当将端口应用于类时,它允许建模人员将一个类的内部工作方式与环境变量隔离开来,这种隔离让开发人员可以集中精力设计类的职责,而不关心部署环境只要部署环境满足端口的环境说明,类就能正常工作。一般地,在类矩形的边界上画一个小正方形来表示类上的端口。给定关系模式 R(U,F),UA,B,C,D,E,F,FBF,DA,AE, AEB,那么属性 A 的闭包为 (62) ,R 的候选关键字为 (63) 。(分数:2.00)A.ADEB.ABEC.ABCED.ABEF 解析:A.ABDB.ADEC.ACDD.CD 解析:求属性集的闭包可由下述算法推出:设 X(0)A
48、。计算 X(1)。逐一扫描 F 集合中的各个函数依赖,找左部是 A 的函数依赖,得到:AE。令 X(1)=X(0)AAE,即把刚推导出的属性加入到 X(1)中。由于 X(1)X(0),因此再逐一扫描 F 集合中的各个函数依赖,找左部是 AE 的子集的那些函数依赖,得到 AE,AEB。注意,AE 是 AE 的子集。令 X(2)X(1)BE ABE,即把刚推导出的属性加入到 X(2)中。由于 X(2)X(1),因此再逐一扫描 F 集合中的各个函数依赖,找左部是 ABE 的子集的那些函数依赖,得到 BF,AE,AEB。令 X(3)X(2)FEBABEF,即把刚推导出的属性加入到 X(3)中。由于 X(3)X(2),因此再逐一扫描 F 集合中的各个函数依赖,找左部是 ABEF 的子集的那些函数依赖,得到 BF,AE,AEB。令 X(4)X(3)FEBABEF。由于 X(4)X(3),因此算法到此为止,属性 A 的闭包为 X(4),即 ABEF。如果一个属性集能唯一标识元组,且不含有多余属性,那么这个属性集称为候选关键字。该题中,由于函数依赖集中的所有函数依赖式的两边都没有出现属性 C,那么候选码中肯定有属性 C,否则,不可能推导出整个属性组。又因为 DA,而 A 的闭包为 ABEF 即 AABEF,所