|
|
51CTO旗下网站
|
|
移动端

2016 年上半年软件设计师上午试题分析与解答(7)

《软件设计师历年真题解析》本书针对软件设计师2014—2017年共8次真题进行了试题的分析和解答,帮助考生熟悉试题形式,了解重点、掌握解答问题的方法和技巧等。本节为2016 年上半年软件设计师上午试题分析与解答。

作者:薛大龙来源:电子工业出版社|2018-08-21 19:03

2016 年上半年软件设计师上午试题分析与解答(7)

(53) A.有2 个候选关键字AC 和BC,并且有3 个主属性

B.有2 个候选关键字AC 和AB,并且有3 个主属性

C.只有一个候选关键字AC,并且有1 个非主属性和2 个主属性

D.只有一个候选关键字AB,并且有1 个非主属性和2 个主属性

试题分析

将本题关系模式R 的函数依赖关系表达为:C 依赖于A 和B,B 依赖于C。

因此A 的入度为零,所以他必然为候选关键字的一部分。

通过A 与B 组合,或A 与C 组合,均能遍历全图,所以候选关系字有:AB 和AC,因此A、B、C 均是主属性。

参考答案:(53)B

● 某公司数据库中的元件关系模式为P(元件号,元件名称,供应商,供应商所在地,库存量),函数依赖集F 如下所示:

F={元件号→元件名称,(元件号,供应商)→库存量,供应商→供应商所在地},元件关系的主键为 (54) ,该关系存在冗余以及插入异常和删除异常等问题。为了解决这一问题需要将元件关系分解 (55) ,分解后的关系模式可以达到 (56) 。

(54) A.元件号,元件名称 B.元件号,供应商

C.元件号,供应商所在地 D.供应商,供应商所在地

(55) A.元件1(元件号,元件名称,库存量)、元件2(供应商,供应商所在地)

B.元件1(元件号,元件名称)、元件2(供应商,供应商所在地,库存量)

C.元件1(元件号,元件名称)、元件2(元件号,供应商,库存量)、元件3

(供应商,供应商所在地)

D.元件1(元件号,元件名称)、元件2(元件号,库存量)、元件3(供应商,

供应商所在地)、元件4(供应商所在地,库存量)

(56) A.1NF B.2NF C.3NF D.4NF

试题分析

(54)选B,元件号和供应商的组合键能推导出该关系模式的所有属性,因此为主键。

(55)选C,因为关系模式P 存在冗余以及插入异常和删除异常等问题。

为了解决这一问题需要将元件关系分解。选项A,选项B 和选项D 是有损连接的,且不保持函数依赖性,故分解是错误的,例如,分解为选项A、选项B 和选项D 后,用户无法查询某元件由哪些供应商供应,原因是分解为有损连接,且不保持函数依赖。

元件关系存在非主属性对码的部分函数依赖:(元件号,供应商)供应商所在地,但是供应商→供应商所在地,故原关系模式元件非2NF 的。分解后的关系模式元件1、元件2 和元件3 消除了非主属性对码的部分函数依赖,同时不存在传递依赖,故达到3NF。

参考答案:(54)B (55)C (56)C

● 若元素以a,b,c,d,e 的顺序进入一个初始为空的栈中,每个元素进栈、出栈各1次,要求出栈的第一个元素为d,则合法的出栈序列共有 (57) 种。

(57) A.4 B.5 C.6 D.24

试题分析

以a,b,c,d,e 的顺序入栈,还要求第一个出栈的是d,所以只能先abcd 入栈,然后d 出栈,这样栈里面还有abc3 个元素,e 还没有入栈,e 可以有4 个时机入栈,就是4 种合法的出栈顺序。

在栈里面有abc 的时候入栈,合法的出栈顺序是decba

在栈里面的c 出栈后e 再入栈,合法的出栈顺序是dceba

在栈里面的bc 出栈后e 再入栈,合法的出栈顺序是dcbea

在栈里面的abc 都出栈后e 再入栈,合法的出栈顺序是dcbae

所以总共的合法出栈顺序是4 种

参考答案:(57)A

● 设有二叉排序树(或二叉查找树)如下图所示,建立该二叉树的关键码序列不可能是(58) 。

(58) A.23 31 17 19 11 27 13 90 61 B.23 17 19 31 27 90 61 11 13

C.23 17 27 19 31 13 11 90 61 D.23 31 90 61 27 17 19 11 13

试题分析

31 是27 的父亲节点,故31 必须在27 前面。

参考答案:(58)C

● 若一棵二叉树的高度(即层数)为h,则该二叉树 (59) 。

(59) A.有2h 个节点 B.有2h-1 个节点

C.最少有2h-1 个节点 D.最多有2h-1 个节点

试题分析

本题考察二叉树节点数计算,一颗高度为h 的二叉树,节点数最多时,即为满二叉树。

而高度为h 的满二叉树有2h-1 个节点,所以一棵二叉树的高度(即层数)为h,则它最多有2h-1 个节点。

参考答案:(59)D

● 在13 个元素构成的有序表A[1..13]中进行折半查找(或称为二分查找,向下取整)。

那么以下叙述中,错误的是 (60) 。

(60) A.无论要查找哪个元素,都是先与A[7]进行比较

B.若要查找的元素等于A[9],则分别需与A[7]、A[11]、A[9]进行比较

C.无论要查找的元素是否在A[ ]中,最多与表中的4 个元素比较即可

D.若待查找的元素不在A[ ]中,最少需要与表中的3 个元素进行比较

试题分析

考察数据结构折半查找算法,B 选项错误之处在于,要查找a[9]元素,第一次比较的是A[7] (下标计算方法为:[1+13]/2=7),第2 次比较的是A[10] (下标计算方法为:[8+13]/2=10)。

参考答案:(60)B

● 以下关于图的遍历的叙述中,正确的是 (61) 。

(61) A.图的遍历是从给定的源点出发对每一个顶点仅访问一次的过程

B.图的深度优先遍历方法不适用于无向图

C.使用队列对图进行广度优先遍历

D.图中有回路时则无法进行遍历

试题分析
使用队列对图进行广度优先遍历。

参考答案:(61)C

● 考虑一个背包问题,共有n=5 个物品,背包容量为W= 10,物品的重量和价值分别为:w={2,2,6,5,4},v={6,3,5,4,6},求背包问题的最大装包价值。若此为0-1 背包问题,分析该问题具有最优子结构,定义递归式为


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书会第9群:808517103

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Wicked Cool Java中文版

本书主要介绍由Sun微系统公司创建的Java编程语言。 除了核心内容外,Java还有许多免费的财富,即开放源代码的库。本书就是为了介绍这些库...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊