1、国家二级 C语言机试(程序设计基础、软件工程基础)模拟试卷 2及答案与解析 一、选择题 1 下列描述中,不符合良好程序设计风格要求的是 ( A)程序的效率第一,清晰第二 ( B)程序的可读性好 ( C)程序中要有必要的注释 ( D)输入数据前要有提示信息 2 下列选项中不属于结构化程序设计原则的是 ( A)可封装 ( B)自顶向下 ( C)模块化 ( D)逐步求精 3 下列选项中不属于结构化程序设计方法的是 ( A)自顶向下 ( B)逐步求精 ( C)模块化 ( D)可复用 4 下列选项中不符 合良好程序设计风格的是 ( A)源程序要文档化 ( B)数据说明的次序要规范化 ( C)避免滥用 g
2、oto语句 ( D)模块设计要保证高耦合、高内聚 5 下列选项中属于面向对象设计方法主要特征的是 ( A)继承 ( B)自顶向下 ( C)模块化 ( D)逐步求精 6 定义无符号整数类为 UInt,下面可以作为类 UInt实例化值的是 ( A) -369 ( B) 369 ( C) 0 369 ( D)整数集合 1, 2, 3, 4, 5 7 在面向对象方法中,实现信息隐蔽是依靠 ( A)对象的继承 ( B)对象的 多态 ( C)对象的封装 ( D)对象的分类 8 构成计算机软件的是 ( A)源代码 ( B)程序和数据 ( C)程序和文档 ( D)程序、数据及相关文档 9 下列描述中正确的是
3、( A)程序就是软件 ( B)软件开发不受计算机系统的限制 ( C)软件既是逻辑实体,又是物理实体 ( D)软件是程序、数据与相关文档的集合 10 软件按功能可以分为:应用软件、系统软件和支撑软件 (或工具软件 )。下面属于应用软件的是 ( A)编译程序 ( B)操作系统 ( C)教务管理系统 ( D)汇编程序 11 下面描述中,不属于软件危机表现的是 ( A)软件过程不规范 ( B)软件开发生产率低 ( C)软件质量难以控制 ( D)软件成本不断提高 12 下面不属于软件工程的 3个要素是 ( A)工具 ( B)过程 ( C)方法 ( D)环境 13 软件生命周期是指 ( A)软件产品从提出
4、、实现、使用维护到停止使用退役的过程 ( B)软件从需求分析、设计、实现到测试完成的过程 ( C)软件的开发过程 ( D)软件的运行维护过程 14 软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段任务的是 ( A)测试 ( B)设计 ( C)可行性研究 ( D)实现 15 软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于 ( A)定义阶段 ( B)开发阶段 ( C)维护阶段 ( D)上述三个阶段 16 下面不属于软件设计原则的是 ( A)抽象 ( B)模块化 ( C)自底向上 ( D)信息隐藏 17 下面不属于需求分析阶段任务的是 ( A)确定软件系统的功能需求
5、( B)确定软件系统的性能需求 ( C)需求规格说明书评审 ( D)制定软件集成测试计划 18 在软件开发中,需求分析 阶段可以使用的工具是 ( A) N S图 ( B) DFD图 ( C) PAD图 ( D)程序流程图 19 在软件设计中不使用的工具是 ( A)系统结构图 ( B) PAD图 ( C)数据流图 (DFD图 ) ( D)程序流程图 20 在软件设计中,不属于过程设计工具的是 ( A) PDL(过程设计语言 ) ( B) PAD图 ( C) N-S图 ( D) DFD图 21 数据字典 (DD)所定义的对象都包含于 ( A)数据流图 (DFD图 ) ( B)程序流程图 ( C)软
6、件结构图 ( D)方框图 22 在软件开发中 ,需求分析阶段产生的主要文档是 ( A)软件集成测试计划 ( B)软件详细设计说明书 ( C)用户手册 ( D)软件需求规格说明书 23 在软件开发中,需求分析阶段产生的主要文档是 ( A)可行性分析报告 ( B)软件需求规格说明书 ( C)概要设计说明书 ( D)集成测试计划 24 下面不属于软件设计阶段任务的是 ( A)软件总体设计 ( B)算法设计 ( C)制定软件确认测试计划 ( D)数据库设计 25 耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 ( A)提高耦合性降低 内聚性有利于提高模块的独立性 ( B)降低耦合性提高
7、内聚性有利于提高模块的独立性 ( C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度 ( D)内聚性是指模块间互相连接的紧密程度 26 两个或两个以上模块之间关联的紧密程度称为 ( A)耦合度 ( B)内聚度 ( C)复杂度 ( D)数据传输特性 27 下面不能作为结构化方法软件需求分析工具的是 ( A)系统结构图 ( B)数据字典 (DD) ( C)数据流程图 (DFD图 ) ( D)判定表 28 程序流程图中带有箭头的线段表示的是 ( A)图 元关系 ( B)数据流 ( C)控制流 ( D)调用关系 29 软件测试的目的是 ( A)评估软件可靠性 ( B)发现并改正程序中的错误 ( C
8、)改正程序中的错误 ( D)发现程序中的错误 30 下列描述中正确的是 ( A)软件测试的主要目的是发现程序中的错误 ( B)软件测试的主要目的是确定程序中错误的位置 ( C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作 ( D)软件测试是证明软件没有错误 31 下列描述中正确的是 ( A)软件测试应该由程序开发者来完成 ( B)程序 经调试后一般不需要再测试 ( C)软件维护只包括对程序代码的维护 ( D)以上三种说法都不对 32 下面属于黑盒测试方法的是 ( A)语句覆盖 ( B)逻辑覆盖 ( C)边界值分析 ( D)路径覆盖 33 下面不属于软件测试实施步骤的是 (
9、A)集成测试 ( B)回归测试 ( C)确认测试 ( D)单元测试 34 程序调试的任务是 ( A)设计测试用例 ( B)验证程序的正确性 ( C)发现程序中的错误 ( D)诊断和改正程序中的错误 国家二级 C语言机试(程序设计基础、软件工程基础)模拟试 卷 2答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 一般来讲,程序设计风格是指编写程序时所表现出的特点、习惯和逻辑思路。程序设计风格总体而言应该强调简单和清晰,程序必须是可以理解的。著名的 “清晰第一,效率第二 ”的论点已成为当今主导的程序设计风格。 【知识模块】 程序设计基础 2 【正确答案】 A 【试题解析】 结构化设计方法
10、的主要原则可以概括为自顶向下、逐步求精、模块化、限制使用 goto语句。 【知识模块】 程序设计基础 3 【正确答案】 D 【试题解析 】 结构化程序设计方法的主要原则可以概括为:自顶向下,步求精,模块化,限制使用 goto语句。自顶向下是指程序设计时应先考虑总体,后考虑细节:先考虑全局目标,后考虑局部目标。逐步求精是指对复杂问题应设计一些子目标过渡,逐步细化。模块化是把程序要解决的总目标先分解成分目标,再进一步分解成具体的小目标,把每个小目标称为一个模块。可复用性是指软件元素不加修改成稍加修改便可在不同的软件开发过程中重复使用的性质。软件可复用性是软件工程追求的目标之一,是提高软件生产效率的
11、最主要方法,不属于结构化程序设计方法。 【知 识模块】 程序设计基础 4 【正确答案】 D 【试题解析】 一般来讲,程序设计风格是指编写程序时所表现出的特点、习惯和逻辑思路。程序设计风格总体而言应该强调简单和清晰,程序必须是可以理解的。可以认为,著名的 “清晰第一、效率第二 ”的论点已成为当今主导的程序设计风格。良好的程序设计风格主要应注重和考虑下列几个因素: 源程序文档化,包括下列三个方面: A)符号的命名应具有一定的含义; B)正确的注释能够帮助读者理解程序; C)视觉组织,可以在程序中利用空格、空行、缩进等技巧使程序层次清晰。 数据说明的方法,包 括下列三个方面: A)数据说明的次序规范
12、化: B)说明语句中变量安排有序化; C)使用注释来说明复杂数据的结构。 语句的结构应该简单直接,不应该为提高效率而把语句复杂化。 输入和输出方式和风格应尽可能方便用户的使用。 【知识模块】 程序设计基础 5 【正确答案】 A 【试题解析】 面向对象设计方法的主要特征有封装性、继承性和多态性。而结构化程序设计方法的主要原则有自顶向下,逐步求精,模块化,限制使用 goto语句。 【知识模块】 程序设计基础 6 【正确答案】 B 【试题解析】 UInt表示的是无符号整数类,所以它的每个实例都是一个无符号整数,所以排除选项 A)和选项 C),选项 D)是整数集合,所以也排除。 【知识模块】 程序设计
13、基础 7 【正确答案】 C 【试题解析】 对象的封装性是指从外部看只能看到对象的外部特征,即只需知道数据的取值范围和可以对该数据施加的操作,而不需要知道数据的具体结构以及实现操作的算法。对象的内部,即处理能力的实行和内部状态,对外是不可见的。从外面不能直接使用对象的处理能力,也不能直接修改其内部状态,对象的内部状态只能由其自身改变。 【知识模块】 程序设计基础 8 【正确答案】 D 【试题解析】 软件由两部分组成:一是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。 【知识模块】 软件工程基础 9 【正确答案】 D 【试题解析】 计算机软件与硬件是计算机系
14、统中相互依存的两部分。计算机软件是包括程序、数据及相关文档的完整集合。软件由两部分组成:一部分是机器可执行的程序和数据:二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。软件具有以下六个特点: 软件是一种逻 辑实体,而不是物理实体,具有抽象性。 软件的生产与硬件不同,它没有明显的制作过程。 软件在运行、使用期间不存在磨损、老化问题。 软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移值的问题。 软件复杂性高,成本昂贵。 软件的开发涉及诸多社会因素。 【知识模块】 软件工程基础 10 【正确答案】 C 【试题解析】 编译程序和汇编程序属于支撑软件,操作系统属于
15、系统软件,而教务管理系统属于应用软件。 【知识模块】 软件工程基础 11 【正确答案】 A 【试题解 析】 软件危机主要表现在以下 6个方面: 软件需求的增长得不到满足。 软件开发成本和进度无法控制。 软件质量难以保证。 软件不可维护或维护程度非常低。 软件的成本不断提高。 软件开发生产率的提高赶不上硬件的发展和应用需求的增长。 【知识模块】 软件工程基础 12 【正确答案】 D 【试题解析】 软件工程的 3个要素是工具、过程和方法。 【知识模块】 软件工程基础 13 【正确答案】 A 【试题解析】 软件生命周期是指软件 产品从提出、实现、使用、维护到停止使用、退役的过程。 【知识模块】 软件
16、工程基础 14 【正确答案】 C 【试题解析】 软件生命周期是指软件产品从提出、实现、使用、维护到停止使用退役的过程。其中,定义阶段包括可行性研究与计划制定和需求分析。测试、概要设计、详细设计和实现属于开发阶段。 【知识模块】 软件工程基础 15 【正确答案】 B 【试题解析】 本题考查软件生命周期的相关概念。通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。还可以将软件生命周期分为软件定义、软件开发及软件运
17、行维护三个阶段。 【知识模块】 软件工程基础 16 【正确答案】 C 【试题解析】 软件设计的基本原则包括抽象、信息隐藏、模块化、局部化、确定性、一致性、完备性和可验证性。 【知识模块】 软件工程基础 17 【正确答案】 D 【试题解析】 需求分析阶段的工作可分为 4个阶段:需求获取、需求 分析、编写需求规格说明书、需求评审。 【知识模块】 软件工程基础 18 【正确答案】 B 【试题解析】 在软件开发中,需求分析阶段常使用的工具有数据流图 (DFD),数据字典 (DD)、判断树和判断表。 【知识模块】 软件工程基础 19 【正确答案】 C 【试题解析】 在软件开发的各个阶段经常会使用到一些图
18、形工具,如在需求分析阶段使用数据流图 (DFD图 ),在概要设计阶段使用系统结构图,在详细设计阶段使用程序流程图、 N-S图或者 PAD图等。 【知识模块】 软件工程基础 20 【正确答案】 D 【试题解析】 DFD(数据流图 Data-Flow-Diagram)是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示。它直接支持系统功能建模。在软件详细设计的过程阶段,要对每个模块规定的功能以及算法的设计给出适当的算法描述。常见的过程设计工具有: 图形工具:程序流程图, NS, PAD, HIPO。 表格工具:判定表。 语言工具: PDL(伪码 )。 【知识模块】 软件工程基础 21 【正确答
19、案】 A 【试题解析】 数 据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。 【知识模块】 软件工程基础 22 【正确答案】 D 【试题解析】 在软件开发过程中,需求分析阶段产生的主要文档是软件需求规格说明书。 【知识模块】 软件工程基础 23 【正确答案】 B 【试题解析】 需求分析的最终结果是生成软件需要规格说明书,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标与确认,又可以作为控制软件开发 进程的依据。 【知识模块】 软件工程基础 24 【正确答案】 C 【试题解析】 软件设计阶
20、段总体分为两部分:概要设计和详细设计,此阶段的主要任务就是将需求规格说明文档转换为软件设计文档,将需求阶段提出的问题,一一解释,形成详细设计文档,并根据功能要求,定制相应数据结构、各种流程图等,为下一步编码做准备。 【知识模块】 软件工程基础 25 【正确答案】 B 【试题解析】 耦合性是反映模块间互相连接的紧密程度,内聚性是指一个模块内部各个元素间彼此接合的紧密程序。提高模块的内聚性, 降低模块的耦合性是有利于模块的独立性。 【知识模块】 软件工程基础 26 【正确答案】 A 【试题解析】 模块的独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系较少且接口简单。衡量软件的模
21、块独立性使用:内聚性和耦合性两个定性度量标准。内聚性是对一个模块内部各个元素彼此结合的紧密程度的度量;耦合性是对模块问互相连接的紧密程度的度量。一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。 【知识模块】 软件工 程基础 27 【正确答案】 A 【试题解析】 按照 DeMarco的定义, “结构化分析就是使用数据流图 (DFD图 )、数据字典 (DD)、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化规格说明的目标文档。 ”系统结构图不能作为结构化方法软件需求分析工具。 【知识模块】 软件工程基础 28 【正确答
22、案】 C 【试题解析】 程序流程图是一种传统的、应用广泛的软件过程设计工具,通常也称为程序框图。其中,用带箭头的线段表示控制流,用柜形表示加工步骤,用菱形表示逻辑条件。 【知识 模块】 软件工程基础 29 【正确答案】 D 【试题解析】 软件测试的目的是为了发现程序中的错误,而软件调试是为了更正程序中的错误。 【知识模块】 软件工程基础 30 【正确答案】 A 【试题解析】 软件测试是为了发现错误而执行程序的过程。一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。为了达到好的测试效果,应该由独立的第三方来构造测试,程序员应尽量避免检查自
23、己的程序。 【知识模块】 软件工程基础 31 【正确答 案】 D 【试题解析】 为了达到好的测试效果,应该由独立的第三方进行测试工作。因为从心理学角度讲,程序人员或设计方在测试自己的程序时,要采取客观的态度是会不同程度地存在障碍的,所以选项 A)错误。在程序调试时,修改了一个错误的同时可能引入了新的错误,解决的办法是在修改了错误之后,必须进行回归测试,所以选项 B)错误。所谓软件维护,就是将交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改,所以选项C)错误。 【知识模块】 软件工程基础 32 【正确答案】 C 【试题解析】 采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。 【知识模块】 软件工程基础 33 【正确答案】 B 【试题解析】 软件测试实施的步骤有单元测试、集成测试和确认测试。 【知识模块】 软件工程基础 34 【正确答案】 D 【试题解析】 程序调试的任务是诊断和改正程序中的错误。它与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于一定的调试工具去执行并找出错误的具体位置。软件测试贯穿整个软 件生命期,调试主要在开发阶段。 【知识模块】 软件工程基础