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

2017 年下半年软件设计师上午试题分析与解答(9)

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

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

2017 年下半年软件设计师上午试题分析与解答(9)

● 设某二叉树采用二叉链表表示(即节点的两个指针分别指示左、右孩子)。当该二叉树包含k 个节点时,其二叉链表节点中必有 (59) 个空的孩子指针。

(59) A.k-1 B.k C.k+1 D.2k

试题分析

所谓二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示着元素的逻辑关系,如下图所示。

二叉链表中每个节点有2 个指针,一共有2k 个指针。在二叉树中除了根节点之外,其他的节点都有一条边进入该节点,即一个指针指向该节点,所以二叉树中边的总个数为k-1,也就说明非空指针的个数为k-1 个。那么空指针的个数为:总的节点数-非空指针的个数=2k-(k-1)=k+1。

参考答案:(59)C

● 以下关于无向连通图G 的叙述中,不正确的是 (60) 。

(60) A.G 中任意两个顶点之间均有边存在

B.G 中任意两个顶点之间存在路径

C.从G 中任意顶点出发可遍历图中所有顶点

D.G 的临接矩阵是对称矩阵

试题分析

有向连通图与无相连通图如下所示:

参考答案:(60)A

● 两个递增序列A 和B 的长度分别为m 和n(m<n 且m 与n 接近),将二者归井为一个长度为m+n 的递增序列。当元素关系为 (61) ,归并过程中元素的比较次数最少。

(61) A.a1<a2<…<am-1<am<b1<b2<…<bn-1<bn

B.b1<b2<…<bn-1<bn<a1<a2<…<am-1<am

C.a1<b1<a2<b2<…<am-1<bm-1<am<bm<bm+1<…<bn-1<bn

D.b1<b2<…<bm-1<bm<a1<a2<…<am-1<am<bm+1<…<bn-1<bn

试题分析

两个递增序列A、B 进行归并时,从序列的第一个元素开始,分别从这两个序列中取一个元素并进行比较,将较小者输出,然后从较小者所在序列取下一个元素再进行比较,循环往复,直到某个序列的全部元素已经输出,再将另一个序列的剩余元素依次输出即可。

若am<b1,则需要依次比较 a1 与b1,a2 与b1,a3 与b1,am-1 与b1,am 与b1 共需要m 次比较,这是归并时比较次数最少的情况。

参考答案:(61)A

● 求解两个长度为n 的序列X 和Y 的一个最长公共序列(如序列ABCBDAB 和BDCABA 的一个最长公共子序列为BCBA)可以采用多种计算方法。如可以采用蛮力法,对X 的每一个子序列,判断其是否也是Y 的子序列,最后求出最长的即可,该方法的时间复杂度为 (62) 。经分析发现该问题具有最优子序列,可以定义序列成都分别为i 和j 的两个序列X 和Y 的最长公共子序列的成都为C[i,j],如下式所示。该方法的时间复杂度为 (63) 。

(62) A.O(n2) B.O(n2lgn) C.O(n3) D.O(n2n)

(63) A.O(n2) B.O(n2lgn) C.O(n3) D.O(n2n)

试题分析

第62 题一个给定的序列的子序列,就是将给定序列中零个或多个元素去掉之后得到的结果。序列ABCBDAB 去掉划线的字符ABCBDAB 得到的BCBA 就是它的一个子序列。一个

序列的子序列有2n 个,将X、Y 的所有子序列都检查过后即可求出X、Y 的最长公共子序列。这种方式的时间复杂度为O(n2n)。

第63 题引进一个二维数组c[i][j]表示X的i 位和Y的j 位之前的最长公共子序列的长度,按照公式将数值填入下表。

此时,c[i][j]中最大的数就是X 和Y 的最长公共子序列的长度,等于4。该算法的时间复杂度为O(n2)。

参考答案:(62)D (63)A

● 现需要对一个基本有序的数组进行排序。此时最适宜采用的算法为 (64) 排算法,时间复杂度为 (65) 。

(64) A.插入 B.快速 C.归并 D.堆

(65) A.O(n) B.O(nlgn) C.O(n2) D.O(n2lgn)

试题分析

对于基本有序数组采用插入排序效率是最高的,时间复杂度为O(n),快速排序适用于无序数组,对于有序数组来说时间复杂度是O(n2),属于最坏的情况。

参考答案:(64)A (65)A

● 相比于TCP,UDP 的优势为 (66) 。

(66) A.可靠传输 B.快消较小 C.拥塞控制 D.流量控制

试题分析

UDP 与TCP 的主要区别在于UDP 不一定提供可靠的数据传输。事实上,该协议不能保证数据准确无误地到达目的地。UDP 在许多方面非常有效,在数据传输过程中延迟小、数据传输效率高。当某个程序的目标是尽快地传输尽可能多的信息时,可使用UDP。

参考答案:(66)B

● 若一台服务器只开放了 25 和 110 两个端口,那么这台服务器可以提供 (67) 服务。

(67) A.E-Mail B.WEB C.DNS D.FTP

试题分析

25 端口是为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务器开放的,主要用于发送邮件。

110 端口是为POP3(邮件协议3)服务开放的,POP2、POP3 都是主要用于接收邮件的,目前POP3 使用的比较多,许多服务器都同时支持POP2 和POP3。客户端可以使用POP3 协议来访问服务端的邮件服务。

参考答案:(67)A

● SNM P 是一种异步请求/响应协议,采用 (68) 协议进行封装。

(68) A.IP B.ICMP C.TCP D.UDP

试题分析

简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。SNMP使用UDP(用户数据报协议)作为第四层协议(传输协议),进行无连接操作。

参考答案:(68)D

● 在一台安装好 TCP/IP 协议的计算机上,当网络连接不可用时,为了测试编写好的网络程序,通常使用的目的主机 IP 地址为 (69) 。

(69) A.0.0.0.0 B.127.0.0.0

C.10.0.0.1 D.210.225.21.255/24

试题分析

127.0.0.1 是回送地址,指本地机,一般用来测试使用。回送地址(127.x.x.x)是本机回送地址(Loopback Address),即主机IP 堆栈内部的IP 地址,主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,协议软件立即返回,不进行任何网络传输。

参考答案:(69)B


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

51CTO读书频道二维码


51CTO读书会第9群:808517103

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

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

读 书 +更多

黑客入侵的主动防御

本书是一本非常全面地讲述黑客入侵主动防御技术的网络安全工具书。本书的重点是介绍黑客的攻击手段和提供相应的主动防御保护措施,在组织结...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊