计算机技术与软件专业技术资格(软件设计师) 练习卷

中级 | 50 题 | 姓名:__________ 得分:______

返回题库 隐藏答案 15 题30 题50 题100 题

1在软件设计阶段使用UML对系统进行建模时,若需要强调对象之间按时间顺序的消息交互并体现生命线激活期,应优先选用哪种图

  1. A. 时序图
  2. B. 通信图
  3. C. 状态图
  4. D. 活动图

2某工程师在评审中发现一段代码用继承实现“日志输出到文件”和“日志输出到控制台”的差异,但运行时又需要动态组合格式与输出目标,较合适的重构方向是

  1. A. 将输出目标与格式分别抽象,用组合方式在运行时装配
  2. B. 继续增加继承层次,为每种格式和目标组合建立子类
  3. C. 把输出目标和格式都写成静态常量分支
  4. D. 把日志类改为单例并直接在内部判断输出目标

3在关系数据库中,若关系R(A,B,C)上存在函数依赖A→B和B→C,则根据Armstrong公理可以推出A→C,这一推理过程使用的规则是

  1. A. 自反律
  2. B. 增广律
  3. C. 传递律
  4. D. 分解律

4某公司开发一套在线考试系统,考试期间大量考生同时提交试卷,系统需要保证提交请求先到先处理且不丢失,此时在服务端最适合采用的缓冲机制是

  1. A. 使用内存变量直接覆盖保存最新提交
  2. B. 将提交请求写入消息队列后由消费者顺序处理
  3. C. 将提交请求直接写入前端浏览器本地缓存
  4. D. 对提交请求加随机延迟后直接写数据库

5在进程调度中,若采用时间片轮转算法且时间片设置过大,其实际效果会退化为

  1. A. 先来先服务
  2. B. 短作业优先
  3. C. 最高响应比优先
  4. D. 多级反馈队列

6某系统中订单服务在创建订单后必须同时通知库存服务扣减库存,若扣减失败则订单创建回滚,设计时最应优先保证的架构属性是

  1. A. 可修改性
  2. B. 一致性
  3. C. 可用性
  4. D. 可测试性

7在面向对象设计中,若子类覆盖父类方法时扩大了方法的前置条件,则违反了

  1. A. 里氏替换原则
  2. B. 开闭原则
  3. C. 依赖倒置原则
  4. D. 接口隔离原则

8在面向对象设计中,若子类覆盖了父类的方法,且子类方法中通过super调用父类同名方法后再增加新行为,这种复用方式属于

  1. A. 委托复用
  2. B. 继承复用
  3. C. 组合复用
  4. D. 参数化复用

9某项目采用面向对象方法设计订单模块,需求要求新增一种促销折扣类型时尽量不修改已有订单计算代码,仅通过增加新类并注册即可生效,这主要体现了哪种设计原则

  1. A. 开闭原则
  2. B. 里氏替换原则
  3. C. 接口隔离原则
  4. D. 单一职责原则

10某项目使用瀑布模型开发,在编码阶段发现需求规格说明书中存在重大遗漏,最合理的处置方式是

  1. A. 继续编码并在维护阶段补充
  2. B. 立即修改需求并重新评审后续设计
  3. C. 直接按现有设计完成编码
  4. D. 记录问题待项目结束后统一处理

11某项目在需求分析阶段发现用户对“响应时间”的要求为“大多数操作应在 1 秒内完成”,设计人员应优先将该需求转化为下列哪种可验证的表述

  1. A. 95% 的用户操作响应时间不超过 1 秒
  2. B. 所有操作响应时间均不超过 1 秒
  3. C. 平均响应时间不超过 1 秒
  4. D. 响应时间尽量控制在 1 秒左右

12在软件设计过程中,用于描述系统中对象之间消息传递顺序、强调时间次序的UML图是

  1. A. 时序图
  2. B. 协作图
  3. C. 状态图
  4. D. 活动图

13某项目中需求方频繁变更界面布局,但核心业务规则稳定,从降低变更影响角度最适宜采用的架构策略是

  1. A. 将界面表示与业务逻辑分层隔离
  2. B. 把所有界面元素写成配置文件统一管理
  3. C. 要求需求方冻结界面需求后再开发
  4. D. 让界面代码直接调用数据库存储过程

14在软件设计过程中,将系统划分为多个模块后,若要求每个模块的内部功能联系紧密而模块之间联系尽量少,这体现了哪种设计原则

  1. A. 高内聚低耦合
  2. B. 高耦合低内聚
  3. C. 模块独立性与信息隐藏
  4. D. 抽象与逐步求精

15某模块的圈复杂度为 6,则其独立路径条数至少为

  1. A. 5
  2. B. 6
  3. C. 7
  4. D. 8

16在UML中描述一个对象在生命周期内经历的状态及状态间迁移,并强调事件触发迁移的图是

  1. A. 活动图
  2. B. 状态图
  3. C. 序列图
  4. D. 协作图

17某开发人员在修改一个大型遗留系统时,发现需要改动的模块被多个上层模块调用,为降低修改影响范围,最应先采取的措施是

  1. A. 直接修改该模块并重新编译整个系统
  2. B. 先为该模块补充接口文档再修改
  3. C. 先分析该模块的扇出与扇入并评估影响
  4. D. 将该模块复制一份供新功能使用

18某项目采用增量模型开发,在第一个增量交付后用户提出对已交付部分的接口进行调整,最恰当的处置是

  1. A. 拒绝变更并说明需求已冻结
  2. B. 将变更纳入下一个增量的计划统一处理
  3. C. 立即停止后续增量开发重新做全部需求分析
  4. D. 把变更直接并入当前增量并跳过回归测试

19某开发人员在实现单例模式时,将构造函数声明为 public,并在每次获取实例时直接 new 一个新对象返回,该实现最主要的问题是

  1. A. 无法保证全局唯一实例
  2. B. 会造成构造函数递归调用
  3. C. 会导致类无法被继承
  4. D. 会使实例方法无法被调用

20某在线支付系统在高峰期出现订单重复扣款,经查扣款接口被客户端重试调用多次,且接口未做幂等控制,在接口层面最应优先补充的机制是

  1. A. 为每笔请求分配唯一请求号并在服务端去重
  2. B. 将扣款接口改为同步阻塞调用
  3. C. 把扣款金额拆分为多次小额扣款
  4. D. 在客户端增加重试次数上限

21在数据库设计中,若关系模式R已满足第三范式,但某非主属性对码存在传递依赖,则R至少应进一步规范到

  1. A. 第一范式
  2. B. 第二范式
  3. C. 第三范式
  4. D. BC范式

22在关系数据库设计中,若某关系模式已达到第三范式,但仍存在非主属性对候选键的部分依赖,则该模式实际上?

  1. A. 尚未达到第二范式
  2. B. 已达到BCNF
  3. C. 已达到第四范式
  4. D. 已达到第五范式

23某系统采用数据库主从复制,读多写少,某次从库查询返回了刚写入主库但尚未同步的数据缺失,最可能的原因是?

  1. A. 主从复制存在延迟
  2. B. 从库磁盘空间不足
  3. C. 主库事务隔离级别过低
  4. D. 从库索引损坏

24已知一棵二叉树的先序遍历序列为ABDECF,中序遍历序列为DBEAFC,则该二叉树的后序遍历序列为

  1. A. DEBFCA
  2. B. DEBCFA
  3. C. DBEFCA
  4. D. EDBFCA

25在软件维护过程中,下列活动属于改正性维护范畴的有(多选)

  1. A. 修复生产环境因空指针导致的订单提交失败
  2. B. 修正报表金额计算中四舍五入逻辑错误
  3. C. 为适应新税率政策调整计费模块
  4. D. 为提高查询速度重写索引结构

26某项目在需求分析阶段发现用户对同一业务术语存在多种理解,最应优先产出的文档是

  1. A. 数据流图
  2. B. 数据字典
  3. C. 项目进度计划
  4. D. 模块结构图

27在结构化分析方法中,数据流图的分层展开应遵循父图与子图平衡原则,下列做法中符合该原则的是

  1. A. 子图中新增一条父图中没有的输入数据流以细化处理
  2. B. 父图某加工的一个输入流在子图中对应为两个加工的共同输入
  3. C. 子图把父图中的一个数据存储拆成两个同名但不同编号的存储
  4. D. 父图某输出的数据流在子图中被合并到另一个输出的数据流中

28某项目在敏捷开发中采用Scrum,冲刺评审会上产品负责人提出新增需求,团队当前冲刺还剩三天且已接近完成原定目标,最符合Scrum实践的处理方式是

  1. A. 由团队评估后把新需求纳入当前冲刺并调整任务
  2. B. 由产品负责人把新需求放入产品待办列表并排优先级
  3. C. 由Scrum Master直接分配新需求给空闲成员并行开发
  4. D. 由团队延长当前冲刺以保证新需求与原目标同时完成

29在关系数据库设计中,若某关系模式存在非主属性对码的部分函数依赖,则该模式至少不满足

  1. A. 第一范式
  2. B. 第二范式
  3. C. 第三范式
  4. D. BC范式

30在软件设计阶段使用模块化方法时,若一个模块的内聚类型为“时间内聚”,则该模块内部的各个处理元素之间的关联特征是

  1. A. 各处理元素按固定先后顺序执行且前一个输出作为后一个输入
  2. B. 各处理元素因需要在同一时间段内执行而被组织在一起
  3. C. 各处理元素都围绕同一数据结构中的某个数据项进行操作
  4. D. 各处理元素共同完成一个明确的功能且缺一不可

31在软件维护中,为了改进软件未来可维护性而对代码进行重构,但不改变软件外部可观察行为,这种维护类型属于

  1. A. 纠正性维护
  2. B. 适应性维护
  3. C. 完善性维护
  4. D. 预防性维护

32某项目采用增量模型开发,在第三个增量交付后发现前两个增量的接口定义存在冲突,最应该优先检查的配置项是

  1. A. 需求跟踪矩阵
  2. B. 接口控制文档
  3. C. 测试用例库
  4. D. 项目进度计划

33在软件维护中,为适应外部环境变化而修改软件的活动属于

  1. A. 纠正性维护
  2. B. 适应性维护
  3. C. 完善性维护
  4. D. 预防性维护

34在面向对象设计中,若子类覆盖父类方法后,父类引用调用该方法时执行子类实现,这体现了

  1. A. 封装
  2. B. 继承
  3. C. 多态
  4. D. 抽象

35在UML中描述一个对象在生命周期内经历的状态以及引起状态转移的事件,应优先选用

  1. A. 状态图
  2. B. 活动图
  3. C. 序列图
  4. D. 协作图

36某系统采用观察者模式实现事件通知,当被观察对象状态改变时需要通知多个观察者,若通知过程中某观察者抛出异常,较合理的处理策略是

  1. A. 捕获异常并继续通知其余观察者
  2. B. 立即终止通知并回滚被观察对象状态
  3. C. 忽略异常并直接返回成功
  4. D. 将异常包装后重新抛出并中断整个调用链

37某系统采用UML进行建模,若要描述对象在生命周期内响应外部事件时状态迁移及触发动作,应优先选用

  1. A. 状态图
  2. B. 用例图
  3. C. 类图
  4. D. 部署图

38在UML中,若需要表达一个类在运行期间与另一个类存在整体与部分关系,且部分可以独立于整体存在,应使用下列哪种关系

  1. A. 聚合
  2. B. 组合
  3. C. 泛化
  4. D. 依赖

39在编译原理中,若某文法产生式形如A→αBβ且B→γ,则对该产生式进行自顶向下语法分析时可能遇到的核心问题是

  1. A. 左递归导致无限递归
  2. B. 回溯导致效率低下
  3. C. 移进归约冲突
  4. D. 算符优先关系不唯一

40某项目采用白盒测试,要求设计测试用例使程序中每个判定表达式的每个条件都至少取一次“真”和一次“假”,这种覆盖标准是

  1. A. 语句覆盖
  2. B. 判定覆盖
  3. C. 条件覆盖
  4. D. 路径覆盖

41某系统采用UML进行面向对象建模,需要表达一个“订单”对象在创建后随支付、发货、收货等事件发生的状态迁移及触发条件,应优先选用

  1. A. 状态图
  2. B. 用例图
  3. C. 协作图
  4. D. 包图

42在软件维护过程中,为了修复因需求理解偏差导致的功能错误而进行的修改,属于

  1. A. 纠正性维护
  2. B. 适应性维护
  3. C. 完善性维护
  4. D. 预防性维护

43某系统中多个进程需要共享一个打印机,若允许多个进程同时进入打印临界区,最可能出现的后果是

  1. A. 打印结果交错混乱,输出不可预期
  2. B. 进程因等待打印机而全部死锁
  3. C. 打印机驱动程序被自动卸载
  4. D. 临界区代码被操作系统禁止执行

44在关系数据库模式设计中,若关系R(A,B,C)上存在函数依赖A→B、B→C,则R至少属于

  1. A. 第二范式
  2. B. 第一范式
  3. C. 第三范式
  4. D. BC范式

45在软件需求分析与建模过程中,下列活动属于需求获取阶段应完成的工作有(多选)

  1. A. 与客户面谈并记录业务目标与约束
  2. B. 分析现有系统的文档与业务流程
  3. C. 编写详细设计类图并确定类间关联
  4. D. 建立用例模型描述系统与参与者交互
  5. E. 编写程序代码验证需求可行性

46某项目采用增量模型开发,第一个增量交付后用户提出基础架构需大改,导致后续增量返工严重,最可能的原因是

  1. A. 未在早期增量中确定核心架构
  2. B. 增量划分时按功能数量平均分配
  3. C. 每个增量都进行了独立测试
  4. D. 用户参与了第一个增量的评审

47在 UML 中描述一个对象在生命周期内响应事件时所经历的状态序列及状态转移,应优先选用

  1. A. 状态图
  2. B. 活动图
  3. C. 协作图
  4. D. 部署图

48采用贪心策略求解活动安排问题时,先将活动按结束时间递增排序,再依次选择与已选活动相容的活动,该策略能得到最优解的关键性质是

  1. A. 问题具有最优子结构和贪心选择性质
  2. B. 问题具有重叠子问题和无后效性
  3. C. 问题满足拟阵的交换性但不满足遗传性
  4. D. 问题满足动态规划的最优性原理但不满足贪心选择

49在软件测试中,若某程序输入变量 x 的取值范围是 1≤x≤100,采用边界值分析法设计测试用例时,除 1 和 100 外还应优先选取

  1. A. 0 和 101
  2. B. 2 和 99
  3. C. 50 和 51
  4. D. -1 和 102

50在UML类图中,若类A与类B之间是整体与部分关系,且部分可以脱离整体独立存在,则两者之间应建模为

  1. A. 泛化关系
  2. B. 聚合关系
  3. C. 组合关系
  4. D. 依赖关系

参考答案

  1. A 时序图按时间顺序展示对象间消息交互,并可表示激活期;通信图强调对象间链接关系而不突出时间顺序;状态图描述单个对象状态迁移…
  2. A 桥接/策略组合可将两个变化维度解耦并支持运行时装配;继续增加继承会导致类爆炸;静态常量分支难以扩展;单例内部判断仍把变化…
  3. C 知识点是函数依赖的Armstrong公理。由A→B和B→C推出A→C使用的是传递律;自反律指若Y包含于X则X→Y;增广律…
  4. B 知识点是消息队列在削峰和顺序处理中的应用。消息队列可缓冲突发请求并由消费者按顺序处理,避免请求丢失;内存变量覆盖保存会丢…
  5. A 知识点为调度算法特征。时间片过大时每个进程一次基本能运行完,轮转失去意义,等效于按到达顺序执行即先来先服务;短作业优先需…
  6. B 知识点是架构质量属性。场景强调跨服务操作要么全成功要么全回滚,核心是一致性;可修改性关注变更成本,可用性关注故障恢复,可…
  7. A 知识点是面向对象设计原则。里氏替换原则要求子类对象能替换父类对象且不破坏原有语义,扩大前置条件会削弱可替换性;开闭原则关…
  8. B 知识点为面向对象复用机制。通过继承并在子类中用super调用父类实现属于继承复用,故B正确;委托复用是持有对象并转发调用…
  9. A 开闭原则要求软件实体对扩展开放、对修改关闭,通过增加新类而不是修改既有计算代码来扩展折扣类型,正符合该原则。里氏替换原则…
  10. B 知识点是瀑布模型变更控制。需求遗漏应尽早通过变更流程修改需求并重新评审受影响的设计,因此正确。继续编码、直接完成、事后统…
  11. A 知识点是非功能需求的可验证性。正确项给出比例和阈值,便于测试验证。所有操作不超过 1 秒过于绝对且可能无法达到;平均响应…
  12. A 知识点是UML行为图的用途辨析。时序图按时间顺序展示对象间消息交互,突出消息先后;协作图强调对象之间的结构关系和消息编号…
  13. A 知识点是分层架构与变更隔离。界面易变而业务稳定时,将表示层与业务逻辑分离可把变更限制在局部;配置文件只能减少硬编码,不能…
  14. A 知识点是模块独立性度量。高内聚低耦合正是让模块内部元素关联强、模块间依赖弱的目标;高耦合低内聚与目标相反;模块独立性与信…
  15. B 知识点是 McCabe 圈复杂度含义。圈复杂度等于线性无关路径数上限,数值为 6 时独立路径条数为 6。5 是判定结点数…
  16. B 知识点是UML动态视图。状态图描述对象状态及事件驱动的迁移。活动图强调控制流与并发;序列图强调按时间顺序的消息交互;协作…
  17. C 知识点是软件维护中的影响分析。修改被多模块调用的模块前,应先分析扇入扇出评估影响范围。直接修改风险高;补文档不能降低影响…
  18. B 知识点为增量模型下的变更管理。增量模型允许分批交付并逐步完善,对已交付部分的接口调整应通过变更控制纳入后续增量计划,既响…
  19. A 知识点为单例模式的结构约束。单例模式核心是保证一个类仅有一个实例并提供全局访问点,构造函数公开且每次 new 会破坏唯一…
  20. A 知识点为分布式接口幂等性设计。重复扣款根因是重试导致同一业务被多次执行,应通过唯一请求号在服务端识别并去重,保证幂等。同…
  21. D 知识点为关系规范化。第三范式允许主属性对码的传递依赖,但要求非主属性不传递依赖于码;若仍存在非主属性对码的传递依赖,说明…
  22. A 知识点是范式判定。第二范式要求消除非主属性对候选键的部分依赖,第三范式要求消除传递依赖;若仍存在部分依赖说明连第二范式都…
  23. A 知识点是主从复制延迟。异步复制下从库可能尚未收到主库最新事务,导致读不到刚写入数据;磁盘空间、隔离级别、索引损坏均不会造…
  24. A 知识点为二叉树遍历还原。先序首元素A为根,中序中以A分左右:左子树中序DBE,右子树中序FC;继续还原得后序为DEBFC…
  25. A、B 知识点为软件维护类型。改正性维护是修复已发现的缺陷,A、B均属于修复运行中发现的错误。C项适应新政策属于适应性维护;D项…
  26. B 知识点是需求分析阶段文档的作用。数据字典用于统一和精确定义数据项、数据流、数据存储等的含义,能消除术语歧义。错误项:数据…
  27. B 知识点为数据流图父图子图平衡。平衡要求子图的所有输入输出流必须与父图对应加工的输入输出流一致,父图的一个输入流在子图中可…
  28. B 知识点为Scrum冲刺规则。冲刺期间不应加入新需求,产品负责人应将其放入产品待办列表并排序,供后续冲刺规划。错误项在冲刺…
  29. B 知识点是关系规范化。第二范式要求消除非主属性对码的部分函数依赖;第一范式只要求属性原子性;第三范式进一步消除传递依赖;B…
  30. B 知识点是模块内聚类型。时间内聚指模块内元素因必须在同一时间段内执行而聚集,如初始化模块,故B正确;A描述的是顺序内聚;C…
  31. D 知识点是软件维护分类。预防性维护指为预防未来问题、提高可维护性而修改软件,故D正确;纠正性维护针对已发现的错误;适应性维…
  32. B 知识点为软件配置管理与增量开发接口协调。接口控制文档记录各增量间接口定义与变更,是解决接口冲突的首要依据。需求跟踪矩阵用…
  33. B 知识点为软件维护类型划分。适应性维护指为适应外部环境(如操作系统、硬件、数据格式)变化而修改软件。纠正性维护修复已发现的…
  34. C 知识点是面向对象特征。多态指同一消息在不同对象上产生不同行为;封装隐藏实现;继承复用结构;抽象提取共性。
  35. A 知识点是UML动态建模图。状态图描述对象状态及事件驱动的转移,故正确;活动图强调控制流与并发活动;序列图强调按时间顺序的…
  36. A 知识点是观察者模式异常处理。为保证通知的鲁棒性,应隔离单个观察者异常并继续通知,故正确;终止通知会使其他观察者漏收;忽略…
  37. A 知识点为UML图适用场景。状态图描述对象状态、事件和迁移,适合生命周期行为建模;用例图描述系统与外部参与者的功能关系;类…
  38. A 知识点为UML类间关系。聚合表示整体与部分且部分可独立存在,故A对;组合表示部分不能独立于整体,B错;泛化是继承关系,C…
  39. A 知识点为自顶向下分析中的左递归问题。若α可推导出空串或A本身,则可能左递归导致无限递归,故A对;回溯是另一问题但非该产生…
  40. C 知识点:白盒测试的逻辑覆盖标准。正确项:条件覆盖要求每个判定中的每个条件的真假值至少出现一次。错误项:语句覆盖只要求每条…
  41. A 知识点是UML图的适用场景。状态图描述对象状态及事件驱动的迁移,适合订单生命周期,故A正确;用例图描述系统与参与者的功能…
  42. A 知识点是维护类型。修复功能错误属于纠正性维护,故A正确;适应性维护是为适应环境变化;完善性维护是增加新功能;预防性维护是…
  43. A 知识点是临界区与互斥。打印机属于独占资源,多个进程同时写会导致输出交错。错误项:同时进入不一定导致全部死锁;驱动程序不会…
  44. A 知识点是范式判定。候选键为A,非主属性B、C均完全函数依赖于A,满足2NF;但C通过B传递依赖于A,故不满足3NF和BC…
  45. A、B、D 知识点是需求工程阶段划分。需求获取包括面谈、分析现有文档、建立用例模型等;编写详细设计类图属于设计阶段,编写代码验证属于…
  46. A 知识点:增量模型风险。增量模型要求先实现核心骨架再逐步扩展,若早期增量只做外围功能而未稳定架构,后期改动会波及所有增量。…
  47. A 知识点为 UML 动态视图的选型。状态图刻画单个对象的状态与事件驱动的转移。活动图强调控制流与并发动作;协作图强调对象间…
  48. A 知识点:贪心算法适用条件。活动安排问题要求最优子结构和贪心选择性质,按结束时间最早选择可保证最优,故A正确;重叠子问题与…
  49. A 知识点:边界值分析。边界值分析关注边界及其相邻值,故除 1、100 外应取 0、101,A正确;2 和 99 是有效区间…
  50. B 知识点是UML类图中聚合与组合的语义区别。聚合表示整体与部分关系且部分可独立存在,生命周期不绑定;组合表示部分不能脱离整…