当前位置: 首页 > news >正文

软件设计师-软考知识复习(1)

写在前面

复习软考,把一些忘记了的知识整理一下,方便后续查看。


设码长为8,补码为11111111,其真值是多少( )

A.1 B.-1 C.127 D.128
参考答案:B

解题步骤

1. 理解补码表示法

在计算机中,补码(Two’s Complement) 用于表示有符号整数。其规则如下:

  • 最高位(最左边的一位)是符号位
    • 0 表示正数
    • 1 表示负数
  • 正数的补码:等于其二进制原码(直接转换)。
  • 负数的补码:符号位为 1,数值部分取反加 1(即“补码”)。
2. 分析给定的补码

给定的补码是 11111111(8位):

  • 符号位1(表示负数)
  • 数值部分1111111(后7位)
3. 补码 → 真值的转换

由于补码是 11111111(负数),我们需要求其原码,再计算真值。
补码转原码的方法(负数):

  1. 补码 → 反码:补码 -1
  2. 反码 → 原码:符号位不变,其余位取反

计算过程

  1. 补码1 1111111
  2. 补码 -1(得到反码):1 1111110
  3. 反码取反(得到原码):1 0000001

原码1 0000001

  • 符号位1(负数)
  • 数值部分0000001(即 1

真值-1

4. 验证

我们也可以通过补码的定义验证:

  • 补码 = 2^n - |x|(n 是位数,x 是真值)
  • 8位补码的范围:-128127
  • 11111111(补码)对应的真值计算:
    • 补码的十进制值:1×2^7 + 1×2^6 + ... + 1×2^0 = 255
    • 真值 = 255 - 2^8 = 255 - 256 = -1

结果一致,真值为 -1


为实现海明码纠错,对于16位信息位,至少需要附加多少个校验位( )

A.4 B.5 C.6 D.7
参考答案:B

海明码(Hamming Code)校验位计算

海明码是一种纠错编码,它通过添加校验位(Parity Bits)来检测和纠正数据传输中的错误。对于给定的信息位长度,我们需要计算最少需要多少校验位才能实现单比特纠错(SEC, Single Error Correction)

海明码校验位计算公式

海明码要求:

  1. 校验位的位置:必须是 2 的幂次方(即 ( 2^0, 2^1, 2^2, …))。

  2. 纠错能力:每个校验位覆盖特定的数据位,使得任何单比特错误都能被唯一识别

  3. 校验位数量 ( r ) 必须满足:

    2^r >= m + r + 1

    • ( m ) = 信息位长度(本题 ( m = 16 ))
    • ( r ) = 校验位数量

计算步骤

我们需要找到最小的 ( r ) 使得:

2^r >= 16 + r + 1

即:

2^r >= r + 17

尝试不同的 ( r ):

  1. ( r = 4 )

    2^4 = 16 >= 4 + 17 = 21 \quad \text{❌(16 < 21,不满足)}

  2. ( r = 5 )

    2^5 = 32 >= 5 + 17 = 22 \quad \text{✅(32 ≥ 22,满足)}

  3. ( r = 6 )

    2^6 = 64 >= 6 + 17 = 23 \quad \text{✅(64 ≥ 23,但 ( r = 5 ) 已经满足)}

最小的 ( r ) 是 5,因为:

  • ( r = 4 ) 不满足 ( 16 \geq 21 ),
  • ( r = 5 ) 满足 ( 32 \geq 22 )。

验证

  • 海明码总位数 = 信息位 + 校验位 = ( 16 + 5 = 21 )。
  • 纠错能力
    • 5 个校验位可以表示 ( 2^5 = 32 ) 种状态。
    • 其中 21 位用于数据 + 校验,剩余 11 种状态用于错误检测(足够覆盖所有单比特错误)。

构造一个5层的二叉平衡树,至少需要多少个结点( )

A.11 B.12 C.15 D.16
参考答案:B

关键概念

  1. 平衡二叉树(AVL 树)

    • 任意结点的左右子树高度差不超过 1(即平衡因子 ( \in {-1, 0, 1} ))。
    • 最小结点数的平衡二叉树类似于 斐波那契树(Fibonacci Tree)
  2. 高度 ( h ) 的平衡二叉树的最小结点数 ( N(h) )

    • 递推关系:

      N(h) = N(h-1) + N(h-2) + 1

    • 初始条件:

      N(0) = 0, \quad N(1) = 1

计算最小结点数

我们需要计算 高度 ( h = 5 ) 的平衡二叉树的最小结点数 ( N(5) )

递推计算:
N(0) &= 0
N(1) &= 1
N(2) &= N(1) + N(0) + 1 = 1 + 0 + 1 = 2
N(3) &= N(2) + N(1) + 1 = 2 + 1 + 1 = 4
N(4) &= N(3) + N(2) + 1 = 4 + 2 + 1 = 7
N(5) &= N(4) + N(3) + 1 = 7 + 4 + 1 = 12

验证

  • 高度 ( h = 5 ) 的最小平衡二叉树结构:
    • 左子树:高度 4,结点数 7
    • 右子树:高度 3,结点数 4
    • 根结点:1
    • 总结点数:( 7 + 4 + 1 = 12 )

数据库的恢复操作,主要依靠什么特性( )

A.约束 B.存储 C. 存取控制 D.冗余
参考答案:D

数据库恢复操作的关键特性

数据库的恢复(Recovery)是指当数据库发生故障(如系统崩溃、事务失败、磁盘损坏等)后,能够将数据库恢复到一致状态的过程。恢复操作的核心依赖于以下特性:

1. 冗余(Redundancy)
  • 日志(Logging):数据库系统会记录所有事务的修改操作(如 UNDOREDO 日志),这些日志存储在冗余的存储介质上(如磁盘)。
  • 检查点(Checkpoint):定期保存数据库的一致性快照,减少恢复时需要处理的数据量。
  • 数据备份(Backup):定期备份数据库,以便在严重故障时恢复。

冗余是恢复的基础,因为:

  • 日志和备份提供了历史操作记录,使得可以回滚未提交的事务或重做已提交的事务。
  • 如果没有冗余(如日志或备份),数据库在故障后无法恢复。
2. 其他选项分析
  • A. 约束(Constraints)
    • 用于保证数据的完整性(如主键、外键、唯一性约束),但不直接用于恢复
  • B. 存储(Storage)
    • 存储是数据库的基础,但恢复的关键是如何利用存储的冗余信息(如日志),而非存储本身。
  • C. 存取控制(Access Control)
    • 用于管理用户权限,与恢复无关。

在TCP/IP协议体系结构中,根据IP地址得到MAC地址使用的协议是( )

A.DNS B.ARP C. RARP D.TCP
参考答案:B

关键概念

  1. IP地址 vs MAC地址

    • IP地址:逻辑地址,用于网络层(如IPv4、IPv6),标识主机在网络中的位置。
    • MAC地址:物理地址,用于数据链路层(如以太网),标识网卡的唯一硬件地址。
  2. 地址解析的需求

    • 在局域网(LAN)中,数据包最终要通过MAC地址传输,但上层协议(如TCP/IP)使用的是IP地址
    • 因此,需要一种机制将IP地址映射到MAC地址

相关协议分析

协议全称作用是否匹配题目要求
DNSDomain Name System域名解析为IP地址(如 www.example.com192.0.2.1❌(不涉及MAC地址)
ARPAddress Resolution Protocol根据IP地址查询MAC地址(如 192.0.2.100:1A:2B:3C:4D:5E✅(题目要求的协议)
RARPReverse ARP根据MAC地址查询IP地址(反向ARP,现已很少使用)❌(与题目要求相反)
TCPTransmission Control Protocol提供可靠的端到端数据传输(如HTTP、FTP依赖TCP)❌(不涉及地址解析)

为什么是ARP?

  • ARP(Address Resolution Protocol)是专门用于在局域网(LAN)中根据IP地址查找MAC地址的协议。
  • 工作流程:
    1. 主机A想发送数据给主机B(已知B的IP地址,但不知道MAC地址)。
    2. 主机A发送ARP请求广播(“谁的IP是 192.0.2.1?请告诉我你的MAC地址”)。
    3. 主机B收到后,回复ARP响应(“我是 192.0.2.1,我的MAC是 00:1A:2B:3C:4D:5E”)。
    4. 主机A将 192.0.2.100:1A:2B:3C:4D:5E 的映射存入ARP缓存表,后续通信直接使用。

排除其他选项

  • DNS:解析域名→IP,不涉及MAC地址。
  • RARP:功能与ARP相反(MAC→IP),且已被DHCP取代。
  • TCP:传输层协议,与地址解析无关。

中缀(1+(2-3*4))/5转后缀,存储运算符的栈最多有几个元素?

A.3 B.4 C. 5 D.6
参考答案:C

中缀转后缀的规则

  1. 操作数:直接输出到后缀表达式。
  2. 运算符
    • 若栈为空或栈顶为 (,直接入栈。
    • 否则,比较当前运算符与栈顶运算符的优先级
      • 若当前运算符优先级栈顶运算符,则弹出栈顶运算符到输出,直到不满足条件,再入栈。
      • 若当前运算符优先级**>**栈顶运算符,直接入栈。
  3. 括号
    • ( 直接入栈。
    • ) 弹出栈内运算符到输出,直到遇到 (( 不输出)。
  4. 结束:遍历完中缀表达式后,弹出栈中剩余运算符。

运算符优先级

  • *, /:优先级 2
  • +, -:优先级 1
  • (:优先级 0(栈内特殊处理)

逐步转换过程

中缀表达式:(1 + (2 - 3 * 4)) / 5
初始化:

  • 运算符栈[ ]
  • 后缀表达式[ ]
当前字符动作运算符栈后缀表达式栈深度
(入栈(1
1输出(11
+栈顶是 (,直接入栈( +12
(入栈( + (13
2输出( + (1 23
-栈顶是 (,直接入栈( + ( -1 24
3输出( + ( -1 2 34
** 优先级 > -,直接入栈( + ( - *1 2 35
4输出( + ( - *1 2 3 45
)弹出到 (,输出 *-( +1 2 3 4 * -2
)弹出到 (,输出 +1 2 3 4 * - +0
/栈空,直接入栈/1 2 3 4 * - +1
5输出/1 2 3 4 * - + 51
结束弹出栈中剩余运算符 /1 2 3 4 * - + 5 /0

关键点:栈的最大深度

  • 最深时栈内运算符( + ( - *
    • 栈内容:(, +, (, -, *
    • 深度为 5(从栈底到栈顶共 5 个运算符)。

与RICS相比,不属于CISC的特点的是( )

A.执行单条指令时钟周期多 B.指令长度固定 C. 寻址方式多 D.指令类型多
参考答案:B

题目回顾

题目问的是:“与RISC相比,不属于CISC的特点的是( )”
并给出了四个选项:
A. 执行单条指令时钟周期多
B. 指令长度固定
C. 寻址方式多
D. 指令类型多

关键概念

  1. RISC(精简指令集计算机)

    • 特点
      • 指令长度固定(通常为32位)。
      • 指令类型较少,格式简单。
      • 寻址方式简单(通常只有几种基本方式)。
      • 单条指令执行速度快(通常1个时钟周期完成)。
      • 依赖编译器优化性能(硬件设计简单,复杂功能由软件实现)。
    • 代表架构:ARM、MIPS、RISC-V。
  2. CISC(复杂指令集计算机)

    • 特点
      • 指令长度可变(例如x86的指令长度从1字节到15字节不等)。
      • 指令类型多,支持复杂操作(如单条指令实现字符串处理)。
      • 寻址方式多(支持多种内存访问模式)。
      • 单条指令可能需要多个时钟周期(尤其是复杂指令)。
      • 硬件复杂度高(指令解码和执行逻辑复杂)。
    • 代表架构:x86(Intel/AMD处理器)。

选项分析

题目问的是**“不属于CISC的特点”,即哪个选项是RISC的特点**而非CISC的特点。

选项是否符合CISC特点?解析
A. 执行单条指令时钟周期多✅ 是CISC特点CISC的复杂指令需要多个时钟周期(如x86的LOOP指令),而RISC通常单周期完成。
B. 指令长度固定不属于CISC特点RISC的指令长度固定(如ARM的32位指令),而CISC的指令长度可变(如x86)。
C. 寻址方式多✅ 是CISC特点CISC支持多种寻址方式(如x86的直接、间接、基址变址等),RISC通常只有几种。
D. 指令类型多✅ 是CISC特点CISC指令集庞大(如x86有上千条指令),RISC指令类型较少(如ARM约100条)。

正确答案

  • B. 指令长度固定是RISC的特点,不属于CISC的特点。
  • 其他选项(A、C、D)均为CISC的典型特征。

非连通无向图共有28个条边,最多几个节点( )

A.6 B.7 C. 8 D.9
参考答案:D

关键概念

  1. 非连通无向图:由两个或多个连通分量组成,且各分量之间没有边相连。
  2. 最大节点数的条件:为了让节点数尽可能多,需要让边数尽可能少(因为边越多,节点之间的连接越紧密,节点数可能减少)。
    • 在非连通图中,边数最多的情况是其中一个连通分量是完全图,其余节点孤立(即无边)。
    • 完全图的边数为 ( \frac{n(n-1)}{2} ),其中 ( n ) 是节点数。

解题步骤

  1. 设定非连通图的结构

    • 假设图由两部分组成:
      • 一个完全图 ( K_m )(( m ) 个节点,边数为 ( \frac{m(m-1)}{2} ))。
      • 其余 ( k ) 个孤立节点(无边)。
    • 总节点数 ( n = m + k ),总边数 ( E = \frac{m(m-1)}{2} = 28 )。
  2. 求解完全图的节点数 ( m )

    • 解方程 ( \frac{m(m-1)}{2} \leq 28 ):
      • ( m(m-1) \leq 56 )。
      • 尝试 ( m = 8 ):( 8 \times 7 = 56 \leq 56 )(满足)。
      • ( m = 9 ):( 9 \times 8 = 72 > 56 )(不满足)。
    • 因此,最大完全图是 ( K_8 ),边数为 28,节点数为 8。
  3. 计算总节点数

    • 完全图 ( K_8 ) 已占用 28 条边,其余节点必须孤立(无边)。
    • 题目问的是“最多几个节点”,因此可以增加孤立节点:
      • 若完全图 ( K_8 ) 占用 28 条边,剩余边数为 0,此时总节点数为 8。
      • 但题目问的是“最多”,因此可以额外增加孤立节点:
        • 比如 1 个孤立节点:总节点数 ( n = 8 + 1 = 9 ),边数仍为 28。
        • 但题目要求“非连通”,因此至少有两个连通分量(完全图 + 孤立节点是允许的)。
    • 因此,最大节点数为 9(( K_8 + 1 ) 个孤立节点)。
  4. 验证选项

    • 完全图 ( K_8 ) 占用 28 条边,节点数 8(对应选项 C)。
    • 但可以额外增加孤立节点,最多到 9(对应选项 D)。
    • 题目问“最多”,因此 D. 9 是正确的

相关文章:

  • 【嘉立创EDA】如何找到曲线和直线的交点,或找到弧线和直线的交点
  • jspm老年体检信息管理系统(源码+lw+部署文档+讲解),源码可白嫖!
  • JavaScript中 说说你对闭包的理解?闭包使用场景?
  • 算法每日一题 | 入门-顺序结构-A+B Problem
  • 【Python魔法方法(特殊方法)】
  • Spring知识点梳理
  • 贵族运动项目有哪些·棒球1号位
  • CSS:编写位置分类及优先级
  • 除法未能拿下 一直运行超时
  • javascript<——>进阶
  • linux修改环境变量
  • 【AI平台】n8n入门4:n8n云创建工作流(无须搭建,快速试用14天)
  • 基于arduino的温湿度传感器应用
  • 系统分析师-第十三、十四章
  • 软考高项(信息系统项目管理师)第 4 版全章节核心考点解析(第4版课程精华版)
  • java中线程安全的集合
  • Java中的内部类?
  • 龙虎榜——20250429
  • AXPA17388: 4x45W 车用AB类四通道桥式输出音频功率放大器
  • AimRT 从零到一:官方示例精讲 —— 一、工具链与基本概念
  • 美财长称关税战升级的责任在中方,外交部:关税战、贸易战没有赢家
  • “90后”樊鑫履新乌兰察布市察右中旗副旗长人选
  • 央行副行长:我们在研究丰富政策工具箱,将适时推出增量政策
  • 洛阳原副市长收礼品消费卡,河南通报6起违反八项规定典型问题
  • 关键词看中国经济“一季报”:稳,开局良好看信心
  • 持续更新丨伊朗内政部长:港口爆炸已致8人死亡750人受伤