第一章
1 软件按其功能划分为三种类型:( )、支撑软件和应用软件。
A 系统软件 B 批处理软件 C 娱乐软件 D 音乐软件
2 软件按服务对象的范围划分为:项目软件(定制开发)和( )(或通用软件)。
A 系统软件 B 交互式软件 C 批处理软件 D 产品软件
3 从软件开发者的角度,一般把软件生存周期分为定义软件、开发软件和( )三个阶段。
A 总体设计 B维护软件 C 测试软件 D 详细设计
4 软件维护分为4种类型:改正性维护、( )、完善性维护、预防性维护。
A 测试性维护 B 适应性维护 C 可理解性维护 D 兼容性维护
5 软件可维护性可通过三个质量特性来衡量:( )、可测试性、可修改性。
A 可移植性 B 可读性 C 可用性 D 可理解性
6 增量开发是指待开发的软件不是一次就完成的,而是把软件分成一系列( ),完成一部分就交付一部分。
A 函数 B 代码组 C 模块 D 增量
7 PSP(Personal Software Process)能够说明个体软件过程的原则;帮助软件工程师做出准确的计划;确定软件工程师为改善产品质量要采取的步骤;( );确定过程的改变对软件工程师能力的影响。
A 确定工程师的编码风格 B 建立合理的软件评估方案 C 确定工程师软件测试步骤 D 建立度量个体软件过程改善的基准
8 软件工程最佳实践中的________指的是有机体的构造、功能及其相互关系、工作原理,如可视化编程的事件响应、类型的多态。
A 技术 B 机制 C 方法 D 原则
9 Java程序中main()函数的返回值是什么?
A String B int C void D char
10 执行下列Java语句,打印语句执行( )次。
int i = 1;
while (i < 10)
if ((i++) % 2 == 0)
System.out.println(i);
A 2 B 8 C 6 D 4
11 软件按其功能划分为三种类型:( )。
A 应用软件 B 娱乐软件 C支撑软件 D 系统软件
12 瀑布式开发模型的主要问题包括:( )。
A 逐步增加部件的方式,很容易退化为边做边改模型,从而使软件过程的控制失去整体性。
B 阶段划分僵硬,每个阶段不能缺省,而且产生大量文档,增加了工作量。
C 早期的错误要等到开发后期的测试阶段才能发现,可能带来严重的后果,增加了开发的风险。
D 开发是线性的,只有等到整个过程的末期才能见到开发成果——可运行软件,不利于快速响应变化的需求。
13 软件开发可以理解为是进行( )的过程。
A 权衡 B 决策 C 维护 D 选择
14 按照SWEBOK 3.0指南,软件构造知识域的子域——构造技术,包含了( )等。
A 设计模式 B 测试先行编程 C 防御性编程 D 按契约设计
15 执行下列Java语代码段,打印出0时,可能是执行了第____次打印语句。
int count = 1; for (int i = 0; i < 10; i++) for (int j = 0; j < i; j++) System.out.println("i * j = " +i * j);
A 1 B 3 C 11 D 10
16 执行下列Java语代码段,打印出0时,可能是执行了第____次打印语句。
int count = 1; for (int i = 0; i < 10; i++) for (int j = 0; j < i; j++) System.out.println("i * j = " +i * j);
A 1 B 2 C 11 D 10
解析
当 i==0 时内循环不执行,
内循环的执行次数: 1 + 2 + 3+ 4 + 5 + 6 + 7 + 8 + 9
每个内循环的第一次都会打印 0
即第 1, 2, 4, 7, 11, 16, ... 次会打印出 0
17 软件实现是完成可以运行程序及数据的软件开发过程。
A 是 B 否
18 在软件生存周期中,软件维护会持续很长一段时间,甚至超过全周期的一半。
A 是 B 否
19 瀑布式开发过程,也叫软件生存期模型,它规定自上而下、相互分离的固定次序。
A 是 B 否
解析
瀑布式开发过程,也叫软件生存期模型。它按照软件生命周期,把开发分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护这6个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
20 功能需求定义软件在抽象级别应该提供的基本功能。
A 是 B 否
21 敏捷开发是应对较慢速变化的需求的一种软件开发能力。
A 是 B 否
22 敏捷开发遵循软件开发的基本原则,如抽象、模块内聚、模块之间松散耦合、信息隐藏等。
的答案
A 是 B 否
23 如何考虑构造,既构造的主要工作是什么,在某种程度上依赖于采用的生存周期模型。
A 是 B 否
24 数据流语言的计算模型是原始函数节点上的信息元素(Tokens)流,它们到达节点后触发节点的计算。
A 是 B 否
25 本课程对案例开发过程中的每个需求和问题都提出并分析几个典型的候选设计,然后给出一两个具体的实现。所以,对案例构造的软件也就是几个。
A 是 B 否
解析
理论上无限,实际上可以是没人的构造都不一样
26 软件按其功能划分为三种类型:支撑软件、应用软件和________软件。
系统
27 它按照软件生命周期,把开发分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等6个基本活动,并且规定了它们自上而下、相互衔接的固定次序。称为________开发过程,也叫软件生存期模型。
瀑布
28 在计算机技术发展的早期,软件开发的主要活动就是________。
程序设计
29 软件开发工具的一个发展趋势是使用可视化的________,用图形用户界面用GUI集成了代码编写、静态分析、编译、调试、连接、打包等功能的一体化软件开发套件。
集成开发环境
30 执行下列Java代码段后,x的值是________。
int x = 1, a = 3;
if (a == 1)
x += 5;
else if (a == 2)
x += 10;
else if (a == 3)
x += 16;
else if (a == 4)
x += 34;
17
31 从用户的角度,软件生存周期分为下列三个阶段 ________、获取软件、使用软件。
A 提出需求 B 设计软件 C 测试软件 D 维护
32 软件实现与通常的程序设计的主要区别是 ________
A 代码格式标准 B 算法 C 软件的集成与测试 D 数据结构
单选
33 软件集成指的是通过________、消息传递、事件响应、状态改变、服务合成等机制把编程实现的各个软件单元组装在一起,形成一个更大的软件单元或可以运行的软件系统。
A 统一化 B 函数调用 C 模块化 D 标准化
34 瀑布式软件开发过程把软件开发分为制定计划、需求分析、软件设计、程序编写、________和运行维护等6个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
A 软件测试 B 用户评价 C 设计者评价 D 项目经理评价
35 软件构造的知识域分为5个子域:软件构造基础,管理构造,实际考虑,________,软件构造工具。
A 需求构造 B 构造方法 C 构造技术 D 测试构造
36 命令式语言可以细分为冯·诺依曼式语言、脚本语言和________。
A 过程化设计语言 B 机器语言 C 汇编语言 D 面向对象语言
37 软件的其他分类包括商业软件、________、共享软件等。
A 开源软件 B 应用软件 C 私人软件 D 系统软件
38 软件设计是给出如何实现需求的决策和方案,是将系统功能分配到系统不同组成元素的过程,包括一组活动①划分需求②确定子系统③给子系统分配需求④定义子系统的功能⑤________。
A 定义子系统接口 B 测试子系统 C 维护子系统 D 划分子系统
39 根据IEEE,“软件构造”指的是通过________、验证、单元测试、集成测试和调试的组合,详细地创建可工作的、有意义的软件。
A 总体设计 B 详细设计 C 获取需求 D 编码
40 下列哪些模型不是迭代模型________
A Scrum B 极限编程 C 瀑布模型 D 进化式原型法
41 在Java语言中,下列数据类型的精度由高到低的顺序是________
A float,double,int,long B double,int,float,long C byte,long,double,float D double,float,int,byte
42 执行下列Java代码段,打印语句执行第10次时,打印出的值是________。
int count = 1; for (int i = 0; i < 10; i++) for (int j = 0; j < i; j++) System.out.println("i * j = "+i*j);
A 0 B 10 C 12 D 24
43 软件是能够完成预定功能和性能的可执行的程序和使程序正常执行所需要的数据,加上描述软件开发过程及其管理、程序的操作和使用的有关文档,即“软件=程序+数据+________
A 算法 B 第三方库 C 文档 D 注释
44 敏捷开发是应对快速变化的需求的一种软件开发能力。它以________为核心,采用迭代、循序渐进的方法进行软件开发。
A 用户的需求进化 B 软件容错性 C 代码质量 D 软件功能
45 集成化开发环境的特点是________、可视化和自动化。
A 简洁化 B 集成化 C 多功能 D 标准化
46 最佳实践中的________是获得一个客体(对象)的步骤或过程。作为一个系统的步骤、技术活动被特定的专业或艺术采纳,是技能或技术的全部。
A 技术 B 机制 C 方法 D 原则
47 根据软件构造的定义,软件构造就是通过设计、编码、测试等一系列活动创建软件,没有特别指出________
A 可运行的 B 可工作的 C 高质量的 D 有意义的
48 计算机程序(简称程序)是为了解决某个特定问题而用程序设计语言描述的适合计算机处理的________。
A 函数 B 语句序列 C 模块 D 问题
49 软件测试属于实现阶段的活动,可分为对程序基本组成单元的测试(单元测试)对软件组装结果的测试________、对整个软件系统的测试(系统测试),以及把软件交付给用户时的测试(验收测试)。
A 白盒测试 B 集成测试 C 回归测试 D 黑盒测试
50 预防性维护是为改善软件系统的________,也为以后的改进奠定基础。
A 可维护性和可靠性 B 可理解性 C 可移植性 D 可用性
51 软件按其工作方式划分为:实时处理软件、分时软件、________和批处理软件。
A 应用软件 B 支撑软件 C 系统软件 D 交互式软件
52 软件按服务对象的范围划分为 ________
A 项目软件 B 应用软件 C 产品软件 D 民用软件
53 本书使用的“软件构造”指的是运用软件最佳实践,通过________迭代过程,增量地建造出可运行软件。
A 测试 B 编码 C 分析 D 调试
54 在计算机技术发展的早期,软件开发的主要活动就是算法研究。
A 是 B 否
55 从软件使用者的角度,把软件生存周期分为定义软件、开发软件和维护软件三个阶段。
A 是 B 否
56 软件维护分为只有3种类型:改正性维护、适应性维护和完善性维护。
A 是 B 否
57 根据软件生存周期的概念和划分,软件测试不属于实现阶段的活动。
A 是 B 否
58 Scrum是一个用于开发和维持简单软件产品的框架,是一个增量的、迭代的开发过程。
A 是 B 否
59 从用户的角度看,软件生存周期分为定义软件、 获取软件、使用软件三个阶段,
A 是 B 否
60 软件维护分为:改正性维护、适应性维护、完善性维护和__________。
预防性维护
61 它按照软件生命周期,把开发分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等6个基本活动,并且规定了它们自上而下、相互衔接的固定次序。称为_________开发过程,也叫软件生存期模型。
瀑布
62 根据IEEE计算机学会发布的软件工程知识体系(SWEBOK 3.0)指南,软件工程学科的实践知识域中有______,指的是通过编码、验证、单元测试、集成测试和调试的组合,详细地创建可工作的、有意义的软件。
软件构造
63 软件可以定义为三个成分:( )+( )+( )。
A 数据 B 数据结构 C 文档 D 程序
64 软件增量开发模型的优点________
A 可以使软件适应需求变化。B 可使软件具有良好的稳定性和完整性。
C 有利于系统维护,当需求变更时,只变更部分部件,而不必影响整个系统。
D 用户有较充分的时间学习和适应新的产品。
65 高级程序语言存在不同的分类。一种划分标准是按照语言的计算模型,将高级语言分为两个大类: ________
A 命令式 B 过程式 C 声明式 D 函数式
66 计算机程序设计语言中的命令式语言可以细分为 ________
A 机器语言 B 脚本语言 C 冯·诺依曼式语言 D 面向对象语言
67 软件规模的划分依据有多个因素,通常不包含________
A 研发周期 B 运行平台 C 组织方式 D 产品规模
68 软件是由计算机程序和程序设计的概念发展演化过来的,是程序和程序设计发展到一定规模后并且在逐步商品化的过程中形成的。
A 是 B 否
69 “软件=程序+数据”,其中程序是软件的中枢和骨架。
A 是 B 否
解析
漏了“文档”
70 软件构造是软件开发的中心活动。
A 是 B 否
71 从软件开发者的角度,一般把软件生存周期分为定义软件、获取软件和维护软件三个阶段。
A 是 B 否
解析
应为“开发软件”而“非获取软件”
72 面向对象软件构造(动词)是运用面向对象技术开发具有_________的软件系统。
结构
73 软件按其工作方式划分为:________软件、分时软件、交互式软件和批处理软件。
实时处理
74 软件运行环境,广义上说,是一个软件运行所要求的各种条件,包括_______环境和硬件环境。
软件
75 图灵奖获得者沃斯(Niclaus Wirth)提出的“程序=__________+数据结构”是程序设计的精辟观点。
算法
76 软件测试也属于实现阶段的活动,可以分为________
A 系统测试 B 单元测试 C 验收测试 D 集成测试
77 瀑布式开发模型的主要问题包括________
A 早期的错误要等到开发后期的测试阶段才能发现,可能带来严重的后果,增加了开发的风险。
B 开发是线性的,只有等到整个过程的末期才能见到开发成果——可运行软件,不利于快速响应变化的需求。
C 由于各个部件是逐渐并入已有软件的,必须确保每次增加的部件不破坏已构造好的系统,这需要软件具备开放式的体系结构,否则系统将失去稳定的结构。
D 逐步增加部件的方式,很容易退化为边做边改模型,从而使软件过程的控制失去整体性。
78 计算机程序是为了解决广泛问题而用程序设计语言描述的适合计算机处理的语句序列。
A 是 B 否
解析
特定问题而非广泛问题
79 用户看待软件生存周期,一般分为下列三个阶段:_________、获取软件和使用软件。
提出需求
80 高级程序语言的一种划分标准是按照语言的计算模型,将高级语言分为_______式和命令式两个大类,前者进一步划分为函数式语言、逻辑式语言和数据流语言。
声明
81 软件开发一直缺乏坚实的理论基础,所以软件行业借用了管理学的______的概念来概括到达用户满意的、可以反复使用的软件开发的一切手段,包括技术、方法、过程、活动或机制,可以使生产或管理的结果达到最优,并减少出错的可能性。
最佳实践
82 按照教材,敏捷开发创造了一些新的技术或实践,主要包含________
A 代码重构 B 设计模式 C 结对编程 D 测试驱动开发
83 按照教材,敏捷开发创造了一些新的技术或实践,主要包含________
A 代码重构 B 面向对象技术 C 结对编程 D 测试驱动开发
84 软件实现与通常的程序设计的主要区别是软件的集成与________。
测试
85 一种类型的软件维护,________维护是为适应环境的变化而进行的软件修改活动。
适应性
86 通常而言,在所有的软件开发活动中,________是软件开发的中心活动。
构造
87 敏捷开发4个核心价值观________
A 个体和互动胜过流程和工具
B 工作的软件胜过详尽的文档
C 响应变化胜过遵循计划
D 客户合作胜过合同谈判
88 本书使用的“软件构造”指的是运用软件最佳实践,通过________迭代过程,增量地建造出可运行软件。
A 分析 B 测试 C 编码 D 设计
89 高级程序语言的一种划分标准是按照语言的计算模型,将高级语言分为声明式式和命令式两个大类,前者进一步划分为________
A 逻辑式语言 B 面向对象语言 C 数据流语言 D 函数式语言
90 理想的软件项目在构造后要进行仔细的需求分析和架构设计。
A 是 B 否
91 执行下列Java代码段,打印句执行第10次时,打印出的值是________
int count = 1; for (int i = 0; i < 10; i++) for (int j = 0; j < i; j++) System.out.println("i * j = " +i * j);
A 0 B 10 C 12 D 24
92 一个软件可能包含以下哪些特性________
A 分时特性 B 交互性 C 实时特性 D 批处理特性
93 从软件开发者的角度,一般把软件生存周期分为三个阶段________
A 定义软件 B 需求分析 C 开发软件 D 维护软件
94 增量开发模型的基本思想是让开发者能够从早期的开发、系统的增量、交付的版本中学到经验。
A 是 B 否
95 代码重构指的是改变程序的_______而不改变其行为,以便提高代码的可读性、易修改性等。
结构
96 相比于程序设计语言基本的开发工具箱,IDE具有的特点包括________
A 自动化 B 多功能化 C 可视化 D 集成化
97 下列Java语句序列执行后,k 的值是________
int i=4,j=5,k=9, m=5; if(i>j||m<k) k++; else k--;
10
98 下列Java语句序列执行后,k 的值是________
int i=4,j=5,k=9, m=5; if(i>j&&m<k) k++; else k--;
8
99 下列Java代码段执行完以后,打印语句一共执行了________次
int count = 1; for (int i = 0; i < 10; i++) for (int j = 0; j < i; j++) System.out.println("i * j = " +i * j);
45
100 执行下列Java语句后,y的值是_____。
int x = 3; int y = 4; switch (x + 3) { case 6: y = 1; default: y += 1; }
2