软件设计师模拟试题
依据《软件设计师考试大纲》命题,覆盖"计算机与软件工程知识"(科目一)与"软件设计"(科目二)两科。
答题说明:科目一为选择题,每题仅一个正确答案;科目二为问答题,需书写分析、推导与设计过程。
建议用时:科目一 150 分钟,科目二 150 分钟。
科目一:计算机与软件工程知识(选择题)
一、数据表示与计算机组成原理(第 1–8 题)
1.若机器字长为 8 位,采用补码表示,则整数 -128 的补码形式为( )。
- A. 1000 0000
- B. 1111 1111
- C. 0111 1111
- D. 1000 0001
2.将十进制数 0.8125 转换为二进制小数为( )。
- A. 0.1101
- B. 0.1011
- C. 0.1110
- D. 0.1001
3.两个 8 位二进制补码数 A=10110011、B=01100101 相加后,溢出标志(OF)和进位标志(CF)的状态是( )。
- A. OF=0,CF=1
- B. OF=1,CF=0
- C. OF=0,CF=0
- D. OF=1,CF=1
4.在计算机的运算器中,用于存放参加运算的操作数和运算结果的部件是( )。
- A. 程序计数器(PC)
- B. 累加器(ACC)
- C. 指令寄存器(IR)
- D. 存储地址寄存器(MAR)
5.下列关于冯·诺依曼体系结构的描述,错误的是( )。
- A. 采用存储程序原理
- B. 指令和数据以二进制形式存储
- C. 运算器和控制器合称为中央处理器
- D. 采用哈佛结构,指令存储器与数据存储器分离
6.Cache 与主存之间的映射方式中,命中率最高但硬件实现最复杂的是( )。
- A. 直接映射
- B. 全相联映射
- C. 组相联映射
- D. 段相联映射
7.CPU 中能够直接识别和执行的最基本操作命令称为( )。
- A. 微指令
- B. 机器指令
- C. 汇编指令
- D. 伪指令
8.采用流水线技术后,假设一条指令执行需取指、分析、执行三个步骤,各步骤耗时分别为 4ns、2ns、3ns,则流水线时钟周期至少为( )。
- A. 3ns
- B. 4ns
- C. 6ns
- D. 9ns
二、操作系统(第 9–16 题)
9.操作系统中,进程与线程的主要区别是( )。
- A. 线程是资源分配的基本单位,进程是调度的基本单位
- B. 进程是资源分配的基本单位,线程是调度的基本单位
- C. 进程和线程都是资源分配的基本单位
- D. 进程和线程都是调度的基本单位
10.采用短作业优先(SJF)调度算法时,四个作业的到达时间均为 0,运行时间分别为 2、6、4、8,则其平均周转时间为( )。
- A. 10
- B. 11.5
- C. 13
- D. 14.5
11.在分页存储管理中,若页面大小为 4KB,逻辑地址为 0x3A5F,页号为 3,则对应的页内偏移量为( )。
- A. 0x0A5F
- B. 0x2A5F
- C. 0x1A5F
- D. 0x3A5F
12.产生死锁的必要条件不包括( )。
- A. 互斥条件
- B. 请求与保持条件
- C. 不可剥夺条件
- D. 资源循环等待(环路)条件之外的"占有且等待"
13.在信号量机制中,P 操作(wait)和 V 操作(signal)的作用分别是( )。
- A. 信号量加 1;信号量减 1
- B. 信号量减 1,若小于 0 则阻塞;信号量加 1,若小于等于 0 则唤醒
- C. 信号量加 1,若大于 0 则唤醒;信号量减 1
- D. 阻塞等待;直接唤醒
14.下列存储管理中,会产生外部碎片的是( )。
- A. 分页存储管理
- B. 分段存储管理
- C. 请求分页存储管理
- D. 分页+段页式
15.在虚拟存储中,页面置换算法中"被换出的页将来一段时间内最长时间不被使用"的最优算法是( )。
- A. FIFO
- B. LRU
- C. OPT
- D. Clock
16.打开文件操作(open)完成的核心工作是( )。
- A. 将文件数据读入内存
- B. 在内存中建立文件控制块(FCB)的副本并分配文件描述符
- C. 将文件内容写回磁盘
- D. 检查文件是否被压缩
三、数据库系统(第 17–22 题)
17.关系数据库中的候选码(Candidate Key)是指( )。
- A. 能唯一标识元组的最小属性组
- B. 任意一个非空属性组
- C. 主键之外的属性组
- D. 外键对应的属性组
18.关系模式 R(A,B,C,D)上的函数依赖 F={A→B, B→C},则 R 的候选码为( )。
- A. A
- B. AD
- C. AB
- D. BD
19.在 SQL 中,将查询结果去掉重复行的关键字是( )。
- A. DISTINCT
- B. UNIQUE
- C. GROUP
- D. ORDER
20.下列关于事务 ACID 特性的描述,错误的是( )。
- A. 原子性:事务要么全部执行,要么全部不执行
- B. 一致性:事务执行前后数据库保持一致状态
- C. 隔离性:并发事务之间互不影响
- D. 持久性:事务未提交时修改已持久化到磁盘
21.数据库三级模式结构中,面向用户(应用程序)的局部数据视图对应的是( )。
- A. 外模式
- B. 概念模式
- C. 内模式
- D. 存储模式
22.在并发控制中,两段锁协议(2PL)的主要作用是保证( )。
- A. 事务的持久性
- B. 并发调度的可串行性
- C. 事务的原子性
- D. 数据的完整性约束
四、数据结构与算法(第 23–32 题)
23.对长度为 n 的有序表采用二分查找,其时间复杂度和最坏比较次数分别为( )。
- A. O(n),n
- B. O(log₂n),⌈log₂(n+1)⌉
- C. O(n²),n²
- D. O(nlog₂n),log₂n
24.下列排序算法中,时间复杂度为 O(nlog₂n) 且是稳定排序的是( )。
- A. 快速排序
- B. 堆排序
- C. 归并排序
- D. 直接插入排序
25.在一个带头结点的单链表中,删除 p 结点的后继结点 q 的正确操作是( )。
- A. p = q->next
- B. q = p->next; p->next = q->next
- C. p->next = q->next
- D. q->next = p->next
26.一棵完全二叉树共有 100 个结点,则其叶子结点数为( )。
- A. 49
- B. 50
- C. 51
- D. 52
27.对关键字序列 {50, 30, 80, 20, 10} 进行一趟快速排序(以第一个元素为基准)后,结果的第一趟分区为( )。
- A. 10 20 30 50 80
- B. 30 20 10 50 80
- C. 10 30 20 50 80
- D. 20 10 30 50 80
28.图的广度优先遍历(BFS)所使用的辅助数据结构是( )。
- A. 栈
- B. 队列
- C. 堆
- D. 二叉树
29.已知一棵二叉树的先序遍历序列为 ABDCE,中序遍历序列为 DBACE,则其后序遍历序列为( )。
- A. DBECA
- B. DEBCA
- C. DECBA
- D. BDECA
30.求解最长公共子序列(LCS)问题的经典算法是( )。
- A. 分治法
- B. 动态规划
- C. 贪心算法
- D. 回溯法
31.用贪心算法求解 0-1 背包问题,通常不能保证( )。
- A. 时间复杂度最优
- B. 一定得到全局最优解
- C. 得到可行解
- D. 空间复杂度最优
32.哈希表采用线性探测法处理冲突,装填因子为 0.75,表长 10,依次插入关键字 47、7、29、11、16、92,已知哈希函数 H(key)=key mod 10,则关键字 92 应存入的地址为( )。
- A. 2
- B. 3
- C. 4
- D. 5
五、计算机网络与多媒体(第 33–38 题)
33.OSI 参考模型中,实现路由选择功能的层次是( )。
- A. 数据链路层
- B. 网络层
- C. 传输层
- D. 应用层
34.在 TCP/IP 协议栈中,提供端到端可靠传输服务的协议是( )。
- A. IP
- B. TCP
- C. UDP
- D. ARP
35.IP 地址 192.168.10.5/24 所属网络的广播地址为( )。
- A. 192.168.10.0
- B. 192.168.10.255
- C. 192.168.255.255
- D. 192.168.10.5
36.下列压缩标准中,用于视频压缩的是( )。
- A. JPEG
- B. MP3
- C. MPEG
- D. WAV
37.采样频率为 44.1kHz、量化位数为 16 位、双声道的立体声,1 秒未压缩音频的数据量约为( )。
- A. 88.2KB
- B. 176.4KB(按 1000 进位)
- C. 352.8KB
- D. 约 172.3KB(按 1024 进位)
38.HTML5 中用于播放视频的标准标签是( )。
- A.
<audio> - B.
<video> - C.
<media> - D.
<movie>
六、程序设计语言与编译原理(第 39–44 题)
39.编译程序完成的工作中,将源程序转换为中间代码并优化,属于的阶段是( )。
- A. 词法分析
- B. 语法分析
- C. 语义分析
- D. 中间代码生成与优化
40.下列语言中,属于解释型语言的是( )。
- A. C
- B. Java(字节码解释/即时编译)
- C. Python
- D. Fortran
41.正则表达式a(b|c)*所表示的语言是( )。
- A. 以 a 开头,后跟任意个 b 或 c 组成的串
- B. 以 a 开头,且仅含一个 b 或 c
- C. 仅含字符 a、b、c 的串
- D. 以 b 或 c 结尾的串
42.下列不属于静态测试方法的是( )。
- A. 代码走查
- B. 桌面检查
- C. 逻辑覆盖测试
- D. 代码审查
43.在 C 语言中,下列叙述正确的是( )。
- A. 数组名是指针常量,不可重新赋值
- B. 函数可以返回局部数组的首地址并被安全使用
- C. 结构体不能作为参数传递给函数
- D. 整型与浮点型无法相互转换
44.Java 中用于标记对象已不再被引用、由垃圾回收器回收的机制是( )。
- A. 引用计数
- B. 可达性分析(GC Roots)
- C. 手动 delete
- D. 指针释放
七、软件工程、软件过程与项目管理(第 45–52 题)
45.软件生命周期模型中,强调快速交付可运行原型、通过反复修改完善需求的模型是( )。
- A. 瀑布模型
- B. 螺旋模型
- C. 原型化模型
- D. V 模型
46.下列软件过程改进模型中,由 SEI 提出、将组织成熟度分为 5 个等级的是( )。
- A. ISO 9001
- B. CMMI
- C. PSP
- D. 6σ
47.在面向对象设计中,"一个类的对象作为另一个类的属性"所体现的关系是( )。
- A. 继承
- B. 聚合(组合)
- C. 实现
- D. 依赖
48.UML 中用于描述"系统某个时刻对象及其关系的快照"的图是( )。
- A. 用例图
- B. 对象图
- C. 类图
- D. 顺序图
49.在甘特图(Gantt)项目管理中,用于表示任务最早开始与最晚开始之间时间余量的指标是( )。
- A. 关键路径
- B. 浮动时间(松弛时间)
- C. 里程碑
- D. 活动历时
50.下列测试方法中,白盒测试侧重( )。
- A. 通过输入输出验证功能
- B. 检查程序内部逻辑结构与路径
- C. 只验证用户界面
- D. 模拟真实用户操作
51.软件维护中,修改软件以适应硬件或软件环境变化而进行的维护属于( )。
- A. 改正性维护
- B. 适应性维护
- C. 完善性维护
- D. 预防性维护
52.敏捷开发中,"以用户故事驱动迭代开发、每日站会、限时冲刺"的典型框架是( )。
- A. Scrum
- B. CMMI
- C. RUP
- D. 瀑布
八、软件设计方法(第 53–56 题)
53.下列设计模式中,属于创建型模式的是( )。
- A. 适配器(Adapter)
- B. 单例(Singleton)
- C. 观察者(Observer)
- D. 装饰器(Decorator)
54."定义一个操作中的算法骨架,而将一些步骤延迟到子类中实现"描述的设计模式是( )。
- A. 工厂方法
- B. 模板方法(Template Method)
- C. 策略(Strategy)
- D. 状态(State)
55.内聚程度由低到高排列,正确的是( )。
- A. 功能内聚、通信内聚、过程内聚、偶然内聚
- B. 偶然内聚、逻辑内聚、通信内聚、功能内聚
- C. 功能内聚、顺序内聚、时间内聚、偶然内聚
- D. 偶然内聚、顺序内聚、逻辑内聚、功能内聚
56.软件设计划分为体系结构设计和( )。
- A. 概要设计
- B. 详细设计
- C. 测试设计
- D. 数据库设计
九、信息安全、标准化与法律法规(第 57–63 题)
57.对称加密算法中,加解密使用同一密钥,下列属于对称算法的是( )。
- A. RSA
- B. AES
- C. ECC
- D. DSA
58.数字签名的主要作用是( )。
- A. 加密数据传输内容
- B. 保证消息的完整性与身份认证(防抵赖)
- C. 压缩数据
- D. 建立 VPN 通道
59.下列属于计算机病毒特征的是( )。
- A. 只能破坏硬件
- B. 传染性、潜伏性、破坏性、隐蔽性
- C. 仅存在于内存中
- D. 与网络无关
60.在《中华人民共和国网络安全法》中,网络运营者收集、使用个人信息应当遵循的原则是( )。
- A. 合法、正当、必要
- B. 可以无限收集
- C. 无需告知用户
- D. 必须强制收集
61.下列国际标准组织及其标准对应错误的是( )。
- A. ISO —— 国际标准化组织
- B. IEEE —— 电气和电子工程师协会
- C. ANSI —— 国际电信联盟
- D. ITU —— 国际电信联盟
62.国家标准 GB/T 规定的我国软件文档规范中,与"可行性研究报告"对应的文档代号是( )。
- A. 需求规格说明书
- B. 概要设计说明书
- C. 详细设计说明书
- D. 项目开发计划
63.在信息安全管理体系中,与 CIA(机密性、完整性、可用性)相对的风险评估基本要素不包括( )。
- A. 资产
- B. 威胁
- C. 漏洞
- D. 网速
十、信息化与专业英语(第 64–70 题)
64.下列属于云计算服务模型中 IaaS 的典型服务是( )。
- A. 提供操作系统虚拟机
- B. 提供软件开发平台
- C. 提供 SaaS 应用
- D. 提供数据中心供电
65.大数据技术中,用于分布式存储海量数据的系统通常基于( )。
- A. 关系数据库单机
- B. HDFS(Hadoop 分布式文件系统)
- C. 内存数据库
- D. 磁带存储
66.物联网(IoT)体系结构中,感知层的主要作用是( )。
- A. 数据采集
- B. 网络传输
- C. 数据存储
- D. 应用服务
67.在信息化基础中,E-government 的含义是( )。
- A. 电子商务
- B. 电子政务
- C. 电子病历
- D. 电子图书馆
68.英文术语“Data Structure”对应的中文是( )。
- A. 数据库
- B. 数据结构
- C. 数据挖掘
- D. 数据处理
69.术语“Garbage Collection”在程序设计语言中通常指( )。
- A. 垃圾回收
- B. 内存泄漏
- C. 缓冲区溢出
- D. 指针操作
70.下列英文短句中,表示"软件的生命周期"的是( )。
- A. Software Development Model
- B. Software Life Cycle
- C. Software Quality Assurance
- D. Software Configuration Management
科目二:软件设计(问答题)
以下为案例分析题,要求写出完整分析过程与设计方案。
案例一:数据流图与系统设计(15 分)
某高校开发"选课管理系统",主要功能包括:
- 课程信息管理:管理员录入、修改、删除课程信息(课程号、课程名、学分、容量)。
- 学生选课:学生登录后浏览课程、提交选课申请,系统检查容量与时间冲突。
- 成绩录入:任课教师录入学生成绩。
- 成绩查询:学生可查询本人各科成绩。
问题:
(1)请画出该系统的顶层数据流图(顶层图),标明外部实体、加工和数据流。(5 分)
(2)画出"学生选课"加工的子数据流图(0 层图),至少包含"校验容量"“检查冲突”"登记选课"三个加工。(5 分)
(3)说明在绘制数据流图时,数据存储与外部实体的区别。(5 分)
案例二:数据库设计(15 分)
某图书借阅系统的关系模式如下(下划线表示主键):
- 读者(读者号,姓名,单位,办证日期)
- 图书(图书号,书名,出版社,单价)
- 借阅(读者号,图书号,借阅日期,归还日期)
问题:
(1)判断"借阅"关系的主键,并说明其是否为 2NF;若不是,说明理由。(5 分)
(2)写出下列 SQL 语句:(5 分)
- 查询"清华大学出版社"出版的所有图书的书名;
- 查询"李明"读者当前未归还(归还日期为 NULL)的图书书名及借阅日期。
(3)若需增加"同一读者借阅同一本图书不得超过 3 次"的约束,请给出一种实现方案(可选用触发器或应用层逻辑描述)。(5 分)
案例三:面向对象分析与设计 + UML(15 分)
某在线商店需实现"商品管理"功能:普通用户可浏览商品、下单;会员可享受折扣并累积积分。要求系统能方便地在未来增加新的用户类型(如 VIP)而无需修改现有代码。
问题:
(1)请给出该场景的类图设计,体现用户类型的继承关系(父类 User,子类 NormalUser、MemberUser),并说明所采用的设计原则。(6 分)
(2)画出一张描述"会员下单并享受折扣"流程的顺序图,至少包含 Actor、界面类、业务控制类、数据访问类。(6 分)
(3)若要支持"订单价格根据促销策略动态计算",请说明应采用哪种设计模式并简述其优点。(3 分)
案例四:算法设计(15 分)
问题:给定 n 个物品,每个物品有重量 weight[i] 和价值 value[i],背包容量为 W。要求使用动态规划求解 0-1 背包问题,使装入背包的物品总价值最大。
(1)写出状态定义和状态转移方程。(5 分)
(2)给出该算法的伪代码或 C 语言实现,并分析其时间复杂度。(7 分)
(3)举例说明:当 W=5,物品为 (重量,价值)={(2,3),(3,4),(4,5)} 时,求最大价值。(3 分)
案例五:C 语言程序设计(15 分)
问题:编写一个 C 语言程序,实现单链表的创建(头插法)、遍历输出和逆序(反转)三个功能。
(1)定义链表结点结构体ListNode。(3 分)
(2)实现函数createList()(头插法建表)、printList()(遍历)、reverseList()(逆序)。(9 分)
(3)写出main函数,演示依次插入 1、2、3 后,先正序输出,再逆序输出。(3 分)
案例六:软件工程与项目管理(选做其一,15 分)
(A)软件测试与质量
针对案例一的"选课管理系统",设计一份覆盖功能性测试的测试用例表,至少包含:测试项、前置条件、操作步骤、预期结果、实际结果(留空),并说明黑盒测试与白盒测试在该系统中的应用侧重点。
(B)项目管理
某软件开发项目总工作量预估为 180 人日,团队共 6 人。已知活动 PERT 估算法中乐观时间 3 天、最可能时间 5 天、悲观时间 13 天。
- 计算该项活动的期望时间 E 和标准差 σ;
- 绘制简单的网络计划图(含关键路径概念),说明关键路径的意义;
- 简述如何进行项目进度跟踪与偏差控制。
参考答案与解析
本节仅给出科目一选择题答案及简要解析;科目二问答题请在教师指导下批改或对照要点自查。
科目一参考答案
| 题号 | 答案 | 题号 | 答案 | 题号 | 答案 | 题号 | 答案 |
|---|---|---|---|---|---|---|---|
| 1 | A | 19 | A | 37 | D | 55 | B |
| 2 | A | 20 | D | 38 | B | 56 | B |
| 3 | A | 21 | A | 39 | D | 57 | B |
| 4 | B | 22 | B | 40 | C | 58 | B |
| 5 | D | 23 | B | 41 | A | 59 | B |
| 6 | B | 24 | C | 42 | C | 60 | A |
| 7 | B | 25 | C | 43 | A | 61 | C |
| 8 | B | 26 | B | 44 | B | 62 | B |
| 9 | B | 27 | A | 45 | C | 63 | D |
| 10 | B | 28 | B | 46 | B | 64 | A |
| 11 | A | 29 | A | 47 | B | 65 | B |
| 12 | D | 30 | B | 48 | B | 66 | A |
| 13 | B | 31 | B | 49 | B | 67 | B |
| 14 | B | 32 | A | 50 | B | 68 | B |
| 15 | C | 33 | B | 51 | B | 69 | A |
| 16 | B | 34 | B | 52 | A | 70 | B |
| 17 | A | 35 | B | 53 | B | ||
| 18 | B | 36 | C | 54 | B |
关键题目解析
第 2 题:0.8125 = 0.5 + 0.25 + 0.0625 = 0.1101₂。
第 3 题:A=10110011(负)、B=01100101(正),相加得 00011000。两个异号数相加不可能溢出,故 OF=0;由最高位产生的进位为 1,故 CF=1。
第 8 题:流水线时钟周期取各阶段最大耗时,即 max(4,2,3)=4ns。
第 10 题:按 SJF 顺序 2、4、6、8,完成时间分别为 2、6、12、20,周转时间之和 2+6+12+20=40,平均 40/4=10。
第 11 题:页面 4KB=0x1000,页内偏移为逻辑地址低 12 位,0x3A5F & 0x0FFF = 0x0A5F。
第 18 题:由 A→B→C,且 A、D 都不在右侧,故候选码含 AD,AD 可决定所有属性,候选码为 AD。
第 26 题:完全二叉树 100 个结点,最后一层叶结点数 n₀ = ⌈n/2⌉ = 50。
第 27 题:以 50 为基准,从右往左找小于 50 的 10,从左往右找大于 50 的 80(不满足),最终 10 与 50 交换,一趟后 10 30 20 50 80 的基准到位为 {10,30,20}, 50, {80}。实际一趟结果为 10 30 20 50 80。
第 29 题:由先序 ABDCE 与中序 DBACE 还原:根 A,左子树 {D,B},右子树 {C,E}。后序为 D B E C A → DBECA。
第 32 题:47→7,7→7(冲突,探测到 8),29→9,11→1,16→6,92→2(92 mod 10=2 空),故 92 存入地址 2。
第 37 题:数据量 = 44.1kHz × 16bit × 2声道 ÷ 8 = 176,400 字节。按 1000 进位为 176.4KB(B),按 1024 进位约为 172.3KB(D)。软考标准常以 1024 进位计,故选 D;两种进位在解析中均可接受,注意单位统一。
第 62 题:概要设计说明书对应 GB/T 8567 中规定的文档之一。
本试题根据《软件设计师考试大纲(2022)》相关要求编制,用于模拟训练与知识点自测。