软件开发工程考试复习题
- 格式:doc
- 大小:60.50 KB
- 文档页数:8
软件工程师考试题及答案1. 以下哪个选项是面向对象编程的核心概念?A. 函数B. 过程C. 封装D. 模块化答案:C2. 在数据库设计中,为了提高数据的一致性和减少数据冗余,通常采用哪种范式?A. 第一范式(1NF)B. 第二范式(2NF)C. 第三范式(3NF)D. BCNF范式答案:C3. 在软件开发过程中,哪种测试是在软件开发周期的早期阶段进行的,目的是验证软件需求?A. 单元测试B. 集成测试C. 系统测试D. 验收测试答案:D4. 以下哪个算法是用于解决图论中的最短路径问题?A. 快速排序B. 深度优先搜索C. 迪杰斯特拉算法D. 堆排序答案:C5. 在敏捷开发方法中,以下哪个实践是用于促进团队成员之间的沟通和协作?A. 持续集成B. 代码审查C. 每日站立会议D. 功能驱动开发答案:C6. 在编程语言中,多态性允许什么?A. 一个类继承多个父类B. 一个方法有多个不同的实现C. 一个变量可以存储不同类型的数据D. 一个接口有多个不同的实现答案:B7. 在软件工程中,软件维护的哪个阶段涉及到对现有代码的改进,以提高性能或增加新功能?A. 纠错性维护B. 适应性维护C. 完善性维护D. 预防性维护答案:C8. 在关系数据库中,哪个SQL命令用于从数据库中检索数据?A. INSERTB. UPDATEC. DELETED. SELECT答案:D9. 在软件开发中,设计模式是什么?A. 一组最佳实践B. 一组预先定义的软件架构解决方案C. 一组编程语言的集合D. 一组软件测试工具答案:B10. 在Web开发中,以下哪个技术用于在客户端和服务器端之间进行数据交换?A. AJAXB. SOAPC. RESTD. 以上都是答案:D。
软件工程基础知识考试(答案见尾页)一、选择题1. 软件工程的基本原理是什么?A. 线性顺序开发B.迭代和增量开发C. 自顶向下,逐步求精D. 需求驱动和变更管理2. 软件开发过程中,需求分析的目的是什么?A. 确定软件开发的具体功能需求B. 编写需求规格说明书C. 评估项目可行性D. 规划如何构建和维护软件3. 软件设计的主要阶段有哪些?A. 概念设计B. 详细设计C. 结构设计D. 过程设计4. 在敏捷开发方法中,迭代周期通常有多长?A. 1-2周B. 4-6周C. 3-4个月D. 2-4周5. 软件测试的目的是什么?A. 保证软件质量B. 提高软件效率C. 降低维护成本D. 提高用户满意度6. 数据库设计通常遵循哪些基本原则?A. 数据完整性B. 数据安全性C. 数据一致性D. 数据及时性7. 在软件开发中,版本控制工具的主要作用是什么?A. 整理源代码文件B. 跟踪代码变更历史C. 版本控制项目管理D. 提供协作开发环境8. 软件维护主要包括哪些活动?A. 修复缺陷B. 更新文档C. 性能优化D. 安全性增强9. 面向对象编程(OOP)的四个基本特性是什么?A. 封装B. 多态C. 继承D. 抽象10. 什么是敏捷开发,它与其他开发方法的区别是什么?A. 敏捷开发是一种软件开发方法,它强调团队合作和快速响应变化。
B. 敏捷开发与其他开发方法的区别在于它采用了迭代和增量的开发方式,而不是瀑布模型。
C. 敏捷开发强调的是文档的重要性。
D. 敏捷开发是一种运动,而不是一种软件开发方法。
11. 软件工程的基本概念是什么?A. 软件工程是一门技术学科,它涉及到软件的开发、维护和管理。
B. 软件工程是应用计算机科学、数学及管理科学等原理来开发软件的学科。
C. 软件工程注重软件的可靠性、可用性和可维护性。
D. 软件工程的目标是生产高质量的软件产品。
12. 软件开发过程中通常遇到的三种风险是什么?A. 技术风险B. 经济风险C. 过程风险D. 人员风险13. 软件生命周期通常包括哪几个阶段?A. 需求分析B. 设计C. 编码D. 测试E. 部署和维护14. 在软件开发中,需求分析的目的是什么?A. 确定软件系统的功能和性能要求。
软件开发考试题目及答案一、选择题(每题2分,共20分)1. 在软件开发过程中,需求分析阶段的主要任务是什么?A. 确定软件的最终用户界面B. 确定软件的功能需求和性能需求C. 编写软件的详细设计文档D. 开始编写代码答案:B2. 面向对象编程中的“封装”指的是什么?A. 将数据和操作数据的方法组合在一起B. 将不同的数据类型组合在一起C. 将数据和控制数据的方法组合在一起D. 将不同的方法组合在一起答案:A3. 在敏捷软件开发中,以下哪个不是敏捷宣言的四个价值观之一?A. 个体和交互B. 可工作的软件C. 详尽的文档D. 响应变化答案:C4. 在软件测试中,黑盒测试和白盒测试的区别是什么?A. 黑盒测试关注软件的内部结构,白盒测试关注软件的功能B. 黑盒测试关注软件的功能,白盒测试关注软件的内部结构C. 两者都关注软件的功能D. 两者都关注软件的内部结构答案:B5. 软件项目管理的主要目标是什么?A. 确保软件按时发布B. 确保软件在预算内完成C. 确保软件满足所有需求D. 所有以上选项答案:D二、简答题(每题10分,共30分)1. 请简述软件开发生命周期(SDLC)的主要阶段。
答案:软件开发生命周期(SDLC)的主要阶段包括:需求收集、需求分析、系统设计、编码、测试、部署、维护和退役。
2. 解释什么是软件重构,并给出一个重构的例子。
答案:软件重构是指在不改变软件外部行为的前提下,对软件的内部结构进行调整以提高其可读性、可维护性和性能。
一个常见的重构例子是将一个过长的函数拆分成几个更小的、功能单一的函数。
3. 描述单元测试和集成测试的区别。
答案:单元测试是针对软件中的最小可测试部分(通常是单个函数或模块)进行的测试,以确保它们按预期工作。
集成测试则是在多个模块或组件已经单独测试后,将它们组合在一起进行测试,以确保它们能够协同工作。
三、应用题(每题25分,共50分)1. 假设你是一个软件开发团队的负责人,你的团队正在开发一个电子商务平台。
2024年软件工程开发等专业技能知识考试题库(附含答案)一、单选题1.数据流图是进行软件需求分析的常用图形工具,其基本图形符号是( )。
A.输入、输出、外部实体和加工B.变换、加工、数据流和存储C.加工、数据流、数据存储和外部实体D.变换、数据存储、加工和数据流参考答案:C2.集成测试的主要方法有两个,一个是()一个是()。
A.白盒测试方法、黑盒测试方法B.等价类划分方法、边缘值分析方法C.渐增式测试方法、非渐增式测试方法D.因果图方法、错误推测方法参考答案:C3.软件文档是软件工程实施的重要成分,它不仅是软件开发各阶段的重要依据,而且也影响软件的( )。
A.可用性B.可维护性C.可扩展性D.可移植性参考答案:B4.面向对象设计阶段的主要任务是系统设计和( )。
A.结构化设计B.数据设计C.面向对象程序设计D.对象设计参考答案:D5.包含风险分析的软件工程模型是( )。
A.喷泉模型B.瀑布模型C.增量模型D.螺旋模型参考答案:D6.Jackson方法根据()来导出程序结构。
A.数据流图B.数据间的控制结构C.数据结构D.IPO图参考答案:C7.需求工程的主要目的是( )。
A.系统开发的具体方案B.进一步确定用户的需求C.解决系统是“做什么的问题”D.解决系统是“如何做的问题”参考答案:C8.只有类的共有界面的成员才能成为使用类的操作,这是软件设计的( )原则。
A.过程抽象B.信息隐藏C.功能抽象D.共享性参考答案:B9.下列哪项不是风险管理的过程?( )。
A.风险规划B.风险识别C.风险评估D.风险收集参考答案:D10.在分层体系结构中,( )实现与实体对象相关的业务逻辑。
A.表示层B.持久层C.实体层D.控制层参考答案:D11.下列选项中不属于CI管道的是()。
A.构建B.模拟C.单元测试D.集成测试参考答案:B12.应该在( ),确定对象类中应有的服务。
A.建立对象模型之时B.建立动态模型和功能模型之后C.建立功能模型之后D.建立动态模型之后参考答案:B13.需求分析的主要方法有( )。
软件工程试卷及答案篇一:复习题及答案软件工程复习题第一部分(第1~6章)一、选择题:1. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。
A.软件工程B.软件周期C.软件危机D.软件产生2. 瀑布模型本质上是一种(A )模型。
A.线性顺序B.顺序迭代C.线性迭代D.早期产品3. 瀑布模型存在的问题是(B )。
A.用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求4. 螺旋模型是一种将瀑布模型和(A)结合起来的软件开发模型。
A.增量模型 B.专家系统 C.喷泉模型 D.变换模型5. 原型化方法是用户和设计者之间执行的一种交互构成,适用于(A)系统。
A.需求不确定性高的 B.需求确定的 C.管理信息 D.实时6. 下列有关软件工程的标准,属于国际标准的是(C )7. 结构化方法是一种基于(D)的方法。
A.数据结构B.程序结构C.算法D.数据流8. 软件可行性研究实质上是要进行一次( A)需求分析、设计过程。
A、简化、压缩的B、详细的C、彻底的D、深入的9. 可行性研究的目的是(D)A、分析开发系统的必要性B、确定系统建设的方案C、分析系统风险D、确定是否值得开发系统10. 设年利率为i,现存入p元,n年后可得钱数为(C)。
A、P×(1+i*n)B、P× (i+1)*nC、p×(1+i) nD、p×(i+n)11. 可行性研究是在(A)之前A、系统开发B、测试C、试运行D、集成测试12. 可行性研究需要的时间长短取决于系统的规模,一般来说,可行性研究的成本只是预期总成本的(C)。
A、1%B、20%C、8%D、50%13. 我国正式颁布实施的(B)对计算机病毒的定义具有法律性、权威性。
A.B.C.D.14. 效率是一个性能要求,因此应当在以下哪个阶段规定?BA、可行性分析B、需求分析C、概要设计D、详细设计15. 需求规格说明书的作用不包括(D)A、软件验收的依据B、用户与开发人员对软件要做什么的共同理解C、软件可行性研究的依据D、软件设计的依据16. 数据字典是用来定义(D)中的各个成份的具体含义的。
一.选择题:1.软件危机出现于___,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。
(C、B )A.50年代末B.60年代初C.60年代末D.70年代初A.运筹学B.工程学C.软件学D.软件学E.数字2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作__B_。
A.软件投机B.软件危机C.软件工程D.软件产生3.产生软件危机的原因有如下几点,除了___D__。
A、软件开发过程未经审查B、软件开发不分阶段,开发人员没有明确的分工C、所开发的软件,除了程序清单外,没有其他文档D、采用工程设计的方法开发软件,不符合软件本身的特点4.软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是__B_。
A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用5.一个软件项目是否进行开发的结论是在___B__文档中作出的。
A、软件开发计划B、可行性报告C、需求分析说明书D、测试报告6 .变换型和事务型是程序结构的标准形式。
从某处获得数据,再对这些数据作处理,然后将结果送出是属于_A__。
A.变换型 B 事务型7 .需求分析说明书不能作为___A__。
A、可行性研究的依据B、用户和开发人员之间的合同C、系统概要设计的依据D、软件验收测试的依据8 .结构化分析方法以数据流图、_D__和加工说明等描述工具,即用直观的图和简洁的语言来描述软件系统模型。
A.DFD图B.PAD图C.IPO图D.数据字典9 .系统开发人员使用系统流程图或其他工具描述系统,估计每种方案的成本和效益的工作是在____B_阶段进行的。
A、需求分析B、总体设计C、详细设计D、编码阶段10.下列___D不是模块化设计的目的。
A、可采用结构化设计方法B、降低复杂度C、有利于信息隐蔽D、描述系统的功能与性能11.某个模块的作用域是指___D__。
软件工程复习题(带答案)软件工程复习题一、单选题1、软件开发的结构化设计(SD)方法,全面指导模块划分的最重要原则应该是( c )A模块高内聚 B模块低耦合 C模块独立性 D程序模块化2、软件工程方法的提出起源于软件危机,而其目的应该是最终解决软件的什么问题?( D )A产生危机 B质量保证 C开发效率 D生产工程化3、软件工程开发的可行性研究是决定软件项目是否继续开发的关键,而可行性研究的结论主要相关于( A )A软件系统目标 B软件的性能C软件的功能 D软件的质量4、软件需求分析一般应确定的是用户对软件的( D )A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求5、软件测试是满足软件的功能和性能要求,保证软件正确性的措施,一般软件测试计划的制订应始于软件开发的哪个阶段? ( D )A.需求分析B.软件设计C.程序编码D.软件计划6、软件工程方法是在实践中不断发展的方法,而早期的软件工程方法主要是指( B )A.原型化方法B.结构化方法C.面向对象方法.D.功能分解法7、数据流图描述数据在软件中流动和被处理变换的过程,它是以图示的方法来表示,即.( A )A.软件模型B.软件功能C.软件结构D.软件加工8、软件工程学涉及到软件开发技术和工程管理两方面的内容,下述内容中哪一个不属于开发技术的范畴?(D)A.软件开发方法B.软件开发工具C.软件工程环境D.软件工程经济9、软件文档是软件工程实施中的重要成份,它不仅是软件开发的各阶段的重要依据,而且也影响软件的()A.可理解性B.可维护性C.可扩展性D.可靠性10、从( )语言开始,软件摆脱了对硬件的依赖。
A.第一代B.第二代C.第三代D.第四代11、在下面列出的基本成分中,哪个不是实体关系图的基本成分? ( )A.实体B.数据存储C.关系 D属性13、结构化程序设计主要强调程序的(C)A.效率B.速度C.可读性D.大小14、在软件工程中根据程序的功能说明,而不关心程序内部逻辑的测试方法为( A )A.黑盒法B.白盒法C.灰盒法D.综合法15、软件开发的结构化分析方法,常用的描述软件功能需求的工具有( C )A业务流程图,数据字典 B.软件流程图,模块说明C.数据流图,数据字典D.系统流程图,程序编码16、结构化程序设计思想的核心是要求程序只由顺序、循环和( A )三种结构组成。
一、选择题1、白盒测试法是通过分析程序的(C)来设计测试用例的。
A.应用范围B.功能C.内部逻辑D.输入数据2、风险预测从两个方面评估风险,即风险发生的可能性以及(D)。
A.风险产生的原因B.风险监控技术C.风险能否消除D风险发生所产生的后果3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。
A.好的计划B.不断的发布C.反馈和勇气D.持续集成4、等价分类法的关键是(C)。
A.确定等价类的边界条件B.按照用例来确定等价类C.划分等价类D确定系统中相同和不同的部分5、下列不属于黑盒测试的技术是(A)。
A.程序段或语句的功能B.模块的接口C.数据的名称和用途D.模块的功能6、为了提高模块的独立性,模块之间最好是(D)耦合。
A.控制耦合B.公共耦合C.内容耦合D.数据耦合7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。
A.角色B.活动C.制品D.工作流&功能性注释嵌入在源程序内部,它是用来说明(A)。
A.程序段或语句的功能B模块的接口C.数据的名称和用途D模块的功能9、在结构化分析方法中,数据字典是重要的文档。
对加工的描述是数据字典的组成内容之一,常用的加工描述方法有(C)。
A.只有结构化语言.B有结构化语言和判定树C.有结构化语言、判定树和判定表D.有判定树和判定表10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行(B)维护。
A.正确性B适应性C完善性D预防性11、软件危机的主要原因是(A)。
A软件本身特点与开发方法B对软件的认识不够C软件生产能力不足D软件工具落后12、DFD是常用的进行软件需求分析的图形工具,其基本符号是(C)。
A.输入、输出、外部实体和加工B.变换、加工、数据流和存储C.加工、数据流、数据存储和外部实体D•变换、数据存储、加工和数据流13、软件工程管理是对软件项目的开发管理。
一、选择1、文档是软件产品的一部分,没有文档的软件就不称其为软件。
对2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。
错3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。
错4、建立用例模型的步骤包括确定角色、确定用例和绘制用例图。
错5、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。
错6、软件配置管理是一组标识、组织和控制修改源程序的活动。
错7、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。
错8、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。
对9、边界值分析方法是取输入/输出等价类的边界值作为测试用例。
对10、面向对象的分析是面向计算机系统建立软件系统的对象模型。
错11、(D)是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
A 软件过程B 软件测试C 软件生存周期D 软件工程12、ISO9000是由ISO/TC176制定的关于(B)和质量保证的国际标准。
A 质量控制B 质量管理C 质量策划D 质量改进13、CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。
除第1级外,每个等级都包含了实现该成熟度等级目标的若干(B)。
A 关键实践 B 关键过程域 C 软件过程能力 D 软件过程14、在软件开发的各种资源中,(D)是最重要的资源。
A 开发工具B 方法C 硬件环境D 人员15、软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。
A 固有的B 人为的C 可消除的D 不可降低的16、在各种不同的软件需求中,(D)描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。
A 业务需求B 功能需求C 非功能需求D 用户需求17、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统。
1.某旅馆的电话服务如下:可以拨分机号和外线号码。
分机号是从7201至7299。
外线号码先拨9,然后是市话号码或长话号码。
长话号码是以区号和市话号码组成。
区号是从100到300中任意的数字串。
市话号码是以局号和分局号组成。
局号可以是455,466,888,552中任意一个号码。
分局号是任意长度为4的数字串。
要求:写出在数据字典中,电话号码的数据流条目的定义即组成。
电话号码=[分机号|外线号码]分机号=7201 (7299)外线号码=9+[市话号码|长话号码]长话号码=区号+市话号码区号=100 (300)市话号码=局号+分局号局号=[455|466|888|552]分局号=4{数字}4数字=[0|1|2|3|4|5|6|7|8|9]2.为以下程序流程图分别设计语句覆盖和判定覆盖测试用例,并标明程序执行路径。
(1)语句覆盖测试用例令x=2,y=0,z=4作为测试数据,程序执行路径为abcde。
(2)判定覆盖可以设计如下两组数据以满足判定覆盖:x=3,y=0,z=1(1分)(通过路径abce);x=2,y=1,z=2(1分)(通过路径acde)。
或者x=2,y=1,z=1;覆盖路径acdex=1,y=1,z=1;覆盖路径acex=3,y=0,z=1;覆盖路径abce(注意:本题也还可以有其他答案)3.请用判定表画出以下问题的行为逻辑。
人们往往根据天气情况决定出门时的行装。
天气可能下雨,也可能不下雨;下雨或不下雨天气可能变冷,也可能不变冷。
如果天气要下雨,出门时带上雨伞;如果天气变冷,4.对下列子程序进行调试:procedure example(y,z: real; var x: real)beginif (y>1) and (z=0) then x:=x/y;if (y=2) or (x>l) then x:=x+l;end.该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。
最新软件工程考试题库(含答案和解析)一、选择题1. 以下哪个不是软件工程的三个基本目标之一?A. 可维护性B. 可靠性C. 可用性D. 低成本答案:D解析:软件工程的三个基本目标是可维护性、可靠性和可用性。
低成本虽然也是一个重要的考虑因素,但并不是软件工程的基本目标。
2. 以下哪种编程范式主要用于降低软件复杂性?A. 面向对象编程B. 过程式编程C. 函数式编程D. 逻辑编程答案:A解析:面向对象编程(OOP)通过将数据和操作数据的方法封装在一起,降低了软件复杂性,提高了代码的可重用性和可维护性。
3. 软件开发过程中,以下哪个阶段需要进行需求分析?A. 设计阶段B. 编码阶段C. 测试阶段D. 需求分析阶段答案:D解析:需求分析是软件开发过程中的第一个阶段,其主要任务是明确软件系统的功能、性能等需求。
4. 以下哪个软件工程方法主要关注软件项目的管理?A. 敏捷开发B. ScrumC. UMLD. 设计模式答案:B解析:Scrum 是一种敏捷开发方法,主要关注软件项目的管理和团队协作。
UML(统一建模语言)主要用于软件设计,设计模式主要用于解决软件设计中的常见问题。
5. 以下哪个软件工具主要用于版本控制?A. GitB. EclipseC. JiraD. Visual Studio答案:A解析:Git 是一款分布式版本控制系统,主要用于跟踪和管理软件开发过程中的代码变更。
二、填空题1. 软件工程的基本活动包括______、______、______和______。
答案:需求分析、设计、编码、测试2. 敏捷开发的核心价值观包括______、______、______、______和______。
答案:个体和互动、工作软件、客户协作、响应变化、持续交付3. 软件开发过程中,常用的设计模式包括______、______、______、______和______。
答案:工厂模式、单例模式、策略模式、装饰模式、观察者模式4. 软件测试的目的是______、______和______。
一、选择题:1、用例图中,用来表示用例的符号为( B ) 。
2、协作图中包含的元素包括(A ) 。
A. 对象 B. 链 C. 激活 D. 消息3、在类图中,哪种关系表达整体与部分的关系( D ) 。
A .泛化 B. 实现 C. 依赖 D. 聚合4、下列各种图形符号中,用来表示组成关系的符号为 (B )。
A. B. C. D.5 、(A )工具在软件的详细设计中不能使用。
A . DFD B. N-S 图 C. 流程图 D. PDL6 、 “软件危机”是指 (C )。
A. 计算机病毒的出现B. 利用计算机进行经济犯罪活动C. 软件开发和维护中出现的一系列问题D. 人们过分迷恋计算机系统7 、 快速原型是利用原型辅助软件开发的一种新思想,它是在研究 (A )的方法和技术中产生 的。
A. 需求阶段B. 设计阶段C. 测试阶段D. 软件开发的各个阶段8、从严格意义上讲,下列 4 个选项中属于顺序图的元素是(ABCD ) 。
A.对象B. 参与者C. 消息D. 激活9、下列 UML 图形中, (ABCD )属于 UML 的动态视图。
A. 协作图B. 状态图C. 活动图D. 顺序图10、数据字典是软件需求分析阶段的最重要的工具之一,其最基本的功能是( D ) 。
A. 数据库设计B. 数据通信C. 数据关系描述D. 数据定义11、详细设计与概要设计衔接的图形工具是 (D )。
A. DFD 图B. 程序图C. PAD 图D. SC 图12 、UML 中,大多数建模者把节点分为(AC )A . 设备 B. 构件 C. 处理器 D. 显示器13 、(C)是一种特殊形式的状态机,用于对计算流程和工作流程建模。
A .时间图 B. 流程图 C. 活动图 D. 状态图14 、(A )描述从状态到状态的控制流程,常用来对系统的动态特征进行建模。
A. 状态图B. 序列图C. 协作图D. 活动图15、下列特点属于描述用例的特点的是( D ) 。
软件开发试题及答案一、选择题(每题2分,共10分)1. 下列关于软件开发生命周期的描述中,错误的是:A. 需求分析阶段是软件开发的第一步B. 设计阶段需要确定软件的内部结构C. 编码阶段是将设计转换为代码D. 测试阶段是软件开发的最后阶段答案:D2. 在软件开发过程中,需求分析阶段的主要任务是什么?A. 编写代码B. 确定软件的功能和性能C. 进行软件测试D. 部署软件答案:B3. 敏捷开发方法的核心理念是:A. 过程和工具B. 文档和规范C. 个人和交互D. 客户合作答案:C4. 在面向对象编程中,封装的目的是:A. 提高代码的可读性B. 隐藏对象的实现细节C. 提高代码的执行效率D. 增加代码的复杂性答案:B5. 下列关于软件测试的描述中,正确的是:A. 测试是为了证明软件无错误B. 测试是为了发现软件的错误C. 测试可以提高软件的性能D. 测试是软件开发的可选步骤答案:B二、填空题(每题2分,共10分)1. 在软件开发过程中,需求分析阶段的主要任务是确定软件的________和________。
答案:功能;性能2. 敏捷开发方法强调的是________和________。
答案:迭代;增量3. 在面向对象编程中,继承的目的是________。
答案:代码重用4. 软件测试的主要目的是________。
答案:发现错误5. 在软件开发中,维护阶段包括________和________。
答案:纠错;改进三、简答题(每题5分,共20分)1. 请简述软件开发生命周期的主要阶段。
答案:需求分析、系统设计、实现、测试、部署、维护。
2. 敏捷开发方法与传统开发方法相比有哪些优势?答案:敏捷开发方法具有更高的灵活性和适应性,能够更快地响应变化,强调团队合作和客户参与,以及持续交付价值。
3. 面向对象编程的三大特性是什么?答案:封装、继承、多态。
4. 软件测试的目的是什么?答案:软件测试的目的是确保软件的质量,通过发现和修复错误来提高软件的可靠性和性能。
软件开发技术一、填空题1、软件工程学的内容可包括()、结构、()、()、环境、管理、规范等。
2、软件生存周期一般可分为问题定义、()、()、设计、()、测试、运行与维护阶段。
3、系统流程图是()的传统工具。
4、结构化语言是介于自然语言和()之间的一种半形式语言。
5、数据字典的内容包括六项:()、()、()、数据存储、处理逻辑、外部实体。
6、UML的定义包括()和()两个部分。
7、按数据流的类型,结构化设计方法有两种设计策略,它们是变换分析设计和()。
8、瀑布模型是以文档为驱动、适合于()的软件项目的模型。
9、对象具有标识唯一性、分类性、多态性、( ) 和( )等基本特性。
10、消息关联指的是对象()的一种依赖关系。
11、对象的规格说明包括对对象()的说明及对对象()的说明。
12、在需求分析阶段常用的图形工具有()、()、()。
13、模块独立的概念是()、()、()和局部化概念的直接结果。
14、基于计算机系统的系统元素包括:软件、硬件、人、()、()和过程等几个部分。
15、软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、()、可使用性和效率。
16、为了便于对照检查,测试用例应由输入数据和预期的()两部分组成。
17、在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、()。
18、需求分析的基本任务是准确的回答()。
19、常用的系统分析方法有四类,包括:()、数据流方法、信息造型方法以及()。
20、面向对象设计中,主要存在两种耦合,交互耦合和()。
21、UML是一种标准的图形化(即可视化)建模语言,它由()和()组成。
其中,前者是UML的表示法(语法),而后者给出前者的含义,是UML的语义。
二、选择题1、下列关于瀑布模型的描述正确的是()。
A. 瀑布模型的核心是按照软件开发的时间顺序将问题简化。
B. 瀑布模型具有良好的灵活性。
C. 瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开。
软件开发技术复习题一、填空及简述:1、软件、工程、软件工程及其三要素? P1-3答:计算机系统中的程序及其文档称为软件。
工程是将科学论理和知识应用于实践的科学。
软件工程是一类求解软件的工程。
它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法,创建软件以达到提高质量、降低成本的目的。
软件工程的三要素是指——目标、原则、活动①软件工程的目标可概括为“生产具有正确性、可用性以及开销合宜的产品”。
②四条基本原则~⑴选取适宜的开发模型⑵采用合适的设计方法⑶提供高质量的工程支持⑷重视开发过程的管理③软件工程的活动包括 ~需求、设计、实现、确认和支持。
2、软件开发模型的种类、适用情况、缺点? P5-10答:①瀑布模型~在支持结构化软件开发、控制软件开发的复杂性、促进软件开发工程化等方面起着显著作用。
最为突出的缺点是该模型缺乏灵活性,无法通过开发活动澄清本来不够确切的软件需求,可能导致开发出的软件并不是用户真正需要的软件,无疑要进行返工或不得不在维护中纠正需求的偏差,为此必须付出高额的代价,为软件开发带来不必要的损失。
②演化模型~针对事先不能完整定义需求的软件开发。
但忽略风险分析。
③螺旋模型~适合于大型软件的开发。
使用时需要具有相当丰富的风险评估经验和专门知识,如果项目风险较大,又未能及时发现,势必造成重大损失。
④喷泉模型~主要用于支持面向对象开发过程。
软件刻画活动需要多次重复。
⑤增量模型~广泛地使用开计算机工业中。
需不断地进行系统的增量开发。
3、设计的分类? P43答:软件设计可采用多种方法,如结构化设计方法、面向数据结构的设计方法、面向对象的设计方法等。
4、结构化设计方法的分类及功能? P43、P65答:结构化设计方法分为~①总体设计。
其功能是设计被建系统的模块结构,即系统实现据需要的软件模块-系统中可标识软件成分,以及这些模块之间的调用关系。
②详细设计。
这个阶段的功能是确定怎样具体地实现所需求的系统,即应该得出对目标系统的精确描述,从而在编码阶段可以将这个描述直接翻译成用某种程序设计语言书写的程序,基本上决定了最终的程序代码的质量。
软件工程考试题及答案一、单项选择题(每题2分,共20分)1. 软件工程的主要目标是()。
A. 提高软件的生产率B. 提高软件的运行效率C. 降低软件的生产成本D. 提高软件的可维护性答案:A2. 软件工程的三要素包括()。
A. 方法、工具和过程B. 方法、工具和人员C. 方法、过程和人员D. 工具、过程和人员答案:C3. 软件需求分析阶段的主要任务是()。
A. 确定软件的功能需求B. 确定软件的非功能需求C. 确定软件的界面需求D. 确定软件的测试需求答案:A4. 软件设计阶段的主要任务是()。
A. 制定软件开发计划B. 确定软件的体系结构C. 编写软件详细设计文档D. 进行软件测试答案:B5. 软件测试的目的是()。
A. 证明软件是正确的B. 发现软件中的错误C. 证明软件是无错误的D. 证明软件是可维护的答案:B6. 软件维护不包括以下哪项活动()。
A. 改正性维护B. 适应性维护C. 完善性维护D. 软件设计答案:D7. 软件项目管理的主要任务不包括()。
A. 进度管理B. 质量管理C. 风险管理D. 软件编码答案:D8. 面向对象方法中,对象的基本特性不包括()。
A. 抽象B. 封装C. 继承D. 多态答案:D9. UML(统一建模语言)是一种()。
A. 程序设计语言B. 数据库查询语言C. 建模语言D. 脚本语言答案:C10. 在软件开发过程中,需求变更是不可避免的,以下哪项不是需求变更的原因()。
A. 客户的需求不明确B. 项目范围的扩大C. 技术实现的困难D. 软件已经完成答案:D二、多项选择题(每题3分,共15分)11. 软件工程的基本原理包括()。
A. 抽象B. 模块化C. 逐步求精D. 迭代开发答案:ABC12. 软件需求分析阶段的输出包括()。
A. 需求规格说明书B. 用户手册C. 系统架构图D. 测试计划答案:A13. 软件设计阶段的主要文档包括()。
A. 架构设计文档B. 详细设计文档C. 用户手册D. 测试计划答案:AB14. 软件测试的类型包括()。
•单项选择题1. 题干:在Java 中,由Java编译器自动导入,而无需在程序中用import导入的包是( D )。
A:java.appletB:java.awtC:java.utilD:ng2. 题干:下列选项中属于过滤流FilterInputStream的子类的是( A )。
A:DataInputStreamB:DataOutputStreamC:PrintStreamD:BufferedOutputStream3.题干:容器Panel和Applet缺省使用的布局编辑策略是( B )。
A:BorderLayoutB:FlowLayoutC:GridLayoutD:CardLayout4. 题干:如果int i = 4, 则printf("%d", -i-- )的输出结果是( D ),i的值是( )。
A:-4 3B:-3 3C:-3 4D:-4 45. 题干:在下面的语句中:只有一个在功能上与其他三个语句不等价(其中s1和s2表示某个C语句),这个不等价的语句是( D)。
A:if (a) s1; else s2;B:if (!a) s2; else s1;C:if (a!=0) s1; else s2;D:if (a==0) s1; else s2;6. 题干:若执行fopen函数时发生错误,则函数的返回值是( D )。
A:地址值B:0C:1D:EOF7. 题干:fwrite函数的一般调用格式是(D )。
A:fwrite(buffer,count,size,fp);B:fwrite(fp,count,size,buffer);C:fwrite(fp,size,count,buffer);D:fwrite(bufferf,size,count,p);8. 题干:以下程序段的输出结果是( C )。
int a=15;System.out.println(~a);A:11B:-21C:-16D:-159. 题干:编译和运行下面代码时显示的结果是( A)。
public class MyClass{static int i;public static void main(String argv[]){System.out.println(i);}}A:Error Variable i may not have been initializedB:0C:1D:null10. 题干:下列Java语言中可以建立图形用户界面GUI的工具集。
这些工具集所在的包是( C )。
A:ng包B:java.io包C:java.awt包D:java.util包•多项选择题1. 题干:下列可以用来实现TCP/IP客户服务器程序的类有( AC )。
A:ServerSocketB:ServerC:SocketD:DatagramPacketE:DatagramSocket2. 题干:设有以下变量:struct str{int no;char *name;}node;char buf[100];以下能为node变量输入值的正确代码有( )。
A:scanf("%d%s", node.no, );B:scanf("%d%s", &node.no, &);C:canf("%d%s", &node.no, buf); = new char(strlen(buf)+1);strcpy(, buf);D:scanf("%d%s", &node.no, buf); = (char *)malloc(strlen(buf)+1);strcpy(, buf);3. 题干:以下关于结构类型变量的定义正确的有( )。
A:struct data{int num;float price;}&book;B:struct data{int num;float price;}book;book b;C:struct data{int num;float price;}book;struct data &d=book;D:typedef struct data{int num;float price;}book;book b;4. 题干:若以下选项中的变量已正确定义,则不正确的赋值语句有( D)。
A:x1=26.8%3;B:x=3*x+x;C:x3=0x12D:x4=1+2=35. 题干:下列选项中,说法错误的有( ACD)。
A:用New运算符来创建的对象,在JVM退出时才会被做垃圾回收B:判断一个对象是否可以被垃圾回收的条件为是否还有对该对象的引用C:Java函数的参数传递规定,所有的原始类型(如整数)和对象(使用new来创建的)都为地址传递D:Java函数支持重载,但函数必须至少有一个参数或返回值的类型不同或个数不同6. 题干:下列表达式中,( AB )返回的是true。
A:"john" == "john"B:"john".equals("john")C:"john" = "john"D:"john".equals(new Button("john"))7. 题干:Java程序中关于方法的定义和使用说法正确的有( AB CD)。
A:Java中能执行特定任务的模块统称为方法,它由语句序列组成B:一个最简单的Java程序文件可以不包含方法C:方法一旦定义可以被多次调用D:方法可以没有返回值,但在定义方法时要用关键字void来修饰方法名8. 题干:程序经常需要用到数据的输入输出,关于Java中输入输出方法的使用正确的是( A BD)。
A:Java语言提供了两种数据输入方法,即命令行方式输入和从文本流读取的方式B:Java中所有的输入都当作字符串来接收,必要时需要进一步进行类型转换C:Java中输入的数据可以直接参与指定类型的数据的运算D:Java语言中java.io包为用户提供了输入输出流,因此设计到数据流操作时需要在程序前面加上一条语句:“import java.io.*”9. 题干:在Java编程中,已知for循环的结构如下:for(表达式①;表达式②;表达式③){循环体④}在此结构运行时可能多次执行的部分是( BCD )。
A:表达式①B:表达式②C:表达式③D:循环体④10. 题干:下列选项中,说法正确的有( ABCD )。
A:环境变量可在编译source code时指定B:在编译程序时,所能指定的环境变量不包括class pathC:javac一次可同时编译数个Java源文件D:javac.exe能指定编译结果要置于哪个目录(directory)•基础操作题1. 题干:某袋子中装有四个红球、五个白球、六个黑球,现从该袋子中任意取出六个球。
编写程序,找出这六个球中至少有一个黑球的所有方案。
••public class Tes {/*** @param args*/public static void main(String[] args) { new Tes().tes();}public void tes(int i) {}private void tes() {int count = 0;for (int i = 1; i <= 6; i++) {count += A(i) * B(i);}System.out.println(count);}private int B(int i) {// System.out.println(i + "TESS");int temp1 = 1;int temp2 = 1;for (int j = 1; j <= 1; j++) {temp1 *= (6 - i + 1);temp2 *= i;}return temp1 / temp2;}private int A(int i) {// System.out.println(i + "TES");int temp1 = 1;int temp2 = 1;for (int j = 1; j <= i; j++) {temp1 *= (9 - i + 1);temp2 *= i;}// System.out.println(temp1 + ":" + temp2);return temp1 / temp2;}}•2. 题干:编写一个Java Applet 程序,要求其实现一个半径为15个像素点的圆在Applet 中从左到右、从右到左的循环移动。
●综合操作题1. 题干:输入两个字符串,要求将这两个字符串交叉连接。
如串1为"ABCD",串2为"123456",则合并后的串为"A1B2C3D456"。
●public class Te {/*** @param args*/public static void main(String[] args) {new Te().tes();}public void tes() {String str = "ABCDEF", str1 = "1234556", temp = "";if (str.length() > str1.length()) {for (int i = 0; i < str1.length(); i++) {System.out.println(str.charAt(i) + "" + str1.charAt(i));System.out.println(str1.charAt(i));temp += "" + str.charAt(i) + "" + str1.charAt(i);}temp += str.substring(str1.length(), str.length());}else{for (int i = 0; i < str.length(); i++) {System.out.println(str.charAt(i) + "" + str1.charAt(i));System.out.println(str1.charAt(i));temp += "" + str.charAt(i) + "" + str1.charAt(i);}temp += str1.substring(str.length(), str1.length());System.out.println(temp);}}}2. 题干:某公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的。