软件设计师 · 高频考点

软件设计师高频考点练习题

围绕软件设计师备考中常见的概念辨析、公式计算、流程判断和易错知识点整理,适合先刷高频题,再回到历年题查漏补缺。

67 道高频练习 中级 计算机软件 数据结构与算法时间复杂度O(n)设计模式

软件设计师高频练习列表

练习题 URL 已与历年题分开,便于搜索引擎理解页面类型
原型模式为什么适合通过复制对象创建新对象?

某图形编辑器中,用户经常需要基于一个已经配置好样式、大小、边框和阴影效果的图形对象,快速创建多个相似对象,并在复制后只修改少量属性。为了避免重复复杂初始化过程,较适合采用的设计模式是()。

中级 软件设计师 高频练习 中等 软件设计师原型模式设计模式
单选题
第 704 题
建造者模式为什么适合分步骤创建复杂对象?

某报表系统生成一份复杂报告时,需要按固定流程设置标题、数据源、图表、页眉页脚和导出格式,但不同客户的具体配置和展示细节不同。设计人员希望把构建过程和最终表示分离,较适合采用的设计模式是()。

中级 软件设计师 高频练习 中等 软件设计师建造者模式设计模式
单选题
第 700 题
备忘录模式为什么适合保存和恢复对象状态?

某绘图软件希望在不暴露图形对象内部细节的情况下,保存对象当前状态,便于用户执行撤销操作时恢复到之前的状态。较适合采用的设计模式是()。

中级 软件设计师 高频练习 中等 软件设计师备忘录模式设计模式
单选题
第 695 题
外观模式和适配器模式怎么区分?

某系统的订单子系统内部包含库存、价格、优惠、物流等多个服务。为了让客户端不必分别调用这些服务,设计人员提供了一个统一的 OrderFacade 接口来完成下单流程。这个设计更接近()。

中级 软件设计师 高频练习 中等 软件设计师外观模式适配器模式
单选题
第 690 题
享元模式为什么适合共享大量细粒度对象?

某在线文档系统需要显示大量字符对象。很多字符的字体、编码、基本形态可以共享,而位置、颜色、上下文状态由外部传入。为了减少大量相似对象带来的内存开销,较适合采用的设计模式是()。

中级 软件设计师 高频练习 中等 软件设计师享元模式设计模式
单选题
第 682 题
UML 状态图和活动图怎么区分?

某订单对象会经历“待支付、已支付、已发货、已完成、已取消”等状态,不同事件会触发状态转换;另一个图用于描述用户提交订单、系统校验库存、生成支付单、通知仓库发货这一串业务处理步骤。关于这两类 UML 图,下列说法较合理的是()。

中级 软件设计师 高频练习 中等 软件设计师UML状态图
单选题
第 644 题
策略模式和状态模式怎么区分?

某系统需要根据用户选择的优惠规则,在满减、折扣、返券等算法之间切换;另一个系统中,订单会随着待支付、已支付、已发货、已完成等状态变化而表现出不同操作行为。前者和后者分别更适合使用()。

中级 软件设计师 高频练习 中等 软件设计师设计模式策略模式
单选题
第 639 题
UML 组合和聚合怎么区分?

在 UML 类图中,订单和订单明细之间通常表现为整体与部分的强拥有关系,订单被删除时订单明细也随之消失;而班级和学生之间虽然也可看作整体与部分,但学生可以脱离某个班级继续存在。前者和后者分别更适合表示为()。

中级 软件设计师 高频练习 中等 软件设计师UML 类图组合
单选题
第 638 题
程序状态字 PSW 通常保存哪些信息?

某 CPU 在执行加法、比较、转移等指令时,需要记录进位、零结果、溢出、中断允许状态等运行状态信息。通常用于保存这些状态和标志位的是()。

中级 软件设计师 高频练习 基础 软件设计师计算机组成原理PSW
单选题
第 607 题
MAR 存储器地址寄存器主要保存什么?

CPU 访问主存时,需要先指出要访问的是哪个存储单元。通常用于保存该主存地址,并把地址送往地址总线的寄存器是()。

中级 软件设计师 高频练习 基础 软件设计师计算机组成原理MAR
单选题
第 606 题
用于记录下一条指令地址的是哪个寄存器?

在 CPU 执行程序的过程中,需要保存下一条将要执行指令的地址,以便按顺序取指或在转移后继续执行。通常承担这一功能的寄存器是()。

中级 软件设计师 高频练习 基础 软件设计师计算机组成原理程序计数器
单选题
第 605 题
接口和抽象类在面向对象设计中怎么区分?

某系统中,不同支付方式都需要提供统一的 pay() 能力,但各支付方式内部实现完全不同;另一个场景中,多种报表类有一部分通用字段和通用生成步骤,同时还保留若干需要子类实现的步骤。关于接口和抽象类的使用,下列说法较合理的是()。

中级 软件设计师 高频练习 中等 软件设计师接口抽象类
单选题
第 611 题
方法重载和方法重写怎么区分?

在面向对象程序设计中,同一个类中存在多个同名方法,但参数个数或参数类型不同;而子类重新定义父类中已有的方法,以改变该方法在子类对象上的行为。关于这两种情况,下列说法较合理的是()。

中级 软件设计师 高频练习 中等 软件设计师方法重载方法重写
单选题
第 601 题
最小生成树题中 Prim 和 Kruskal 怎么判断?

在一个连通带权无向图中,需要选出若干条边,使所有顶点都连通,且边权之和最小,同时不能形成回路。解决这类问题时,较常用的一组算法是()。

中级 软件设计师 高频练习 中等 软件设计师图算法最小生成树
单选题
第 475 题
银行家算法中的安全序列怎么判断?

操作系统采用银行家算法进行资源分配。系统在真正分配资源前,会先判断分配后是否仍存在某种进程执行顺序,使所有进程最终都能获得所需资源并顺利完成。这个判断主要是为了确认系统处于哪种状态?

中级 软件设计师 高频练习 中等 软件设计师操作系统银行家算法
单选题
第 472 题
桥接模式为什么强调抽象和实现分离?

某绘图软件既支持圆形、矩形等不同图形,又支持 Windows、Linux、Web 等不同绘制平台。如果把每种图形和每个平台都做成一个子类,类数量会迅速膨胀。设计师希望让图形抽象和平台实现可以独立变化。更适合采用哪种设计模式?

中级 软件设计师 高频练习 中等 软件设计师桥接模式设计模式
单选题
第 466 题
责任链模式为什么适合多级审批和请求处理?

某请假审批系统中,1 天以内由组长审批,3 天以内由部门经理审批,更长时间需要总监审批。系统把审批请求沿着处理对象链逐级传递,直到某一级能够处理为止。该设计最接近()。

中级 软件设计师 高频练习 中等 软件设计师责任链模式设计模式
单选题
第 331 题
命令模式为什么适合实现撤销和重做?

某绘图软件把“画线、移动图形、删除对象”等操作封装成独立对象,并记录在命令历史中。用户点击撤销时,系统按历史记录反向执行对应操作。该设计最接近()。

中级 软件设计师 高频练习 中等 软件设计师命令模式设计模式
单选题
第 321 题
UML 活动图中的泳道主要用来表示什么?

在订单处理活动图中,设计人员把“提交订单”“审核库存”“支付确认”“安排发货”分别放在用户、库存系统、支付系统、仓储部门等不同区域,以便看清每个活动由谁负责。这些区域通常称为()。

中级 软件设计师 高频练习 中等 软件设计师UML活动图
单选题
第 270 题
AVL 树插入后为什么可能需要旋转调整?

在平衡二叉排序树 AVL 中,插入一个新结点后,某个结点左右子树高度差超过允许范围。为了恢复二叉排序树的有序性和平衡性,通常需要进行()。

中级 软件设计师 高频练习 中等 软件设计师AVL 树平衡二叉树
单选题
第 232 题
哈希表发生冲突时,链地址法是怎么处理的?

在哈希表中,两个不同关键字经过哈希函数计算后得到相同的存储地址。某实现把映射到同一地址的元素挂在同一个链表中,查找时先定位桶,再在链表中比较关键字。该冲突处理方法通常称为()。

中级 软件设计师 高频练习 中等 软件设计师哈希表哈希冲突
单选题
第 231 题
广度优先搜索为什么通常用队列实现?

在无权图中,从起点开始按层访问相邻顶点,先访问距离起点 1 条边的顶点,再访问距离 2 条边的顶点。为了保持这种“先发现、先扩展”的访问顺序,通常使用的数据结构是()。

中级 软件设计师 高频练习 中等 软件设计师广度优先搜索队列
单选题
第 201 题
抽象工厂模式为什么适合创建一组相关产品?

某跨平台界面库需要在 Windows 和 macOS 下分别创建按钮、文本框、菜单等一组风格一致的控件。开发团队希望客户端只依赖统一接口,而不直接关心具体平台控件类。较合适的设计模式是()。

中级 软件设计师 高频练习 中等 软件设计师抽象工厂模式产品族
单选题
第 201 题
工厂方法模式和简单工厂有什么区别?

某系统最初用一个静态工厂方法根据参数创建不同产品。后来产品类型不断增加,团队希望把创建逻辑延迟到具体工厂子类中,由不同工厂负责创建对应产品。后一种设计更接近()。

中级 软件设计师 高频练习 中等 软件设计师工厂方法模式简单工厂
单选题
第 172 题
白盒测试中语句覆盖和判定覆盖有什么区别?

在白盒测试中,某覆盖准则要求程序中每条可执行语句至少执行一次;另一覆盖准则要求每个判断的真、假分支至少各执行一次。下列说法正确的是()。

中级 软件设计师 高频练习 中等 软件设计师白盒测试语句覆盖
单选题
第 143 题
MVC 中 Model、View、Controller 分别负责什么?

在 MVC 架构中,用户通过界面提交请求,控制器负责接收请求并协调处理,模型负责业务数据和业务规则,视图负责展示结果。下列说法正确的是()。

中级 软件设计师 高频练习 基础 软件设计师MVC架构模式
单选题
第 142 题
模板方法模式适合解决什么问题?

某数据导入流程固定为读取文件、校验数据、转换格式、写入系统四个步骤,但不同文件类型在校验和转换细节上不同。希望父类定义流程骨架,子类实现部分步骤,较适合采用()。

中级 软件设计师 高频练习 中等 软件设计师设计模式模板方法模式
单选题
第 141 题
单一职责原则主要强调什么?

某个类同时负责用户权限校验、订单计算、报表导出和邮件发送,后续任意一类需求变化都可能导致该类被修改。为了降低修改影响,设计上更应遵循()。

中级 软件设计师 高频练习 中等 软件设计师面向对象设计单一职责原则
单选题
第 140 题
时间片轮转调度适合解决什么问题?

在分时操作系统中,多个交互式用户进程需要轮流获得 CPU,每个进程运行一个固定时间片后让出处理机。较符合这种思想的调度算法是()。

中级 软件设计师 高频练习 基础 软件设计师操作系统进程调度
单选题
第 139 题
LRU 页面置换算法淘汰的是哪一页?

在操作系统页面置换中,若内存已满,需要选择一个页面换出。LRU 算法的基本思想是淘汰()。

中级 软件设计师 高频练习 中等 软件设计师操作系统页面置换
单选题
第 138 题
UML 部署图主要描述什么?

某系统需要展示 Web 服务器、应用服务器、数据库服务器之间的部署关系,以及软件构件部署在哪些硬件节点上。此时较适合使用的 UML 图是()。

中级 软件设计师 高频练习 基础 软件设计师UML部署图
单选题
第 137 题
依赖倒置原则为什么强调依赖抽象?

某业务服务直接依赖具体的短信发送类,后来需要改成邮件、站内信等多种通知方式,修改成本较高。设计人员希望业务服务依赖通知接口,而具体通知方式实现该接口。这主要体现了()。

中级 软件设计师 高频练习 中等 软件设计师面向对象设计依赖倒置原则
单选题
第 136 题
SQL 中 INNER JOIN 主要用来做什么?

在订单系统中,订单表保存客户编号,客户表保存客户名称。若希望查询订单编号及对应客户名称,需要把两张表按客户编号关联起来,较常使用的 SQL 操作是()。

中级 软件设计师 高频练习 基础 软件设计师SQLINNER JOIN
单选题
第 135 题
PV 操作中的 P 操作和 V 操作分别表示什么?

在操作系统进程同步中,信号量常配合 P、V 操作使用。一般来说,P 操作会申请资源并可能使进程等待,V 操作会释放资源并可能唤醒等待进程。下列理解正确的是()。

中级 软件设计师 高频练习 中等 软件设计师操作系统PV 操作
单选题
第 134 题
操作系统死锁产生需要哪些必要条件?

两个进程分别占有一部分资源,又都等待对方释放资源,导致谁也无法继续执行。操作系统中产生死锁通常需要同时满足互斥、请求并保持、不可剥夺和()。

中级 软件设计师 高频练习 中等 软件设计师操作系统死锁
单选题
第 133 题
归并排序为什么通常被认为是稳定排序?

在排序算法中,如果两个关键字相同的记录排序前后相对次序不变,就称该排序算法是稳定的。归并排序在合并两个有序子序列时,若相等元素优先取左侧子序列元素,通常可以保持()。

中级 软件设计师 高频练习 中等 软件设计师排序算法归并排序
单选题
第 132 题
结构化设计中的变换分析主要用于什么场景?

某数据处理系统的主要流程是输入数据、进行格式检查和转换、生成处理结果并输出。设计人员希望根据数据流图把系统划分为输入、变换中心和输出等模块。较适合采用的方法是()。

中级 软件设计师 高频练习 中等 软件设计师结构化设计变换分析
单选题
第 131 题
UML 活动图主要用来描述什么?

在分析网上报销业务时,分析人员希望描述填写申请、部门审批、财务审核、付款等活动之间的先后顺序、分支和并行处理。此时更适合使用的 UML 图是()。

中级 软件设计师 高频练习 基础 软件设计师UML活动图
单选题
第 130 题
面向对象设计中的开闭原则是什么意思?

某系统后续会不断增加新的报表类型。设计人员希望新增报表时尽量通过增加新类完成,而不是频繁修改已经稳定的核心代码。这种思想主要体现了()。

中级 软件设计师 高频练习 中等 软件设计师面向对象设计开闭原则
单选题
第 129 题
图的邻接矩阵需要多少存储空间?

用邻接矩阵存储一个有 n 个顶点的图时,无论边数多少,都需要一个 n×n 的矩阵来表示顶点之间是否相邻。其存储空间复杂度通常为()。

中级 软件设计师 高频练习 中等 软件设计师邻接矩阵
单选题
第 128 题
拓扑排序适合解决什么问题?

某课程系统中,学习“数据库实践”前必须先学“数据库基础”,学习“项目实训”前必须先完成“程序设计”和“数据库实践”。若要给这些课程排出一个满足先修关系的学习顺序,较适合使用()。

中级 软件设计师 高频练习 中等 软件设计师拓扑排序
单选题
第 127 题
栈和队列的主要区别是什么?

在数据结构中,若一种线性结构只能在一端进行插入和删除,表现为后进先出;另一种结构在一端插入、另一端删除,表现为先进先出。下列说法正确的是()。

中级 软件设计师 高频练习 基础 软件设计师数据结构
单选题
第 126 题
Dijkstra 算法适合求什么最短路径问题?

在一个带权图中,所有边的权值均为非负数。现在需要从某个源点出发,求它到其他各顶点的最短路径。较常用的算法是()。

中级 软件设计师 高频练习 中等 软件设计师Dijkstra最短路径
单选题
第 125 题
快速排序的平均时间复杂度是多少?

快速排序通过选取基准元素,将序列划分为左右两个子序列,再递归排序。通常情况下,快速排序的平均时间复杂度为()。

中级 软件设计师 高频练习 中等 软件设计师快速排序时间复杂度
单选题
第 124 题
螺旋模型为什么适合高风险项目?

某大型软件项目技术难度高、需求存在不确定性,团队希望在每一轮迭代中都进行风险识别、风险分析和风险控制,再逐步推进开发。较适合采用的软件过程模型是()。

中级 软件设计师 高频练习 中等 软件设计师软件工程螺旋模型
单选题
第 123 题
瀑布模型和原型模型怎么区分?

某项目需求比较明确、变更较少,团队希望按需求分析、设计、编码、测试、运行维护等阶段顺序推进。与此相比,另一个项目需求不够清楚,需要先做一个可演示样品让用户确认。下列判断较合理的是()。

中级 软件设计师 高频练习 基础 软件设计师软件工程瀑布模型
单选题
第 122 题
ER 图一对多联系转换成关系表时外键放在哪里?

在订单系统中,一个客户可以拥有多个订单,但每个订单通常只属于一个客户。将该 ER 模型转换为关系模式时,较常见的处理方式是()。

中级 软件设计师 高频练习 中等 软件设计师ER 图关系模式转换
单选题
第 121 题
软件设计师考试中第三范式主要看什么?

某关系模式已经满足第二范式,但存在“学号 → 系号,系号 → 系名”,从而可以由学号间接推出系名。为了进一步规范化,应重点消除的是()。

中级 软件设计师 高频练习 中等 软件设计师数据库设计第三范式
单选题
第 120 题
哈夫曼树的带权路径长度 WPL 怎么计算?

已知 4 个叶子节点的权值分别为 2、3、7、8。按哈夫曼树构造规则,每次选取两个最小权值合并,则最终哈夫曼树的带权路径长度 WPL 为()。

中级 软件设计师 高频练习 中等 软件设计师哈夫曼树WPL
单选题
第 119 题
二叉树前序、中序、后序遍历怎么区分?

对一棵二叉树进行遍历时,如果访问顺序是“先访问根节点,再遍历左子树,最后遍历右子树”,这种遍历方式称为()。

中级 软件设计师 高频练习 中等 软件设计师数据结构二叉树
单选题
第 118 题
组合模式适合解决什么问题?

某绘图软件中,单个图形和由多个图形组成的图形组都需要支持移动、缩放、绘制等操作。为了让客户端能够一致地处理单个对象和组合对象,较适合采用的设计模式是()。

中级 软件设计师 高频练习 中等 软件设计师设计模式组合模式
单选题
第 117 题
装饰器模式和代理模式怎么区分?

某系统已经有一个文件读取对象,现在希望在不修改原对象的情况下,动态增加缓存、压缩、日志记录等附加功能。若重点是给对象逐层增加职责,更适合采用()。

中级 软件设计师 高频练习 中等 软件设计师设计模式装饰器模式
单选题
第 116 题
UML 类图中聚合和组合有什么区别?

在 UML 类图中,班级与学生可以理解为整体和部分,但学生离开某个班级后仍然可以独立存在;而订单与订单明细通常生命周期绑定,订单不存在时明细也没有独立意义。下列说法较合理的是()。

中级 软件设计师 高频练习 中等 软件设计师UML 类图聚合
单选题
第 115 题
UML 用例图中 include 和 extend 怎么区分?

在图书借阅系统中,“借书”用例每次都必须执行“验证读者身份”;而“借书”在特殊情况下才会触发“缴纳欠费”。从 UML 用例关系看,较合理的判断是()。

中级 软件设计师 高频练习 中等 软件设计师UML用例图
单选题
第 114 题
策略模式适合解决什么设计问题?

某电商系统需要根据普通会员、VIP 会员、节日活动等不同规则计算折扣。开发人员希望把不同折扣算法封装起来,并在运行时灵活替换。较适合采用的设计模式是()。

中级 软件设计师 高频练习 中等 软件设计师设计模式策略模式
单选题
第 113 题
UML 时序图主要用来描述什么?

在设计登录功能时,分析人员希望表达用户界面、认证服务、用户数据库之间按时间顺序发送消息的过程。此时更适合使用的 UML 图是()。

中级 软件设计师 高频练习 中等 软件设计师UML时序图
单选题
第 112 题
软件设计为什么强调高内聚低耦合?

设计一个业务系统时,设计人员希望每个模块内部职责清晰,模块之间依赖尽量少,以便后续修改一个模块时不容易影响其他模块。这体现了()。

中级 软件设计师 高频练习 中等 软件设计师2026年真题考点高内聚低耦合
单选题
第 115 题
适配器模式主要解决什么设计问题?

系统需要复用一个已有组件,但该组件提供的接口与当前系统期望的接口不一致。为了在不修改原组件的情况下让它能够被当前系统使用,较适合采用()。

中级 软件设计师 高频练习 中等 软件设计师2026年真题考点适配器模式
单选题
第 114 题
折半查找最多比较次数怎么估算?

对一个有序表进行折半查找,表中共有 100 个元素。查找一个元素时,最多需要比较的次数约为()。

中级 软件设计师 高频练习 中等 软件设计师折半查找算法复杂度
单选题
第 301 题
软件设计中为什么要追求高内聚、低耦合?

在软件模块设计中,希望一个模块内部功能联系紧密,而模块之间相互依赖尽量少。该设计原则通常概括为()。

中级 软件设计师 高频练习 中等 软件设计师模块耦合与内聚软件设计师高内聚低耦合
单选题
第 7 题
观察者模式适合解决什么问题?

某系统中,一个对象状态发生变化时,需要自动通知多个依赖对象进行更新。为了降低对象之间的直接依赖,适合采用的设计模式是()。

中级 软件设计师 高频练习 中等 软件设计师观察者模式观察者模式适用场景
单选题
第 8 题
UML 类图中泛化关系是什么意思?

在 UML 类图中,如果“学生”和“教师”都可以看作“人员”的一种特殊类型,通常应使用哪一种关系表示这种“is-a”关系?

中级 软件设计师 高频练习 基础 软件设计师UML 类图关系软件设计师UML类图
单选题
第 3 题
工厂方法模式解决什么问题?

某系统需要根据不同业务场景创建不同类型的产品对象,并希望把对象创建逻辑延迟到子类中完成。此时更适合采用哪一种设计模式?

中级 软件设计师 高频练习 中等 软件设计师工厂方法模式软件设计师设计模式
单选题
第 4 题
数据流图中的加工表示什么?

在数据流图 DFD 中,用来表示对输入数据进行处理、转换,并产生输出数据的成分通常称为什么?

中级 软件设计师 高频练习 基础 软件设计师数据流图软件设计师数据流图
单选题
第 5 题
软件设计为什么强调高内聚低耦合?

在软件模块设计中,希望一个模块内部职责集中、模块之间依赖尽量少。这个设计原则通常概括为什么?

中级 软件设计师 高频练习 基础 软件设计师高内聚低耦合软件设计师高内聚低耦合
单选题
第 6 题
O(n) 时间复杂度是什么意思?

某算法执行时间与输入规模 n 成正比,通常可将其时间复杂度表示为?

中级 软件设计师 高频练习 基础 数据结构与算法时间复杂度O(n)
单选题
第 1 题
单例模式适用于什么场景?

某类在系统运行期间只需要创建一个实例,并提供全局访问点,较适合采用哪种设计模式?

中级 软件设计师 高频练习 中等 设计模式单例模式面向对象
单选题
第 2 题