全国计算机技术与软件专业技术资格(水平)考试
软件设计师 模拟试题
依据官方《软件设计师考试大纲》编制
考试科目:
- 科目一:计算机与软件工程知识(计算机化考试,选择题)
- 科目二:软件设计(计算机化考试,问答题)
科目一:计算机与软件工程知识(选择题)
说明:本科目考查数据表示、逻辑运算、体系结构、操作系统、程序设计语言、数据结构与算法、数据库、网络、多媒体、软件工程、软件设计方法、标准与安全、信息化及专业英语等基础知识。每题给出的四个选项中,只有一个最符合题意。
一、数据表示与运算
1.在机器数表示法中,若采用补码表示整数,则-1(8 位二进制)的补码是( )。
- A. 1000 0001
- B. 1111 1111
- C. 0111 1111
- D. 1000 0000
2.若某浮点数的阶码用移码表示,尾数用补码表示,则浮点数规格化要求尾数( )。
- A. 符号位与最高数值位不同
- B. 最高数值位为 1
- C. 尾数中不出现符号位
- D. 符号位为 0
3.已知两个 8 位补码数A=0110 0101、B=1101 1010,则A OR B(按位或)的结果为( )。
- A. 1111 1111
- B. 0100 0000
- C. 0110 0111
- D. 1111 1100
4.十六进制数0x2F与十进制数 47 的关系是( )。
- A. 相等
- B. 0x2F 更大
- C. 47 更大
- D. 无法比较
5.下列关于海明校验码(Hamming Code)的描述中,正确的是( )。
- A. 只能检错不能纠错
- B. 校验位位数越多,纠错能力越强且冗余开销越低
- C. 在 n 位数据位中添加 k 位校验位,须满足 2^k ≥ n+k+1
- D. 校验位必须全部置于数据的最高位
二、计算机体系结构与性能
6.在 Cache 与主存构成的存储层次中,Cache 的命中率主要取决于( )。
- A. 主存容量
- B. CPU 时钟频率
- C. 局部性原理(程序访问的时间与空间局部性)
- D. 磁盘的读写速度
7.流水线方式下,若某指令流水线分为取指、分析、执行三段,各段耗时分别为 2ns、3ns、4ns,则该流水线的吞吐率理论上主要受限于( )。
- A. 各段耗时之和
- B. 耗时最长的一段(4ns)
- C. 耗时最短的一段(2ns)
- D. 指令条数
8.下列部件中,属于运算器核心组成的是( )。
- A. 程序计数器(PC)
- B. 算术逻辑单元(ALU)
- C. 指令寄存器(IR)
- D. 地址译码器
9.采用虚拟存储器的主要目的是( )。
- A. 提高 CPU 运算速度
- B. 扩大主存的逻辑存储容量
- C. 降低硬盘成本
- D. 减少 Cache 的缺页率
10.冯·诺依曼计算机结构的核心思想是( )。
- A. 数据与指令分别存储在两个独立存储器中
- B. 存储程序并按地址顺序执行
- C. 并行处理多路数据
- D. 采用分布式共享内存
三、操作系统
11.在进程调度中,可能导致"饥饿"(Starvation)现象的调度算法是( )。
- A. 先来先服务(FCFS)
- B. 时间片轮转(RR)
- C. 短进程优先(SJF)
- D. 最高响应比优先(HRRN)
12.操作系统中,进程与线程的主要区别在于( )。
- A. 进程是调度的基本单位,线程是资源分配的基本单位
- B. 线程是资源分配的基本单位,进程是调度的基本单位
- C. 同一进程内的线程共享地址空间,而不同进程拥有独立的地址空间
- D. 线程之间不能通信
13.在分页存储管理中,若页面大小为 4KB,逻辑地址为 0x0000 1234,则其页内偏移量为( )。
- A. 0x0000
- B. 0x1234
- C. 0x0012
- D. 0x0123
14.系统中有 3 个并发进程竞争某类资源,每个进程最多需要 2 个该类资源,则系统不发生死锁所需的最少资源数为( )。
- A. 3
- B. 4
- C. 5
- D. 6
15.下列不属于操作系统中文件目录管理作用的是( )。
- A. 实现"按名存取"
- B. 提高文件检索效率
- C. 实现文件共享与保护
- D. 直接决定磁盘的物理转速
四、程序设计语言与编译
16.编译程序的下列阶段中,与目标机器直接相关的是( )。
- A. 词法分析
- B. 语法分析
- C. 中间代码生成
- D. 代码优化与目标代码生成
17.采用"后缀表达式(逆波兰式)"表示表达式的主要优点是( )。
- A. 便于人的阅读
- B. 不需要括号即可唯一确定运算次序,便于编译处理
- C. 能减少源程序的长度
- D. 只能用于整数运算
18.下列关于解释程序与编译程序的叙述,正确的是( )。
- A. 解释程序先生成目标代码再执行
- B. 编译程序逐句解释源程序边解释边执行
- C. 解释程序不生成目标代码文件,执行效率通常低于编译方式
- D. 两者都要求源代码编译成机器码后才能运行
19.在 C 语言中,sizeof(int)的值在 32 位编译环境下通常为( )。
- A. 2
- B. 4
- C. 8
- D. 由操作系统位数决定,与编译器无关
20.下列属于脚本(解释型)语言的是( )。
- A. C++
- B. Java
- C. Python
- D. Visual C++
五、数据结构与算法
21.对长度为 n 的顺序表进行顺序查找,查找成功的平均查找长度(ASL)为( )。
- A. n
- B. n/2
- C. (n+1)/2
- D. log₂n
22.一棵完全二叉树共有 1001 个结点,则其叶子结点数为( )。
- A. 500
- B. 501
- C. 500 或 501
- D. 无法确定
23.对含有 n 个元素的序列进行快速排序,其最坏情况下的时间复杂度为( )。
- A. O(n)
- B. O(n log n)
- C. O(n²)
- D. O(log n)
24.下列关于栈和队列的说法中,错误的是( )。
- A. 栈是后进先出(LIFO)结构
- B. 队列是先进先出(FIFO)结构
- C. 栈和队列都只能在线性表的端点进行插入/删除
- D. 递归调用过程中的现场保护通常使用队列
25.图的深度优先遍历(DFS)所依赖的辅助数据结构是( )。
- A. 队列
- B. 栈(或系统递归栈)
- C. 哈希表
- D. 堆
26.在哈希查找中,产生"冲突"的原因是( )。
- A. 关键字太少
- B. 哈希函数将不同的关键字映射到同一地址
- C. 表长度过大
- D. 关键字的类型不同
27.采用二分查找的前提条件是( )。
- A. 线性表无需有序
- B. 线性表必须采用顺序存储且按关键字有序
- C. 线性表必须采用链式存储
- D. 表内元素不能重复
六、数据库
28.关系数据库中,用于表示"实体"及其"联系"并转换为关系模式时,一个多对多联系一般转换为( )。
- A. 一个独立的关系模式
- B. 并入某一实体的关系模式
- C. 两个关系模式
- D. 视情况合并到任意一方
29.有关系R(A,B,C),查询"所有属性值都大于 10 的元组"应使用的操作为( )。
- A. 投影 π
- B. 选择 σ
- C. 连接 ⋈
- D. 并 ∪
30.设关系模式SC(学号, 姓名, 课程号, 课程名, 成绩),其中学号为主键。该模式存在的问题是( )。
- A. 不存在冗余,满足 3NF
- B. 存在部分函数依赖(如姓名仅依赖于学号),不满足 2NF
- C. 存在传递函数依赖,不满足 3NF
- D. 完全符合 BCNF
31.事务的原子性(Atomicity)是指( )。
- A. 事务一旦提交,其对数据库的修改是持久的
- B. 事务中的所有操作要么全部执行,要么全部不执行
- C. 并发事务之间互不干扰
- D. 事务的隔离级别为可重复读
32.在数据库的三级模式结构中,用户面对并操作的是( )。
- A. 外模式(子模式 / 用户模式)
- B. 概念模式
- C. 内模式
- D. 物理模式
七、计算机网络
33.OSI 参考模型自下而上的顺序中,位于"网络层"与"传输层"之间、负责可靠传输的是( )。
- A. 物理层
- B. 数据链路层
- C. 传输层
- D. 应用层
34.在 TCP/IP 协议族中,负责将 IP 地址转换为物理(MAC)地址的协议是( )。
- A. IP
- B. ARP
- C. ICMP
- D. TCP
35.私有 IP 地址192.168.1.10所属的地址类别为( )。
- A. A 类
- B. B 类
- C. C 类
- D. D 类
36.某 C 类网络划分子网后,子网掩码为255.255.255.240,则该子网最多可容纳的主机数为( )。
- A. 14
- B. 16
- C. 30
- D. 62
37.下列关于路由协议的说法中,属于内部网关协议(IGP)的是( )。
- A. BGP
- B. RIP 与 OSPF
- C. DNS
- D. FTP
八、多媒体技术
38.对声音信号进行数字化时,采样频率应不低于信号最高频率的( )倍,才能不失真地恢复原信号(奈奎斯特定理)。
- A. 1
- B. 2
- C. 4
- D. 8
39.一幅 1024×768、24 位真彩色的未压缩位图,其数据量约为( )。
- A. 1.5 MB
- B. 2.25 MB
- C. 4.5 MB
- D. 9 MB
40.MPEG 视频压缩标准中,利用相邻帧之间的时间冗余所采用的帧类型不包括( )。
- A. I 帧(帧内编码帧)
- B. P 帧(预测帧)
- C. B 帧(双向预测帧)
- D. R 帧(冗余帧)
九、软件工程与项目管理
41.软件生命周期中,明确"软件要做什么、不做什么"的阶段是( )。
- A. 可行性分析
- B. 需求分析
- C. 概要设计
- D. 详细设计
42.在 CMM(能力成熟度模型)中,标记"软件过程已文档化且可重复"的成熟度等级为( )。
- A. 初始级(1 级)
- B. 可重复级(2 级)
- C. 已定义级(3 级)
- D. 优化级(5 级)
43.UML 中,用于描述系统用例与参与者之间关系的图是( )。
- A. 类图
- B. 用例图
- C. 序列图
- D. 部署图
44.在软件开发项目管理中,关键路径(Critical Path)的含义是( )。
- A. 耗时最短的活动序列
- B. 决定项目最早完成时间的活动序列
- C. 包含资源最多的活动序列
- D. 风险最高的活动序列
45.软件测试中,先对每个模块单独测试,再逐步把模块组装起来进行测试的策略称为( )。
- A. 自底向上测试
- B. 单元测试与集成测试的组合策略
- C. 系统测试
- D. 验收测试
十、软件设计方法与技术
46.模块间耦合程度由低到高,下列顺序正确的是( )。
- A. 数据耦合 < 控制耦合 < 公共耦合 < 内容耦合
- B. 内容耦合 < 公共耦合 < 控制耦合 < 数据耦合
- C. 控制耦合 < 数据耦合 < 内容耦合 < 公共耦合
- D. 公共耦合 < 数据耦合 < 内容耦合 < 控制耦合
47.下列设计模式中,属于创建型模式的是( )。
- A. 策略(Strategy)
- B. 单例(Singleton)
- C. 观察者(Observer)
- D. 装饰(Decorator)
48.采用"适配器(Adapter)"设计模式的意图是( )。
- A. 将一个类的接口转换成客户希望的另一个接口
- B. 动态地为对象添加职责
- C. 定义算法家族并使其可相互替换
- D. 保证一个类仅有一个实例
49.面向对象设计中,"高内聚、低耦合"原则在包(Package)划分中的体现是( )。
- A. 尽可能把所有类放进一个包
- B. 把功能相关、协作紧密的类放在同一包内,减少包间依赖
- C. 每个类单独一个包
- D. 包与包之间必须完全独立、互不引用
50.在数据流图(DFD)中,用于描述系统加工所依据的、只读的静态数据的符号是( )。
- A. 加工
- B. 数据流
- C. 外部实体
- D. 数据存储
十一、标准化、信息安全与法律法规
51.某程序员在本单位任职期间完成的、主要利用单位物质技术条件开发的软件,其软件著作权的归属一般为( )。
- A. 程序员个人
- B. 该单位(职务作品)
- C. 双方共有
- D. 视为公有领域
52.下列属于对称(私钥)加密算法的是( )。
- A. RSA
- B. AES
- C. ECC
- D. ElGamal
53.数字签名的主要作用是( )。
- A. 加密明文内容使其不可读
- B. 提供数据的完整性、真实性(身份认证)与抗抵赖性
- C. 压缩数据体积
- D. 提高传输速率
54.在信息安全中,通过向目标系统发送大量请求使其无法提供正常服务,这类攻击称为( )。
- A. 木马攻击
- B. 拒绝服务攻击(DoS)
- C. 中间人攻击
- D. 钓鱼攻击
55.《中华人民共和国著作权法》保护的对象是( )。
- A. 思想、构思本身
- B. 思想的表达形式(作品)
- C. 算法、数学公式本身
- D. 商业方法
十二、信息化与计算机应用基础
56.下列关于信息化的说法,不正确的是( )。
- A. 信息化是充分利用信息技术改造传统产业、促进经济社会发展的过程
- B. 企业信息化包括生产过程、管理过程的信息化
- C. 信息化与数据安全无关
- D. 国家信息化体系包括信息资源、信息网络、信息技术应用等要素
57.下列不属于电子政务主要功能的是( )。
- A. 政府信息公开
- B. 在线办事服务
- C. 互动交流与监管
- D. 替代全部人工行政决策
58.云计算中,向用户提供可直接使用的软件应用服务的模式称为( )。
- A. IaaS
- B. PaaS
- C. SaaS
- D. DaaS
十三、专业英语(阅读理解)
59.阅读下列英文段落,选择正确的理解:
“The software design phase translates the requirements into a blueprint for constructing the software. The design should specify the overall architecture, the modules, their interfaces, and the algorithms used. Good design promotes maintainability and reduces development risk.”
- A. 设计阶段将需求转化为软件构造的蓝图,应规定总体架构、模块、接口及所用算法
- B. 设计阶段只负责编写代码
- C. 设计阶段与维护性无关
- D. 设计阶段增加开发风险
60.单词 “encapsulation” 在面向对象语境中最恰当的中文含义是( )。
- A. 继承
- B. 多态
- C. 封装
- D. 抽象
科目二:软件设计(问答题)
说明:本科目依据《软件设计》科目考试内容,采用问答题形式,综合考查数据流图设计、数据库设计、面向对象设计与算法设计能力。请认真审题、按要求作答。
试题一:数据流图(DFD)设计(共 15 分)
某"图书借阅管理系统"的业务描述如下:
读者向系统提交借书请求,系统根据读者借阅情况与图书库存判断是否允许借阅;允许则登记借阅记录并更新库存,同时向读者返回借阅成功信息;拒绝则向读者返回拒绝原因。图书管理员负责维护图书信息和读者信息,并处理读者归还的图书,归还时更新借阅记录与库存。
1.(4 分)绘制该系统的顶层数据流图(0 层上下文图),标明外部实体、数据流及系统名称。
2.(6 分)绘制系统的1 层数据流图,划分出主要加工(至少包含:借阅处理、归还处理、图书信息管理、读者信息管理),并标注各加工之间的数据流名称。
3.(5 分)为数据流"借阅请求"和"借阅记录"各编制一条数据字典条目,格式应包含:数据项名、类型、长度、取值范围、说明等。
试题二:数据库设计(共 20 分)
某高校选课系统涉及以下实体与联系:
- 学生:学号、姓名、院系、年级
- 课程:课程号、课程名、学分、任课教师
- 一名学生可选修多门课程,一门课程可被多名学生选修;每个学生选修某门课程产生"成绩"。
1.(5 分)画出该系统的E-R 图,注明实体、属性和联系类型(1:1、1:n、m:n)。
2.(6 分)将 E-R 图转换为关系模式,写出每个关系模式的主键(用下划线标注)和外键。
3.(5 分)用 SQL 语句实现:建立"选课"关系表(含成绩字段),并设置主键与外键约束。
4.(4 分)判断关系模式"选课(学号, 课程号, 成绩)"是否满足 3NF,说明理由。
试题三:面向对象设计(共 20 分)
某"图形绘制系统"中,需要支持绘制圆形(Circle)、矩形(Rectangle)、三角形(Triangle),后续还可能扩展新图形。系统希望使用统一的绘制接口,并能动态地在图形上增加"阴影""边框"等装饰效果。
1.(6 分)请基于抽象工厂模式或工厂方法模式设计图形对象的创建机制,画出相应的UML 类图(可含接口 Shape、具体图形类、工厂类等)。
2.(6 分)结合"装饰模式(Decorator)“,设计"阴影”"边框"装饰类,画出 UML 类图,并说明装饰模式相对于"为每个图形直接增加属性/方法"的优势。
3.(8 分)用 Java 或 C++ 给出核心代码实现:
- 抽象图形接口
Shape(含draw()方法); - 两个具体图形类;
- 装饰器基类与两个具体装饰类;
- 编写一段客户端代码,演示"绘制带阴影的圆形"。
试题四:算法设计与程序填空(共 25 分)
某数组a[0..n-1]待升序排序。下面给出的是快速排序的递归实现(C 语言,部分空缺)。
voidQuickSort(inta[],intlow,inthigh){intpivotpos;if(low<high){pivotpos=Partition(a,low,high);// 划分,返回基准最终位置QuickSort(a,low,pivotpos-1);// (1)QuickSort(a,pivotpos+1,high);// (2)}}intPartition(inta[],intlow,inthigh){intpivot=a[low];// 以 a[low] 为基准while(low<high){while(low<high&&a[high]>=pivot)high--;// (3)a[low]=a[high];while(low<high&&a[low]<=pivot)low++;// (4)a[high]=a[low];}a[low]=pivot;// (5)returnlow;}1.(4 分)结合注释,说明Partition函数的作用及算法思想。
2.(4 分)分析该快速排序算法平均时间复杂度与最坏时间复杂度,并指出最坏情况发生的场景。
3.(5 分)说明该排序算法的空间复杂度(含递归调用栈),并分析其是否稳定排序。
4.(6 分)设数组a[] = {49, 38, 65, 97, 76, 13, 27},请手工模拟第一次Partition(a, 0, 6)的完整执行过程,写出每一步数组的变化,并给出划分后基准 49 的最终位置。
5.(6 分)若要改为非递归实现,应使用何种辅助数据结构?简述思路并给出关键代码片段。
试题五:软件工程与项目管理综合(共 20 分)
某电商系统项目的部分活动及其依赖关系与工期如下表:
| 活动 | 前置活动 | 工期(天) |
|---|---|---|
| A | — | 5 |
| B | A | 7 |
| C | A | 4 |
| D | B | 6 |
| E | B、C | 3 |
| F | D、E | 8 |
| G | E | 2 |
1.(6 分)绘制该项目的网络计划图(AON 结点图或箭线图均可)。
2.(6 分)计算每条路径的总工期,指出关键路径及其总工期。
3.(4 分)若活动 D 的工期由 6 天延长至 10 天,关键路径是否改变?项目总工期变为多少?
4.(4 分)说明项目经理为缩短总工期通常可采用的两类措施(时间—成本平衡、快速跟进等),并各举一例。
附:参考答案与要点
建议先独立作答后再对照。以下为要点性参考答案。
科目一选择题参考答案
| 题号 | 答案 | 题号 | 答案 | 题号 | 答案 | 题号 | 答案 | 题号 | 答案 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | B | 13 | B | 25 | B | 37 | B | 49 | B |
| 2 | A | 14 | B | 26 | B | 38 | B | 50 | D |
| 3 | A | 15 | D | 27 | B | 39 | B | 51 | B |
| 4 | A | 16 | D | 28 | A | 40 | D | 52 | B |
| 5 | C | 17 | B | 29 | B | 41 | B | 53 | B |
| 6 | C | 18 | C | 30 | B | 42 | B | 54 | B |
| 7 | B | 19 | B | 31 | B | 43 | B | 55 | B |
| 8 | B | 20 | C | 32 | A | 44 | B | 56 | C |
| 9 | B | 21 | C | 33 | C | 45 | B | 57 | D |
| 10 | B | 22 | B | 34 | B | 46 | A | 58 | C |
| 11 | C | 23 | C | 35 | C | 47 | B | 59 | A |
| 12 | C | 24 | D | 36 | A | 48 | A | 60 | C |
说明:第 14 题用"每个进程最多申请 2 个、总进程 3 个"判定死锁——3 个进程各自已占用 1 个时,再分配 1 个即可让任一进程满足需求,故最少 4 个资源即可避免死锁。第 22 题完全二叉树 1001 结点,度为 2 的结点数 n₂ = (1001-1)/2 = 500,叶子 n₀ = n₂ + 1 = 501。第 36 题掩码 255.255.255.240,主机位 4 位,可用主机 2⁴ - 2 = 14。
科目二问答题要点
试题一要点
- 顶层图:外部实体为「读者」「图书管理员」,系统为「图书借阅管理系统」,数据流包括借书请求、借阅结果、归还信息、图书/读者维护信息等。
- 1 层图加工:借阅处理、归还处理、图书信息管理、读者信息管理;涉及数据存储(图书表、读者表、借阅记录表)。
- 数据字典示例:
- 借阅请求 = 读者编号 + 图书编号 + 借阅日期 + 借阅数量;类型为字符串/数值组合。
- 借阅记录 = 读者编号 + 图书编号 + 借阅日期 + 归还日期 + 状态;其中状态取值范围 {在借, 已还}。
试题二要点
- E-R 图:学生、课程为实体,学生—课程为m:n联系,联系属性含"成绩"。
- 关系模式:
- 学生(学号, 姓名, 院系, 年级),主键:学号;
- 课程(课程号, 课程名, 学分, 任课教师),主键:课程号;
- 选课(学号, 课程号, 成绩),主键:(学号, 课程号),外键:学号、课程号。
- SQL:
CREATETABLE选课(学号VARCHAR(10),课程号VARCHAR(10),成绩INT,PRIMARYKEY(学号,课程号),FOREIGNKEY(学号)REFERENCES学生(学号),FOREIGNKEY(课程号)REFERENCES课程(课程号)); - 选课(学号, 课程号, 成绩)中,候选键为 (学号, 课程号),成绩完全函数依赖候选键,且不存在传递依赖,满足 3NF(且满足 BCNF)。
试题三要点
- 采用抽象工厂/工厂方法:定义接口
Shape(draw()),具体图形类Circle、Rectangle、Triangle实现之;工厂类负责按需创建图形对象,便于扩展新图形。 - 装饰模式:定义
ShapeDecorator装饰基类(持有Shape引用),派生ShadowDecorator、BorderDecorator,在draw()前/后附加装饰逻辑。优势:遵循开闭原则,无须修改已有图形类即可动态组合多种装饰。 - 核心代码要点:接口
Shape、两个具体图形、装饰基类与两个装饰类、客户端演示"绘制带阴影的圆形"。
试题四要点
Partition以a[low]为基准,一趟划分将小于基准的元素移到左侧、大于基准的元素移到右侧,返回基准最终下标。- 平均 O(n log n),最坏 O(n²)(输入已有序或基本有序且每次基准为最值时)。
- 空间复杂度平均 O(log n)(递归栈),最坏 O(n);不稳定(相等元素相对次序可能改变)。
- 模拟一趟划分:以 49 为基准,最终 49 处于第 4 个位置(下标 3),数组变为
{27, 38, 13, 49, 76, 97, 65}(示例顺序,需逐步写出)。 - 用栈模拟递归,将 (low, high) 区间入栈,循环划分并入栈左右子区间。
试题五要点
- 网络图略(见下文路径推导)。
- 路径:
- A→B→D→F:5+7+6+8 = 26
- A→B→E→F:5+7+3+8 = 23
- A→B→E→G:5+7+3+2 = 17
- A→C→E→F:5+4+3+8 = 20
- A→C→E→G:5+4+3+2 = 14
- 关键路径为A→B→D→F,总工期26 天。
- 若 D 延长至 10 天:A→B→D→F = 5+7+10+8 = 30,仍为最长,关键路径不变(仍为 A→B→D→F),总工期变为30 天。
- 措施举例:
- 时间—成本平衡(赶工):对关键路径上的活动增加资源以压缩工期,如对 F 增加人力;
- 快速跟进(Fast Tracking):将原本串行的活动并行化,如 D 与 E 并行开展。
备考提示:软件设计师考试分上、下午两场。上午题(科目一)覆盖面广,重在理解与记忆;下午题(科目二)重在动手设计,建议结合真题练习数据流图、E-R 图、UML 与算法填空。祝考试顺利!