软件工程考研复试计算机机试编程题经典50题(含解析和答案)

合集下载

《软件工程》经典考试例题题,重点的知识点(含答案)

《软件工程》经典考试例题题,重点的知识点(含答案)

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. 操作系统1.1 进程管理- 什么是进程?进程的特点是什么?进程是计算机中正在执行中的程序的实例。

进程的特点包括独立性、动态性和并发性。

- 什么是进程的三态模型?请详细描述每个状态的含义。

进程的三态模型包括就绪、执行和阻塞三个状态。

就绪状态表示进程具备了被调度执行的条件;执行状态表示进程正在执行;阻塞状态表示进程由于某种原因暂时无法执行。

- 进程调度算法有哪些?请简要介绍每种调度算法的特点。

常见的进程调度算法包括先来先服务(FCFS)、短作业优先(SJF)、优先级调度、轮转法和多级反馈队列调度。

FCFS按照进程到达时间的先后顺序进行调度,优点是简单易实现,缺点是平均等待时间较长。

SJF根据进程所需执行时间进行调度,优点是平均等待时间较短,但无法预测作业的执行时间。

优先级调度根据进程的优先级进行调度,可以设置不同的优先级,但可能导致低优先级进程长期得不到执行。

轮转法按照时间片进行调度,属于公平调度算法,但可能导致频繁的上下文切换。

多级反馈队列调度结合了优先级和轮转法的特点,根据进程的优先级和等待时间进行调度。

1.2 内存管理- 什么是内存管理?内存管理的主要任务是什么?内存管理是操作系统管理内存资源的过程。

其主要任务包括内存分配、地址映射、内存保护和内存回收等。

- 描述页表的作用和原理。

页表是一种数据结构,用于记录虚拟地址和物理地址之间的映射关系。

通过页表,操作系统可以将虚拟地址转换为对应的物理地址,实现内存的访问。

- 简述分段和分页的区别。

分段和分页都是内存管理的方法。

分段是将程序的逻辑地址空间划分为若干个段,每个段具有独立的特性。

分页是将逻辑地址空间和物理地址空间划分为固定大小的块,称为页。

分段适用于动态变化的程序和数据结构,而分页适用于静态和较大的程序。

2. 数据结构与算法2.1 链表- 什么是链表?链表的特点是什么?链表是一种常见的数据结构,由一系列节点组成。

硕士计算机面试题及答案

硕士计算机面试题及答案

硕士计算机面试题及答案一、选择题1. 在计算机科学中,以下哪个选项是用于描述数据结构的?A. 算法B. 程序C. 数据结构D. 操作系统答案:C2. 以下哪种排序算法的时间复杂度为O(n^2)?A. 快速排序B. 归并排序C. 堆排序D. 冒泡排序答案:D二、简答题1. 请简述什么是数据库的事务?答案:数据库事务是一组原子性的数据库操作序列,要么全部执行,要么全部不执行。

事务具有ACID属性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

2. 描述TCP和UDP协议的主要区别。

答案:TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,它确保数据的顺序、完整性和可靠性。

UDP(用户数据报协议)是一种无连接的、不可靠的传输层协议,它不保证数据的顺序、完整性或可靠性,但具有较低的延迟和开销。

三、编程题1. 编写一个函数,实现字符串反转的功能。

答案:```pythondef reverse_string(s):return s[::-1]```2. 给定一个整数数组,请找出数组中第二大的数。

答案:```pythondef find_second_max(nums):max1 = max2 = float('-inf')for num in nums:if num > max1:max2 = max1max1 = numelif num > max2 and num != max1:max2 = numreturn max2```四、案例分析题1. 描述一个场景,说明在分布式系统中,CAP定理如何影响系统设计。

答案:在分布式系统中,CAP定理指出,一个分布式系统不可能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)。

计算机考研复试面试常问问题 编程语言篇

计算机考研复试面试常问问题 编程语言篇

计算机考研复试面试常问问题编程语言篇需要pdf直接打印版,可在公众号"程序员宝藏"回复复试上岸获取(会持续更新)在复习过程中,我用心查阅并整理了在考研复试面试中可能问到的大部分问题,并分点整理了答案,可以直接理解背诵并加上自己的语言润色!极力推荐打印下来看,效率更高!声明:一些边边角角的没有收集,毕竟是考研面试,不是笔试,这样也能减轻大家的负担!此系列一共有8篇:编程语言篇|数据结构篇|操作系统篇|组成原理篇|计算机网络篇|数据库篇|软件工程篇|计算机专业英语篇(还未全部完成,敬请期待,你们的支持和关注是我最大的动力!)个人整理,不可用于商业用途,转载请注明出处。

但是有同学反应闲鱼上有人盗卖此免费分享资料,还有好多同学买了,所以希望大家多多点赞评论收藏,提高这份资料被搜索引擎搜索到的概率,我就不加水印影响大家使用了。

今年是第一次整理此系列,度不好控制,后面可能会继续优化造福后面的同学,大家加油!需要408电子书2021版,可在公众号"程序员宝藏"回复408电子书获取需要408初试视频2021版,可在公众号"程序员宝藏"回复408视频获取需要复试机试视频,可在公众号"程序员宝藏"回复机试必过获取加油,大家都可以上岸让我们一起努力计算机考研复试面试常问问题编程语言篇一、C和C++二、C++和JAVA一、C和C++C语言面向过程,重点在于算法和数据结构。

C程序的设计首先考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。

C++语言是面向对象语言,首先考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。

它在C的基础上添加了面向对象、模板等现在程序设计语言的特性。

拓展了面向对象设计的内容,如类、继承、虚函数、模板和容器类等等,使之更加符合现代程序设计的需要。

太原理工复试题《软件工程》题库及答案

太原理工复试题《软件工程》题库及答案

太原理工复试题《软件工程》题库及答案1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)A.软件工程B.软件周期C.软件危机D.软件产生2.研究开发所需要的成本和资源是属于可行性研究中的(B )研究的一方面。

A.技术可行性B.经济可行性C.社会可行性D.法律可行性3.IDEF0图不反映出系统( B )A.系统做什么B.系统功能如何实现C.系统由谁来做D.系统实现的约束条件4.模块的内聚性最高的是( D )A.逻辑内聚B.时间内聚C.偶然内聚D.功能内聚5.在SD方法中全面指导模块划分的最重要的原则是( D )A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性6.软件详细设计主要采用的方法是( D )A.模块设计B.结构化设计C.PDL语言D.结构化程序设计7.下列关于JSP方法不正确的说法是( D )A.JSP方法主要用于规模不大的数据处理系统B.JSP方法不明确的划分软件概要设计和详细设计的两个阶段C.JSP方法适用于输入数据和输出数据之间有对应关系的问题求解D.JSP方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。

因此它只适用于详细设计阶段8.不适合作为科学工程计算的语言是( D )A. PascalB. CC. FortranD. Prolog9.黑盒测试在设计测试用例时,主要需要研究( A )A.需求规格说明与概要设计说明B.详细设计说明C.项目开发计划D.概要设计说明与详细设计说明10.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。

设计这组测试用例的方法是( C )A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法11.下列属于维护阶段的文档是( C )A.软件规格说明B.用户操作手册C.软件问题报告D.软件测试分析报告12.快速原型模型的主要特点之一是( D )A.开发完毕才见到产品B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件D.及早提供工作软件13.因计算机硬件和软件环境的变化而做出的修改软件的过程称为( B )A.较正性维护B.适应性维护C.完善性维D.预防性维护14.类库这种机制是( D )级别的信息共享。

50道JAVA基础编程练习题全面解答

50道JAVA基础编程练习题全面解答
50 道 JAVA 基础编程练习题解答
【程序 1】 题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第 三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? .程序分析: 兔子的规律为数列 1,1,2,3,5,8,13,21.... 解答: (方法一) 利用数学分析可得知:这个月的兔子数量为前两个月的兔子数量之和,推导过程如下:
} 【程序 4】 题目:将一个正整数分解质因数。例如:输入 90,打印出 90=2*3*3*5。 解答: 分析:对 n 进行分解质因数,应先找到一个最小的质数 k,然后按下述步骤完成: (1)如果这个质数恰等于 n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果 n>k,但 n 能被 k 整除,则应打印出 k 的值,并用 n 除以 k 的商,作为新的正整数你 n,重复执行第一步。 (3)如果 n 不能被 k 整除,则用 k+1 作为 k 的值,重复执行第一步。 这个题目很明显是要用递归算法来实现的,打印“*”有些技巧,但也很容易解决,程序如 下:
F1:求出 m 和 n 的较大者,令较大者为 m,较小者为 n。 F2:判断 m 能否被 n 整除,若能则 m 为两者最小公倍数。 F2:将 n 分解因式。 F3:将 m 依次乘以 n 的因子,判断乘积能否被 n 整除,若能则乘积为两者最小公倍数。 根据上面的算法,程序如下: import java.io.*; import java.util.*; public class Text6 {
for(int i=0;i<m.size();i++) {
chengji=chengji*m.elementAt(i); if((a*chengji)%b==0) {

软件工程考研复试题

软件工程考研复试题

1、说出软件工程的四项基本原则?选取适合的开发范型,采用合适的设计方法,提供高质量的工程支持,重视开发过程的管理.2、请列出软件工程的生命周期的6个阶段?问题的定义及规划,需求分析,软件设计,程序编码,软件测试和运行维护.瀑布模型有以下优点:1)为项目提供了按阶段划分的检查点。

2)当前一阶段完成后,您只需要去关注后续阶段.3)可在迭代模型中应用瀑布模型。

增量迭代应用于瀑布模型。

迭代1解决最大的问题.每次迭代产生一个可运行的版本,同时增加更多的功能。

每次迭代必须经过质量和集成测试.2、瀑布模型有以下缺点:1)在项目各个阶段之间极少有反馈。

2)只有在项目生命周期的后期才能看到结果.3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。

1. Strings=newString(‘xyz’);请问产生几个StringObject?2. 软件工程可以分为几个阶段?请问各个阶段的作用是什么?3。

值类型与引用类型的区别?用C#事例说明?4。

编写一个冒泡排序的程序。

6 举例说明你所熟悉几种设计模式,说明各种模式在何种情况下使用?7 你如何理解委托,一般在什么情况下用?8 你做过的C/S结构程序中你用的是几层架构,为什么要用,各层间的关系是什么?9:请问此程序的输出结果:usingSystem;u1 非功能性需求:用户对软件质量属性、运行环境、资源约束、外部接口等方面的要求或期望,包括:(1) 性能需求:用户在软件响应速度、结果精度、运行时资源消耗量等方面的要求。

(2) 可靠性需求:用户在软件失效的频率、严重程度、易恢复性,以及故障可预测性等方面的要求。

(3) 易用性需求:用户在界面的易用性、美观性,以及对面向用户的文档和培训资料等方面的要求。

(4) 安全性需求:用户在身份认证、授权控制、私密性等方面的要求.(4)运行环境约束:用户对软件系统运行环境的要求。

(5)外部接口:用户对待开发软件系统与其他软件系统或硬件设备之间的接口的要求。

最新软件工程考试题库(含答案和解析)

最新软件工程考试题库(含答案和解析)

最新软件工程考试题库(含答案和解析)一、选择题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. 软件测试的目的是______、______和______。

软件工程面试题目(3篇)

软件工程面试题目(3篇)

第1篇一、软件工程基础1. 请简述软件工程的概念及其重要性。

2. 软件工程的发展经历了哪些阶段?3. 软件生命周期包括哪些阶段?4. 什么是软件危机?其产生的原因有哪些?5. 软件工程的基本原则有哪些?6. 什么是软件需求分析?其主要任务是什么?7. 软件设计的基本原则有哪些?8. 什么是软件测试?其主要任务是什么?9. 软件维护的类型有哪些?10. 请简述软件工程中的项目管理方法。

二、软件需求分析1. 什么是需求规格说明书?其主要内容有哪些?2. 需求分析的方法有哪些?3. 如何进行需求获取?4. 什么是用例?如何编写用例?5. 什么是用户故事?如何编写用户故事?6. 什么是需求变更管理?如何处理需求变更?7. 请简述软件需求分析中的风险评估。

8. 如何进行需求验证?三、软件设计1. 软件设计的基本原则有哪些?2. 什么是面向对象设计?请简述面向对象设计的三个基本要素。

3. 请简述软件设计中的模块化设计。

4. 什么是设计模式?请举例说明几种常见的设计模式。

5. 如何进行软件设计中的数据结构设计?6. 什么是接口设计?请简述接口设计的原则。

7. 请简述软件设计中的架构设计。

8. 如何进行软件设计中的安全性设计?四、软件测试1. 软件测试的目的有哪些?2. 软件测试的分类有哪些?3. 什么是黑盒测试?什么是白盒测试?4. 请简述软件测试的方法。

5. 什么是测试用例?如何设计测试用例?6. 什么是自动化测试?请简述自动化测试的优势。

7. 如何进行软件测试中的缺陷管理?8. 请简述软件测试中的回归测试。

五、软件维护1. 软件维护的类型有哪些?2. 软件维护的基本原则有哪些?3. 如何进行软件维护中的需求变更管理?4. 请简述软件维护中的版本控制。

5. 如何进行软件维护中的配置管理?6. 请简述软件维护中的变更管理。

7. 如何进行软件维护中的风险管理?六、项目管理1. 什么是项目管理?请简述项目管理的五大过程组。

计算机面试题库及答案

计算机面试题库及答案

计算机面试题库及答案1. 什么是二进制数?二进制数是一种用0和1表示的数字系统,它是计算机科学中最基本的数字表示方法,因为计算机内部的硬件只能识别和处理0和1这两种状态。

2. 解释一下什么是算法?算法是一系列定义明确的计算步骤,用于解决特定问题或执行特定任务。

算法通常需要有限的步骤,并且每一步都明确无误,以确保能够达到预期的结果。

3. 什么是面向对象编程?面向对象编程(OOP)是一种编程范式,它将现实世界中的对象和它们的行为封装在类中。

OOP的主要概念包括类、对象、继承、封装和多态。

4. 请简述TCP/IP协议。

TCP/IP协议是一组用于数据通信的网络协议,它定义了电子设备如何在网络上进行通信。

TCP/IP协议栈包括四个层次:应用层、传输层、互联网层和网络接口层。

5. 什么是数据库规范化?数据库规范化是一种设计技术,用于优化数据库结构,减少数据冗余,并确保数据的一致性。

它通过将数据分解成多个相关的表来实现,每个表只包含相关的数据。

6. 解释一下什么是云计算。

云计算是一种提供计算资源(如服务器、存储、数据库、网络、软件等)的服务,这些资源可以通过互联网按需提供给用户。

用户无需拥有物理基础设施,而是通过服务提供商来访问这些资源。

7. 什么是区块链技术?区块链是一种分布式账本技术,它允许多个参与者共同维护一个不断增长的数据记录列表。

每个记录被称为一个区块,区块通过加密技术链接在一起,形成一个不可篡改的链。

8. 请解释一下什么是人工智能。

人工智能(AI)是计算机科学的一个分支,它试图创建能够执行通常需要人类智能的任务的机器。

这些任务包括学习、推理、解决问题、感知、语言理解和创造力。

9. 什么是软件工程?软件工程是一门应用工程原则、方法和技术来开发、运行和维护软件的学科。

它包括软件需求分析、设计、编码、测试和维护等过程。

10. 什么是网络安全?网络安全是指保护网络和数据不受未授权访问、破坏或泄露的一系列措施。

软件工程考研复试题

软件工程考研复试题

1、说出软件工程的四项基本原则?选取适合的开发范型,采用合适的设计方法,提供高质量的工程支持,重视开发过程的管理。

2、请列出软件工程的生命周期的6个阶段?问题的定义及规划,需求分析,软件设计,程序编码,软件测试和运行维护。

瀑布模型有以下优点:1)为项目提供了按阶段划分的检查点。

2)当前一阶段完成后,您只需要去关注后续阶段。

3)可在迭代模型中应用瀑布模型。

增量迭代应用于瀑布模型。

迭代1解决最大的问题。

每次迭代产生一个可运行的版本,同时增加更多的功能。

每次迭代必须经过质量和集成测试。

2、瀑布模型有以下缺点:1)在项目各个阶段之间极少有反馈。

2)只有在项目生命周期的后期才能看到结果。

3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。

1. Strings=newString(‘xyz’);请问产生几个StringObject?2. 软件工程可以分为几个阶段?请问各个阶段的作用是什么?3. 值类型与引用类型的区别?用C#事例说明?4. 编写一个冒泡排序的程序。

6 举例说明你所熟悉几种设计模式,说明各种模式在何种情况下使用?7 你如何理解委托,一般在什么情况下用?8 你做过的C/S结构程序中你用的是几层架构,为什么要用,各层间的关系是什么?9:请问此程序的输出结果:usingSystem;u1 非功能性需求:用户对软件质量属性、运行环境、资源约束、外部接口等方面的要求或期望,包括:(1) 性能需求:用户在软件响应速度、结果精度、运行时资源消耗量等方面的要求。

(2) 可靠性需求:用户在软件失效的频率、严重程度、易恢复性,以及故障可预测性等方面的要求。

(3) 易用性需求:用户在界面的易用性、美观性,以及对面向用户的文档和培训资料等方面的要求。

(4) 安全性需求:用户在身份认证、授权控制、私密性等方面的要求。

(4) 运行环境约束:用户对软件系统运行环境的要求。

(5) 外部接口:用户对待开发软件系统与其他软件系统或硬件设备之间的接口的要求。

软件工程考研复试计算机机试编程题经典50题(含解析和答案)

软件工程考研复试计算机机试编程题经典50题(含解析和答案)

软件工程考研复试计算机机试编程题经典50题(含解析和答案)软件工程考研复试计算机编程题经典50题含解析和答案【题目1】一个偶数总能表示为两个素数之和。

//由于用除sqrt(n)的方法求出的素数不包括2和3,//因此在判断是否是素数程序中人为添加了一个3。

import java.util.*;public class lianxi44 {public static void main(String[] args) {Scanner s = new Scanner(System.in);int n,i;do{System.out.print("请输入一个大于等于6的偶数:");n = s.nextInt();} while(n<6||n%2!=0); //判断输入是否是>=6偶数,不是,重新输入fun fc = new fun();for(i=2;i<=n/2;i++){if((fc.fun(i))==1&&(fc.fun(n-i)==1)){int j=n-i;System.out.println(n+" = "+i+" + "+j);} //输出所有可能的素数对}}}class fun{public int fun (int a) //判断是否是素数的函数{int i,flag=0;if(a==3){flag=1;return(flag);}for(i=2;i<=Math.sqrt(a);i++){if(a%i==0) {flag=0;break;}else flag=1;}return (flag) ;//不是素数,返回0,是素数,返回1}}//解法二import java.util.*;public class lianxi44 {public static void main(String[] args) {Scanner s = new Scanner(System.in);int n;do{System.out.print("请输入一个大于等于6的偶数:");n = s.nextInt();} while(n<6||n%2!=0); //判断输入是否是>=6偶数,不是,重新输入for(int i=3;i<=n/2;i+=2){if(fun(i)&&fun(n-i)) {System.out.println(n+" = "+i+" + "+(n-i));} //输出所有可能的素数对}}static boolean fun (int a){ //判断是否是素数的函数boolean flag=false;if(a==3){flag=true;return(flag);}for(int i=2;i<=Math.sqrt(a);i++){if(a%i==0) {flag=false;break;}else flag=true;}return (flag) ;}}【题目2】判断101-200之间有多少个素数,并输出所有素数。

软件考研试题及答案

软件考研试题及答案

软件考研试题及答案一、单项选择题(每题2分,共10分)1. 以下哪个选项是面向对象编程语言的特性?A. 结构化B. 模块化C. 封装D. 过程化答案:C2. 在软件开发过程中,需求分析阶段的主要任务是什么?A. 编写代码B. 设计数据库C. 确定软件功能和性能要求D. 进行系统测试答案:C3. 软件测试的目的是?A. 修复软件中的所有错误B. 验证软件是否满足需求C. 编写文档D. 进行代码审查答案:B4. 在敏捷开发方法中,以下哪个不是敏捷的四大价值观?A. 个体和互动B. 工具和过程C. 可工作的软件D. 客户合作答案:B5. 下列哪种软件架构风格是面向服务的?A. 管道-过滤器B. 客户端-服务器C. 主-从架构D. 层级架构答案:B二、多项选择题(每题3分,共15分)1. 以下哪些是软件工程的主要活动?A. 需求分析B. 系统设计C. 编程D. 软件测试E. 软件维护答案:A, B, C, D, E2. 在面向对象编程中,以下哪些是对象的基本特征?A. 封装B. 继承C. 多态D. 抽象E. 并发答案:A, B, C, D3. 以下哪些是软件测试的类型?A. 单元测试B. 集成测试C. 系统测试D. 性能测试E. 回归测试答案:A, B, C, D, E4. 在软件开发过程中,以下哪些是风险管理的策略?A. 风险转移B. 风险接受C. 风险避免D. 风险共享E. 风险消除答案:A, B, C, D5. 在软件项目管理中,以下哪些是项目成功的关键因素?A. 明确的项目目标B. 有效的沟通C. 合适的技术D. 良好的团队合作E. 严格的进度控制答案:A, B, D, E三、简答题(每题5分,共20分)1. 请简述什么是软件危机,并列举出解决软件危机的几种方法。

答案:软件危机是指软件开发过程中出现的一系列问题,如成本失控、进度延误、质量低下等。

解决软件危机的方法包括:采用软件工程方法论、实施严格的项目管理、进行需求工程、采用模块化和组件化设计、进行持续的测试和维护等。

(完整版)东北大学软件工程考研复试

(完整版)东北大学软件工程考研复试

软件工程试卷试题下载-样卷.doc第二学期期终试题踏实学习,弘扬正气;诚信做人,诚实考试;作弊可耻,后果自负课程名称软件工程导论使用专业班级姓名学号一二三四五六七八九十总分试题得分一、判断题(正确的在括号内打上“√”,错误的打上“×”。

每题1.5分,共15分)1.Warnier方法也是一种面向数据结构的设计方法,其逻辑更严格。

(×)2.PAD图在设置了五种基本控制结构后,还允许递归调用。

(×)3.为了加快软件维护作业的进度,应尽可能增加维护人员的数目。

(×)4.当验收测试通过,软件开发就完成了。

(×)5.完成测试作业后,为了缩短源程序的长度应删除程序中的注解。

(×)6.在进行总体设计时应加强模块间的联系。

(×)7.系统结构图是精确表达程序结构的图形表示法。

因此,有时也可以将系统结构图当作系统流程图使用。

(×)8.用黑盒法测试时,测试用例是根据程序内部逻辑设计的。

(×)9.在程序调试时,找出错误的位置和性质比改正该错误更难。

(√)10.以对象、类、继承和通信为基础的面向对象设计方法(OOD)也是常见的软件概要设计方法之一。

(√)二、单项选择题(每小题2分,共10分)1.试判断下列叙述中,哪个(些)是正确的(D)a、软件系统中所有的信息流都可以认为是事务流b、软件系统中所有的信息流都可以认为是变换流c、事务分析和变换分析的设计步骤是基本相似的A、aB、bC、cD、b和c2.进行需求分析可使用多种工具,但(B)是不适用的。

A、数据流图B、PAD图C、判定表D、数据词典3.在详细设计阶段,经常采用的工具有(A)。

A、PADB、SAC、SCD、DFD4.详细设计的结果基本决定了最终程序的(C)A、代码的规模B、运行速度C、质量D、可维护性5.使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准。

A、程序的内部逻辑B、程序的复杂程度C、该软件的编辑人员D、程序的功能三、多项选择题(每题2分,共10分。

软件工程考研复试题

软件工程考研复试题

1、说出软件工程的四项基本原则?选取适合的开发范型,采用合适的设计方法,提供高质量的工程支持,重视开发过程的管理。

2、请列出软件工程的生命周期的6个阶段?问题的定义及规划,需求分析,软件设计,程序编码,软件测试和运行维护。

瀑布模型有以下优点:1)为项目提供了按阶段划分的检查点。

2)当前一阶段完成后,您只需要去关注后续阶段。

3)可在迭代模型中应用瀑布模型。

增量迭代应用于瀑布模型。

迭代1解决最大的问题。

每次迭代产生一个可运行的版本,同时增加更多的功能。

每次迭代必须经过质量和集成测试。

2、瀑布模型有以下缺点:1)在项目各个阶段之间极少有反馈。

2)只有在项目生命周期的后期才能看到结果。

3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。

1。

Strings=newString(‘xyz’);请问产生几个StringObject?2. 软件工程可以分为几个阶段?请问各个阶段的作用是什么?3. 值类型与引用类型的区别?用C#事例说明?4。

编写一个冒泡排序的程序.6 举例说明你所熟悉几种设计模式,说明各种模式在何种情况下使用?7 你如何理解委托,一般在什么情况下用?8 你做过的C/S结构程序中你用的是几层架构,为什么要用,各层间的关系是什么?9:请问此程序的输出结果:usingSystem;u1 非功能性需求:用户对软件质量属性、运行环境、资源约束、外部接口等方面的要求或期望,包括:(1)性能需求:用户在软件响应速度、结果精度、运行时资源消耗量等方面的要求。

(2) 可靠性需求:用户在软件失效的频率、严重程度、易恢复性,以及故障可预测性等方面的要求。

(3)易用性需求:用户在界面的易用性、美观性,以及对面向用户的文档和培训资料等方面的要求.(4) 安全性需求:用户在身份认证、授权控制、私密性等方面的要求。

(4) 运行环境约束:用户对软件系统运行环境的要求。

(5)外部接口:用户对待开发软件系统与其他软件系统或硬件设备之间的接口的要求。

考研软件工程试题及答案

考研软件工程试题及答案

考研软件工程试题及答案一、单项选择题(每题2分,共20分)1. 软件工程的主要目标是()。

A. 提高软件的可靠性B. 提高软件的生产率C. 降低软件的成本D. 以上都是答案:D2. 软件需求分析阶段的主要任务是()。

A. 确定软件的功能需求B. 确定软件的非功能需求C. 确定软件的界面需求D. 确定软件的性能需求答案:A3. 在软件测试中,黑盒测试的主要依据是()。

A. 程序内部逻辑B. 程序外部功能C. 程序设计文档D. 用户操作手册答案:B4. 软件开发过程中,需求变更可能导致()。

A. 项目延期B. 成本增加C. 质量下降D. 以上都是答案:D5. 面向对象分析与设计的主要概念不包括()。

A. 对象B. 类C. 模块D. 继承答案:C二、多项选择题(每题3分,共15分)1. 以下哪些是软件工程的基本原则?()A. 系统性原则B. 可维护性原则C. 可测试性原则D. 可扩展性原则答案:ABCD2. 软件项目管理包括以下哪些方面?()A. 时间管理B. 成本管理C. 风险管理D. 质量管理答案:ABCD3. 软件测试的目的是()。

A. 发现软件中的缺陷B. 验证软件是否满足需求C. 确保软件的可靠性D. 提高软件的性能答案:ABC三、简答题(每题5分,共20分)1. 简述软件生命周期的各个阶段。

答案:软件生命周期包括需求分析、设计、编码、测试、维护等阶段。

2. 什么是软件危机?它主要表现在哪些方面?答案:软件危机是指在软件开发过程中出现的一系列问题,如成本超支、进度延误、质量低下等。

3. 请解释什么是软件重构。

答案:软件重构是指在不改变软件外部行为的前提下,对软件内部结构进行调整,以提高其可理解性和可维护性。

4. 什么是敏捷开发?答案:敏捷开发是一种以人为核心、迭代、循序渐进的软件开发方法,强调团队合作、客户反馈和对变化的响应。

四、计算题(每题10分,共20分)1. 假设一个软件项目的开发周期为18个月,预计成本为1000万元。

计算机考研复试面试题库及答案

计算机考研复试面试题库及答案

计算机考研复试面试题库及答案一、专业基础知识1. 计算机组成原理题目:简述冯·诺伊曼体系结构的基本原理。

答案:冯·诺伊曼体系结构是一种计算机系统的设计原则,也是现代计算机的基础。

它的基本原理包括以下几点:- 存储程序:计算机通过将指令和数据存储在同一个存储器中,实现了程序的自动执行。

- 二进制系统:计算机使用二进制表示数据和指令,简化了计算机系统的设计和实现。

- 指令流水线:计算机通过将指令的执行过程划分为多个阶段,并同时进行不同指令的执行,提高了计算机的执行效率。

- 内存层次结构:计算机通过多层次的存储器结构,包括高速缓存、内存和外部存储器,提供了不同速度和容量的存储器选择。

2. 算法与数据结构题目:什么是二叉搜索树?如何实现插入和删除操作?答案:二叉搜索树(BST)是一种特殊的二叉树,满足以下条件:- 对于树中的每个节点,其左子树的所有节点的值小于该节点的值,右子树的所有节点的值大于该节点的值。

- 对于树中的每个节点,其左子树和右子树也是二叉搜索树。

实现插入操作的步骤:- 从根节点开始,将待插入的值与当前节点的值进行比较。

- 如果待插入的值小于当前节点的值,且当前节点的左子树为空,则将待插入的值作为当前节点的左子节点。

- 如果待插入的值大于当前节点的值,且当前节点的右子树为空,则将待插入的值作为当前节点的右子节点。

- 如果待插入的值小于当前节点的值,且当前节点的左子树不为空,则将当前节点更新为其左子节点,重复上述步骤。

- 如果待插入的值大于当前节点的值,且当前节点的右子树不为空,则将当前节点更新为其右子节点,重复上述步骤。

实现删除操作的步骤:- 如果待删除的节点为叶子节点,直接删除。

- 如果待删除的节点只有一个子节点,将子节点连接至待删除节点的父节点。

- 如果待删除的节点有左右子节点,找到其右子树中的最小节点,用该节点替换待删除节点,并删除最小节点。

二、算法设计与分析1. 动态规划题目:请简述动态规划算法的基本思想,并给出一个应用动态规划算法的例子。

全面试 面试软件开发工程师 算法题 含答案

全面试 面试软件开发工程师 算法题 含答案

面试面试软件开发工程师算法题含答案1.编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。

答:packagecn.itcast;importjava.io.Fi1e;importjava.io.Fi1eReader;importjava.io.FiIeWriter;pub1icc1assMainC1ass{pub1icstaticvoidmain(String[]args)throwsException{ FiIeManagera=newFi1eManager(n a.txt n z newchar[]{'∖n'}); FiIeManagerb=newFi1eManager("b.txt∖newchar[]{,∖n'/'}); FiIeWriterc=newFi1eWriter("c.txt");StringaWord=nu11;StringbWord=nu11;whi1e((aWord=a.nextWord())!=nu11){c.write(aWord+,,∖∩"); bWord=b.nextWord();if(bWord!=nu11)c.write(bWord+"\n");)whi1e((bWord=b.nextWord())!=nu11){c.write(bWord+,,∖∩"); )c.c1ose();))c1assFi1eManager{String[]words=nu11;intpos=0;pub1icFi1eManager(Stri∩gfi1ename z char[]seperators)throws Exception{Fi1ef=newFi1e(fi1ename);FiIeReaderreader=newFi1eReader(f);char[]buf=newchar[(int)f.1ength()];intIen=reader.read(buf);Stringresu1ts=newString(buf z OJen);Stringregex=nu11;if(seperators.1ength>1){regex=nn+seperators[0]+n∖n+seperators[1];}e1se{regex=nn+seperators[0];words=resu1ts.sp1it(regex);)pub1icStringnextWord(){if(pos==words.1ength)returnnu11;returnwords[pos++];))2.编写一个程序,将d:\java目录下的所有JaVa文件复制到d:\jad目录下,并将原来文件的扩展名从JaVa改为Jad.(大家正在做上面这道题,网上迟到的朋友也请做做这道题,找工作必须能编写这些简单问题的代码!)答:IistFiIes方法接受一个FiIeFiIter对象,这个FiIeFiIter对象就是过虑的策略对象,不同的人提供不同的FiIeFiIter实现,即提供了不同的过滤策略。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程考研复试计算机编程题经典50题含解析和答案【题目1】一个偶数总能表示为两个素数之和。

//由于用除sqrt(n)的方法求出的素数不包括2和3,//因此在判断是否是素数程序中人为添加了一个3。

import java.util.*;public class lianxi44 {public static void main(String[] args) {Scanner s = new Scanner(System.in);int n,i;do{System.out.print("请输入一个大于等于6的偶数:");n = s.nextInt();} while(n<6||n%2!=0); //判断输入是否是>=6偶数,不是,重新输入fun fc = new fun();for(i=2;i<=n/2;i++){if((fc.fun(i))==1&&(fc.fun(n-i)==1)){int j=n-i;System.out.println(n+" = "+i+" + "+j);} //输出所有可能的素数对}}}class fun{public int fun (int a) //判断是否是素数的函数{int i,flag=0;if(a==3){flag=1;return(flag);}for(i=2;i<=Math.sqrt(a);i++){if(a%i==0) {flag=0;break;}else flag=1;}return (flag) ;//不是素数,返回0,是素数,返回1}}//解法二import java.util.*;public class lianxi44 {public static void main(String[] args) {Scanner s = new Scanner(System.in);int n;do{System.out.print("请输入一个大于等于6的偶数:");n = s.nextInt();} while(n<6||n%2!=0); //判断输入是否是>=6偶数,不是,重新输入for(int i=3;i<=n/2;i+=2){if(fun(i)&&fun(n-i)) {System.out.println(n+" = "+i+" + "+(n-i));} //输出所有可能的素数对}}static boolean fun (int a){ //判断是否是素数的函数boolean flag=false;if(a==3){flag=true;return(flag);}for(int i=2;i<=Math.sqrt(a);i++){if(a%i==0) {flag=false;break;}else flag=true;}return (flag) ;}}【题目2】判断101-200之间有多少个素数,并输出所有素数。

程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

public class lianxi02 {public static void main(String[] args) {int count = 0;for(int i=101; i<200; i+=2) {boolean b = false;for(int j=2; j<=Math.sqrt(i); j++){if(i % j == 0) { b = false; break; }else { b = true; }}if(b == true) {count ++;System.out.println(i );}}System.out.println( "素数个数是: " + count);}}【题目3】古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?//这是一个菲波拉契数列问题public class lianxi01 {public static void main(String[] args) {System.out.println("第1个月的兔子对数: 1");System.out.println("第2个月的兔子对数: 1");int f1 = 1, f2 = 1, f, M=24;for(int i=3; i<=M; i++) {f = f2;f2 = f1 + f2;f1 = f;System.out.println("第" + i +"个月的兔子对数: "+f2);}}}【题目4】打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

public class lianxi03 {public static void main(String[] args) {int b1, b2, b3;for(int m=101; m<1000; m++) {b3 = m / 100;b2 = m % 100 / 10;b1 = m % 10;if((b3*b3*b3 + b2*b2*b2 + b1*b1*b1) == m) {System.out.println(m+"是一个水仙花数"); }}}}【题目5】题目:将一个正整数分解质因数。

例如:输入90,打印出90=2*3*3*5。

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

import java.util.*;public class lianxi04{public static void main(String[] args) {Scanner s = new Scanner(System.in);System.out.print( "请键入一个正整数: ");int n = s.nextInt();int k=2;System.out.print(n + "=" );while(k <= n) {if(k == n) {System.out.println(n);break;}else if( n % k == 0) {System.out.print(k + "*");n = n / k; }else k++;}}}【题目6】题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

import java.util.*;public class lianxi05 {public static void main(String[] args) {int x;char grade;Scanner s = new Scanner(System.in);System.out.print( "请输入一个成绩: ");x = s.nextInt();grade = x >= 90 ? 'A': x >= 60 ? 'B':'C';System.out.println("等级为:"+grade);}}【题目7】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

/**在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。

* /import java.util.*;public class lianxi06 {public static void main(String[] args) {int a ,b,m;Scanner s = new Scanner(System.in);System.out.print( "键入一个整数:");a = s.nextInt();System.out.print( "再键入一个整数:");b = s.nextInt();deff cd = new deff();m = cd.deff(a,b);int n = a * b / m;System.out.println("最大公约数: " + m);System.out.println("最小公倍数: " + n);}}class deff{public int deff(int x, int y) {int t;if(x < y) {t = x;x = y;y = t;}while(y != 0) {if(x == y) return x;else {int k = x % y;x = y;y = k;}}return x;}}【题目8】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

package WuYang;import java.util.*;public class lianxi07 {public static void main(String[] args) {int abcCount=0;//英文字母个数int spaceCount=0;//空格键个数int numCount=0;//数字个数int otherCount=0;//其他字符个数Scanner scan = new Scanner(System.in);//扫描器接受控制台的输入信息System.out.println("输入一组字符");String str=scan.nextLine();//取出控制台的一行信息,也就是你输入的信息char[] ch = str.toCharArray();//把取道的字符串变成一个char数组for(int i=0;i<ch.length;i++){if(Character.isLetter(ch[i])){//判断是否字母abcCount++;}else if(Character.isDigit(ch[i])){//判断是否数字numCount++;}else if(Character.isSpaceChar(ch[i])){//判断是否空格键spaceCount++;}else{//以上都不是则认为是其他字符otherCount++;}}System.out.println("字母个数:"+abcCount);System.out.println("数字个数:"+numCount);System.out.println("空格个数:"+spaceCount);System.out.println("其他字符个数:"+otherCount);}}【题目9】求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

相关文档
最新文档