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