2021年上半年软件设计师上午真题及答案解析
Posted Zhang Jun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021年上半年软件设计师上午真题及答案解析相关的知识,希望对你有一定的参考价值。
51、如下图如下E-R图中,两个实体R1、R2之间有一个联系E,当E的类型为( )时必须将E转换成—个独立的关系模式?
A.1:1
B.1:*
C.*:1
D.*:*
参考答案:D
答案解析:
E-R图转关系模式转换原则:实体必须单独转换为1个关系模式。
联系根据类型不同:
- 1对1联系可以转换为独立的关系模式,也可以归并到任意一端实体中。
- 1对多联系可以转换为独立的关系模式,也可以归并到多端实体中。
多对多联系只能转换为独立的关系模式,不能归并
。
52、53、给定关系R (U,F),其中U=A,B,C,D,E,H,F=A→B,B→DH,A→H,C→E。关系有( ),F中( )。
1)
A.一个候选码A
B.2个候选码A、B
C.一个候选码AC
D.两个候选码A、C
2)
A.不存在传递依赖,但存在冗余函数依赖
B.既不存在传递依赖,也不存在冗余函数依赖
C.存在传递依赖A→D和A→H,但不存在冗余函数依赖
D.存在传递依赖A→D和A→H,并且还存在冗余函数依赖
参考答案:CD
答案解析:
- 第一空,关于候选键分析,其中A和C是入度为0的属性,所以候选键集合必须包含AC组合键,选择C选项。
- 第二空,本题A→B,B→DH,存在传递函数依赖A→DH,此时根据armstrong公理,可以分解得到A→D和A→H,此时F中A→H是冗余函数依赖,选择D选项。
54、55、56、某销售公司员工关系E(工号、姓名、部门名、电话、住址),商品关系C(商品号、商品名、库存数)和销售关系EC(工号、商品号、销售数、销售日期)。查询“销售部1”在2020年11月11日销售“HUWEI Mate40”商品的员工工号、姓名、部门名及其销售的商品名,销售数的关系代数表达式为π1,2,3,7,8( ( ) ⋈ ( ( ) ⋈ ( ) ) )
1)
A.σ3=销售部1(E)
B.σ3=销售部1(C)
C.σ3=‘销售部1’(E)
D.σ3=‘销售部1’(C)
2)
A.π2,3(σ2=‘HUWEI Mate40 ’(C))
B.π1,2(σ2= ‘HUWEI Mate40 ’(C))
C.π2,3(σ2=‘HUWEI Mate40 ’(EC))
D.π1,2(σ2=‘HUWEI Mate40 ’(EC))
3)
A.σ4=‘2020年11月11日’(C)
B.σ3=‘2020年11月11日’(C)
C.σ4=‘2020年11月11日’(EC)
D.σ3=‘2020年11月11日’(EC)
参考答案:CBC
答案解析:
本题考查的是关系代数相关知识内容。
本题看起来逻辑非常复杂,涉及到了3个关系表的联合使用,但结合选项来看,可以快速找到正确答案。
首先对于第一空,选择的对象一定是表E或表C,而此时C是没有部门名的,因此筛选对象一定是表E,其次判断某个列的取值,需要用引号标注,排除错误格式A,本题选择的应该是C选项。
接着对于第二空,选择的对象一定是表C或表EC,而此时EC是没有商品名的,因此筛选对象一定是表C,并且投影需要保留商品号和商品名,因此投影的列号是1和2,本题选择的应该是B选项。
接着对于第三空,选择的对象一定是表C或表EC,而此时C是没有销售日期的,因此筛选对象一定是表EC,并且位于EC的第4列即列号为4,本题选择的应该是C选项。
57、设有栈S和队列Q初始状态为空,数据元素序列a,b,c,d,e,f依次通过栈S,且多个元素从S出栈后立即进入队列Q,若出队的序列是b,d,f, e, c, a,则S中的元素最多时,栈底到栈顶的元素依次为( )。
A.a,b,c
B.a,c,d
C.a,c,e,f
D.a,d,f,e
参考答案:C
答案解析:
栈先进后出,队列先进先出。
出队序列与入队序列是一致的,出队的序列是b,d,f, e, c, a,即入队序列也为b,d,f, e, c, a。
此时出栈后即入队,即出栈顺序也为b,d,f, e, c, a,元素出栈时,栈内情况依次如下:
栈S中元素最多时,从栈底到栈顶的元素依次为a、c、e、f。本题选择C选项。
58、当二叉树中的结点数目确定时,( )的高度一定是最小的。
A.二叉排序树
B.完全二叉树
C.线索二叉树
D.最优二叉树
参考答案:B
答案解析:
- 完全二叉树是让二叉树的每一层的结点都尽可能全满,除了最底层,此时树的高度一定是最小的。
- 排序二叉树可能会得到单枝树,每一层只有1个结点,此时树的高度可能最大。
- 线索二叉树与二叉树遍历序列相关,高度并没有确定性。
- 最优二叉树与结点的权值相关,构成的树的高度也是不确定的。
59、()是对稀疏矩阵进行压缩存储的方式。
A.二维数组和双向链表
B.三元组顺序表和十字链表
C.邻接矩阵和十字链表
D.索引顺序表和双向链表
参考答案:B
答案解析:
- 在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵。
- 与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵。
- 定义非零元素的总数比上矩阵所有元素的总数为矩阵的稠密度。
- 存储矩阵的一般方法是采用二维数组,其优点是可以随机地访问每一个元素,因而能够较容易地实现矩阵的各种运算。
- 但对于稀疏矩阵而言,若用二维数组来表示,会重复存储了很多个0了,浪费空间,而且要花费时间来进行零元素的无效计算,所以必须考虑对稀疏矩阵进行压缩存储。
- 稀疏矩阵的三元组表的顺序存储结构称为三元组顺序表,常用的三元组表的链式存储结构是十字链表。
- 最常用的稀疏矩阵存储格式主要有:COO(Coordinate Format)和CSR(Compressed Sparse Row)。
- COO很简单,就是使用3个数组,分别存储全部非零元的行下标(row index)、列下标(column index)和值(value)。
- CSR稍复杂,对行下标进行了压缩,假设矩阵行数是m,则压缩后的数组长度为m+1,记作(row ptr),其中第i个元素(0-base)表示矩阵前i行的非零元个数。
60、设用线性探查法解决冲突构造哈希表,且哈希函数为H(key)=key%m,若在该哈希表中查找某关键字e是成功的且与多个关键字进行了比较,则( )。
A.这些关键字形成一个有序序列
B.这些关键字都不是e的同义词
C.这些关键字都是e的同义词
D.这些关键字的第一个可以不是e的同义词
参考答案:D
答案解析:
本题是对哈希查找表的考查。
关键字e的同义词,指的是其他关键字利用哈希函数进行求值时,得到的函数结果与e是一致的,此时这些关键字就是e的同义词。
在哈希表查找关键字e时成功且经过多次比较,可以知道经过计算e的位置,此时该位置存放的并不是关键字e,并且这些关键字的顺序与原序列顺序相关,与大小无关,A选项有序序列说法不正确。
由于本题采用的线性探测法解决哈希冲突,此时该位置对同义词开放,对非同义词也是开放的,也就是说,其他非同义关键字在使用线性探测法解决冲突时,也有可能直接占据该位置。所以对该位置进行比较的关键字,可能是e的同义词,也可能不是e的同义词,B和C的说法太过绝对,相比而言D的说法更合适,本题选择D选项。
61、对于一个初始无序的关键字序列,在下面的排序方法中,( )第一趟排序结束后,一定能将序列中的某个元素在最终有序序列中的位置确定下来。
①直接插入排序
②冒泡排序
③简单选择排序
④堆排序
⑤快速排序
⑥归并排序
A.①②③⑥
B.①②③⑤⑥
C.②③④⑤
D.③④⑤⑥
参考答案:C
答案解析:
- 选择类排序,每一轮会选择最值(最大值或最小值)与第一个位置进行交换,此时确定第一个元素位置。③④都满足要求。
- 冒泡排序,每一轮会让最值相邻交换直至放到最终的位置,②满足要求。
- 快速排序,每一轮会根据基准元素划分左右数组,此时基准元素的位置可以确定,因此⑤也满足要求。
- 其他排序方式每一轮只能确定元素的当前位置,不能确定该元素的最终位置。
62、对数组A=(2,8,7,1,3,5,6,4)构建大顶堆为( )(用数组表示)。
A.(1,2,3,4,5,6,7,8)
B.(1,2,5,4,3,7,6,8)
C.(8,4,7,2,3,5,6,1)
D.(8,7,6,5,4,3,2,1)
参考答案:C
答案解析:
- 堆是一种非线性结构,可以把堆看作一棵二叉树,也可以看作一个数组,即:堆就是利用完全二叉树的结构来维护的一维数组。
- 堆可以分为大顶堆和小顶堆。
- 大顶堆:每个结点的值都大于或等于其左右孩子结点的值。
- 小顶堆:每个结点的值都小于或等于其左右孩子结点的值。
- 如果是排序,求升序用大顶堆,求降序用小顶堆。
- 大顶堆的构建过程就是从最后一个非叶子结点开始从下往上调整。
A数组初始构造如下:
从最底层依次调整不符位置:
此时满足大顶堆,此时序列记为:8、4、7、2、3、5、6、1。
63、最大尺寸和问题描述为,在n个整数(包含负数)的数组A中,求之和最大的非空连续子数组,如数组A= (-2, 11, -4,13, -5,-2) ,其中子数组B= (11, -4, 13)具有最大子段和20 (11-4+13=20) 。求解该问题时,可以将数组分为两个n/2个整数的子数组最大子段或或者在前半段,或者在后半段,或者跨越中间元素,通过该方法继续划分问题,直至最后求出最大子段和,该算法的时间复杂度为( )。
A.O(nlgn)
B.O(n2)
C.O(n2lgn)
D.O(n3)
参考答案:A
答案解析:
分治法的时间复杂度为 nlogn
最简单的应用分治策略的算法是归并排序
64、65、在求解某问题时,经过分析发现该问题具有最优子结构和重叠子问题性质。则适用(64) 算法设计策略得到最优解。若了解问题的解空间,并以广度优先的方式搜索解空间,则采用的是(65)算法策略。
(1)
A.分治
B.贪心
C.动态规划
D.回溯
(2)
A.动态规划
B.贪心
C.回溯
D.分支限界
参考答案:CD
答案解析:
- 要想直接解决一个较大的问题,有时是相当困难的,分治法的设计思想是将一个难以解决的大问题分解成一些规模较小的相同问题,以便各个击破,分而治之。
- 动态规划法与分治法类似,其基本思想也是将带求解问题分解为若干个子问题,先求解子问题再从这些子问题的解得到原问题的解。与分治法不同的是,适合用动态规划法求解的问题,经分解得到的子问题往往不是独立的。若用分治法来解这类问题,则相同的子问题会被求解多次,以至于最后解决原问题需要耗费指数级时间。此时用一个中间表记录重复子问题的解,可以避免大量的重复计算。这就是动态规划法的基本思路。
- 动态规划法的应用场景一般会出现“最优子结构”的描述,并且针对重复子问题的计算通过记录-查表,可以提高效率。
- 贪心法也经常用于解决最优化问题,与之不同的是,贪心法在解决问题的策略上是仅根据当前已有的信息做出选择,而且一旦做出选择,无论未来如何都不会改变。也就是只考虑当前最优,不考虑全局最优。一般不涉及划分和求解重复子问题。
- 回溯法可以系统地搜索一个问题的所有解或任意解。它在包含问题的解空间树中,按照深度优先的策略的策略,从根结点出发搜索解空间树。
- 分支限界法类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法,但在一般情况下,分支限界法与回溯法的求解目标不同。分支限界法的求解目标是找出满足约束条件的一个解即可。由于求解目标不同,其探索方式与回溯法也不同,分支限界法以广度优先或以最小耗费优先的方式搜索解空间树。
66、IPv6 地址长度为( )bit。
A.16
B.32
C.64
D.128
参考答案:D
答案解析:
- IPv6地址长度为128位,由两个逻辑部分组成:一个64位的网络前缀和一个64位的主机地址。
- IPv6,互联网协议第6版本,英文全称Internet Protocol Version 6,用于替代IPV4的下一代IP协议。
- IPv6地址是独立接口的标识符,所有的IPv6地址都被分配到接口,而非节点。
- IPv6类别上可分为单播地址、任播地址、组播地址等。
- IPv4的地址是32位,地址空间只有4,294,967,296(2的32次方)个地址,减去私有网段、网络ID、广播ID、保留网段、本地环回127.0.0.0网段、组播224.0.0.0网段,大概剩余25亿左右。
- IPv6的地址是128位,是IPv4地址长度的4倍,采用十六进制表示。
67、在地址栏输入www.abc.com,浏览器默认的应用层协议是( )。
A.HTTP
B.DNS
C.TCP
D.FTP
参考答案:A
答案解析:
- 在没有录入协议的情况下,URL默认是HTTP协议。
- HTTP:超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
- DNS:域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
- TCP:传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。
- FTP:文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。
68、使用电子邮件客户端向服务器发送邮件的协议是( )。
A.SMTP
B.POP3
C.IMAP4
D.MIME
参考答案:A
答案解析:
- SMTP:SMTP是一种提供可靠且有效的
电子邮件传输
的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。 - POP3:POP3,全名为"Post Office Protocol - Version 3",即"邮局协议版本3",是TCP/IP协议族中的一员,由RFC1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件,是一种
邮件收取
协议。提供了SSL加密的POP3协议被称为POP3S。 - IMAP4:Internet Message Access Protocol 4,交互式数据消息访问协议第四个版本,与POP3协议一样也是规定个人计算机如何访问网上的邮件的服务器进行
收发邮件
的协议,但是IMAP4协议同POP3协议相比更高级。 - MIME:Multipurpose Internet Mail Extensions多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。
69、以下 Windows 系统中用于清除本地 DNS 缓存的命令是( )。
A.ipconfig/ release
B.ipconfig/ flushdns
C.ipconfig/ displaydns
D.ipconfig/ registerdns
参考答案:B
答案解析:
- ipconfig/release :释放IP地址租约。
- pconfig/ flushdns:清楚本地DNS缓存。
- ipconfig/ displaydns:显示本地DNS内容。
- ipconfig/ registerdns:DNS客户端手工向服务器进行注册。
- ipconfig /all:显示本机TCP/IP配置的详细信息。
- ipconfig /renew:DHCP客户端手工向服务器刷新请求。
- ipconfig /showclassid:显示网络适配器的DHCP类别信息。
- ipconfig /setclassid:设置网络适配器的DHCP类别。
70、在网络系统设计时,不可能使所有设计目标都能达到最优,下列措施中最为合理的是( )。
A.尽量让最低建设成本目标达到最优
B.尽量让最短的故障时间达到最优
C.尽量让最大的安全性目标达到最优
D.尽量让优先级较高的目标达到最优
参考答案:D
答案解析:
网络设计面临的冲突:最低的安装成本、最低的运行成本、最高的运行性能、最大的适应性、最短的故障时间、最大的可靠性、最大的安全性。不可能存在一个网络设计方案,能够使得所有的子目标都达到最优。可采用优先级和建立权重的方法权衡各目标的关心度。
71~75、Designing object -oriented software is hard,and designing (71)object -oriented software is even harder.You must find pertinent objects,factor them into class at the rightgranularity,define class interfaces and inheritances,and establish key relationships among them.You design should be specific to the problem at hand,but also(72)enough to address future problems and requirements.You also want to avoid redesign,or atleast minimize it.Experienced object -oriented designers will tell you that a reusable and flexible design is difficult if not impossible to get “right” the first time.Before a design is finished,they usually try to reuse it several times,madifring it each time.Yet experienced object-oriented designers do make good designs.Meanwhile new designers are (73)by the options available and tend to fall back on non-object-oriented techniques they’re used before.lt takes a long time for novices to learn that good obeject-oriented design is all about.Experienced designers evidently know something inexperiencedones.What is it?One thing expert desigeners know not to do is solve every problem from first principles.Rather, they reuse solutions that have worked for them in the past.When they find a good (74).They use it aqain and again.Such experience is part of what makes them experts.Consequently,you’ll find (75) patterns of classes and communicating objects in many object-oriented systems.
(1)
A.runnable
B.right
C.reusable
D.pertinent
(2)
A.clear
B.general
C.personalized
D.customized
(3)
A.excited
B.shocken
C.surprised
D.overwhelmed
(4)
A.tool
B.component
C.system
D.solution
(5)
A.recurring
B.right
C.experienced
D.past
参考答案:CBDDA
答案解析:
设计面向对象的软件很难,而设计(可复用的)面向对象软件就更难了。
你必须找到合适的相关的对象,以适当的粒度将它们划分为类,定义类接口和继承,并在它们之间建立关键关系。
你的设计应该针对眼前的问题,但(一般 )足以解决未来的问题和要求。
你也要避免重新设计,或者至少最小化它。
有经验的面向对象设计师会告诉你,一个可重用和灵活的设计是很难第一次就“正确”的。
在设计完成之前,他们通常会尝试多次重复使用,每次都是这样。
然而,有经验的面向对象设计师确实能做出好的设计。
同时,新的设计师们对可用的选项感到(不安),他们倾向于使用以前使用的非面向对象技术。
新手要花很长时间才能了解好的面向对象的设计。
经验丰富的设计师显然知道一些缺乏经验的东西。它是什么?有一件事专家设计师知道不能做的就是从一开始解决每一个问题。相反,他们选择了过去对他们有效的解决方案。
当他们找到一个好的(解决方案)。他们一次又一次地使用它。这样的经验是他们成为专家的部分原因。
因此,您将在许多面向对象系统中找到类和通信对象的复用模式。
1)
A. runnable可运行的
B. right对的
C. reusable可复用的
D. pertinent中肯的,相关的
2)
A. clear清除
B. general总则
C. personalized个性化
D. customized定制
3)
A. excited兴奋
B. shocken 震惊
C. surprised惊讶
D. overwhelmed不知所措
4)
A. tool工具
B. component组成部分
C. system系统
D. solution解决方案
5)
A. recurring循环
B. right对的
C. experienced经验丰富
D. past过去
以上是关于2021年上半年软件设计师上午真题及答案解析的主要内容,如果未能解决你的问题,请参考以下文章