2026年10月24日软考软件设计师考试已经结束,课课家软考根据考友回忆整理出本次《基础知识》真题及答案解析,供大家估分、复盘和备考参考。本套试题为考生回忆版,并非官方原版试卷,考试成绩以中国计算机技术职业资格网公示为准。
【考试估分入口】:https://tiku.kokojia.com/shijuanlist.html
单项选择题(共75题,每题1分,共75分)
1-2. 某业务场景中:①一个A对象可对应多个B对象;②C对象包含多个D对象,且C不存在时D也不再存在。问:在UML类图中,A与B、C与D的关系分别应表示为?
选项1:
A. 继承
B. 关联
C. 实现接口
D. 组合
选项2:
A. 依赖
B. 聚合
C. 关联
D. 组合
【答案】B、D
【解析】A对应多个B属于普通关联关系;C不存在D就消亡是组合(Composition),整体负责部分的生命周期;聚合是整体消亡后部分还可以独立存在。
3-6. 某点单系统支持订购饮品。基础饮品固定,用户下单时可在不修改基础饮品类的前提下,动态选择添加一种或多种配料。
(1)基础饮品对象在运行时动态叠加不同配料,且不希望改变基础饮品类。该需求适合采用( )进行设计。
(2)该模式的核心特征是( )。
(3)为了让基础饮品和各种配料能够被统一当作同一类型来处理,通常会要求( )。
(4)采用类图表示该设计,如果把饮品记为Beverage,把基础饮品记为BasicDrink,把配料记为Ice/Pear等,那么最常见的表示方式是( )。
选项1:
A. 观察者模式(Observer)
B. 生成器模式(Builder)
C. 装饰器模式(Decorator)
D. 工厂方法模式(FactoryMethod)
选项2:
A. 只创建一个基础饮品实例,并在不同用户间复用(共享状态)
B. 运行时根据用户选择用配料对象层层包裹基础饮品
C. 所有配料在对象创建后都不能改变
D. 在编译期通过条件分支选择唯一一种类实现
选项3:
A. 配料之间必须通过继承形成严格的线性链路
B. 配料与基础饮品实现同一抽象接口(或继承同一抽象类)
C. 基础饮品必须是抽象类,配料必须是具体类
D. 配料不需要继承任何接口/父类,只要持有基础对象即可
选项4:
A. Ice与Beverage只能是关联,不能有继承/实现
B. Ice与Beverage没有任何关系
C. Ice通过组合关系持有Beverage,并且也实现/继承Beverage
D. Ice与Beverage只能是继承/实现,不需要持有对象
【答案】C、B、B、C
【解析】装饰器模式可以在运行时动态给对象叠加职责;核心是包装包裹原有对象;装饰器与被装饰者必须实现同一个抽象接口;装饰器类内部通过组合持有被装饰对象,同时实现共同抽象类型。
7. 正则表达式[a-zA-Z][a-zA-Z0-9]*最常用于表示( )的识别规则。
A. 运算符
B. 字符串字面量
C. 整型常量
D. 标识符
【答案】D
【解析】标识符规则:首字符为字母,后续可以是字母或数字。
8. 两个长度均为n的递增有序表归并为一个递增有序表,最少比较次数为( )。
A. 2n
B. n-1
C. n+1
D. n
【答案】D
【解析】一个表全部小于另一个表,只需比较n次即可把短表全部并入,剩余直接复制,最少比较n次。
9. 某购物车类同时负责维护明细、计算优惠、校验资格和推送通知,业务规则变化时都需修改该类。该设计违反了( )原则。
A. 开放-封闭
B. 单一职责
C. 里氏替换
D. 依赖倒置
【答案】B
【解析】单一职责:一个类只做一类事情;该类承担多项完全不同职责,违反单一职责。
10. 以下关于循环冗余校验码(CRC)的叙述中,正确的是( )。
A. CRC利用奇偶性进行检错和纠错
B. CRC的除数用生成多项式来表示
C. CRC的校验码位数越少校验能力越强
D. CRC的数据位长度与校验位长度必须相同
【答案】B
【解析】CRC依靠生成多项式得到除数;CRC一般只检错不纠错;校验位位数越多检错能力越强,数据位与校验位长度不需要相等。
11. 172.16.10.66/16网络地址是( )。
A. 172.16.10.1
B. 172.16.10.255
C. 172.16.0.0
D. 172.16.10.0
【答案】C
【解析】/16掩码255.255.0.0,网络位前16位,网络地址172.16.0.0。
12. 某登录模块要求用户名长度为[6,20],密码非空且长度为[8,30]。采用等价类划分进行黑盒测试时,最符合的做法是( )。
A. 只取若干随机长度的用户名和密码
B. 把用户名长度分成等价类:合法[6,20]、非法<6、非法>20;密码同理,再为每个等价类各选代表值
C. 对用户名每个长度都测一遍
D. 只测合法输入,不测非法输入
【答案】B
【解析】等价类划分:划分合法等价类、无效等价类,每个等价类选取一个代表用例,不需要穷举全部输入。
13. 依据ISO/IEC 7498-2的"分层防护"思想,TCP校验和在( )实现。
A. 传输层
B. 会话层
C. 数据链路层
D. 网络层
【答案】A
【解析】TCP属于传输层协议,TCP头部自带校验和字段。
14. R(A,B,C),F={A→B, B→C},分解为R1(A,B)和R2(B,C),该分解( )。
A. 无损连接、不保持函数依赖
B. 有损连接、保持函数依赖
C. 无损连接、保持函数依赖
D. 有损连接、不保持函数依赖
【答案】C
【解析】公共属性B是R2主键,属于无损分解;A→B在R1,B→C在R2,全部函数依赖均保留,保持函数依赖。
15. 磁头在100号磁道,请求队列55, 58, 39, 18, 90, 150。采用SSTF算法,总移动磁道数为( )。
A. 214
B. 50
C. 228
D. 182
【答案】D
【解析】SSTF最短寻道优先。起始100,依次服务90(10)→150(60)→58(92)→55(3)→39(16)→18(21),总和10+60+92+3+16+21=182。
16. 逻辑地址32位,页面大小2KB,一级页表,页号占( )位。
A. 11位
B. 12位
C. 21位
D. 16位
【答案】C
【解析】2KB=2^11,页内偏移占11位;32-11=21位,页号占21位。
17. 员工在职期间开发软件,无特别约定,著作权归( )。
A. 员工和单位共有
B. 员工个人
C. 国家
D. 单位
【答案】D
【解析】职务作品,无特殊约定,软件著作权归单位所有。
18. 指令Cache与数据Cache分离的主要目的是( )。
A. 提高Cache与主存间的地址映射速度
B. 缩短CPU的平均访存时间
C. 降低指令流水线的资源冲突率
D. 提高Cache的命中率
【答案】C
【解析】分离I-Cache、D-Cache,取指令与读写数据可以并行访问Cache,减少流水线资源冲突。
19. a,b,c,d,e依次入栈,入栈后可停留、可出栈,出栈后不再入栈。以d开头的出栈序列个数为( )。
A. 3
B. 6
C. 5
D. 4
【答案】B
【解析】d第一个出栈,则a,b,c已经入栈;d出栈后剩下abc在栈内,e尚未入栈。卡特兰数计算合法出栈序列共6个。
20. 宏定义#define SQUARE(x) x*x,调用SQUARE(1+2)的叙述中,正确的是( )。
A. 展开为(1+2)*(1+2),计算结果为9,符合设计意图
B. 展开为(1+2)*1+2,计算结果为5,由于宏参数重复计算导致结果不符合设计意图
C. 展开为1+2*1+2,计算结果为5,由于运算符优先级问题导致计算结果不符合设计意图
D. 展开为1+2*(1+2),计算结果为7,由于结合性问题导致计算结果不符合设计意图
【答案】C
【解析】宏直接文本替换不带括号,SQUARE(1+2)替换得到1+2*1+2;*优先级高于+,结果等于5,是运算符优先级引发错误。
21. 三对角矩阵A[1..99,1..99]按行优先存入B[1..295],A[32,33]在B中的下标为( )。
A. 92
B. 94
C. 93
D. 95
【答案】C
【解析】三对角矩阵第1行有2个非零元素,第2至98行每行3个。A[32,33]是第32行第3个元素;前31行共2+30×3=92个,再加1,下标=93。
22. 关系模式R(A,B,C,D),F={AB→C, C→D, D→A},R最高属于( )。
A. 3NF
B. BCNF
C. 2NF
D. 1NF
【答案】A
【解析】候选键为AB、BC、BD;不存在非主属性对主键的部分依赖和传递依赖,满足3NF;但存在C→D、D→A,D不是超键,不满足BCNF。
23. ( )是IP协议的补充,用于在IP网络中传递控制消息和错误报告。
A. ARP
B. ICMP
C. PPP
D. IGMP
【答案】B
【解析】ICMP互联网控制报文协议,传递差错报告和网络控制消息。
24. TCP首部中,( )字段用于标记紧急数据需优先处理。
A. ACK
B. SYN
C. RST
D. URG
【答案】D
【解析】URG紧急标志位,URG指针指明紧急数据结束位置。
25. DMA的叙述中,错误的是( )。
A. 通过执行程序在内存与I/O设备之间传送数据
B. 通过DMAC在内存与I/O设备之间直接传送数据
C. 一个完整DMA过程的启动和结束处理由CPU完成
D. 一个完整DMA过程包含中断请求处理
【答案】A
【解析】DMA直接内存访问,不需要CPU执行程序搬运数据,由DMA控制器硬件完成传输;启动和结束中断交给CPU。
26. 软件运行中发现输入数据编码格式不正确导致计算结果错误,需修正。这属于( )维护。
A. 完善性
B. 正确性
C. 适应性
D. 预防性
【答案】B
【解析】正确性维护:修复已发现的软件缺陷;适应性维护:适配环境变化;完善性:新增功能;预防性:提前优化防问题。
27. 软件配置管理(SCM)的核心活动不包括( )。
A. 版本控制
B. 代码自动生成
C. 变更控制
D. 配置审计
【答案】B
【解析】SCM核心活动包括配置标识、版本控制、变更控制、配置审计、状态报告;代码自动生成不属于配置管理。
28. 缓冲区大小为x、初始为空,PV操作中empty、full、mutex的初始值分别是( )。
A. empty=x, full=0, mutex=0
B. empty=0, full=x, mutex=0
C. empty=0, full=x, mutex=1
D. empty=x, full=0, mutex=1
【答案】D
【解析】生产者-消费者问题:empty空缓冲区数量=x,full满缓冲区=0,互斥锁mutex初值=1。
29. 完全二叉树有1000个结点,叶子结点个数是( )。
A. 250
B. 499
C. 500
D. 489
【答案】C
【解析】完全二叉树叶子结点公式:n-⌊n/2⌋=1000-500=500。
30. 将订单、支付、库存等功能拆分为独立服务,体现了软件工程的( )原则。
A. 信息隐藏
B. 模块化
C. 抽象
D. 逐步求精
【答案】B
【解析】把大系统拆分成多个独立模块/微服务,属于模块化原则。
31-32. 对伪代码if(a>0 && b>0) c=1; else if(a>0 || b>0)进行测试。
采用条件覆盖,至少需要( )个测试用例使所有基本条件真假取值至少出现一次。
采用判定覆盖,至少需要( )个测试用例使每个判定真假分支至少执行一次。
选项1:
A. 5
B. 2
C. 4
D. 3
选项2:
A. 5
B. 3
C. 2
D. 4
【答案】C、B
【解析】条件覆盖需遍历a>0、b>0的真假各一次,最少4个用例;判定覆盖两个if判定各取真假,最少3条用例。
33-34. Dijkstra算法本质上是( ),该算法不能处理( )。
选项1:
A. 贪心算法
B. 动态规划
C. 分治法
D. 回溯法
选项2:
A. 负权图
B. 非负权图
C. 稀疏图
D. 无向图
【答案】A、A
【解析】Dijkstra是贪心算法;不能处理边上带负权的图。
35-36. 电子书类EBook将文件大小设计为私有成员体现( ),与Book的关系适合采用( )。
选项1:
A. 多态
B. 继承
C. 抽象
D. 封装
选项2:
A. 多态
B. 抽象
C. 封装
D. 继承
【答案】D、D
【解析】私有成员对外隐藏内部数据是封装;EBook属于Book,用继承关系。
37-38. 模块专门负责文件导入这一个功能,属于( )内聚;其中打开、读、写、关闭按固定顺序执行,属于( )内聚。
选项1:
A. 功能
B. 时间
C. 顺序
D. 逻辑
选项2:
A. 顺序
B. 时间
C. 功能
D. 逻辑
【答案】A、A
【解析】只完成单一完整目标是功能内聚;处理步骤按先后顺序、前一步输出作为后一步输入是顺序内聚。
39. 按字节编址,地址区间0000A000~0000DFFF的容量为( )KB。
A. 8
B. 64
C. 16
D. 32
【答案】D
【解析】DFFF-A000+1=0x4000=16384字节;16384/1024=16KB。
40. 保留左表所有记录、右表无匹配时填NULL的连接方式是( )。
A. INNER JOIN
B. CROSS JOIN
C. LEFT JOIN
D. RIGHT JOIN
【答案】C
【解析】LEFT JOIN左外连接,保留左表全部,右表匹配不到填NULL;RIGHT JOIN保留右表全部。
41. 以数据块为单位传输、传输过程不需CPU干预、由专门硬件控制器直接完成内存与外设数据交换的是( )。
A. 直接内存访问方式
B. 程序直接控制方式
C. 中断驱动方式
D. 通道控制方式
【答案】A
【解析】DMA直接内存访问,硬件控制器完成内存外设数据块传输,传输期间CPU不干预。
42. 编译过程中,( )阶段将连续空格、制表符和换行符合并或丢弃。
A. 语义分析
B. 语法分析
C. 符号表管理
D. 词法分析
【答案】D
【解析】词法分析扫描字符流,过滤空格、换行、制表符,识别单词符号。
43. Python代码的输出结果是( )。
def func(a, b=[]): b.append(a)
A. [1,2] [1,2]
B. [1] [1,2]
C. [1] [2]
D. [1] [2,1]
【答案】B
【解析】Python默认参数在函数定义时只初始化一次,列表b共享同一对象;第一次func(1)输出[1],func(2)继续追加输出[1,2]。
44. 关于以下Python代码的叙述中,正确的是( )。
class Employee: count=0
A. count被所有实例共享
B. 不符合Python语法要求
C. count只属于某个具体实例
D. count只能存在于__init__方法中
【答案】A
【解析】count属于类属性,所有实例对象共享同一个类属性。
45. 需保存"订单记录"以便后续查询与对账,在DFD中应表示为( )。
A. 处理过程
B. 外部实体
C. 数据流
D. 数据存储
【答案】D
【解析】DFD图中保存持久化数据的是数据存储。
46. CPU中不包括( )。
A. 通用寄存器
B. 地址译码器
C. 指令寄存器
D. 地址寄存器
【答案】B
【解析】地址译码器属于存储器芯片内部部件,不在CPU内部;通用寄存器、IR指令寄存器、AR地址寄存器都属于CPU。
47. 6个字符出现次数为{5,24,8,15,36,12},构造哈夫曼编码,a~f的编码长度依次为( )。
A. 3,3,3,3,3,3
B. 5,2,5,3,1,4
C. 4,2,4,2,2,3
D. 4,2,4,3,1,4
【答案】C
【解析】哈夫曼树权值越大节点深度越小;最大权36深度最短,24深度2,15深度3,5、8、12深度4,对应选项C。
48. 一个Student关联Contact的个数满足( )。
A. ≥1
B. ≤3
C. ≥1且≤3
D. 1或3
【答案】C
【解析】UML多重度1..3,表示至少1个、最多3个。
49. 软件专利权与软件著作权的根本区别在于( )。
A. 保护地域范围不同
B. 是否需要登记
C. 保护的是"思想"还是"表达"
D. 保护期限不同
【答案】C
【解析】著作权保护程序表达;专利保护算法方案思想,这是二者根本区别。
50. 关于重载(Overload)与重写(Override)的叙述,正确的是( )。
A. 重载和重写均为运行时多态
B. 重载和重写均为编译时多态
C. 重载和重写均发生在子类与父类之间
D. 重载为编译时多态,重写体现运行时多态
【答案】D
【解析】重载:同一个类方法名相同参数不同,编译期确定;重写(覆盖)子类重写父类方法,运行时动态绑定。
51. 矩阵链乘最优加括号为((A1A2)(A3A4)),则意味着( )。
A. m[1,4]=m[1,1]+m[2,3]+p0*p1*p4
B. m[1,4]=m[1,1]+m[2,4]+p0*p1*p4
C. m[1,4]=m[1,2]+m[3,4]+p0*p2*p4
D. m[1,4]=m[1,2]+m[2,4]+p0*p2*p4
【答案】C
【解析】((A1A2)(A3A4))分割点k=2,m[1,4]=m[1,2]+m[3,4]+p0×p2×p4。
52. 关于软件复用的叙述,正确的是( )。
A. 可以显著提高开发效率,但一定会降低软件质量
B. 只适合于大型企业、不适合小型项目
C. 包括代码、设计、需求、测试用例等多个层面的复用
D. 仅指代码层面的复用
【答案】C
【解析】软件复用不只有代码,还有需求文档、架构设计、测试用例等多维度复用。
53. 模块通过整数参数传递数据给另一模块,这种耦合属于( )。
A. 外部耦合
B. 标记耦合
C. 控制耦合
D. 数据耦合
【答案】D
【解析】简单参数传递数据属于数据耦合;控制耦合传递控制开关标志;标记耦合传递复合结构体。
54. 虚拟存储器的最大可寻址容量主要受( )限制。
A. 磁盘缓冲区大小
B. 外存的物理容量
C. 内存的物理容量
D. CPU的虚拟地址长度
【答案】D
【解析】虚拟存储器最大寻址空间=2的CPU虚拟地址位数次方,由虚拟地址长度决定。
55. 部署堡垒机的主要作用是( )。
A. 加密数据传输
B. 过滤网络流量
C. 监控内部网络
D. 防止外部攻击
【答案】C
【解析】堡垒机用于运维操作代理,记录、监控、审计运维人员操作行为。
56. 关于数字签名的叙述,错误的是( )。
A. 接收方能够核实发送方对报文的数字签名
B. 要保证报文的完整性需对整个报文进行数字签名
C. 任何人包括接收方都不能伪造对报文的签名
D. 发送方事后不能抵赖对报文的数字签名
【答案】B
【解析】数字签名一般对报文摘要签名,不需要对整个原始大报文签名。
57. 系统要求支持7×24小时不间断运行,属于软件需求中的( )。
A. 可靠性需求
B. 安全性需求
C. 性能需求
D. 功能需求
【答案】A
【解析】7×24不间断运行、容错、故障恢复都属于可靠性非功能需求。
58. 无向连通网G的叙述中,正确的个数为( )。
①邻接矩阵一定对称 ②最小生成树一定唯一 ③DFS生成树一定是一条链 ④BFS生成树高度一定不超过2
A. 1
B. 0
C. 2
D. 3
【答案】A
【解析】①无向图邻接矩阵必然对称正确;②权值可以相等,最小生成树不一定唯一;③DFS不一定是链;④BFS高度不一定≤2;只有1句话正确。
59. x个进程共享资源,每次最多允许y个进程同时访问,信号量初值应为( )。
A. x-y
B. y
C. x
D. 1
【答案】B
【解析】允许最多y个同时进入临界区,信号量初值=y。
60. 需求变化快、团队规模小,最适合采用( )指导开发。
A. 螺旋模型
B. 敏捷开发
C. V模型
D. 瀑布模型
【答案】B
【解析】需求频繁变更,小团队适合敏捷开发。
61. 要求关系的主键值不能为空,属于( )。
A. 用户定义的完整性规则
B. 域完整性规则
C. 实体完整性规则
D. 参照完整性规则
【答案】C
【解析】实体完整性:主键非空、主键唯一;参照完整性是外键约束。
62. 路由器依据IP包头中( )字段确定返回路径。
A. 源IP地址
B. 目的IP地址
C. TTL
D. 序列号
【答案】B
【解析】路由器查路由表,根据目的IP地址转发数据包。
63. 把协议数据单元从源端传到目的端、为分组交换网上不同主机提供通信服务的是( )。
A. 数据链路层
B. 传输层
C. 会话层
D. 网络层
【答案】D
【解析】网络层(IP层)实现跨主机分组传送。
64. 序列图中alt[stockerror]块用于建模( )。
A. 完成循环
B. 显示第二张图
C. 异常或选择场景
D. 测试属性
【答案】C
【解析】alt是UML序列图选择分支,用于分支条件、异常场景;loop表示循环。
65. R<u,f>,U={A,B,C,D,E},F={A→B, BC→D, ACD→B, D→E, B→C},候选键个数为( )。
A. 2
B. 3
C. 4
D. 1
【答案】B
【解析】候选键为ACD、ABD、ABC,共3个候选码。
66. 事务T对数据对象A加了S锁,其他事务对A的加锁情况是( )。
A. 不能加S锁,也不能加X锁
B. 不能加S锁,可以加X锁
C. 可以加S锁,不能加X锁
D. 可以加S锁,也可以加X锁
【答案】C
【解析】S共享锁:多个事务可以同时加S锁;不能加X排他锁。
67. 对SQL注入攻击最有效的防范手段是( )。
A. 安装防火墙
B. 定期更新操作系统
C. 预编译/参数化查询
D. 使用转义编码
【答案】C
【解析】防御SQL注入最优方案:使用预编译参数化SQL语句。
68. 乙公司独立开发功能相同、技术方案落入甲公司方法专利保护范围的软件并销售,该行为( )。
A. 不侵权,因为源代码完全不同
B. 不侵权,因为乙公司是独立开发
C. 侵权,因为乙公司的技术方案落入了甲公司专利权的保护范围
D. 侵权,但仅侵犯著作权,不侵犯专利权
【答案】C
【解析】专利保护方案思想;就算完全独立开发,技术落入专利保护范围,依旧构成专利侵权。
69. 运行时将字节码转换为机器码并缓存以提高执行效率的是( )。
A. 预编译头(PCH)
B. 静态编译(AOT)
C. 即时编译(JIT)
D. 动态链接(DLL)
【答案】C
【解析】JIT即时编译:程序运行时把字节码编译成本地机器码并且缓存。
70. JSON Web Token由( )三部分组成。
A. 载荷、签名和加密
B. 头部、载荷和签名
C. 头部、签名和加密
D. 头部、载荷和加密
【答案】B
【解析】JWT三部分:Header头部、Payload载荷、Signature签名,用点号分隔。
71. ______ is a software development methodology that divides the development cycle into short iterations, delivering usable increments of software continuously.
A. Waterfall
B. Agile
C. Spiral
D. V-model
【答案】B
【解析】Agile(敏捷)开发方法将开发周期划分为短迭代,持续交付可用的软件增量。Waterfall是瀑布模型,顺序一次性交付;Spiral螺旋侧重风险;V模型侧重测试与需求一一对应。
72. In object-oriented design, ______ describes the structure of a set of objects that have the same attributes, operations and relationships.
A. object
B. class
C. interface
D. package
【答案】B
【解析】class(类)描述一组拥有相同属性、方法、关系的对象的结构。object是对象实例;interface是接口,只定义契约;package是包,用于组织类。
73. ______ is a non-functional requirement that describes the degree to which a system can continue to operate correctly under abnormal conditions.
A. Usability
B. Maintainability
C. Reliability
D. Portability
【答案】C
【解析】Reliability(可靠性)属于非功能需求,衡量系统在异常场景下持续正常运行的能力。Usability易用性;Maintainability可维护性;Portability可移植性。
74. In distributed systems, ______ ensures that all nodes see the same sequence of updates, even when network partitions happen.
A. consistency
B. availability
C. partition tolerance
D. throughput
【答案】A
【解析】consistency(一致性)保证所有节点看到相同的数据更新序列。availability可用性指持续可访问;partition tolerance分区容错,指网络分区时系统仍可运行;throughput吞吐量是单位时间处理请求数。
75. The ______ pattern is used to decouple the sender and receiver of a request, allowing multiple receivers to subscribe and receive the same message.
A. Factory
B. Observer
C. Adapter
D. Proxy
【答案】B
【解析】Observer(观察者模式)解耦消息发送者与接收者,多个订阅者可以接收同一条消息。Factory工厂模式负责对象创建;Adapter适配器做接口转换;Proxy代理控制访问。
软件设计师视频教程
https://www.kokojia.com/course-4718.html








Learnling
小熊软软糖
ms
必过
Fantastic
KY
Schneee
FTC
天天
