第1章软件开发概述

1软件开发概述测验

1、单选题:
‏计算机程序(简称程序)是为了解决某个特定问题而用程序设计语言描述的适合计算机处理的(    )。‍
选项:
A: 函数
B: 语句序列
C: 模块
D: 问题
答案: 【 语句序列

2、单选题:
‌软件是能够完成预定功能和性能的可执行的程序和使程序正常执行所需要的数据,加上描述软件开发过程及其管理、程序的操作和使用的有关文档,即“软件=程序+数据+(    )‌
选项:
A: 注释
B: 文档
C: 第三方库
D: 算法
答案: 【 文档

3、单选题:
‌软件按其功能划分为三种类型:(    )、支撑软件和应用软件。‎
选项:
A: 娱乐软件
B: 批处理软件
C: 音乐软件
D: 系统软件
答案: 【 系统软件

4、单选题:
‏软件按其工作方式划分为:实时处理软件、分时软件、(    )和批处理软件。‌
选项:
A: 系统软件
B: 应用软件
C: 支撑软件
D: 交互式软件
答案: 【 交互式软件

5、单选题:
‍软件按服务对象的范围划分为:项目软件(定制开发)和(    )(或通用软件)。​
选项:
A: 批处理软件
B: 产品软件
C: 系统软件
D: 交互式软件
答案: 【 产品软件

6、单选题:
‎软件的其他分类包括商业软件、(    )、共享软件等。‎
选项:
A: 系统软件
B: 应用软件
C: 开源软件
D: 私人软件
答案: 【 开源软件

7、单选题:
‎从用户的角度,软件生存周期分为下列三个阶段:(    )、获取软件、使用软件。‎
选项:
A: 设计软件
B: 测试软件
C: 维护
D: 提出需求
答案: 【 提出需求

8、单选题:
‎从软件开发者的角度,一般把软件生存周期分为定义软件、开发软件和(    )三个阶段。‏
选项:
A: 测试软件
B: 维护软件
C: 总体设计
D: 详细设计
答案: 【 维护软件

9、单选题:
‎软件设计是给出如何实现需求的决策和方案,是将系统功能分配到系统不同组成元素的过程,包括一组活动①划分需求②确定子系统③给子系统分配需求④定义子系统的功能⑤(    )。​
选项:
A: 定义子系统接口
B: 划分子系统
C: 维护子系统
D: 测试子系统
答案: 【 定义子系统接口

10、单选题:
​软件实现与通常的程序设计的主要区别是(    )。‌
选项:
A: 数据结构
B: 软件的集成与测试
C: 算法
D: 代码格式标准
答案: 【 软件的集成与测试

11、单选题:
​软件集成指的是通过(    )、消息传递、事件响应、状态改变、服务合成等机制把编程实现的各个软件单元组装在一起,形成一个更大的软件单元或可以运行的软件系统。‎
选项:
A: 统一化
B: 标准化
C: 函数调用
D: 模块化
答案: 【 函数调用

12、单选题:
​软件测试也属于实现阶段的活动,可以分为对程序基本组成单元的测试(单元测试)对软件组装结果的测试(    )、对整个软件系统的测试(系统测试),以及把软件交付给用户时的测试(验收测试)‏
选项:
A: 白盒测试
B: 黑盒测试
C: 回归测试
D: 集成测试
答案: 【 集成测试

13、单选题:
‏软件维护分为4 种类型:改正性维护、(    )、完善性维护、预防性维护。‎
选项:
A: 适应性维护
B: 测试性维护
C: 可理解性维护
D: 兼容性维护
答案: 【 适应性维护

14、单选题:
‍预防性维护是为改善软件系统的(    ),也为以后的改进奠定基础。‏
选项:
A: 可理解性
B: 可用性
C: 可维护性和可靠性
D: 可移植性
答案: 【 可维护性和可靠性

15、单选题:
‏软件可维护性可通过三个质量特性来衡量:(    )、可测试性、可修改性。‏
选项:
A: 可理解性
B: 可读性
C: 可移植性
D: 可用性
答案: 【 可理解性

16、单选题:
‎瀑布式开发过程,也叫软件生存期模型。它按照软件生命周期,把开发分为制定计划、需求分析、软件设计、程序编写、(      )和运行维护等6 个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。‌
选项:
A: 用户评价
B: 软件测试
C: 设计者评价
D: 项目经理评价
答案: 【 软件测试

17、单选题:
‍增量开发是指待开发的软件不是一次就完成的,而是把软件分成一系列(      ),完成一部分就交付一部分。​
选项:
A: 代码组
B: 函数
C: 增量
D: 模块
答案: 【 增量

18、单选题:
‏PSP(Personal Software Process)能够说明个体软件过程的原则;帮助软件工程师做出准确的计划;确定软件工程师为改善产品质量要采取的步骤;(      );确定过程的改变对软件工程师能力的影响。‌
选项:
A: 建立度量个体软件过程改善的基准
B: 确定工程师的编码风格
C: 确定工程师软件测试步骤
D: 建立合理的软件评估方案
答案: 【 建立度量个体软件过程改善的基准

19、单选题:
‍敏捷开发是应对快速变化的需求的一种软件开发能力。它以(      )为核心,采用迭代、循序渐进的方法进行软件开发。‍
选项:
A: 用户的需求进化
B: 代码质量
C: 软件功能
D: 软件容错性
答案: 【 用户的需求进化

20、单选题:
‍“软件构造”指的是通过(      )、验证、单元测试、集成测试和调试的组合,详细地创建可工作的、有意义的软件。‍
选项:
A: 详细设计
B: 总体设计
C: 编码
D: 获取需求
答案: 【 编码

21、单选题:
下列哪些模型不是迭代模型:(      )‏‍‏
选项:
A: Scrum
B: 极限编程
C: 进化式原型法
D: 瀑布模型
答案: 【 瀑布模型

22、单选题:
​软件构造的知识域分为5 个子域:软件构造基础,管理构造,实际考虑,(    ),软件构造工具。‎
选项:
A: 需求构造
B: 测试构造
C: 构造技术
D: 构造方法
答案: 【 构造技术

23、单选题:
‍除了功能的正确性,软件还要满足可靠性、可用性、(      )、可维护性等质量属性。‏
选项:
A: 可理解性
B: 可重用性
C: 可移植性
D: 可测试性
答案: 【 可移植性

24、单选题:
‌IDE 的特点是(    )、可视化和自动化。‌
选项:
A: 简介化
B: 集成化
C: 标准化
D: 多功能化
答案: 【 集成化

25、单选题:
‍命令式语言可以细分为冯·诺依曼式语言、脚本语言和(    )。‎
选项:
A: 面向对象语言
B: 过程化设计语言
C: 汇编语言
D: 机器语言
答案: 【 面向对象语言

26、多选题:
‏软件=(    )+(    )+(    )。‍
选项:
A: 程序
B: 数据
C: 文档
D: 数据结构
E: 算法
答案: 【 程序;
数据;
文档

27、多选题:
‌软件按其功能划分为三种类型:(        )​
选项:
A: 系统软件
B: 应用软件
C: 支撑软件
D: 娱乐软件
E: 实时软件
答案: 【 系统软件;
应用软件;
支撑软件

28、多选题:
‎软件按其工作方式划分为:(       )‌
选项:
A: 并行软件
B: 应用软件
C: 实时软件
D: 分时软件
E: 交互式软件
F: 批处理软件
答案: 【 实时软件;
分时软件;
交互式软件;
批处理软件

29、多选题:
​软件按服务对象的范围划分为:(    )‍
选项:
A: 应用软件
B: 民用软件
C: 项目软件
D: 专业软件
E: 产品软件
答案: 【 项目软件;
产品软件

30、多选题:
一个软件可能包含以下哪些特性:(      )‌‍‌
选项:
A: 实时特性
B: 快速响应性
C: 分时特性
D: 批处理特性
E: 交互性
答案: 【 实时特性;
分时特性;
交互性

31、多选题:
‏从用户的角度,软件生存周期分为下列三个阶段:(      )‏
选项:
A: 测试软件
B: 用户评价
C: 提出需求
D: 获取软件
E: 使用软件
答案: 【 提出需求;
获取软件;
使用软件

32、多选题:
‌从软件开发者的角度,一般把软件生存周期分为下列三个阶段:(      )​
选项:
A: 需求分析
B: 定义软件
C: 总体设计
D: 开发软件
E: 维护软件
答案: 【 定义软件;
开发软件;
维护软件

33、多选题:
‎软件测试也属于实现阶段的活动,可以分为:(    )‍
选项:
A: 单元测试
B: 集成测试
C: 系统测试
D: 验收测试
E: 黑盒测试
F: 白盒测试
答案: 【 单元测试;
集成测试;
系统测试;
验收测试

34、多选题:
‏软件维护分为4 种类型:(      )‌
选项:
A: 改正性维护
B: 适应性维护
C: 完善性维护
D: 预防性维护
E: 可用性维护
答案: 【 改正性维护;
适应性维护;
完善性维护;
预防性维护

35、多选题:
‌瀑布式开发模型的主要问题:(      )‏
选项:
A: 阶段划分僵硬,每个阶段不能缺省,而且产生大量文档,增加了工作量。
B: 逐步增加部件的方式,很容易退化为边做边改模型,从而使软件过程的控制失去整体性。
C: 由于各个部件是逐渐并入已有软件的,必须确保每次增加的部件不破坏已构造好的系统,这需要软件具备开放式的体系结构,否则系统将失去稳定的结构。
D: 开发是线性的,只有等到整个过程的末期才能见到开发成果——可运行软件,不利于快速响应变化的需求。
E: 早期的错误要等到开发后期的测试阶段才能发现,可能带来严重的后果,增加了开发的风险。
答案: 【 阶段划分僵硬,每个阶段不能缺省,而且产生大量文档,增加了工作量。;
开发是线性的,只有等到整个过程的末期才能见到开发成果——可运行软件,不利于快速响应变化的需求。;
早期的错误要等到开发后期的测试阶段才能发现,可能带来严重的后果,增加了开发的风险。

36、多选题:
‍增量开发模型的优点:(      )‎
选项:
A: 在短时间内向用户提交一个可运行软件,能够提供解决用户急用的一些功能。
B: 用户有较充分的时间学习和适应新的产品。
C: 可以使软件适应需求变化。
D: 有利于系统维护,当需求变更时,只变更部分部件,而不必影响整个系统。
E: 可以使软件具有良好的稳定性和完整性。
答案: 【 在短时间内向用户提交一个可运行软件,能够提供解决用户急用的一些功能。;
用户有较充分的时间学习和适应新的产品。;
可以使软件适应需求变化。;
有利于系统维护,当需求变更时,只变更部分部件,而不必影响整个系统。

37、多选题:
‏敏捷开发4 个核心价值观:(    )‍
选项:
A: 用最快的速度开发以满足客户需求
B: 个体和互动胜过流程和工具
C: 响应变化胜过遵循计划
D: 工作的软件胜过详尽的文档
E: 客户合作胜过合同谈判
答案: 【 个体和互动胜过流程和工具;
响应变化胜过遵循计划;
工作的软件胜过详尽的文档;
客户合作胜过合同谈判

38、多选题:
‍IDE 的特点是(    )​
选项:
A: 集成化
B: 可视化
C: 自动化
D: 多功能化
E: 简洁化
答案: 【 集成化;
可视化;
自动化

39、多选题:
高级程序语言存在不同的分类。一种划分标准是按照语言的计算模型,将高级语言分为两个大类:(    )‌
选项:
A: 过程式
B: 面向对象式
C: 声明式
D: 命令式
E: 函数式
答案: 【 声明式;
命令式

40、多选题:
​命令式语言可以细分为:(      )‏
选项:
A: 冯·诺依曼式语言
B: 脚本语言
C: 面向对象语言
D: 过程化语言
E: 机器语言
答案: 【 冯·诺依曼式语言;
脚本语言;
面向对象语言

41、判断题:
‎软件是由计算机程序和程序设计的概念发展演化过来的,是程序和程序设计发展到一定规模后并且在逐步商品化的过程中形成的。‍
选项:
A: 正确
B: 错误
答案: 【 正确

42、判断题:
计算机程序是为了解决广泛问题而用程序设计语言描述的适合计算机处理‏‍的语句序列。‏‍‏
选项:
A: 正确
B: 错误
答案: 【 错误

43、判断题:
​“软件=程序+数据”程序是软件的中枢和骨架。‎
选项:
A: 正确
B: 错误
答案: 【 错误

44、判断题:
‍软件按其功能划分为三种类型:系统软件、支撑软件和应用软件。‏
选项:
A: 正确
B: 错误
答案: 【 正确

45、判断题:
‎在计算机技术发展的早期,软件开发的主要活动就是算法研究。‏
选项:
A: 正确
B: 错误
答案: 【 错误

46、判断题:
‏从软件使用者的角度,把软件生存周期分为定义软件、开发软件和维护软件三个阶段。‏
选项:
A: 正确
B: 错误
答案: 【 错误

47、判断题:
‎软件实现是完成可以运行程序及数据的软件开发过程。‍
选项:
A: 正确
B: 错误
答案: 【 正确

48、判断题:
‍软件维护分为3 种类型。:改正性维护、适应性维护和完善性维护。‎
选项:
A: 正确
B: 错误
答案: 【 错误

49、判断题:
‍在软件生存周期中,软件维护会持续很长一段时间,甚至超过全周期的一半。​
选项:
A: 正确
B: 错误
答案: 【 正确

50、判断题:
‌瀑布式开发过程,也叫软件生存期模型。它规定自上而下、相互分离的固定次序。‍
选项:
A: 正确
B: 错误
答案: 【 错误

51、判断题:
​功能需求定义软件在抽象级别应该提供的基本功能。​
选项:
A: 正确
B: 错误
答案: 【 正确

52、判断题:
​软件测试不属于实现阶段的活动。‌
选项:
A: 正确
B: 错误
答案: 【 错误

53、判断题:
​增量开发模型的基本思想是让开发者能够从早期的开发、系统的增量、交付的版本中学到经验。​
选项:
A: 正确
B: 错误
答案: 【 正确

54、判断题:
‍敏捷开发是应对较慢速变化的需求的一种软件开发能力。‌
选项:
A: 正确
B: 错误
答案: 【 错误

55、判断题:
‍敏捷开发遵循软件开发的基本原则,如抽象、模块内聚、模块之间松散耦合、信息隐藏等。‏
选项:
A: 正确
B: 错误
答案: 【 正确

56、判断题:
‌Scrum 是一个用于开发和维持简单软件产品的框架,是一个增量的、迭代的开发过程。‏
选项:
A: 正确
B: 错误
答案: 【 错误

57、判断题:
‌如何考虑构造,在某种程度上依赖于采用的生存周期模型。​
选项:
A: 正确
B: 错误
答案: 【 正确

58、判断题:
‍构造是软件开发的中心活动。‏
选项:
A: 正确
B: 错误
答案: 【 正确

59、判断题:
‎理想的软件项目在构造后要进行仔细的需求分析和架构设计。‍
选项:
A: 正确
B: 错误
答案: 【 错误

60、判断题:
‏数据流语言的计算模型是原始函数节点上的信息元素(Tokens)流,它们到达节点后触发节点的计算。‍
选项:
A: 正确
B: 错误
答案: 【 正确

61、填空题:
‎软件按其功能划分为三种类型:支撑软件、应用软件和________软件。‍
答案: 【 系统

62、填空题:
‎图灵奖获得者沃斯(Niclaus Wirth)提出的“______________”是程序设计的精辟观点。‎
答案: 【 程序=算法+数据结构

63、填空题:
‍从用户的角度,软件生存周期分为下列三个阶段:_________、获取软件和使用软件。‎
答案: 【 需求

64、填空题:
​软件维护分为:改正性维护、适应性维护、完善性维护和__________。​
答案: 【 预防性

65、填空题:
‌Scrum是一个用于开发和维持复杂软件的框架,是一个增量的、________的开发过程。‏
答案: 【 迭代

66、填空题:
‏软件生存期模型也叫__________。‍
答案: 【 瀑布

67、填空题:
‍面向对象软件构造(动词)是运用面向对象技术开发具有_________的软件系统。‏
答案: 【 结构

68、填空题:
‌软件开发是做出决策、________和选择的问题。‍
答案: 【 权衡

69、填空题:
‏软件按其工作方式划分为:________分时软件、交互式软件和批处理软件。​
答案: 【 实时

70、填空题:
‌在计算机技术发展的早期,软件开发的主要活动就是________。‎
答案: 【 程序设计

71、填空题:
‍________识别出独立或集体满足需求的子系统。​
答案: 【 确定子系统

72、填空题:
​软件实现与通常的程序设计的主要区别是软件的________。‎
答案: 【 集成与测试

73、填空题:
‌________为适应环境的变化而进行的软件修改活动。​
答案: 【 适应性维护

74、填空题:
‎在瀑布模型中,软件开发的各项活动严格按照________方式进行。‎
答案: 【 线性

75、填空题:
‎迭代指的是不是一次性执行软件开发的全部活动,而是有计划地反复执行“______”这样一组过程。‎
答案: 【 分析-设计-编码-测试

76、填空题:
‌迭代周期的长度跟软件的开发________和规模有关系。​
答案: 【 周期

77、填空题:
​代码重构指的是改变________而不改变其行为,以便提高代码的可读性、易修改性等。​
答案: 【 程序结构

78、填空题:
‏________是软件开发的中心活动。‎
答案: 【 构造

79、填空题:
‌软件运行环境,广义上说,是一个软件运行所要求的各种条件,包括__________和硬件环境。‎
答案: 【 软件

80、填空题:
‎操作系统将计算机的硬件细节屏蔽,将计算机抽象成________。‌
答案: 【 虚拟资源

第2章模块化软件构造

2模块化软件构造测验

1、单选题:
​‌​分解的核心是()。‌​‌
选项:
A: 将问题分解的尽可能小
B: 将分解的若干小问题最终合并
C: 将问题分解的足够简单解决
D: 将多个问题、难点或关注点分离
答案: 【 将多个问题、难点或关注点分离

2、单选题:
‏()是面向方面的程序设计的核心概念。‍‏‍
选项:
A: 关注点分离
B: 确定编程方向
C: 多个问题分离
D: 难点分离
答案: 【 关注点分离

3、单选题:
‌()是把问题分解成容易理解、便于控制、便于实现的子问题的一个重要手段,是实现控制复杂性的方式。‌‌‌
选项:
A: 模块化
B: 结构化
C: 函数化
D: 面向对象
答案: 【 模块化

4、单选题:
‍在程序系统的结构中,模块是()的程序单元。‎‍‎
选项:
A: 可组合、可更换
B: 可维护
C: 可测试
D: 可修改、可理解
答案: 【 可组合、可更换

5、单选题:
‏模块具有三大特征:独立性、()、通用性​‏​
选项:
A: 可理解性
B: 可维护性
C: 互换性
D: 整洁性
答案: 【 互换性

6、单选题:
‎模块化是现代软件开发技术的一个基本原则。()是实现软件模块化的一个基本手段。​‎​
选项:
A: 文件
B: 库
C: 代码组
D: 函数
答案: 【 函数

7、单选题:
‎在模块设计中,最基本的是算法和()的设计。‍‎‍
选项:
A: 接口
B: 数据结构
C: 代码结构
D: 功能
答案: 【 数据结构

8、单选题:
‌图灵奖获得者 Wirth 提出的“()的方法,可以简化为“算法+数据结构=程序”。‎‌‎
选项:
A: 面向对象设计
B: 面向数据流设计
C: 过程化设计
D: 结构化程序设计
答案: 【 结构化程序设计

9、单选题:
‍()是计算机存储、组织数据的方式,是指相互之间存在一种或多种特定关系的数据元素的集合。‏
选项:
A: 数据结构
B: 算法 
C: 内存
D: 数据库
答案: 【 数据结构

10、单选题:
​下列四种内聚,由弱到强排序正确的是()‍​‍
选项:
A: 逻辑内聚 偶然内聚 时间内聚 过程内聚
B: 偶然内聚 逻辑内聚 过程内聚 时间内聚
C: 偶然内聚 逻辑内聚 时间内聚 过程内聚
D: 逻辑内聚 偶然内聚 过程内聚 时间内聚
答案: 【 偶然内聚 逻辑内聚 时间内聚 过程内聚

11、单选题:
‎下列内聚最强的是()‏
选项:
A: 功能内聚
B: 顺序内聚
C: 通信内聚
D: 过程内聚
答案: 【 功能内聚

12、单选题:
‍一个函数中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入,即一个函数完成多个功能,这些函数又必须顺序执行是下列哪种内聚()‏‍‏
选项:
A: 时间内聚
B: 过程内聚
C: 通信内聚
D: 顺序内聚
答案: 【 顺序内聚

13、单选题:
​下列耦合度最低的是()‎
选项:
A: 控制耦合
B: 外部耦合
C: 非直接耦合
D: 数据耦合
答案: 【 非直接耦合

14、单选题:
‌下列耦合度最强的是()‌
选项:
A: 内容耦合
B: 公共耦合
C: 外部耦合
D: 数据耦合
答案: 【 内容耦合

15、单选题:
‍一组函数都访问同一()而不是同一(),而且不是通过参数传递该全局变量的信息叫做外部耦合。‏‍‏
选项:
A: 全局简单变量 全局数据结构
B: 全局数据结构 全局简单变量
C: 公共数据环境 全局简单变量
D: 全局数据结构 公共数据环境
答案: 【 全局简单变量 全局数据结构

16、单选题:
‍一组函数都访问同一个()叫做公共耦合。‍
选项:
A: 公共数据环境
B: 全局简单变量
C: 通信区
D: 内存地址
答案: 【 公共数据环境

17、单选题:
‌下列耦合度由强到弱排序正确的是()。‍
选项:
A: 外部耦合 内部耦合 直接耦合 非直接耦合
B: 内容耦合 外部耦合 控制耦合 非直接耦合
C: 内部耦合 外部耦合 非直接耦合 直接耦合
D: 标记耦合 控制耦合 外部耦合 公共耦合
答案: 【 内容耦合 外部耦合 控制耦合 非直接耦合

18、单选题:
​一个函数通过传递开关、标志、名字等控制信息,明显地控制和选择另一函数的功能叫做()‍​‍
选项:
A: 标记耦合
B: 控制耦合
C: 外部耦合
D: 内容耦合
答案: 【 控制耦合

19、单选题:
‎若一组函数通过参数表传递记录信息,就是()​
选项:
A: 非直接耦合
B: 控制耦合
C: 标记耦合
D: 外部耦合
答案: 【 标记耦合

20、单选题:
‏一个函数直接修改另一个函数的数据,或直接转入另一个函数,或者一个函数有多个入口叫做()‏
选项:
A: 非直接耦合
B: 公共耦合
C: 外部耦合
D: 内容耦合
答案: 【 内容耦合

21、单选题:
‏测试有助于提高程序质量。编写测试可以迫使程序员从不同的角度审视程序,使得程序设计易于调用、可测试、易修改、()。‎‏‎
选项:
A: 简洁
B: 易读
C: 易维护
D: 易理解
答案: 【 易维护

22、单选题:
‏ISO 为程序质量定义了 6 个独立的质量特性,它们是:①功能性②可靠性③()④效率⑤可维护性⑥可移植性​‏​
选项:
A: 可读性
B: 简洁性
C: 可测试性
D: 可用性
答案: 【 可用性

23、单选题:
​可维护可以细化为 5 个子特性,它们是()、易改变性、稳定性、易测试性、维护性的依从性。‏
选项:
A: 易分析性
B: 可理解性 
C: 易读性 
D: 标准性
答案: 【 易分析性

24、单选题:
‎命名标识符的首要原则是()‌
选项:
A: 简单
B: 使用驼峰命名法或匈牙利命名法
C: 要完全准确地表达所代表的事物或动作
D: 正确
答案: 【 要完全准确地表达所代表的事物或动作

25、单选题:
‍代码的()是区别代码好坏的一个关键特性。‍
选项:
A: 缩进
B: 编排
C: 长度
D: 复杂程度
答案: 【 编排

26、单选题:
‌一个结构类型的数据结构是否包含非独立变量,主要考虑下列因素。①获取其值的难易程度。②()​‌​
选项:
A: 计算过程复杂
B: 使用它的频繁程度 
C: 是否有副作用 
D: 它是否是原子结构
答案: 【 使用它的频繁程度 

27、单选题:
‏本案例中用数组表示算式的主要优势包括:节省存储空间、()等。‏
选项:
A: 易读
B: 有计算机语言的含义 
C: 可以表示复杂的算式
D: 提高程序效率
答案: 【 可以表示复杂的算式

28、单选题:
​如果用数组存不同的算式作为“习题”,产生60道不同算式的习题时算式比较的次数是()。‌
选项:
A: 60
B: 120
C: 1200
D: 1770
答案: 【 1770

29、单选题:
‏如果用数组存不同的算式作为“习题”,产生80道不同算式的习题时算式比较的次数是()。‎
选项:
A: 800
B: 2400
C: 3160
D: 3200
答案: 【 3200

30、单选题:
​对本案例,假设算式有3种数据结构:结构体、一维数组和字符串;习题有4种,则案例程序可以有()种数据结构的组合方式。‌​‌
选项:
A: 3
B: 4
C: 7
D: 12
答案: 【 12

31、单选题:
‌ 测试用例是一组输入、()和通过/失败准则。‎
选项:
A: 测试数据
B: 运行条件
C: 运行结果
D: 测试步骤
答案: 【 运行条件

32、单选题:
‏测试需求要求程序的预期结果和实际运行结果都要明确、合理、()并可比较。‌
选项:
A: 正确
B: 精确
C: 可观察
D: 可记录
答案: 【 可观察

33、单选题:
‎由于不能穷尽测试程序,我们希望遵循软件测试的()原则,即用尽量少的测试、最小的消耗能最大程度地保证程序的正确性,使程序满足需求。‍‎‍
选项:
A: 合理性
B: 经济性
C: 足够的
D: 覆盖性
答案: 【 经济性

34、单选题:
​基于边界值分析设计测试用例,若输入条件指定为以a和b为边界的范围,则测试数据应该包括a、b,略大于a和()的值作为合法的测试数据。‌
选项:
A: 略小于a
B: 略小于b
C: 略大于b
D: 中间
答案: 【 略小于b

35、单选题:
‎在程序设计和软件开发的实践和理论中,存在过以()为中心和以操作为中心的开发方法。 ‌‎‌
选项:
A: 数据
B: 文件
C: 组织
D: 构架
答案: 【 数据

36、单选题:
‍用()表示算式的主要劣势是要用转换函数才能显示并输出一个算式。‏‍‏
选项:
A: 数组
B: 树
C: 链表
D: 结构体
答案: 【 结构体

37、单选题:
‎理想的内聚性要求模块的功能应明确、()。​
选项:
A: 高级
B: 清晰
C: 单一
D: 全面
答案: 【 单一

38、单选题:
‏()是两函数之间没有直接关系,之间的联系完全是通过其他函数的控制和调用来实现的。‍‏‍
选项:
A: 非直接耦合
B: 控制耦合
C: 标记耦合
D: 外部耦合
答案: 【 非直接耦合

39、单选题:
‍通过信息()可以减少应用程序对硬件、操作系统的依赖关系。‏
选项:
A: 外显
B: 模块化
C: 隐蔽
D: 依赖
答案: 【 隐蔽

40、多选题:
‍模块化是把问题分解成()的子问题的一个重要手段,是实现控制复杂性的方式‌
选项:
A: 容易理解
B: 便于控制
C: 便于实现
D: 便于测试
E: 足够小
答案: 【 容易理解;
便于控制;
便于实现

41、多选题:
‎在程序系统的结构中,模块是()的程序单元。‏
选项:
A: 可组合
B: 可更换
C: 可维护
D: 可测试
E: 可修改
答案: 【 可组合;
可更换

42、多选题:
‌模块具有三大特征:()‍‌‍
选项:
A: 独立性
B: 可理解性
C: 互换性
D: 可移植性
E: 通用性
答案: 【 独立性;
互换性;
通用性

43、多选题:
‌在模块设计中,最基本的是()和()的设计。‎
选项:
A: 接口
B: 算法
C: 代码结构
D: 数据结构
E: 功能
答案: 【 算法;
数据结构

44、多选题:
‌在程序设计和软件开发的实践和理论中,存在过以()为中心和以()为中心的开发方法。‍
选项:
A: 算法
B: 功能
C: 数据
D: 效率
E: 操作
答案: 【 数据;
操作

45、多选题:
‏Meyer 提出了下列哪几条标准来评价一种设计方法是否定义了有效的模块系统的能力。‎
选项:
A: 模块可分解性
B: 模块可组装性
C: 模块可理解性
D: 模块连续性
E: 模块保护性
答案: 【 模块可分解性;
模块可组装性;
模块可理解性;
模块连续性;
模块保护性

46、多选题:
‍模块的独立程度可以由两个定性标准来度量——()。​‍​
选项:
A: 功能个数
B: 接口个数
C: 内聚
D: 耦合
E: 复杂性
答案: 【 内聚;
耦合

47、多选题:
​下列属于7种内聚的是()‌​‌
选项:
A: 偶然内聚
B: 逻辑内聚
C: 物理内聚
D: 过程内聚
E: 数据内聚
答案: 【 偶然内聚;
逻辑内聚;
过程内聚

48、多选题:
‌下列内聚由强到弱排序正确的是()‍‌‍
选项:
A: 功能内聚 顺序内聚 时间内聚
B: 通信内聚 过程内聚 时间内聚
C: 顺序内聚 过程内聚 逻辑内聚
D: 功能内聚 时间内聚 偶然内聚
E: 过程内聚 时间内聚 顺序内聚
答案: 【 功能内聚 顺序内聚 时间内聚;
通信内聚 过程内聚 时间内聚;
顺序内聚 过程内聚 逻辑内聚;
功能内聚 时间内聚 偶然内聚

49、多选题:
‌列属于划分的七级耦合的是()‏
选项:
A: 直接耦合
B: 非直接耦合
C: 内部耦合
D: 外部耦合
E: 内容耦合
答案: 【 非直接耦合;
外部耦合;
内容耦合

50、多选题:
‎下列按照耦合度从低到高排序正确的是()‍‎‍
选项:
A: 数据耦合 标记耦合 公共耦合 内容耦合
B: 非直接耦合 控制耦合 外部耦合 内容耦合
C: 外部耦合 控制耦合 内容耦合 公共耦合
D: 内容耦合 公共耦合 外部耦合 非直接耦合
E: 标记耦合 控制耦合 内容耦合 公共耦合
答案: 【 数据耦合 标记耦合 公共耦合 内容耦合;
非直接耦合 控制耦合 外部耦合 内容耦合

51、多选题:
‎ISO 为程序质量定义了下列哪几个独立的质量特性()‏‎‏
选项:
A: 功能性 
B: 可靠性
C: 可用性
D: 效率
E: 可维护性
答案: 【 功能性 ;
可靠性;
可用性;
效率;
可维护性

52、多选题:
‌可维护可以细化为那些子特性()​
选项:
A: 易分析性
B: 易改变性
C: 稳定性
D: 易测试性
E: 维护性的依从性
答案: 【 易分析性;
易改变性;
稳定性;
易测试性;
维护性的依从性

53、多选题:
‌软件质量是许多质量属性的综合体现,各种质量属性反映了软件质量的不同方面。从认识和评估的角度,软件质量分为()‍‌‍
选项:
A: 外部质量属性
B: 内部质量属性
C: 代码质量属性
D: 功能质量属性
E: 用户体验质量属性
答案: 【 外部质量属性;
内部质量属性

54、多选题:
‏内部质量属性是在软件设计和编码过程中,通过对中间产品的分析得来的。程序员更关心内部质量。内部质量特性包括()‍‏‍
选项:
A: 易理解性、可测试性
B: 可扩展性
C: 可维护性
D: 可移植性
E: 可复用性
答案: 【 易理解性、可测试性;
可扩展性;
可维护性;
可移植性;
可复用性

55、判断题:
‍‍‍程序2.1或2.2明确清晰地定义了的“算式”、“习题”的含义。‍‍‍
选项:
A: 正确
B: 错误
答案: 【 错误

56、判断题:
‏‎‏单纯的阅读程序代码无法确定程序是否正确。‎‏‎
选项:
A: 正确
B: 错误
答案: 【 正确

57、判断题:
‎‍‎面对一个较大问题不能或不知如何直接解决的时候,人们通常采用分而治之的策略。‍‎‍‎‍
选项:
A: 正确
B: 错误
答案: 【 正确

58、判断题:
‍‍‍关注点聚合是面向方面的程序设计的核心概念。‍‍‍‍‍
选项:
A: 正确
B: 错误
答案: 【 正确

59、判断题:
​‍​模块化是把问题分解成容易理解、便于控制、便于实现的子问题的一个重要手段,是实现控制复杂性的方式。‍​‍​‍
选项:
A: 正确
B: 错误
答案: 【 正确

60、判断题:
‏‍‏‍‏软件模块是指具有相对不独立性的、由数据说明、执行语句等程序对象构成的代码集合。‍
选项:
A: 正确
B: 错误
答案: 【 错误

61、判断题:
‏‎‏函数是实现软件模块化的一个基本手段。‎‏‎
选项:
A: 正确
B: 错误
答案: 【 正确

62、判断题:
‎​‎计算机算法与数据结构密切相关,但一种数据结构不可对应多种算法。​‎​
选项:
A: 正确
B: 错误
答案: 【 错误

63、判断题:
‏‌‏‌对于一个实际应用问题,需要采用模块化技术,分解大的数据、分解大的操作,使用若干 ‌‏数据结构、若干算法来完成整个程序的功能。‌‏‌
选项:
A: 正确
B: 错误
答案: 【 正确

64、判断题:
‎‎‎Meyer 提出了 4 条标准来评价一种设计方法是否定义了有效的模块系统的能力。‎‎‎
选项:
A: 正确
B: 错误
答案: 【 错误

65、判断题:
‌内聚性是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指标。‌
选项:
A: 正确
B: 错误
答案: 【 正确

66、判断题:
‏​‏通信内聚指一个函数中各个处理元素都密切相关于同一功能且必须顺序执行。​‏​
选项:
A: 正确
B: 错误
答案: 【 错误

67、判断题:
‌​‌在结构化程序设计中,函数之间的调用关系是反映模块耦合性的最重要因素。​‌​
选项:
A: 正确
B: 错误
答案: 【 正确

68、判断题:
‏​‏公共耦合是一组函数都访问同一个公共数据环境。​‏​
选项:
A: 正确
B: 错误
答案: 【 正确

69、判断题:
​‍​用户需求是从软件使用者的角度描述的对软件的要求。‍​‍
选项:
A: 正确
B: 错误
答案: 【 正确

70、判断题:
‎​‎根据 IEEE 标准的定义,测试用例是多组输入、运行条件和通过/失败准则。​‎​
选项:
A: 正确
B: 错误
答案: 【 错误

71、判断题:
‍‍‍调试的基本活动包括隔离、定位和更正错误。‍‍‍
选项:
A: 正确
B: 错误
答案: 【 正确

72、判断题:
‍‎‍软件质量是许多质量属性的综合体现,各种质量属性反映了软件质量的不同方面。‎‍‎
选项:
A: 正确
B: 错误
答案: 【 正确

73、判断题:
‎​‎按限制规则划分,若处理每个合法输入的方式都不同,则为每个合法输入生成一个等价类。​‎​
选项:
A: 正确
B: 错误
答案: 【 错误

74、判断题:
​‌​命名标识符的首要原则是要完全准确地表达所代表的事物或动作。‌​‌
选项:
A: 正确
B: 错误
答案: 【 正确

75、判断题:
‍等价类划分有两种不同的情况:有效等价类和无效等价类。‎
选项:
A: 正确
B: 错误
答案: 【 正确

76、判断题:
‍通过分解,人们把一个大的、错综复杂的问题划分成一个相对简单、独立的问题,运用合适的方法分别解决。‌‍‌
选项:
A: 正确
B: 错误
答案: 【 错误

77、判断题:
‍在程序设计中,如果每次分解得到的更小的问题,就可以运用递归方法(函数)来解决原问题。‎‍‎
选项:
A: 正确
B: 错误
答案: 【 错误

78、判断题:
​提高软件的模块化能够提高软件的可修改性。‎
选项:
A: 正确
B: 错误
答案: 【 正确

79、判断题:
​ 模块化使软件容易测试和调试,其中一个原因是程序的错误通常局限在有关的模块及它们之间的接口。‍​‍
选项:
A: 正确
B: 错误
答案: 【 正确

80、判断题:
‌结构化程序设计方法具有“自顶向下”、“逐步求精”、从具体到抽象的特点。‏‌‏
选项:
A: 正确
B: 错误
答案: 【 错误

81、判断题:
描述算法的方式可以采用自然语言或程序设计语言,但是不可以混合使用这两种语言。‎​‎
选项:
A: 正确
B: 错误
答案: 【 错误

82、判断题:
​在程序设计中,数据结构的选择是一个举足轻重的设计考虑因素。​​​
选项:
A: 正确
B: 错误
答案: 【 正确

83、判断题:
‍优秀的数据结构决定了软件系统实现的困难程度和系统构造的质量。‎
选项:
A: 正确
B: 错误
答案: 【 错误

84、判断题:
‌案例目前的设计,总体考虑,把算式用具有3个成员的数组表示是目前算式的最佳数据结构。​‌​
选项:
A: 正确
B: 错误
答案: 【 错误

85、判断题:
‎分析案例的要求,运算数的产生与其约束条件关系密切、不可分离。‍‎‍
选项:
A: 正确
B: 错误
答案: 【 错误

86、判断题:
‌根据案例,包含算式的习题只能选择数组这个数据结构。​‌​
选项:
A: 正确
B: 错误
答案: 【 错误

87、判断题:
‍案例数据结构的设计,用结构体表示算式的主要优势是直接显示了人易读的形式,而且明确表示出算式组成的数据类型。‏‍‏
选项:
A: 正确
B: 错误
答案: 【 错误

88、判断题:
‏用符号串表示算式的主要劣势是符号串内的符号没有计算机语言的含义(数据类型),需要解析。‍‏‍
选项:
A: 正确
B: 错误
答案: 【 正确

89、判断题:
‌软件测试是使用人工或自动手段来运行或测定某个系统的过程,目的在于检测它是否满足规定的需求或者是否弄清预期结果与实际结果之间的差别。‏‌‏
选项:
A: 正确
B: 错误
答案: 【 正确

90、判断题:
‏软件测试是说明程序是否正确的唯一技术手段。‎‏‎
选项:
A: 正确
B: 错误
答案: 【 错误

91、判断题:
​由于测试数据或预期结果的错误而导致根据测试程序显示待测程序可能有误,称为测试漏判。‍​‍
选项:
A: 正确
B: 错误
答案: 【 错误

92、判断题:
‌如果待测程序有错,而测试程序没有发现错误,称为测试误判。‌‌‌
选项:
A: 正确
B: 错误
答案: 【 错误

93、判断题:
‎如果测试失败了,则说明待测程序一定存在错误。‍‎‍
选项:
A: 正确
B: 错误
答案: 【 错误

94、判断题:
​满足了一个测试覆盖就能为软件的正确程度提供充足的保证。‎​‎
选项:
A: 正确
B: 错误
答案: 【 错误

95、判断题:
‌基于等价类划分测试的基本思想是:将程序可能的输入数据依据某个准则分成若干等价子集,其和覆盖了整个程序即可。‍‌‍
选项:
A: 正确
B: 错误
答案: 【 错误

96、填空题:
​________是把问题分解成容易理解、便于控制、便于实现的子问题的一个重要手段,是实现控制复杂性的方式。‌​‌
答案: 【 模块化

97、填空题:
‏软件模块是指具有________的、由数据说明、执行语句等程序对象构成的代码集合。‌‏‌
答案: 【 相对独立性

98、填空题:
‍________是实现软件模块化的一个基本手段。‌
答案: 【 函数,过程,类

99、填空题:
‏数据结构是计算机存储、组织数据的方式,是指相互之间存在一种或多种特定关系的________的集合。‏
答案: 【 数据元素

100、填空题:
​________把几种相关的功能或数据组合在一起,每次被调用时,由传送函数参数来确定该函数应完成哪种功能。‌​‌
答案: 【 逻辑内聚

101、填空题:
‏_______耦合是两函数之间没有直接关系,之间的联系完全是通过其他函数的控制和调用 ‎‏来实现的。‎
答案: 【 非直接

102、填空题:
‍用户需求是从________的角度描述的对软件的要求。‏
答案: 【 软件使用者

103、填空题:
‍模块的内聚性和________是两个相互对立且又密切相关的概念。‍
答案: 【 耦合性

104、填空题:
在程序设计中,如果每次分解得到的更小的问题及其解答相似,就可以用________(函数)来解决问题。‌
答案: 【 递归

105、填空题:
模块具有独立性、________和通用性三大特性。‌
答案: 【 互换性

106、填空题:
计算机算法和数据结构的对应关系有:一种数据结构多种算法、多种数据结构和一种算法、________________和多种数据结构多种算法。​‍​
答案: 【 一种数据结构一种算法

107、填空题:
数组是有限个______元素的有序集合。​
答案: 【 同类型

108、填空题:
课程中的算式是具有满足一定_________的组成元素和结构的数据,不是简单的符号串。‎‏‎
答案: 【 约束条件

109、填空题:
模块的独立程度可以由两个定性标准来度量----内聚和_______。‎
答案: 【 耦合

110、填空题:
________是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指标。​‏​
答案: 【 内聚性

111、填空题:
‍________是一个模块与系统内其他模块及外部世界的关联程度的度量。‌
答案: 【 耦合性

112、填空题:
‎若一组函数通过参数表传递记录信息,就是________。‎
答案: 【 标记耦合

113、填空题:
‎________是根据程序的出错情况,分析、猜测可能出现错误的程序区域,让程序运行,观察程序的变化来发现错误的根源。‎‎‎
答案: 【 调试

114、填空题:
‎程序中的每个功能可以由________来验证它的操作的正确性。‌‎‌
答案: 【 测试

115、填空题:
​程序可维护细分的________提供辅助手段帮助分析识别缺陷的原因,找出待修复部分的能力。 ​​​
答案: 【 易分析性

第3章面向对象的软件构造

3面向对象的软件构造测验

1、单选题:
​()是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。‌​‌
选项:
A: 封装
B: 抽象
C: 模块
D: 模板
答案: 【 抽象

2、单选题:
‌程序设计有两种抽象,分别是过程抽象和()。‏
选项:
A: 接口抽象
B: 类抽象
C: 函数抽象
D: 数据抽象
答案: 【 数据抽象

3、单选题:
‌()是在使用一个函数或方法时知道它干什么,而不知道它是如何完成的。​
选项:
A: 数据抽象
B: 过程抽象
C: 接口抽象
D: 类抽象
答案: 【 过程抽象

4、单选题:
‍封装有两个含义:①把描述一个事物的性质和行为结合在一起成为构件,对外形成该事物的一个界限,封装使构件能够集中而完整地对应并描述具体的事物,体现了事物的相对独立性;②(),即外界不能直接存取构件的内部信息(属性)及隐藏起来的内部操作,外界也不必知道操作的内部实现细节才能使用这些操作‎
选项:
A: 安全性
B: 保护
C: 信息隐藏
D: 私有化
答案: 【 信息隐藏

5、单选题:
‍数据类型可分为两类:()、结构类型。‌
选项:
A: 引用类型
B: 基本类型

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注