软件设计师-2021年上半年综合知识真题解析【上篇】

四季读书网 3 0
软件设计师-2021年上半年综合知识真题解析【上篇】
【第 1 题】(题型:选择题)
题目:在 CPU 中,用 (1) 给出将要执行的下一条指令在内存中的地址。
A. 程序计数器
B. 指令寄存器
C. 主存地址寄存器
D. 状态条件寄存器
【答案】A
析】
本题考察 CPU 中各寄存器的功能:
程序计数器(PC):专门用于存储下一条要执行的指令在内存中的地址,CPU 会根据 PC 的值去内存中取指令,取指后 PC 自动递增指向下一条指令,符合题干描述。
指令寄存器(IR):用于存储当前正在执行的指令,而非下一条指令的地址。
主存地址寄存器(MAR):用于存储要访问的主存单元的地址,主要在数据读写时使用。
状态条件寄存器(PSW):用于存储 CPU 的状态标志和条件标志,比如进位标志、零标志等。
【第 2 题】(题型:选择题)
题目:以下关于 RISC 和 CISC 计算机的叙述中,正确的是 (2)。
A.RISC 不采用流水线技术,CISC 采用流水线技术
B.RISC 使用复杂的指令,CISC 使用简单的指令
C.RISC 采用很少的通用寄存器,CISC 采用很多的通用寄存器
D.RISC 采用组合逻辑控制器,CISC 普遍采用微程序控制器
【答案】D
【解析】
本题考察 RISC(精简指令集计算机)和 CISC(复杂指令集计算机)的核心区别:
选项 A:RISC 为了提升执行效率,普遍采用流水线技术,甚至是超标量流水线,该选项错误。
选项 B:RISC 的核心是指令集精简,使用简单、规整的指令;CISC 包含大量复杂指令,支持多种寻址方式,该选项错误。
选项 C:RISC 采用大量通用寄存器,目的是减少内存访问次数;CISC 的通用寄存器数量相对较少,该选项错误。
选项 D:RISC 指令简单,采用组合逻辑控制器即可实现指令译码和控制;CISC 指令复杂,普遍采用微程序控制器,将控制逻辑存储在控制存储器中,该选项正确。
【第 3 题】(题型:选择题)
题目:采用 DMA 方式传送数据时,每传送一个数据都需要占用一个 (3)。
A. 指令周期   B. 总线周期   C. 存储周期   D. 机器周期
【答案】B
【解析】
本题考察 DMA(直接存储器访问)的工作机制:
DMA 是直接在内存和外设之间传输数据,不需要 CPU 干预,传输过程中需要占用总线来完成数据的传输,每传送一个数据就需要占用一个总线周期。
指令周期:CPU 执行一条指令的时间,包含取指、译码、执行等阶段,与 DMA 传输无关。
存储周期:内存进行一次读 / 写操作的时间,DMA 传输可能包含多个存储周期,但核心是占用总线。
机器周期:CPU 完成一个基本操作的时间,比如取指周期、执行周期,不是 DMA 传输的基本单位。
【第 4 题】(题型:选择题)
题目:以下关于闪存 (Flash Memory) 的叙述中,错误的是_(4)。
A. 掉电后信息不会丢失,属于非易失性存储器
B. 以块为单位进行删除操作
C. 采用随机访问方式,常用来代替主存
D. 在嵌入式系统中可以用 Flash 来代替 ROM 存储器
【答案】C
【解析】
本题考察闪存的特性:
选项 A:闪存属于非易失性存储器,掉电后数据不会丢失,正确。
选项 B:闪存的擦除操作必须以块为单位进行,不能像 RAM 一样按字节擦除,正确。
选项 C:闪存虽然可以随机读取,但写入和擦除是按块操作,且读写速度远低于主存(RAM),不能代替主存,通常作为辅助存储或 ROM 的替代,该选项错误。
选项 D:嵌入式系统中常用闪存代替 ROM 存储固件程序,比如手机的基带程序、路由器的系统,正确。
【第 5 题】(题型:选择题)
题目:若磁盘的转速提高一倍,则 (5)。
A. 平均存取时间减半
B. 平均寻道时间加倍
C. 旋转等待时间减半
D. 数据传输速率加倍
【答案】C
【解析】
本题考察磁盘性能参数的关系:
磁盘的平均存取时间 = 平均寻道时间 + 平均旋转等待时间:
平均寻道时间:磁头移动到目标磁道的时间,与磁盘转速无关,所以选项 B 错误。
平均旋转等待时间:磁盘旋转到目标扇区的时间,转速提高一倍,旋转一圈的时间减半,平均等待时间(通常是半圈时间)也会减半,选项 C 正确。
平均存取时间:由于寻道时间不变,只有旋转等待时间减半,所以整体存取时间不会减半,选项 A 错误。
数据传输速率:与磁盘转速和磁道密度有关,转速提高一倍,假设磁道密度不变,理论上传输速率会提高,但实际还受接口等因素限制,且题干表述为 “加倍” 过于绝对,选项 D 不准确。
【第 6 题】(题型:选择题)
题目:异常是指令执行过程中在处理器内部发生的特殊事件,中断是来自处理器外部的请求事件。以下关于中断和异常的叙述中,正确的是 (6)。
A.“DMA 传送结束”、“除运算时除数为 0” 都为中断
B.“DMA 传送结束” 为中断、“除运算时除数为 0” 为异常
C.“DMA 传送结束” 为异常、“除运算时除数为 0” 为中断
D.“DMA 传送结束”、“除运算时除数为 0” 都为异常
【答案】B
【解析】
本题考察中断和异常的定义区分:
中断:来自 CPU 外部的事件,比如外设完成任务(DMA 传送结束)、键盘输入等,属于外部请求。
异常:CPU 内部发生的事件,比如指令执行错误(除数为 0)、缺页、非法指令等,是指令执行过程中产生的特殊情况。
因此 “DMA 传送结束” 属于中断,“除数为 0” 属于异常,选项 B 正确。
【第 7 题】(题型:选择题)
题目:下列协议中,属于安全远程登录协议的是 (7)。
A.TLS   B.TCP   C.SSH   D.TFTP
【答案】C
【解析】
本题考察网络安全协议的用途:
TLS:传输层安全协议,用于为 TCP 连接提供加密,比如 HTTPS 基于 TLS,但不是专门的远程登录协议。
TCP:传输层可靠传输协议,不具备安全功能。
SSH:安全外壳协议,专门用于安全的远程登录和文件传输,通过加密和认证保证通信安全,符合题干要求。
TFTP:简单文件传输协议,基于 UDP,无安全机制,用于小文件传输。
【第 8 题】(题型:选择题)
题目:下列攻击类型中,(8) 是以被攻击对象不能继续提供服务为首要目标。
A. 跨站脚本  B. 拒绝服务   C. 信息篡改    D. 口令猜测
【答案】B
【解析】
本题考察网络攻击类型的目标:
跨站脚本(XSS):通过注入恶意脚本窃取用户信息或伪造用户操作,目标是获取信息或权限。
拒绝服务(DoS/DDoS):通过发送大量请求消耗目标系统的资源,使其无法为正常用户提供服务,符合题干描述。
信息篡改:修改传输或存储中的数据,目标是破坏数据完整性。
口令猜测:尝试破解用户口令,目标是获取系统访问权限。
【第 9 题】(题型:选择题)
题目:下列算法中属于非对称加密算法的是 (9)。
A.DES    B.RSA    C.AES    D.MD5
【答案】B
【解析】
本题考察加密算法的分类:
对称加密算法:加密和解密使用同一密钥,包括 DES、AES、3DES 等,选项 A、C 属于此类。
非对称加密算法:使用公钥和私钥对,加密和解密密钥不同,典型代表是 RSA,选项 B 正确。
MD5:属于哈希算法,用于生成数据摘要,不具备加密解密功能,选项 D 错误。
【第 10 题】(题型:选择题)
题目:SQL 是一种数据库结构化查询语言,SQL 注入攻击的首要目标是 (10)。
A. 破坏 Web 服务
B. 窃取用户口令等机密信息
C. 攻击用户浏览器,以获得访问权限
D. 获得数据库的权限
【答案】D
【解析】
本题考察 SQL 注入攻击的原理:
SQL 注入是通过在用户输入中插入恶意 SQL 语句,使应用程序执行未授权的数据库操作,其首要目标是绕过应用程序的验证,获得数据库的访问权限,进而可以窃取数据、修改数据甚至控制数据库服务器。
选项 A 是攻击的可能结果但不是首要目标;选项 B 是获得数据库权限后的操作之一;选项 C 是 XSS 攻击的目标。
【第 11 题】(题型:选择题)
题目:通常使用 (11) 为 IP 数据报文进行加密。
A.IPSec    B.PP2P    C.HTTPS     D.TLS
【答案】A
【解析】
本题考察网络安全协议的应用场景:
IPSec:互联网协议安全,专门用于对 IP 层的数据报文进行加密和认证,实现端到端的 IP 数据安全,符合题干要求。
PP2P:点对点协议,主要用于拨号上网的链路层认证,不加密 IP 报文。
HTTPS:基于 TLS 的 HTTP 协议,加密的是应用层的 HTTP 数据,不是 IP 报文。
TLS:传输层安全协议,为 TCP 连接提供加密,作用于传输层,不是 IP 层。
【第 12 题】(题型:选择题)
题目:根据《计算机软件保护条例》的规定,对软件著作权的保护不包括 (12)。
A. 目标程序   B. 软件文档   C. 源程序   D. 开发软件所有的操作方法
【答案】D
【解析】
本题考察软件著作权的保护范围:
根据《计算机软件保护条例》,软件著作权保护的是计算机程序及其有关文档,计算机程序包括源程序和目标程序。而开发软件的操作方法属于思想、思路范畴,不属于著作权保护的对象,著作权只保护表达形式,不保护思想。
【第 13 题】(题型:选择题)
题目:甲、乙两互联网公司于 2020 年 7 月 7 日就各自开发库存管理软件分别申请 “宏达” 和 “鸿达” 商标注册,两个库存管理软件相似,甲第一次使用时间为 2019 年 7 月,乙第一次使用时间为 2019 年 5 月,此情景下,(13) 能获准注册。
A. “宏达”   B. “宏达” 和 “鸿达” 均   C. 由甲、乙协商哪个   D. “鸿达”
【答案】D
【解析】
本题考察商标注册的在先使用原则:
根据《商标法》,两个或者两个以上的商标注册申请人,在同一种商品或者类似商品上,以相同或者近似的商标申请注册的,初步审定并公告申请在先的商标;同一天申请的,初步审定并公告使用在先的商标,驳回其他人的申请。
本题中甲乙同一天申请,乙的第一次使用时间(2019 年 5 月)早于甲(2019 年 7 月),所以乙的 “鸿达” 商标会被获准注册。
【第 14 题】(题型:选择题)
题目:A 经销售擅自复制并销售 B 公司开发的 OA 软件光盘已构成侵权,C 企业在未知情形下从 A 处购入 100 张并已安装使用,在 C 企业知道了所使用的软件为侵权复制的情形下,以下说法正确的是 (14)。
A. C 企业的使用行为侵权,须承担赔偿责任
B.C 企业的使用行为侵权,支付合理费用后可以继续使用这 100 张软件光盘
C.C 企业的使用行为不侵权,可以继续使用这 100 张软件光盘
D.C 企业的使用行为不侵权,不需承担任何法律责任
【答案】B
【解析】
本题考察软件侵权的善意第三人规定:
根据《计算机软件保护条例》,软件复制品的持有人不知道也没有合理理由应当知道该软件是侵权复制品的,不承担赔偿责任;但是,应当停止使用、销毁该侵权复制品。如果停止使用并销毁该侵权复制品将给复制品使用人造成重大损失的,复制品使用人可以在向软件著作权人支付合理费用后继续使用。
本题中 C 企业在知情后,使用行为属于侵权,但可以支付合理费用后继续使用。
【第 15 题】(题型:选择题)
题目:下列关于结构化分析方法的数据字典加工逻辑的叙述中,不正确的是 (15)。
A. 对每一个基本加工,应该有一个加工逻辑
B. 加工逻辑描述输入数据流变换位输出数据的加工规则
C. 加工逻辑必须实现加工的数据结构和算法
D. 结构化语言,判定树和判定表可以用来表示加工逻辑
【答案】C
【解析】
本题考察结构化分析中数据字典的加工逻辑:
选项 A:每个基本加工都需要定义加工逻辑,描述其转换规则,正确。
选项 B:加工逻辑的核心是说明输入数据流如何转换为输出数据流,正确。
选项 C:加工逻辑只需要描述加工的规则和功能,不需要详细实现数据结构和算法,实现是设计阶段的任务,该选项错误。
选项 D:结构化语言、判定树、判定表是表示加工逻辑的三种常用工具,正确。
【第 16 题】(题型:选择题)
题目:在软件设计阶段进行模块划分时,一个模块的 (16)。
A. 控制范围应该在其作用范围之内
B. 作用范围应该在其控制范围之内
C. 作用范围与控制范围互不包含
D. 作用范围与控制范围不受任何限制
【答案】B
【解析】
本题考察软件模块设计的作用范围与控制范围:
作用范围:受该模块内一个判定影响的所有模块的集合。
控制范围:模块本身以及所有直接或间接从属于它的模块的集合。
模块设计的原则是:作用范围应该在控制范围之内,即判定所在的模块能够控制所有受该判定影响的模块,这样可以减少模块间的耦合,提高内聚性。
【第 17-18 题】(题型:选择题)
题目:下面是一个软件项目活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的权重表示活动的持续时间 (天), 则关键路径长度为 (17), 在该活动图中,活动 (18) 晚 16 天开始不会影响上班。
软件设计师-2021年上半年综合知识真题解析【上篇】 第1张
(17) A.20 B.25 C.27 D.48
(18) A.AC B.BE C.FI D.HJ
【答案】(17) C;(18) A
【解
第 (17) 题解析
首先,根据题活动图找出关键路径,即ABDGIKL,通过累加关键路径上各边的长度,得出关键路径长为22,即最短工期22天。
第 (18) 题解析
BD是关键路径上的活动,其总时差为0,所以一天也不能耽搁,即BD最多延误0天才不会影响整个项目的进度。
【第 19 题】(题型:选择题)
题目:下列关于风险的叙述中,不正确的是 (19)。
A. 风险是可能发生的事件
B. 如果能预测到风险,则可以避免其发生
C. 风险是可能会带来损失的事件
D. 对于风险进行干预,以期减少损失
【答案】B
【解析】
本题考察软件项目风险的定义:
风险是指可能发生的、会给项目带来损失的事件,风险具有不确定性,即使能预测到风险,也只能通过干预降低损失,无法完全避免其发生,因为风险的触发条件可能无法完全控制。
选项 A、C、D 都符合风险的定义和风险管理的原则,选项 B 错误。
【第 20 题】(题型:选择题)
题目:算术表达式 a*(b+c/d)-e 的后缀式 为 (20)。
A.abcd/+*e-
B.abcde*+/-
C.a*b+c/d-e
D.ab*cd/+e-
【答案】A
【解析】
本题考察算术表达式的后缀式(逆波兰式)转换:
后缀式的转换规则是将运算符放在操作数之后,按照运算优先级转换:
先计算 c/d:转换为 cd/
再计算 b+(c/d):转换为 bcd/+
然后计算 a*(b+c/d):转换为 abcd/+*
最后计算减去 e:转换为 abcd/+*e-,对应选项 A。
选项 C 是中缀式,不是后缀式;选项 B、D 的运算符顺序错误。
【第 21 题】(题型:选择题)
题目:以编译方式翻译 C/C++ 源程序的过程中,类型检查在 (21) 阶段处理。
A、词法分析  B、语义分析   C、语法分析   D、目标代码生成
【答案】B
【解析】
本题考察编译过程的各阶段功能:
词法分析:将源代码分解为单词(标识符、关键字、运算符等),不涉及类型检查。
语法分析:验证单词序列是否符合语法规则,生成语法树,不处理类型。
语义分析:对语法树进行语义检查,包括类型检查、变量声明检查、作用域检查等,符合题干描述。
目标代码生成:将中间代码转换为机器代码,不涉及类型检查。
【第 22 题】(题型:选择题)
题目:Java 语言符合的特征有 (22) 和自动的垃圾回收处理。
①采用即时编译
②采用静态优化编译
③对象在堆空间分配
④对象在栈空间分配
A. ①③   B. ①④   C.②③   D.②④
【答案】A
【解析】
本题考察 Java 语言的核心特征:
Java 采用即时编译(JIT),在运行时将字节码编译为机器码,而不是静态编译(静态编译是 C/C++ 的方式),所以①正确,②错误。
Java 的对象都在堆空间分配,栈空间只存储基本数据类型和对象引用,所以③正确,④错误。
因此符合的特征是①③,对应选项 A。
【第 23 题】(题型:选择题)
题目:云计算有多种部署模型 (Deployment Models)。若云的基础设施是为某个客户单独使用而构建的,那么该部署模型属于 (23)。
A. 公有云   B. 私有云   C. 社区云   D. 混合云
【答案】B
【解析】
本题考察云计算的部署模型:
公有云:云基础设施由云服务商提供,多个客户共享,比如阿里云、AWS。
私有云:云基础设施为单个客户单独构建,仅供该客户使用,符合题干描述。
社区云:云基础设施由多个具有共同需求的客户共享,比如行业联盟的云。
混合云:结合公有云和私有云,在两者之间进行数据和应用的迁移。
【第 24 题】(题型:选择题)
题目:若计算机系统的字长为 128 位,磁盘的容量为 2048 GB , 物理块的大小为 8 MB, 假设文件管理系统采用位示图 (bitmap) 法记录该计算机系统磁盘的使用情况,那么位示图的大小需要 (24) 个字。
A. 1024   B.2048   C.4096   D.8192
【答案】B
【解析】
本题考察位示图的计算:
首先计算磁盘的物理块总数:磁盘容量 / 物理块大小 = 2048GB/8MB=2048*1024MB/8MB=262144 块。
位示图中每一位表示一个物理块的使用情况,所以位示图的总位数 = 262144 位。
系统字长为 128 位,即每个字可以存储 128 位的位示图信息,所以需要的字数 = 总位数 / 字长 = 262144/128=2048 个字,对应选项 B。
【第 25 题】(题型:选择题)
题目:进程 P 有 5 个页面,页号为 0-4,页面变换表及状态位、访问位和修改位的含义如下图所示,若系统给进程 P 分配了 3 个存储块,当访问的页面 3 不在内存时,应该淘汰表中页号为 (25) 的页面。
软件设计师-2021年上半年综合知识真题解析【上篇】 第2张
A.0   B.1    C.2    D.4
【答案】A
【解
本题考察页面置换算法,通常采用时钟算法(最近最少使用的变种),优先淘汰访问位为 0 且修改位为 0 的页面,若没有则淘汰访问位为 0 且修改位为 1 的,最后淘汰访问位为 1 的。
当前在内存的页面是 0、2、4:
页号 0:访问位 1,修改位 0
页号 2:访问位 1,修改位 1
页号 4:访问位 1,修改位 1
根据时钟算法,会先将访问位置 0,再次检查时,页号 0 的修改位为 0,是最优淘汰对象,因为淘汰它不需要写回磁盘(修改位 0 表示未修改),而页 2 和 4 需要写回,开销更大,所以淘汰页号 0,对应选项 A。
【第 26-28 题】(题型:选择题)
题目:若用 PV 操作控制进程 P1、P2、P3、P4、P5 和 P6 开发执行的过程,需要设置 6 个信号量 S1、S2、S3、S4、S5 和 S6,且信号量 S1~S6 的初值都等于零。下面的进程执行图中 a 和 b 处分别填写 (26) ;c 和 d 处应分别填写 (27) ;e 和 f 处应分别填写 (28)。
软件设计师-2021年上半年综合知识真题解析【上篇】 第3张
(26) A.V (S1) 和 P (S2) V (S3)
B.P (S1) 和 P (S2) V (S3)
C.V (S1) 和 V (S2) V (S3)
D.P (S1) 和 V (S2) V (S3)
(27) A.P (S2) 和 P (S4)
B.V (S4) 和 P (S3)
C.P (S2) 和 V (S4)
D.V (S2) 和 V (S4)
(28) A.P (S4) V (S5) 和 V (S6)
B.P (S4) V (S5) 和 P (S6)
C.P (S4) P (S5) 和 V (S6)
D.P (S4) P (S5) 和 P (S6)
【答案】(26) C;(27) B;(28) D
析】
图中有八条箭线,因此,需要设置八个信号量。按照从小到大的顺序分别是:P一P2对应S1,P1P3对应S2,P2-P3对应S3,P2-P4对应S4,P3P4对应S5,P3P5对应S6,P4P6对应S7,P5P6对应S8。每个进程开始的时候执行P操作(P1没有P操作,只有V操作)结束的时候执行V操作。例如,P2开始的时候执行P(S1)的操作,结束时执行V(S3)和V(S4)的操作,P3开始的时候执行P(S2)P(S3)的操作,结束时执行V(S5)和V(S6)的操作,其他同理。
【第 29-30 题】(题型:选择题)
题目:关于螺旋模型,下列陈述中不正确的是 (29),(30)。
(29) A. 将风险分析加入到瀑布模型中
B. 将开发过程划分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符
C. 适合于大规模、复杂且具有高风险的项目
D. 可以快速的提供一个初始版本让用户测试
(30) A. 支持用户需求的动态变化
B. 要求开发人员具有风险分析能力
C. 基于该模型进行软件开发,开发成本低
D. 过多的迭代次数可能会增加开发成本,进而延迟提交时间
【答案】(29) D;(30) C
【解析】
第 (29) 题解析
螺旋模型的核心是将瀑布模型和风险分析结合,每个螺旋周期包括制定计划、风险分析、实施开发、客户评估四个阶段,类似瀑布模型的迭代:
选项 A:螺旋模型确实在瀑布模型基础上加入了风险分析,正确。
选项 B:每个螺旋周期包含需求、设计、开发、验证等阶段,和瀑布模型相符,正确。
选项 C:螺旋模型适合高风险、大规模的项目,因为每次迭代都进行风险分析,正确。
选项 D:快速提供初始版本是原型模型的特点,螺旋模型强调风险分析,迭代周期较长,不能快速提供初始版本,该选项错误。
第 (30) 题解析
选项 A:螺旋模型支持用户需求的动态变化,因为每个周期都有客户评估,可以调整需求,正确。
选项 B:螺旋模型需要进行风险分析,要求开发人员具备风险分析能力,正确。
选项 C:螺旋模型由于包含风险分析和多次迭代,开发成本较高,不是成本低,该选项错误。
选项 D:过多的迭代会增加开发时间和成本,导致提交延迟,正确。
【第 31 题】(题型:选择题)
题目:模块 A 通过非正常入口转入模块 B 内部,则这两个模块之间是 (31) 耦合。
A. 数据   B. 公共    C. 外部    D. 内容
【答案】D
【解析】
本题考察模块耦合的类型:
数据耦合:模块间通过参数传递数据,是最低耦合。
公共耦合:模块间通过公共数据环境(比如全局变量)交互。
外部耦合:模块间依赖外部环境(比如操作系统、硬件)。
内容耦合:一个模块直接访问另一个模块的内部数据,或通过非正常入口转入另一个模块内部,是最高耦合,符合题干描述。
【第 32 题】(题型:选择题)
题目:软件详细设计阶段的主要任务不包括 (32)。
A. 数据结构设计
B. 算法设计
C. 模块之间的接口设计
D. 数据库的物理设计
【答案】C
【解析】
本题考察软件详细设计的任务:
详细设计阶段的任务是设计每个模块的内部实现,包括:
模块内的数据结构设计(选项 A)
模块内的算法设计(选项 B)
数据库的物理设计(属于详细设计的一部分,选项 D)
而模块之间的接口设计属于概要设计阶段的任务,不是详细设计的内容,所以选项 C 正确。
【第 33 题】(题型:选择题)
题目:以下关于文档的叙述中,不正确的是 (33)。
A. 文档也是软件产品的一部分,没有文档的软件就不能称之为软件
B. 文档只对软件维护活动有用,对开发活动意义不大
C. 软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量
D. 高质量文档对于软件产品的效益有着重要的意义
【答案】B
【解析】
本题考察软件文档的作用:
软件文档是软件产品的重要组成部分,贯穿软件开发的整个过程,不仅对维护活动有用,在开发过程中也能帮助团队沟通、明确需求、规范设计,所以选项 B 错误。
选项 A、C、D 都符合软件文档的定义和作用,文档是软件的必备部分,编制工作量大,高质量文档能提升软件的可维护性和效益。
【第 34 题】(题型:选择题)
题目:用白盒测试技术对下面流程图进行测试,至少采用 (34) 个测试用力才可以实现路径覆盖。
软件设计师-2021年上半年综合知识真题解析【上篇】 第4张
A.3   B.4    C.6    D.8
【答案】A
【解析】
本题考察白盒测试的路径覆盖:
路径覆盖的要求是选取合适的用例,将图中所有可能的执行路径都走一遍。流程图中包含路径有:开始一Y一结束、开始一N一Y一结束、开始一N一N一结束。每条路径分别对应1个测试用例,至少需3个测试用例。
【第 35 题】(题型:选择题)
题目:软件可维护性是一个系统在特定的时间间隔内可以正常进行维护活动的概率。用 MTTF 和 MTTR 分别表示平均无故障时间和平均故障修复时间,则软件可维护性计算公式为 (35)。
A.MTTF/(1+MTTF)   B.1/(1+MTTF)   C.MTTR/(1+MTTR)  D.1/(1+MTTR)
【答案】D
【解
本题考察软件可维护性的计算公式:
软件可维护性是指维护的容易程度,通常用平均故障修复时间(MTTR)来衡量,MTTR 越短,可维护性越高。可维护性的计算公式为:可维护性 = 1/(1+MTTR),因为 MTTR 越小,分母越小,值越接近 1,可维护性越高。
MTTF 是平均无故障时间,衡量的是可靠性,不是可维护性,所以选项 A、B 错误;选项 C 的公式不符合可维护性的定义。
【第 36 题】(题型:选择题)
题目:某搜索引擎在交付后,开发人员修改了其中的索引方法,使得用户可以更快地得到搜索结果。这种修改属于 (36) 维护。
A. 正确性   B. 适应性   C. 完善性   D. 预防性
【答案】B
【解析】
本题考察软件维护的类型:
正确性维护:修复软件交付后发现的错误。
适应性维护:为了适应环境变化(比如操作系统升级、硬件更换)而进行的修改。
完善性维护:在软件正常使用过程中,为了提升性能、增加功能而进行的修改,题干中修改索引方法提升搜索速度属于完善性维护,符合选项 C。
预防性维护:为了防止未来可能出现的问题而进行的预防性修改。
【第 37 题】(题型:选择题)
题目:面向对象分析时,执行的活动顺序通常是 (37)。
A. 认定对象、组织对象、描述对象的相互作用、确定对象的操作
B. 认定对象、定义属性、组织对象、确定对象的操作
C. 认定对象、描述对象间的相互作用、确定对象的操作、识别包
D. 识别类及对象、识别关系、定义属性、确定对象的操作
【答案】A
【解析】
本题考察面向对象分析的活动顺序:
面向对象分析的基本步骤是:
认定对象:识别系统中的实体,作为候选对象。
组织对象:将对象分类,识别类和继承关系,组织成类层次。
描述对象的相互作用:识别对象之间的关联、依赖等关系,以及交互行为。
确定对象的操作:定义类的方法,描述对象的行为。
选项 A 符合这个顺序;选项 B 的定义属性应该在组织对象之后;选项 C 的识别包是后续的步骤;选项 D 的顺序不符合分析的逻辑。
【第 38 题】(题型:选择题)
题目:采用面向对象方法进行系统设计时,不应该强迫客户依赖于他们不用的方法,接口属于客户,不属于它所在的类的层次结构。即:依赖于抽象,不要依赖于具体,同时在抽象级别不应该有对于细节的依赖。这属于 (38)。
A. 单一责任
B. 开放一封闭
C. 接口分离
D. 里氏替换
【答案】C
【解析】
本题考察面向对象设计原则:
单一责任原则:一个类只负责一个功能模块。
开放 - 封闭原则:对扩展开放,对修改封闭。
接口分离原则:客户端不应该依赖它不需要的接口,即一个接口只提供客户端需要的方法,符合题干描述,选项 C 正确。
里氏替换原则:子类可以替换父类,而不影响系统的正确性。
【第 39-40 题】(题型:选择题)
题目:假设 Bird 和 Cat 是 Animal 的子类,Parrot 是 Bird 的子类,bird 是 Bird 的一个对象,cat 是 Cat 的一个对象,parrot 是 Parrot 的一个对象。以下叙述中不正确的是_ (39)。假设 Animal 类中定义接口 move (),Bird、Cat 和 Parrot 分别实现自己的 move (), 调用 move () 时,不同对象收到同一消息可以产生各自不同的结果,这一现象称为 (40)。
(39) A. cat 和 bird 可看作是 Animal 的对象
B.parrot 和 bird 可看作是 Animal 的对象
C.bird 可看作是 Parrot 的对象
D.parrot 可以看作是 Bird 的对象
(40) A. 封装   B. 继承  C. 消息传递   D. 多态
【答案】(39) C;(40) D
【解
第 (39) 题解析
面向对象的继承关系中,子类对象可以看作是父类对象,但父类对象不能看作是子类对象:
选项 A:cat 是 Cat 的实例,Cat 继承 Animal;bird 是 Bird 的实例,Bird 继承 Animal,所以都可以看作 Animal 的对象,正确。
选项 B:parrot 是 Parrot 的实例,Parrot 继承 Bird,Bird 继承 Animal,所以 parrot 可以看作 Animal 的对象;bird 也可以看作 Animal 的对象,正确。
选项 C:bird 是 Bird 的实例,Parrot 是 Bird 的子类,父类对象不能看作子类对象,所以 bird 不能看作 Parrot 的对象,该选项错误。
选项 D:parrot 是 Parrot 的实例,Parrot 继承 Bird,所以 parrot 可以看作 Bird 的对象,正确。
第 (40) 题解析
多态是指同一消息发送给不同的对象,会产生不同的行为,题干中不同对象调用 move () 方法产生不同结果,属于多态现象,选项 D 正确。
封装:将数据和方法封装在类内部,隐藏实现细节。
继承:子类复用父类的属性和方法。
消息传递:对象之间通过发送消息进行交互。
【第 41-43 题】(题型:选择题)
题目:当 UML 状态用于对系统、类或用例的动态方面建模时,通常是对 (41) 建模。以下 UML 状态图中,假设活动的状态是 A,事件 b=0 发生并且 a>5,发生条件是 C 状态到 D 状态的转换条件的是 (42),D 变为活动的状态,有关状态图的叙述中,不正确的是 (43)。
软件设计师-2021年上半年综合知识真题解析【上篇】 第5张
(41) A. 系统的词汇  B. 反应型对象  C. 活动流程  D. 对象快照
(42) A. 一旦状态 A 的 exit 动作完成或如果当前执行 do 动作,则终止执行
B. 一旦状态 A 和 B 的所有动作完成
C. 一旦正在进行的状态 A 完成
D. 一旦状态 B 的 exit 动作完成
(43) A. 动作可以在状态内执行,也可以在状态转换时执行
B. 当处罚转换的事件发生并且转换没有指定的监护条件时,对象将离开当前状态,并且其 do 动作终止
C.when (b=5) 称为时间事件
D. 状态由事件触发
【答案】(41) A;(42) B;(43) B
【解析】
类可以分为三种类型,分别是实体类、边界类和控制类。实体类描述系统中的每个实体,如学生、用户、商品等,它们通常需要永久存储,一般使用数据库表或文件来记录,实体类既包括存储和传递数据的类,还包括操作数据的类。控制类用于实现应用程序的执行逻辑,将控制类抽象出来可以降低界面和数据库之间的耦合,身份验证屈于控制类。边界类用于描述外部参与者与系统之间的交互,位于系统与外界的交接处,包括所有窗体、报表、打印机和扫描仪等硬件的接口,以及与其他系统的接口。

参与者处于系统外部,可以是与系统交互的所有事物,参与者的角色不仅可以由人承担,还可以是其他系统或硬件设备,甚至是系统时钟。

【第 44-47 题】(题型:选择题)
题目:股票交易中,股票代理 (Broker) 根据客户发出的股票操作指示进行股票的买卖,设计如下所示类图。该设计模式采用 (44) 模式将一个请求封装为一个对象,从而使得以不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作,其中,(45) 声明执行操作的接口。该模式属于 (46) 模式,该模式适用于:(47)。
软件设计师-2021年上半年综合知识真题解析【上篇】 第6张
(44) A. 命令 (Command)  B. 观察者 (Observer)  C. 状态 ( State)  D. 中介者 (Mediator)
(45) A.Operation  B.SellOperation/BuyOperation/ViewOperation  C.Broker  D.Stock
(46) A. 结构类型  B. 结构型对象  C. 创建类型  D. 行为型对象
(47) A. 一个对象必须通知其他对象,而它又不能假定其他对象是谁
B. 抽象出执行的动作以参数化某对象
C. 一个对象的行为决定于其状态且必须在运行时刻根据状态改变行为
D. 一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象
【答案】(44) A;(45) A;(46) D;(47) B
【解
第 (44) 题解析
命令模式的核心是将请求封装为对象,使得可以用不同的请求对客户端进行参数化,支持请求排队、日志记录和撤销操作,符合题干描述,选项 A 正确。
观察者模式:对象之间的一对多依赖,当一个对象状态改变时通知其他对象。
状态模式:对象的行为根据状态改变而改变。
中介者模式:通过中介对象减少对象之间的直接交互。
第 (45) 题解析
在命令模式中,抽象命令角色(Operation)声明执行操作的接口(execute () 方法),具体命令角色(BuyOperation 等)实现该接口,选项 A 正确。
第 (46) 题解析
命令模式属于行为型设计模式,关注对象之间的交互和行为分配,选项 D 正确。
结构型模式:关注对象的组合结构。
创建型模式:关注对象的创建方式。
第 (47) 题解析
命令模式的适用场景包括:抽象出执行的动作以参数化对象,支持请求的排队、撤销、日志记录等,选项 B 正确。
选项 A 是观察者模式的适用场景。
选项 C 是状态模式的适用场景。
选项 D 是中介者模式的适用场景。
【第 48 题】(题型:选择题)
题目:设有描述简单算术表达式的上下文无关文法如下,其中 id 表示单字母。
E→ E+T|T
T→ FT|F
F→ id
与使用该文法描述的表达式 a+bc*d 相符的语法树为 (48)。
【答案】A
【解析】

本题考查编译原理中上下文无关文法相关知识。对于表达式a+b*c*d,我们凭什么说先乘除后加减呢?就凭这个表达式是“使用该文法描述的表达式”,也就是说,运算的优先规则,包含在了该上下文无关文法描述之中。

首先,对于EE+TT,根据上下文无关语法定义,可得到两个信息,一是E为非终结符,二是E有两个生成式,分别是E+T和T,E+T我们可以看成是个加法算式,而从第二行,又可知E的另一个生成式T本身也是一个非终结符,它有两个生成式,一个是F*T,说明T可以是一个乘法算式,而这个乘法算式中包含T本身,说明这个乘法是可以嵌套的。

综上,根据非终结符与生成式之间的逻辑关系,我们可判定a+b*c*d这个表达式的优先规则为a(b*(c*d)),因此,只有A选项的语法树与之符合。

【第 49 题】(题型:选择题)
题目:下图所示有限自动机 (DFA) 是 (49)。
软件设计师-2021年上半年综合知识真题解析【上篇】 第7张

A.确定的有限自动机,它能识别以bab结尾的

B.确定的有限自动机,他不能识别以bab结尾的

C.非确定的有限自动机,他能识别以bab结尾的

D.非确定的有限自动机,他不能识别以bab结尾的

【答案】D
【解析】

确定的有限自动机DFA是指该状态机在任何一个状态,基于输入的字符都能完成一个确定的状态转换。不确定的有限自动机NFA是指该状态机在任何一个状态,基于输入的字符都不能完成一个确定的状态转换,这里分为两种状况:1对于一个输入,它有两个或更多状态可以转换:2存在e的情况,即没有任何字符输入的情况下,NFA可以从一个状态迁移到另一个状态。

对于该图中的第一个状态,输入为a时,即可能转移至下一个状态,也可能转移至原状态本身,即一个输入对应两个输出,所以该FA(Finite Automaton,有限自动机)为 NFA(Nondeterministic FiniteAutomaton,非确定有限自动机)。对于该NFA,最后一个状态的可能是a,也可能是b;倒数第二个状态,输入可能是a,也可能是b:但对于倒数第三个状态,输入只能是a,因此,该DFA无法识别bab结尾的路径。

【第 50 题】(题型:选择题)
题目:函数 foo ()、hoo () 定义如下,调用函数 hoo (a,x) 的两个参数分别采用引用调用 (call by reference) 和值调用 (call by value) 方式传递,则函数调用 foo (5) 的输出结果为 (50)。
软件设计师-2021年上半年综合知识真题解析【上篇】 第8张
A.2,5     B.2,15    C.13,5   D.13,15
【答案】D
【解析】
实现函数调用时,形参具有独立的存储空间。在传值方式下,是将实参的值拷贝给形参,在传引用(址)方式下,是将实参的地址传递给形参,也可简单理解为被调用函数中形参名实际成为了实参的一个别名,因此,对形参的修改实质上就是对实参的修改。
本题中,函数调用f(1,x)执行时,形参x的初始值为1,a的值为2(形参a的指针指向main函数中的变量x),经过运算“x=2*a+1”,修改了函数f的形参x的值(x的值变为5),再经过运算“a-x+3”后,a的值为8,a实质上是main函数中x的别名,因此返回main函数之后,x的值为8。
【第 51 题】(题型:选择题)
题目:如下 E-R 图中,两个实体 R1、R2 之间有一个联系 E,当 E 的类型为 (51) 时必须将 E 转换成一个独立的关系模式?
软件设计师-2021年上半年综合知识真题解析【上篇】 第9张
A.1:1    B. 1:*    C.*:1     D.*:*
【答案】D
【解析】
本题考察 E-R 图转换为关系模式的规则:
1:1 联系:可以合并到 R1 或 R2 的关系模式中,不需要独立的关系模式。
1:* 联系:可以合并到多的一方(R2)的关系模式中,不需要独立的关系模式。
*:1 联系:可以合并到多的一方(R1)的关系模式中,不需要独立的关系模式。
*:* 联系:必须转换为一个独立的关系模式,包含 R1 和 R2 的主键以及联系的属性,选项 D 正确。
【第 52-53 题】(题型:选择题)
题目:给定关系 R (U,F), 其中
U={A,B,C,D,E,H},F={A→ B,B→ DH,A→ H,C→ E},
关系有_(52),F 中 (53)。
(52) A. 一个候选码 A
B. 两个候选码 A、B
C. 一个候选码 AC
D. 两个候选码 A 、C
(53) A. 不存在传递依赖,但存在冗余函数依赖
B. 既不存在传递依赖,也不存在冗余函数依赖
C. 存在传递依赖 A→D 和 A→H, 但不存在冗余函数依赖
D. 存在传递依赖 A→D 和 A→H, 并且还存在冗余函数依赖
【答案】(52) C;(53) D
【解
第 (52) 题解析
候选码是能够唯一确定关系中所有属性的属性集:
计算属性的闭包:A 的闭包是 {A,B,D,H},不能确定 C、E;C 的闭包是 {C,E},不能确定其他属性;AC 的闭包是 {A,B,C,D,E,H},包含所有属性,所以 AC 是候选码,选项 C 正确。
第 (53) 题解析
传递依赖:A→B,B→D,所以 A→D 是传递依赖;A→B,B→H,所以 A→H 是传递依赖;同时 A→H 是直接函数依赖,而 B→H 也是函数依赖,A→H 是冗余的,因为可以通过 A→B→H 推导出来,所以存在冗余函数依赖,选项 D 正确。
【第 54-56 题】(题型:选择题)
题目:某销售公司员工关系 E (工号、姓名、部门名、电话、住址), 商品关系 C (商品号、商品名、库存数) 和销售关系 EC (工号、商品号、销售数、销售日期)。查询 “销售部 1” 在 2020 年 11 月 11 日销售 “HUWEI Mate40” 商品的员工工号、姓名、部门名及其销售的商品名,销售数的关系代数表达式为 π1,2,3,7,8 (54)⋈(55)⋈(56)))
(54) A.σ3=' 销售部 1'(E)   B.σ3=' 销售部 1'(C)
C.σ3=' 销售部 1'(E)   D.σ3=' 销售部 1'(C)
(55) A.π2,3 (σ2='HUAWEI Mate40'(C))
B.π1,2 (σ2='HUAWEI Mate40'(C))
C.π2,3 (σ2='HUAWEI Mate40'(EC))
D.π1,2 (σ2='HUAWEI Mate40'(EC))
(56) A.σ4='2020 年 11 月 11 日 '(C)
B.σ3='2020 年 11 月 11 日 '(C)
C.σ4='2020 年 11 月 11 日 '(EC)
D.σ3='2020 年 11 月 11 日 '(EC)
【答案】(54) C;(55) B;(56) C
【解
第 (54) 题解析

σ(读作“西格马")为关系代数中的选择操作符,σs=销售部1(E)的含义是,选择员工表E中第3列(部门名)的值为’销售部1的行(行也称元组或记录),注意值为字符串型,需加单引号。

第 (55) 题解析
需要筛选出商品名为 “HUWEI Mate40” 的商品,商品关系 C 的第 2 列是商品名,筛选后需要商品号和商品名(第 1、2 列),所以选择 π1,2 (σ2='HUAWEI Mate40'(C)),选项 B 正确。
第 (56) 题解析
需要筛选出销售日期为 2020 年 11 月 11 日的销售记录,销售关系 EC 的第 4 列是销售日期,所以选择 σ4='2020 年 11 月 11 日 '(EC),选项 C 正确。
最终的关系代数表达式是将这三个关系进行自然连接,然后投影需要的列。
【第 57 题】(题型:选择题)
题目:设有栈 S 和队列 Q 初始状态为空,数据元素序列 a,b,c,d,e,f 依次通过栈 S,且多个元素从 S 出栈后立即进入队列 Q,若出队的序列是 b,d,f,e,c,a,则 S 中的元素最多时,栈底到栈顶的元素依次为(57)
A. a,b,c   B. a,c,d   C. a,c,e,f   D. a,d,f,e
【答案】C
【解析】
本题需要模拟栈的入栈和出栈过程,结合队列先进先出的特性推导栈的状态变化:
初始状态:栈 S 为空,队列 Q 为空。
元素 a 入栈,栈 S:[a];
元素 b 入栈,栈 S:[a,b];此时 b 出栈进入队列 Q,队列 Q:[b],栈 S:[a];
元素 c 入栈,栈 S:[a,c];
元素 d 入栈,栈 S:[a,c,d];此时 d 出栈进入队列 Q,队列 Q:[b,d],栈 S:[a,c];
元素 e 入栈,栈 S:[a,c,e];
元素 f 入栈,栈 S:[a,c,e,f];此时 f 出栈进入队列 Q,队列 Q:[b,d,f],栈 S:[a,c,e];
元素 e 出栈进入队列 Q,队列 Q:[b,d,f,e],栈 S:[a,c];
元素 c 出栈进入队列 Q,队列 Q:[b,d,f,e,c],栈 S:[a];
元素 a 出栈进入队列 Q,队列 Q:[b,d,f,e,c,a],栈 S 为空。
从过程中可以看到,栈中元素最多的时刻是 f 入栈后,此时栈底到栈顶的元素依次为 a,c,e,f。
【第 58 题】(题型:选择题)
题目:当二叉树的结点数目确定时,(58)的高度一定是最小的。
A. 二叉排序树    B. 完全二叉树   C. 线索二叉树   D. 最优二叉树
【答案】B
【解析】
本题考察不同类型二叉树的结构特性:
选项 A:二叉排序树的高度取决于插入顺序,最坏情况下会退化为单链表,高度为 n-1(n 为节点数),不是最小;
选项 B:完全二叉树的定义是除最后一层外,每一层的节点数都达到最大值,最后一层的节点都集中在左侧。当节点数确定时,完全二叉树的高度为⌊log₂n⌋+1,是所有二叉树中高度最小的;
选项 C:线索二叉树是对二叉树的存储结构优化,仅增加了线索指针,不改变树的高度;
选项 D:最优二叉树(哈夫曼树)的高度取决于节点的权值分布,不一定是高度最小的结构。
【第 59 题】(题型:选择题)
题目:(59)是对稀疏矩阵进行压缩存储的方式。
A. 二维数组和双向链表   B. 三元组顺序表和十字链表
C. 邻接矩阵和十字链表   D. 索引顺序表和双向链表
【答案】B
【解析】
稀疏矩阵的特点是大部分元素为 0,压缩存储的核心是只存储非零元素:
选项 A:二维数组是稀疏矩阵的常规存储方式,未实现压缩;
选项 B:三元组顺序表通过存储非零元素的行号、列号和值来实现压缩;十字链表则是在三元组基础上,增加行指针和列指针,便于矩阵的遍历和修改,两者都是稀疏矩阵的典型压缩存储方式;
选项 C:邻接矩阵是图的存储结构,不是稀疏矩阵的压缩方式;
选项 D:索引顺序表和双向链表主要用于线性表的存储,与稀疏矩阵压缩无关。
【第 60 题】(题型:选择题)
题目:设用线性探查法解决冲突构造哈希表,且哈希函数为 H (key)=key% m,若在该哈希表中查找某关键字 e 是成功的且与多个关键字进行了比较,则(60)。
A. 这些关键字形成一个有序序列
B. 这些关键字都不是 e 的同义词
C. 这些关键字都是 e 的同义词
D. 这些关键字的第一个可以不是 e 的同义词
【答案】D
【解析】
线性探查法的冲突解决机制是:当发生冲突时,依次探查下一个存储位置,直到找到空位置或查找到目标关键字。
同义词指的是哈希函数计算结果相同的关键字,即 H (key)=H (e)。
查找关键字 e 时,若发生多次比较,说明 e 的初始哈希位置被其他关键字占据,这些关键字可能是同义词(哈希值相同),也可能是非同义词(哈希值不同但后续探查时占用了位置)。例如:哈希表大小 m=5,H (3)=3,H (8)=3(同义词),H (9)=4,若先插入 9,再插入 8,最后插入 3,查找 3 时会先比较 9(非同义词),再比较 8(同义词),最后找到 3。因此这些关键字的第一个可以不是 e 的同义词。
【第 61 题】(题型:选择题)
题目:对于一个初始无序的关键字序列,在下面的排序方法中,(61) 第一趟排序结束后,一定能将序列中的某个元素在最终有序序列中的位置确定下来。
①直接插入排序②冒泡排序③简单选择排序④堆排序⑤快速排序⑥归并排序
A. ①②③⑥   B. ①②③⑤⑥
C. ②③④⑤   D. ③④⑤⑥
【答案】C
【解析】
逐一分析各排序方法第一趟的特性:
直接插入排序:第一趟仅将第二个元素插入到前面的有序子序列,无法确定任何元素的最终位置;
冒泡排序:第一趟会将最大(或最小)的元素交换到序列末尾,该元素的最终位置确定;
简单选择排序:第一趟会找到最小(或最大)的元素,与第一个位置交换,该元素的最终位置确定;
堆排序:第一趟构建大顶堆(或小顶堆)后,将堆顶元素与最后一个元素交换,堆顶元素的最终位置确定;
快速排序:第一趟根据基准元素划分序列,基准元素的最终位置确定;
归并排序:第一趟仅将相邻的两个元素合并为有序子序列,无法确定任何元素的最终位置。
因此满足条件的是②③④⑤,对应选项 C。
【第 62 题】(题型:选择题)
题目:对数组 A=(2,8,7,1,3,5,6,4) 构建大顶堆为(62)。(用数组表示)
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
【解析】
大顶堆的定义是:每个节点的值都大于或等于其左右子节点的值,数组存储时,父节点索引 i 的左子节点为 2i+1,右子节点为 2i+2。构建大顶堆的步骤为:
从最后一个非叶子节点(索引为⌊n/2⌋-1=3,对应元素 1)开始调整:
节点 1 的子节点为 3(索引 7)和无右子节点,1<4,交换 1 和 4,数组变为 (2,8,7,4,3,5,6,1);
调整索引 2 的节点 7:子节点为 5(索引 5)和 6(索引 6),7≥5 且 7≥6,无需调整;
调整索引 1 的节点 8:子节点为 4(索引 3)和 3(索引 4),8≥4 且 8≥3,无需调整;
调整索引 0 的节点 2:子节点为 8(索引 1)和 7(索引 2),2<8,交换 2 和 8,数组变为 (8,2,7,4,3,5,6,1);
调整交换后的节点 2(索引 1):子节点为 4(索引 3)和 3(索引 4),2<4,交换 2 和 4,数组变为 (8,4,7,2,3,5,6,1);
节点 2(索引 3)无大于它的子节点,调整完成。
最终得到的大顶堆为 (8,4,7,2,3,5,6,1),对应选项 C。
【第 63 题】(题型:选择题)
题目:最大尺寸和问题描述为,在 n 个整数 (包含负数) 的数组 A 中,求之和最大的非空连续子数组,如数组 A=(-2,11,-4,13,-5,-2),其中子数组 B=(11,-4,13) 具有最大子段和 20 (11-4+13=20)。求解该问题,可以将数组分为两个 n/2 个整数的子数组最大子段或或者在前半段,或者在后半段,或者跨越中间元素,通过该方法继续划分问题,直至最后求出最大子段和,该算法的时间复杂度为 (63)。
A. O (nlgn)   B. O (n²)   C. O (n²lgn)   D. O (n³)
【答案】A
【解析】
题目描述的是分治法求解最大子段和的思路:
将数组划分为前后两个子数组,分别求解两个子数组的最大子段和;
求解跨越中间元素的最大子段和(即包含中间元素的连续子数组的最大和);
比较三个结果,取最大值作为整个数组的最大子段和。
分治法的时间复杂度满足递推公式:T (n)=2T (n/2)+O (n),根据主定理,该递推式的解为 T (n)=O (nlgn)。
【第 64-65 题】(题型:选择题)
题目:在求解某问题时,经过分析发现该问题具有最优子结构和重叠子问题性质。则适合 (64) 算法设计策略得到最优解。若了解问题的解空间,并以广度优先的方式搜索解空间,则采用的是 (65) 算法策略。
(64) A. 分治 B. 贪心 C. 动态规划 D. 回溯
(65) A. 动态规划 B. 贪心 C. 回溯 D. 分支限界
【答案】(64) C;(65) D
【解析】
(64) 题:
分治法的核心是将问题划分为独立的子问题,不强调重叠子问题;
贪心算法仅需最优子结构,不需要重叠子问题;
动态规划的核心就是利用问题的最优子结构和重叠子问题性质,通过记录子问题的解避免重复计算,从而得到最优解;
回溯法是试探性搜索解空间,不依赖这两个性质。
(65) 题:
动态规划是通过状态转移求解,不是广度优先搜索解空间;
贪心算法是局部最优选择,不搜索解空间;
回溯法是深度优先搜索解空间;
分支限界法是广度优先搜索解空间,通过剪枝策略减少搜索范围。
【第 66 题】(题型:选择题)
题目:IPv6 地址长度为 (66) bit。
A.16 B.32 C.64 D.128
【答案】D
【解析】
IPv4 地址长度为 32bit,而 IPv6 为了解决 IPv4 地址枯竭的问题,将地址长度扩展到 128bit,提供了极大的地址空间。
【第 67 题】(题型:选择题)
题目:在地址栏输入www.abc.com,浏览器默认的应用层协议是 (67)。
A.HTTP B.DNS C.TCP D.FTP
【答案】A
【解析】
浏览器在地址栏输入域名后,首先会通过 DNS 协议解析域名对应的 IP 地址,但 DNS 是辅助协议;
TCP 是传输层协议,不是应用层;
FTP 是文件传输协议,不是浏览器默认的网页访问协议;
HTTP(超文本传输协议)是浏览器访问网页默认的应用层协议,默认使用 80 端口。
【第 68 题】(题型:选择题)
题目:使用电子邮件客户端向服务器发送邮件的协议是 (68)。
A.SMTP B.POP3 C.IMAP4 D.MIME
【答案】A
【解析】
SMTP(简单邮件传输协议)用于电子邮件客户端向邮件服务器发送邮件,以及邮件服务器之间的邮件传输;
POP3 和 IMAP4 是用于电子邮件客户端从邮件服务器接收邮件的协议;
MIME 是多用途互联网邮件扩展,用于定义邮件的内容格式,不是传输协议。
【第 69 题】(题型:选择题)
题目:以下 Windows 系统中用于清除本地 DNS 缓存的命令是 (69)。
A.ipconfig/release B.ipconfig/flushdns
C.ipconfig/displaydns D.ipconfig/registerdns
【答案】B
【解析】
各 ipconfig 参数的功能:
ipconfig/release:释放当前获取的 IP 地址;
ipconfig/flushdns:清除本地 DNS 缓存;
ipconfig/displaydns:显示本地 DNS 缓存的内容;
ipconfig/registerdns:刷新 DNS 客户端注册信息。
【第 70 题】(题型:选择题)
题目:在网络系统设计时,不可能使所有设计目标都能达到最优,下列措施中最为合理的是 (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 right granularity,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 at least 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, modifying 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've used before.It takes a long time for novices to learn what good object-oriented design is all about.Experienced designers evidently know something inexperienced ones don't.What is it?
One thing expert designers 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 again 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.
(71) A.runnable B.right C.reusable D.pertinent
(72) A.clear B.general C.personalized D.customized
(73) A.excited B.shocken C.surprised D.overwhelmed
(74) A.tool B.component C.system D.solution
(75) A.recurring B.right C.experienced D.past
【答案】(71) C;(72) B;(73) D;(74) D;(75) A
【解析】
(71):根据后文提到的 "reusable and flexible design",此处应填 reusable,意为设计可复用的面向对象软件更难。
(72):设计需要针对当前问题,同时也要足够通用(general)以应对未来的需求,与 "specific" 形成对比。
(73):新设计师会被众多可选方案压垮(overwhelmed),从而退回到之前使用的非面向对象技术。
(74):专家设计师会重复使用之前有效的解决方案(solution)。
(75):因此在很多面向对象系统中会发现重复出现的(recurring)类和对象交互模式,即设计模式。

抱歉,评论功能暂时关闭!