2020年上半年中级软件设计师上午试题的知识点(附试卷及答案)

以下是2020年上半年中级软件设计师上午试题的知识点分类整理,详细解释涉及的定义和知识点,供背诵记忆。


1. 计算机组成原理

  1. CPU执行算术运算或逻辑运算时,常将源操作数和结果暂存在()中。

    • 累加器(AC): 用于暂存算术逻辑单元(ALU)的运算结果。
    • 程序计数器(PC): 存放下一条要执行的指令地址。
    • 指令寄存器(IR): 存放当前正在执行的指令。
    • 地址寄存器(AR): 保存当前CPU访问的内存地址。
  2. 判断字长为16位的整数a的低四位是否全为0。

    • 逻辑与运算(AND): 通过与0x000F进行“逻辑与”运算,判断低四位是否为0。
  3. 输入/输出控制方式。

    • DMA(直接存储器访问): CPU不直接参与数据传输,由DMA控制器完成数据传输。

2. 计算机系统可靠性

  1. 冗余系统的可靠性计算。

    • 串行系统可靠性: ( R = R1 \times R2 \times … \times Rn )
    • 并联系统可靠性: ( R = 1 - (1 - R1) \times (1 - R2) \times … \times (1 - Rn) )
  2. 海明码纠错。

    • 校验位计算: 满足 ( 2^k - 1 \geq m + k ),其中m为信息位,k为校验位。

3. 缓存与存储

  1. Cache(高速缓冲存储器)的特点。
    • Cache是主存的副本,主要用于加速数据访问,但不会扩大主存容量。
    • Cache命中率不随容量线性增长。

4. 网络与安全

  1. HTTPS协议。

    • SSL/TLS: HTTPS使用SSL/TLS协议对报文进行加密和封装。
  2. 加密算法。

    • 对称加密算法(如RC5): 适合大量明文数据加密传输。
    • 非对称加密算法(如RSA): 适合密钥交换或小量数据加密。
  3. 数字证书互信。

    • CA(证书颁发机构): 用户互信需要CA之间互换公钥。

5. 软件工程与开发模型

  1. 软件著作权归属。

    • 委托开发未明确著作权归属时,著作权归受托方(开发者)所有。
  2. 螺旋模型。

    • 特点: 风险驱动,适用于大型复杂系统,包含维护周期。
    • 不适用场景: 小型简单项目。
  3. 极限编程(XP)中的结对编程。

    • 特点: 支持共同代码拥有和审查,但可能降低编码速度。
  4. C/S(客户机/服务器)体系结构。

    • 优点: 合理划分功能、灵活选平台、并行开发。
    • 缺点: 维护需要在客户端和服务器端同时进行。

6. 模块设计与内聚

  1. 模块设计质量改进。
    • 高扇出结构: 应尽量减少。
    • 模块大小: 应适中。
    • 功能模块合并: 可能降低模块独立性。

33-34. 模块内聚类型。
- 巧合内聚: 模块内元素无逻辑联系,内聚性最低,不易维护。
- 逻辑内聚、时间内聚、过程内聚: 内聚性较高。


7. 软件测试与复杂度

35-36. 测试用例与环路复杂度。
- 语句覆盖: 至少需要覆盖每条语句的测试用例。
- 路径覆盖: 至少需要覆盖所有路径的测试用例。
- McCabe度量法: 环路复杂度 = 边数 - 节点数 + 2。


8. 面向对象设计

37-38. 多重继承。
- 多重继承: 一个类继承多个父类,可能导致子类成员二义性。
- 多态: 不同子类对同一方法的不同实现。

  1. 面向对象分析阶段。

    • 关注点: 系统行为。
  2. 多态。

    • 定义: 客户类无需知道所调用方法的具体子类实现。

9. UML与设计模式

41-43. UML图。
- 通信图: 强调对象之间的消息交互。
- 对象与消息: 通信图中表示的对象和消息传递。

44-45. 观察者模式。
- Subject: 知道其观察者,提供注册和删除观察者的接口。
- 特征: 类对扩展开放,对修改关闭。

46-47. 装饰器模式与外观模式。
- 装饰器模式: 动态添加额外行为。
- 外观模式: 简化复杂系统的接口。


10. 编译与正则表达式

  1. 正规式。

    • 以b结尾的字符串集合: 可表示为 (a|b)*b
  2. 编译过程。

    • 语法分析: 判断程序语句的形式是否正确。

11. 文件系统与磁盘管理

  1. 位示图(Bitmap)。

    • 计算方法: 磁盘容量 / 物理块大小,再除以每个字的位数。
  2. 页面地址转换。

    • 逻辑地址转物理地址: 通过页表查找物理块号,结合页内地址。

12. 并发与死锁

  1. 死锁避免。
    • 资源数计算: 并发进程数 × (每个进程所需资源数 - 1) + 1。

26-28. PV操作与信号量。
- 信号量: 用于进程同步与互斥。
- P操作(等待): 请求资源。
- V操作(释放): 释放资源。


13. 数据库与SQL

  1. 关系模式的候选关键字。
    • 候选关键字: 能唯一标识元组的最小属性集。

54-56. E-R模型与SQL查询。
- 联系类型: *:*:* 表示多对多关系。
- HAVING子句: 用于分组后过滤。

  1. 小根堆(小顶堆)。
    • 定义: 每个节点的值小于或等于其子节点的值。

14. 数据结构与算法

  1. 栈的操作序列。

    • 入栈(I)与出栈(O): 合法序列需满足出栈顺序。
  2. 二叉树的遍历与高度。

    • 先序遍历: 根 -> 左 -> 右。
    • 中序遍历: 左 -> 根 -> 右。
    • 高度: 根节点到最远叶子节点的路径长度。
  3. 二分查找。

    • 查找过程: 每次与中间元素比较,逐步缩小范围。

62-65. 动态规划与最优路径。
- 动态规划特点: 最优子结构与重复子问题。
- 时间复杂度: O(n)。


以上是知识点的详细分类和解释,帮助系统化理解和记忆。

你可能感兴趣的:(软件设计师,数据库,算法,数据结构,uml,设计模式)