东南大学考研软院2015数据库+软工复试题
软件工程师面试题及答案
![软件工程师面试题及答案](https://img.taocdn.com/s3/m/5e35ce9b5ebfc77da26925c52cc58bd630869366.png)
软件工程师面试题及答案在当今科技飞速发展的时代,软件工程师成为了备受追捧的职业之一。
而在求职过程中,面试是至关重要的环节。
以下为您呈现一些常见的软件工程师面试题及答案,希望能对您有所帮助。
一、技术类问题1、请简要介绍一下面向对象编程(OOP)的三大特性,以及它们在实际开发中的应用。
答案:面向对象编程的三大特性是封装、继承和多态。
封装是将数据和操作数据的方法封装在一个类中,以实现数据的隐藏和保护,提高代码的安全性和可维护性。
例如,将一个人的个人信息和相关操作封装在一个“Person”类中。
继承允许创建一个新类,从现有类继承属性和方法,实现代码的复用和扩展。
比如,从“Employee”类继承创建“Manager”类。
多态使得同一个方法在不同的对象中有不同的实现方式,增强了程序的灵活性。
比如,在一个图形绘制程序中,不同的图形类(如圆形、方形)都实现了“draw”方法,但具体的绘制方式不同。
2、谈谈你对数据库索引的理解,以及在什么情况下应该使用索引,什么情况下不应该使用?答案:数据库索引是一种用于提高数据检索速度的数据结构。
它类似于书籍的目录,通过索引可以快速定位到所需的数据。
在经常用于查询、连接和排序的列上应该使用索引,比如主键、外键、经常用于搜索的字段等。
然而,在数据量小的表、频繁更新的列、数据分布不均匀的列上不应该使用索引,因为创建和维护索引会带来额外的开销,可能会降低数据插入、更新和删除的性能。
3、解释一下什么是线程安全,以及如何实现线程安全?答案:线程安全是指多个线程同时访问和操作同一共享资源时,程序的执行结果是正确的,不会出现数据不一致或其他异常情况。
实现线程安全的方法有多种,比如使用同步关键字(如 synchronized )来锁定关键代码段,确保同一时刻只有一个线程能够访问共享资源;使用线程安全的集合类(如 ConcurrentHashMap )替代非线程安全的集合类;避免共享可变状态,尽量使用不可变对象等。
软件开发工程师面试题及答案
![软件开发工程师面试题及答案](https://img.taocdn.com/s3/m/7862134a0a4e767f5acfa1c7aa00b52acfc79cdd.png)
软件开发工程师面试题及答案在软件开发领域,面试是选拔优秀人才的关键环节。
以下是一些常见的软件开发工程师面试题及相应的答案参考。
一、基础知识类1、什么是面向对象编程(OOP)?它的主要特点有哪些?答:面向对象编程是一种编程范式,它将数据和对数据的操作封装在对象中。
主要特点包括封装、继承和多态。
封装是将数据和方法包装在一个类中,隐藏内部实现细节;继承允许一个类从另一个类继承属性和方法,实现代码复用;多态则是同一个方法在不同的对象中有不同的实现方式。
2、解释一下进程和线程的区别。
答:进程是程序的一次执行过程,拥有独立的内存空间;线程是进程中的一个执行单元,多个线程共享进程的内存空间。
进程的创建和销毁开销较大,而线程相对较小。
进程间通信相对复杂,线程间通信较为简单。
3、谈谈你对数据库索引的理解。
答:数据库索引是一种用于提高数据库查询效率的数据结构。
它就像是一本书的目录,可以快速定位到所需的数据。
常见的索引类型有B 树索引、哈希索引等。
索引可以加快查询速度,但过多或不恰当的索引会导致数据插入、更新和删除的性能下降。
二、编程语言类1、如果让你用 Python 实现一个冒泡排序算法,你会怎么做?答:```pythondef bubble_sort(arr):n = len(arr)for i in range(n):for j in range(0, n i 1):if arrj > arrj + 1 :arrj, arrj + 1 = arrj + 1, arrj```2、在 Java 中,如何实现线程同步?答:在Java 中,可以使用`synchronized` 关键字来实现线程同步。
可以将方法声明为`synchronized` ,或者使用同步块。
另外,还可以使用`Lock` 接口和相关实现类来实现更灵活的线程同步。
3、谈谈 C++中的指针和引用的区别。
答:指针是一个变量,存储的是另一个变量的内存地址;引用则是一个别名,必须在初始化时绑定到一个对象,并且之后不能再重新绑定。
2015年软考数据库系统工程师考试真题加答案解析(上午+下午)直接打印
![2015年软考数据库系统工程师考试真题加答案解析(上午+下午)直接打印](https://img.taocdn.com/s3/m/8519ddf0f71fb7360b4c2e3f5727a5e9856a27b2.png)
2015年上半年数据库系统工程师考试上午真题(标准参考答案)单项选择题每题的四个选项中只有一个答案是正确的,请将正确的选项选择出来。
1机器字长为n位的二进制数可以用补码来表示()个不同的有符号定点小数。
A.2nB.2n-1C.2n-1D.2n-1+12计算机中CPU对其访问速度最快的是()。
A.内存B.CacheC.通用寄存器D.硬盘3Cache的地址映像方式中,发生块冲突次数最小的是()。
A.全相联映像B.组相联映像C.直接映像D.无法确定的4计算机中CPU的中断响应时间指的是()的时间。
A.从发出中断请求到中断处理结束B.从中断处理开始到中断处理结束C.CPU分析判断中断请求D.从发出中断请求到开始进入中断处理程序5总线宽度为32bit,时钟频率为200MHz,若总线上每5个时钟周期传送一个32bit的字,则该总线的带宽为()MB/S。
A.40B.80C.160D.2006以下关于指令流水线性能度量的描述中,错误的是()。
A.最大吞吐率取决于流水线中最慢一段所需的时间B.如果流水线出现断流,加速比会明显下降C.要使加速比和效率最大化应该对流水线各级采用相同的运行时间D.流水线采用异步控制会明显提高其性能7()协议在终端设备与远程站点之间建立安全连接。
A.ARPB.TelnetC.SSHD.WEP8安全需求可划分为物理线路安全、网络安全、系统安全和应用安全。
下面的安全需求中属于系统安全的是(),属于应用安全的是()。
A.机房安全B.入侵检测C.漏洞补丁管理D.数据库安全A.机房安全B.入侵检测C.漏洞补丁管理D.数据库安全9王某是某公司的软件设计师,每当软件开发完成后均按公司规定编写软件文档,并提交公司存档。
那么该软件文档的著作权()享有。
A.应由公司B.应由公司和王某共同C.应由王某D.除署名权以外,著作权的其他权利由王某10甲、乙两公司的软件设计师分别完成了相同的计算机程序发明,甲公司先于乙公司完成,乙公司先于甲公司使用。
2015东南大学软件工程调剂复试回忆
![2015东南大学软件工程调剂复试回忆](https://img.taocdn.com/s3/m/ee9f4a1359eef8c75ebfb30e.png)
2015东南大学软件工程调剂复试回忆本人本科普通一本。
一志愿报考浙江大学总分363 因为英语单科没进入复试。
调剂东南大学软件工程。
调剂申请很简单,直接到系统上填写信息就可以了。
一般也不会有学校的限制。
一志愿报考东南大学的复试通知可能会迟点下达。
本校跨专业调剂可能会被强制要求笔试选择微机。
笔试有参考用书,计算机网络是吴国新的。
关于计算机网络的笔试,其实我也拿不准,因为很多都是基础的知识,以前考过408可能感觉好点。
关于数据库,据说很简单(我跨考没学过,听别人说的)。
至于微机,我就完全不了解了。
软件工程的话,我建议直接查看往年的真题(一般为回忆版),还觉得不够的话,就自己找一些最近互联网、IT的热点话题(大数据、云计算什么的),理解就好,背诵没有必要。
真题考前看几遍,软件工程基础必有原题。
考试的题目大概是(如果回忆有错误,请更正)软件工程(不分顺序):对需求工程的理解结合软件工程的特点说其意义软件架构及其作用移动互联网平台的发展和现状面向对象与结构化计算机网络:15道选择,依然很基础水平/竖直奇/偶校验码,判断接收到的码组正确与否(GBN)滑动窗口给一个C类的网络,根据要求的子网的电脑数量,分配子网什么技术可以判断接收的数据是否被篡改网管技术复试真题和初始真题一样,很重要。
关于计算机网络这一块,特别指出,网络安全是很多学校没有教,并且408也不考的,但东大苏软很喜欢考的,复习的时候要重视一下。
关于面试:这次面试每组25,6人,后面的轮到都到五点多了,所有如果你排在20以后,可以先歇歇了。
英语环节会让你英语自我介绍(当然,个别组没有。
但一定得准备。
有空准备中文自我介绍)我英语很一般,背的时候还卡主,想必分不会很高。
之后会问一些简单的专业问题,因人而异。
对于专业能力的考察,老师都是根据你的课程和自我介绍中的描述来提问的,大家可以揣测一下,老师看了你的自我介绍,会对什么感兴趣。
至于项目,也是有的组问有的不问,但不能不准备。
计算机专业研究生复试-数据库面试简答题
![计算机专业研究生复试-数据库面试简答题](https://img.taocdn.com/s3/m/4b6728322e60ddccda38376baf1ffc4ffe47e219.png)
数据库绪论1.基本术语数据、数据库、数据库管理系统、数据库系统数据:数据库中存储的基本对象。
数据库:长期存储计算机内的、有组织的、可共享的数据集合。
数据库管理系统:专门用于建立和管理数据库的一套软件。
对外部程序提供访问数据库的方法,对内进行数据管理。
数据库系统:与和数据库相关的整个系统,一般由数据库、数据库管理系统、应用程序、数据库管理员和用户组成。
2.数据库管理技术的发展经历了人工管理阶段、文件系统阶段、数据库管理阶段。
人工管理阶段:数据不保存;只有程序概念,没有文件概念;数据面向应用。
文件系统阶段:数据可以长期保存,数据由文件系统管理,数据冗余、不一致、联系性差数据库管理阶段:数据结构化,共享性高,数据独立性高,由DBMS统一管理和控制,提供接口。
3.数据模型的组成三要素数据模型是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提供一个抽象的框架。
数据模型所描述的内容包括三个部分:数据结构、数据操作、完整性约束。
1、数据结构:数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。
数据结构是数据模型的基础,数据操作和约束都建立在数据结构上。
不同的数据结构具有不同的操作和约束。
2、数据操作:数据模型中数据操作主要描述在相应的数据结构上的操作类型和操作方式。
3、完整性约束:数据模型中的数据约束主要描述数据结构内数据间的语法、词义联系、它们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。
4.模式、外模式、内模式模式:也叫作逻辑模式或概念模式,是对数据库中全体数据逻辑结构和特征的描述。
定义模式时要定义数据的逻辑结构、数据之间的联系、定义与数据相关的安全性、完整性的要求。
模式只有一个。
外模式:也叫子模式或用户模式,它描述用户看到或使用的局部逻辑结构和特性。
用户根据外模式用数据操作语言或接口去操作数据库的数据。
软件工程师面试题及答案(全)
![软件工程师面试题及答案(全)](https://img.taocdn.com/s3/m/d8e62ac49f3143323968011ca300a6c30c22f198.png)
软件工程师面试题及答案1.你对软件开发生命周期有哪些了解?答:软件开发生命周期是软件工程中的一个重要概念,通常被划分为五个阶段:需求分析、设计、编码、测试和维护。
每个阶段都有特定的任务和目标,旨在确保软件开发的质量和可靠性。
2.请简述软件测试的类型和重要性。
答:软件测试是确保软件质量和可靠性的关键过程,主要分为功能测试、性能测试、安全测试、压力测试等类型。
测试的目的是发现软件中的错误和缺陷,以确保软件能够正常运行,满足用户的需求和期望。
3.请介绍一下你在软件开发中使用的编程语言及其优势和劣势答:我熟练掌握Java、C++、Python等编程语言。
其中,Java是一种面向对象的语言,具有跨平台、高效、可扩展等优势;C++是一种高效、可靠的系统编程语言,用于开发底层系统和高性能应用;Python是一种简单易学、适用于快速开发的高级编程语言,具有丰富的库和工具支持。
4.你对面向对象编程有哪些了解?答:面向对象编程是一种常见的编程范式,强调将程序设计看作是一组对象的交互。
它主要通过封装、继承、多态等概念来组织代码,以提高代码的可重用性和可维护性。
5.请简述一下你在项目中的代码管理经验?答:我通常使用Git来管理代码,能够熟练运用分支、合并、提交等操作。
我也经常使用GitHub等代码托管平台,以便团队成员协同工作和代码审核。
6.请介绍一下你在团队合作中的角色和经验。
答:作为一个软件工程师,团队合作是非常重要的。
在团队合作中,我通常会扮演不同的角色,如开发工程师、项目经理、技术领导等。
我擅长与团队成员沟通协作,确保项目进展和目标的达成。
我还善于分析和解决问题,协助团队成员克服困难,提高工作效率和质量。
7.你对代码重构有哪些了解?答:代码重构是一种常见的软件工程技术,旨在通过修改代码结构和设计来改善代码质量和可维护性。
重构可以消除代码重复、提高代码可读性、降低维护成本、提高代码的可测试性等。
8.你对敏捷开发有哪些了解?答:敏捷开发是一种灵活的软件开发方法,强调迭代、增量开发、以人为本等原则。
东大软院笔试复试试题
![东大软院笔试复试试题](https://img.taocdn.com/s3/m/33ab862ddd36a32d73758124.png)
3.SQL查询(很简单,两个单表)
4.给出具体两个表R和S,然后投影、查询、右外连接、自然连接
5.什么是事务,事务的性质(ACID) ቤተ መጻሕፍቲ ባይዱ
6.范式的定义,数据库是否一定要规划范,具体到哪一级
7.设计学生图书借阅关系的E-R图,和表、给出主键
软件工程基础考的也不是很难,4个大题,有两个是往年的旧题:
附笔试试题:(我参加的是软件的笔试用来代替蒙纳士的C++笔试)
复试科目:软件工程基础+计算机网络/数据库技术/微机原理(三选一)
我选的是数据库技术,因为之前为了增加调剂的机会,就看了各高校复试概率比较高的数据库。数据考的整体不难,七个大题目,没有小题。大概考察了:
1.数据模型和数据模式的区别
1.什么是软件架构,谈谈软件架构设计的历史,发展及作用
2.谈谈结构化软件设计和面向对象软件设计的区别
3.软件工程师应该具备的素质
4.什么是开源软件,谈谈开源软件的作用
软件工程导论复试题目
![软件工程导论复试题目](https://img.taocdn.com/s3/m/8cf766ad70fe910ef12d2af90242a8956becaa9e.png)
软件工程导论复试题目
1.请简述软件工程的定义以及软件开发生命周期的五个阶段。
2.请分析并说明软件需求分析的重要性及常见的需求分析方法与技巧。
3.请分析并说明软件设计的重要性及常见的软件设计模式。
4.请讲解程序测试的基本原则以及测试的类型和方法。
5.请解释软件项目管理的概念和重要性,简述项目管理中常用的工具
和技术。
6.请展示一款软件产品的开发过程,并分析其中遇到的主要问题和解
决方案。
7.请阐述软件维护的重要性和种类,并提出有效的维护策略和方法。
8.请讨论软件开发过程中的风险管理,包括风险识别、评估和控制策略。
9.请介绍软件质量保证的概念和方法,并提出构建高质量软件的有效
措施。
10.请对自己的软件工程知识和能力进行综合评估,并阐明未来自我
学习的规划和目标。
软件工程考研复试题
![软件工程考研复试题](https://img.taocdn.com/s3/m/b89c1f2cec630b1c59eef8c75fbfc77da2699729.png)
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)外部接口:用户对待开发软件系统与其他软件系统或硬件设备之间的接口的要求。
软件工程师面试题(含答案)
![软件工程师面试题(含答案)](https://img.taocdn.com/s3/m/dae31b04b207e87101f69e3143323968001cf455.png)
软件工程师面试题(含答案)软件工程师面试题(含答案)作为软件工程师,面试是进入理想职位的一道门槛。
面试官常常通过技术问题来评估面试者的实际能力和知识水平。
在本文中,我们将介绍一些常见的软件工程师面试题,并给出详细的答案和解析。
一、数据结构与算法1. 请解释什么是数据结构?它在软件开发中的作用是什么?数据结构是一种组织和存储数据的方式,它决定了数据元素之间的关系。
在软件开发中,数据结构的选择可以直接影响程序的性能和效率。
合理选择和使用数据结构可以提高程序的执行效率,提高内存利用率,并降低算法的时间复杂度。
2. 请解释栈(Stack)和队列(Queue)的概念,并比较它们的差异。
栈是一种遵循先进后出(LIFO)原则的数据结构,只允许在栈顶进行插入和删除操作。
队列是一种遵循先进先出(FIFO)原则的数据结构,允许在队尾插入元素,在对头删除元素。
栈和队列的主要差异在于插入和删除操作的位置不同。
3. 请解释常见的排序算法,如冒泡排序、选择排序和快速排序,并比较它们的效率。
冒泡排序是一种简单的排序算法,它重复地比较相邻的两个元素,如果它们的顺序错误,则交换它们的位置。
选择排序是一种简单的排序算法,它每次选择最小的元素放到已排序序列的末尾。
快速排序是一种常用的分治法排序算法,它通过选择一个基准元素,将数据分为左右两个子序列进行递归排序。
相比于冒泡排序和选择排序,快速排序通常具有更高的效率。
二、编程语言与开发工具1. 请解释面向对象编程(OOP)的概念,并列举几种面向对象编程语言。
面向对象编程是一种编程思想,它将数据和操作数据的方法封装在一起,形成对象。
面向对象编程的核心概念包括封装、继承和多态。
常见的面向对象编程语言包括Java、C++、C#等。
2. 请解释什么是异常处理,为什么在开发过程中需要使用异常处理机制?异常处理是一种用于处理程序错误和异常情况的机制。
在开发过程中,不可避免会出现各种意外情况,如文件不存在、网络连接断开等。
软件工程面试题目(3篇)
![软件工程面试题目(3篇)](https://img.taocdn.com/s3/m/7a67928df9c75fbfc77da26925c52cc58bd6908e.png)
第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. 什么是项目管理?请简述项目管理的五大过程组。
软件工程考研复试计算机机试编程题经典50题(含解析和答案)
![软件工程考研复试计算机机试编程题经典50题(含解析和答案)](https://img.taocdn.com/s3/m/43500d46b94ae45c3b3567ec102de2bd9605de20.png)
软件工程考研复试计算机机试编程题经典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之间有多少个素数,并输出所有素数。
2015年东南大学软件学院考研906真题回忆版
![2015年东南大学软件学院考研906真题回忆版](https://img.taocdn.com/s3/m/4b54462091c69ec3d5bbfd0a79563c1ec4dad75e.png)
2015年东南大学软件学院考研906真题回忆版
2015年东南软件学院906真题回忆
一、简答
1.解释编译错误和运行错误,并举例
2.解释多态
3.*this指针的作用
4.程序改错题
5.继承与组合的区别
二、补充缺失代码
1.函数功能是统计文本单词个数
2.判断一个数是否是五边形数
三、编程
1.数组a与数组b的前n个元素相除,结果存储在a中,并输出a
2.键盘输入一段文本,将其中的单词反序输出(如i am Jim应为Jim am i)
3.类的继承与派生shape类派生出二维类和三维类,二维类再派生出圆和矩形类,三维类派
生出长方体和圆柱
四、数据结构简答
1.队列与栈的异同
2.顺序存储和链式存储的优缺点
3.判断出栈序列
4.给出邻接矩阵,画出图
5.判断深度遍历序列
6.二叉树给出前序和中序,写出后序序列
7.生成AVL树
8.排序
五、数据结构编程
1.求二叉树所有节点data之和
2.求数组中任意两个元素的最大差值(Aj-Ai,j>i)
C++比较侧重字符串处理和输入输出流,总体来说题目都比较基础,本人复习主要是两科教材再加一本数据专业课122,还算可以吧,希望对打算报考东南软件学院的学弟学妹们有所帮助。
东南大学软件学院__软件工程课程——题库之一
![东南大学软件学院__软件工程课程——题库之一](https://img.taocdn.com/s3/m/a7e2e407de80d4d8d15a4fb2.png)
东南大学软件学院研究生课程考试试卷第一部分:基本概念题(60%)答题要求:(共60题,每题1分)请在每题的四个选项中,选择你认为最合适的一个答案,多选无效。
1、考察软件系统和软件项目的复杂性主要是看√B、技术的复杂度和管理的难度是主要标准2、《人月神话》作者Brooks对寻找银弹感到失望的理由是√C、任何单独的软件工程技术的进展都不能根本解决问题3、软件生命周期模型与软件开发过程的关系是√D、是技术、产品、项目、支撑环节,提供了平台和框架4、你认为,对现在的软件开发而言,传统的瀑布模型实用价值是√B、仍然有实用价值,软件开发团队需要先用好瀑布模型,然后再考虑与其他模型综合5、敏捷开发的小规模、频繁迭代的前提条件是√B、是用户积极参与的项目6、RUP模型更好地反映了现代软件工程的要求,是因为√C、更符合UP的理念,考虑的软件过程模型比较全面7、现代软件工程的过程管理的综合性表现在√D、过程的交汇点要根据项目的目标,综合考虑技术和管理的不同需要8、软件产品线的概念是√D、是满足特定市场或用户需求,具有公共可管理特性的产品的组合9、什么是构成软件产品线基础的核心资源√C、构架、组件、领域模型、需求陈述、工程文档和规格等10、软件产品开发与软件项目开发的区别是√D、项目是产品的具体实施,各自的目标不同11、对于项目章程的内容,以下哪个说法不属实√C、项目章程中,明确认可和承认了项目的存在12、项目经理如何才能更好地获得执行组织对项目的支持√B、把对项目的需求与组织的战略计划相联系13、目标管理是项目管理中基本的原则和方法,同时项目是运用目标管理技术的理想环境,因为?√A、所有项目应该强烈地以项目目标为导向14、下列哪项不是项目生命周期的一个过程√A、可行性研究15、下列哪种文件是项目队伍与项目客户之间通过确定项目目标及主要的项目可交付成果而达成协议的基础√C、范围说明书16、确定项目范围边界的主要因素是√A、依据用户需求及项目资源,对项目做什么和不做什么的定义17、项目章程的最主要意义是√B、确认项目诞生并为项目经理授权18、项目管理中的里程碑事件作用是√C、项目进行绩效考核和沟通协调管理的依据19、用一句话最确切地描述需求是√D、需求是对系统将要实现的功能、性能、质量和必须满足的约束的叙述20、最准确地描述角色与用例概念的一句话是√C、角色是与系统交互的人或其他系统,用例是角色完成的事件序列21、通过角色和用例分析,产生类图的过程中,角色与类的关系是√B、从角色到用例、再到类图,是一个分析过程22、通过建立业务模型,我们能够√A、分析领域中的角色、功能关系、组织架构、业务规则等23、下述哪一个说法是对OMT三种模型的最确切描述√B、对象模型定义了对象及彼此间关系的映射,动态模型表示瞬时的、行为24、需求获取阶段建立的业务模型与项目范围的关系√C、良好的业务模型有利于开发团队与用户就项目范围进行沟通25、现代软件工程需求开发阶段的需求分析是√B、是一个细化系统定义,并在需求与设计之间进行平衡的过程26、需求形式化的意义是√B、使得需求在可分解、可追溯的基础上进行开发和管理27、软件开发的基线的含义是√A、是软件制品通过测试和评审,成为继续开发或发布的基准28、需求状态的意义是√D、需求状态构成控制软件开发过程的需求基线的里程碑29、按CMM的定义要求需求评审的关键是√B、确定他们是否技术可行、适用于软件实现、定义清晰、可测试30、用户界面友好的可检验标准是√D、将友好性转化为可客观度量的其他质量属性进行检验31、在HOLIS系统的范围定义例子中,指令性基线的含义是√D、反映的是功能需求的范围约定32、在HOLIS系统的范围定义例子中,资源限制是如何表现的√B、在功能选择的排序中,考虑资源的因素33、需求评审的主要内容是由公司组织的专家对用户业务的合理性进行评审,你认为√C、需求评审的前提是假定用户需求都是必要和合理的,并由用户自行负责34、需求追踪链的意义是指√D、可以验证需求实现的程度,跟踪需求实现的过程35、需求稳定性的作用是√B、可以检查需求管理与开发的效率和控制水平36、为什么说用功能点度量取代代码行度量更具有合理性√C、功能点度量更全面37、在需求阶段,反映需求过程本身质量的可度量属性应该是√D、功能点的可追踪性和实现过程的稳定性38、组成体系结构的主要要素是√D、构成单元、连接方式和连接关系39、ISO/OSI的网络七层协议为层次结构设计提供的最好参考是√B、提出了基于服务、接口、协议的分层思想和概念40、系统概要设计的任务是√A、将需求分析模型映射为具体的软件体系结构41、基于DFD的传统体系结构设计方法最主要的缺点是√C、当数据流变化的时候,系统结构也要发生变化42、作为一种战术方法,一般应在系统设计的哪个阶段,考虑采用何种面向对象的设计模式√C、在子系统设计阶段,结合模块划分,考虑采用那种设计模式43、在体系结构方法中,“表驱动”是一种√D、用表格表示模块之间的一种间接调用关系44、基于DFD的传统体系结构设计方法最主要的缺点是√C、当数据流变化的时候,系统结构也要发生变化45、为什么说算法的优劣有时对系统性能指标的影响并不是最关键的√C、单个模块性能的提高,对系统性能提升作用有限46、为什么说模块的合理划分比增加一些代码注释更使系统易于维护√C、合理的模块划分可提高问题定位和回归测试的效率47、在评价一个软件系统的易用性时,你会更多地关注√D、运用合理的设计,使得用户很容易使用系统达到自己的应用目的48、MVC模式的关键机制是√D、把数据表示与输入控制、数据存储、功能逻辑分离开来49、MVC控制器的作用是√B、根据模型的状态和需要,改变对用户输入的控制方式50、采用MVC模式的理由是√D、可以采用发布-订阅模式,控制用户的表示和输入操作51、质量要素是指:√C、是一组与用户质量需求相一致的、可度量的系统特性52、项目管理中质量计划与质量体系之间的区别在于:√A、计划的对象是具体的产品、项目、服务或合同53、帕累托图(Pareto Charts)有助于项目经理:√A、集中于质量改进的最关键的问题54、当一项产品或服务完全达到客户要求时:√A、质量也达到了55、软件质量保证的确认(Validation)过程是√D、测试、度量、可靠性增长56、软件质量保证的验证(Verification)过程是√D、评审、度量、配置管理57、集成测试是在项目组还是由独立测试部门进行,主要看√C、软件系统的框架与体系结构的控制需要58、以下内容较好地描述了配置项的分类√A、是开发过程中程序、数据、文档和过程记录59、以下描述最好地说明了基线在软件管理中的作用√A、基线是项目开发过程的制品经过正式评审并被相关人员一致同意,可以作为以后项目开发的基础60、软件项目、软件工程、软件过程、软件产品,从总体到具体的关联关系排列应该是√D、软件工程、软件过程、软件产品、软件项目。
2012-2013 东南大学 软件学院 研究生 复试题 答案仅供参考(切勿照搬请可自行整理)
![2012-2013 东南大学 软件学院 研究生 复试题 答案仅供参考(切勿照搬请可自行整理)](https://img.taocdn.com/s3/m/5890841059eef8c75ebfb305.png)
2013 年东南大学软件学院研究生复试笔试部分:科目:(软件工程基础)+三选一今年是分网络、数据库、微机原理三个方面的,卷子上都有,由考生自己选,但只能选一门。
我当时选的是网络,所以也只记得网络的,其他两门大家自己再搜搜看吧。
软件工程基础有四题,都是论述题,挺简单的,大体如下:1、谈谈开源软件,比如历史、特点、未来发展等;2、软件工程师应该具备的素质;3、什么是软件架构,谈谈软件架构设计的历史,发展及作用;4、谈谈结构化软件设计和面向对象软件设计的区别网络部分有十个选择题跟四个论述题,选择题不难,就不多说了,论述题大体如下:1、谈谈防火墙,并根据一个具体例子说说防火墙的原理;2、一个主机能访问本网段其他主机,却不能访问其他网段主机,分析可能的原因;3、“分组/组装”技术,在什么情况下使用;4、主机之间怎么为不同服务提供通信的,一个服务怎么同时为多个客户提供服务的。
2012年软件工程基础1.结构化软件开发和面向对象的软件开发各有什么特点。
2. 你认为软件开发和软件管理的关系是什么?3.谈谈你对软件工程这门学科的理解。
4,你认为软件工程师应该具备什么样的素质。
计算机网络选择15题,都是基础问答题1. 用什么方法保证帧间隔符“01111110”的唯一性和传输的透明性2. 在什么情况下使用“分组/组装“技术,并举例。
3. 配置一台接入网络的计算机设备的时候,如果DNS没有配置会怎样,如果不配置,在什么情况下会有影响。
4.学校要弄无线网络,在原有的网络基础上该怎么办?2.软件工程师应具备基本素质因特网的迅速崛起,使计算机的应用越来越广泛,人们对计算机软件的需求也急剧膨胀。
传统的“作坊式”软件开发时代,我们更多的培养了一批称得上“个人英雄”的“程序员”,随着目前不断迅速增长的系统软件需求,软件生产必须走向工程化,形成产业,从而也开始逐渐出现一个新的职业人群和称谓——“软件工程师”。
良好的编码能力。
软件人员的一个重要职责是把用户的需求功能用某种计算机语言予以实现。
考研软件工程复试笔试面试详细问答
![考研软件工程复试笔试面试详细问答](https://img.taocdn.com/s3/m/dc407e148bd63186bdebbc52.png)
1.什么是软件工程?目前有哪几种主要的软件工程方法?概括地说,软件工程是指导计算机软件开发和维护的一门工程学科.采用工程的概念、原理、技术、和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
但软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义。
主要有传统方法也称为经典软件工程方法或生命周期方法或结构化范型和面向对象方法。
2、流程图与数据流图有什么主要区别?(1)数据流图(date flow diagram , DFD),是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是从数据的角度来描述一个系统的;而流程图则是从对数据加工的角度来描述系统的;(2)数据流图中的箭头是数据流,而流程图中的箭头则是控制流,它表达的是程序执行的次序;(3)数据流图适合于宏观地分析一个组织业务概况,而程序流程图只适合于描述系统中某个加工的执行细节。
(4)数据流程图应该重点描述了数据加工的过程,主要是模块内部,数据流图则是描述模块之间的关系。
3.软件需求分析的任务是什么?有哪些主要步骤?需求分析的基本任务是深入描述软件的功能和性能、确定软件设计的约束和软件同其它系统元素的接口细节、定义软件的其它有效性需求,总之,需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么” 的问题。
主要步骤:1.问题识别(1) 功能需求:明确所开发的软件必须具备什么样的功能。
(2) 性能需求:明确待开发的软件的技术性能指标。
(3) 环境需求:明确软件运行时所需要的软、硬件的要求。
(4) 用户界面需求:明确人机交互方式、输入输出数据格式。
2. 分析与综合,导出软件的逻辑模型分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。
软件工程师面试题及答案
![软件工程师面试题及答案](https://img.taocdn.com/s3/m/3b4ff99b09a1284ac850ad02de80d4d8d15a01a5.png)
软件工程师面试题及答案在当今数字化的时代,软件工程师成为了炙手可热的职业。
而在招聘过程中,面试环节至关重要,通过一系列有针对性的问题,可以更全面地了解应聘者的技术能力、思维方式和解决问题的能力。
以下是一些常见的软件工程师面试题及答案,希望能对您有所帮助。
一、技术基础类1、请简要介绍一下面向对象编程的三大特性:封装、继承和多态,并举例说明。
封装:将数据和操作数据的方法封装在一个类中,隐藏内部实现细节,只对外提供公共的访问接口。
例如,将一个人的姓名、年龄等信息封装在一个“Person”类中,通过公共的方法来获取和设置这些信息。
继承:子类可以继承父类的属性和方法,实现代码的复用和扩展。
比如,“Student”类继承自“Person”类,可以继承“Person”类中的姓名、年龄等属性,同时还可以添加学号等自己特有的属性。
多态:不同的对象对同一消息做出不同的响应。
例如,定义一个父类“Shape”,有一个计算面积的方法,然后子类“Circle”和“Rectangle”分别重写这个方法,根据不同的形状计算出不同的面积。
2、谈谈你对数据库索引的理解,以及在什么情况下应该使用索引,什么情况下不应该使用索引?数据库索引是一种用于提高数据库查询效率的数据结构,类似于书籍的目录。
它可以加快数据的查找和排序速度。
应该使用索引的情况:经常用于查询、连接、排序的列;唯一性约束的列;数据量较大且查询频繁的表。
不应该使用索引的情况:数据量较小的表;频繁更新的列;很少用于查询的列。
3、解释一下什么是线程安全,以及如何实现线程安全?线程安全是指在多线程环境下,程序的执行结果是正确的,不会出现数据竞争、死锁等问题。
实现线程安全的方法有:使用同步机制,如锁(如互斥锁、读写锁);使用线程本地存储;避免共享可变状态;使用不可变对象等。
二、算法与数据结构类1、请实现一个冒泡排序算法,并分析其时间复杂度和空间复杂度。
```javapublic class BubbleSort {public static void bubbleSort(int arr) {int n = arrlength;for (int i = 0; i < n 1; i++){for (int j = 0; j < n i 1; j++){//交换相邻元素int temp = arrj;arrj = arrj + 1;arrj + 1 = temp;}}}}public static void main(String args) {int arr ={64, 34, 25, 12, 22, 11, 90};Systemoutprintln("排序前的数组为:");for (int num : arr) {Systemoutprint(num +"");}bubbleSort(arr);Systemoutprintln("\n 排序后的数组为:");Systemoutprint(num +"");}}}```时间复杂度:最好情况(数组已经有序)为 O(n),最坏情况(数组完全逆序)和平均情况均为 O(n^2)。
计算机专业研究生复试-软件工程面试简答题
![计算机专业研究生复试-软件工程面试简答题](https://img.taocdn.com/s3/m/0de79333bdd126fff705cc1755270722192e5928.png)
综述1.什么是软件工程?目前有哪几种主要的软件工程方法?软件工程是指导计算机软件开发和维护的一门工程学科.采用工程的概念、原理、技术、和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
软件工程方法主要有传统方法也称为经典软件工程方法或生命周期方法或结构化范型和面向对象方法。
2.软件的生命周期包括哪些阶段?软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期。
软件生存周期包括:可行性分析:把待开发系统的目标以明确的语言描述出来,并从经济、技术、法律等多个方面进行可行性分析。
需求分析:弄清用户对软件系统的全部需求,编写需求规格说明书和初步的用户手册,提交评审。
设计阶段:设计软件系统的模块层次结构、数据库结构、模块控制流程等。
软件实现:根据每个模块的控制流程编出相应的程序。
软件测试阶段:检查并排除软件中的错误,提高软件的可靠性。
运行与维护:改正性维护(由于开发测试的不彻底、不完全),适应性维护(适应环境变化),完善性维护(使用过程中提出的一些建设性意见),预防性维护(改善软件系统的可维护性和可靠性)。
3.衡量软件质量的主要指标有哪些?●功能性●可靠性●易用性●效率●可维护性●可移植性4.常用的软件过程模型包括哪些、分别适合于什么样的软件项目?1)瀑布模型:将软件生命周期中的各个活动规定为线性连接的模型,包括需求分析、设计、编码、测试、运行与维护,由前至后、相互衔接的固定顺序,如同瀑布流水逐级下落。
瀑布模型是以文档作为驱动、适合于软件需求很明确的软件项目的模型。
瀑布模型的优点:1)容易理解,管理成本低;2)强调开发的阶段性早期计划及需求调查和产品测试。
瀑布模型的缺点:1)客户必须能够完整、正确和清晰地表达他们的需要;2)开始2个或3个阶段,很难评估真正的进度;3)项目结束时,出现大量的集成和测试工作;4)需求或设计中的错误往往只有到了项目后期才能够被发现,对于项目风险的控制能力较弱,从而导致项目常常延期完成,开发费用超出预算。
数据库考研复试试题(回忆版)
![数据库考研复试试题(回忆版)](https://img.taocdn.com/s3/m/39885350b94ae45c3b3567ec102de2bd9605de8e.png)
数据库考研复试试题(回忆版)数据库考研复试试题(回忆版)数据库是计算机科学与技术领域中的重要组成部分,对于计算机专业的学生而言,掌握数据库的理论和应用技能是必不可少的。
在考研复试中,数据库相关的试题是常见的内容之一。
本文将回忆一些数据库考研复试试题,并对其进行分析和解答,以帮助广大考生复习备考。
一、数据库系统概述数据库系统是现代计算机系统中最基础和最重要的组成部分之一,其功能包括数据的存储、管理、检索、更新等。
请简要介绍数据库系统的三级模式体系结构,并说明每个层次的功能。
数据库系统采用了三级模式体系结构,包括外模式、概念模式和内模式。
1. 外模式:外模式又称为用户模式,是数据库系统中最接近用户的一层。
它定义了对用户来说可见的数据逻辑结构、数据操作语言以及数据操作权限。
用户可以通过外模式来查看和操作数据库中的数据,而不需要关注底层的物理存储细节。
2. 概念模式:概念模式是数据的全局逻辑结构的描述。
它定义了数据库中各个数据对象之间的关系、属性和约束等。
概念模式是数据库的全局观,对于数据库的整体结构和组织起到了很重要的作用。
同时,概念模式也是数据库设计的基础,它体现了数据库的语义信息,为用户提供了更高层次的抽象。
3. 内模式:内模式也称为存储模式,它是数据库系统中最底层的一层,用于描述数据在物理存储介质中的表示方式。
内模式定义了数据的存储结构、存储方式以及物理操作的实现方式。
对于用户来说,内模式是不可见的,用户只能通过外模式和概念模式来与数据库进行交互。
二、关系数据库理论关系数据库是数据库领域中最常用的数据模型之一,其理论基础是关系代数和关系演算。
请分别介绍关系代数和关系演算的基本概念和操作。
1. 关系代数:关系代数是一种对关系进行操作的数学表达方法。
它包括一系列的操作,如选择、投影、连接、并、差等,以实现对关系的查询和操作。
关系代数操作的结果仍然是关系,可以作为下一步操作的输入。
2. 关系演算:关系演算是一种对关系进行操作的逻辑表达方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程
1.请谈谈您对需求工程的理解(10分)
2.结合软件特点谈谈你对软件工程的认识和理解(10分)
3.谈谈软件架构在软件开发过程的重要性和意义(10分)
4.分别谈谈“结构化开发方法”和“面向对象开发”的特点(15分)
5.谈谈移动互联网平台现状和发展方向(15分)
数据库系统
一.选择题(20分)
1.负责数据库系统的日常管理和维护的人员是()
A.系统程序员
B.应用程序员
C.数据库管理员
D.最终用户
2.用于描述某个用户所使用的数据的组织结构的是()
A.概念模式
B.外模式
C.内模式
D.概念模式、外模式和内模式
3.为了防止用户对数据库的非法存取操作,DBMS必须提供对数据库的()
A.安全性保护
B.完整性保护
C.故障恢复
D.并发控制
4.区分不同类型的数据库管理系统的依据是()
A.采用的数据模型
B.提供的数据子语言
C.可以使用的主语言
D.系统运行平台
5.划分不同类型的数据模型的依据是()
A.数据结构
B.数据操作
C.数据约束
D.数据结构、数据操作和数据约束
6.关系数据库系统的实体完整性约束是指()
A.属性值不允许为空
B.主关键字不允许为空
C.外关键字不允许为空
D.外关键字不允许重复
7.关系数据库用()实现数据之间的联系
A.关系
B.指针
C.表
D.公共属性(或外键)
8.一位教师可以教多门课,一门课只能由一位教师来教,在E-R模型中这种联系属于()
A.1:1
B.1:n
C.m:n
D.无法确定
9.在嵌入式SQL语言中使用游标的目的在于()
A.区分SQL与宿主语言
B.与数据库通信
C.处理错误信息
D.处理多行记录
10.在数据库的设计过程中,与具体的数据库管理系统无关的设计步骤是()
A.需求分析与概念设计
B.概念设计与逻辑设计
C.逻辑设计与物理设计
D.整个设计过程都与DBMS无关
二.设有某个单位的人事组织机构数据库,其关系模式如下(带下划线的属性是其主关键字):(共40分)
职工(工号,姓名,年龄,部门名称)
部门(部门名称,电话,负责人的工号)
工资表(工号,年份,月份,工资)
1.请用关系代数和SQL语言分别表示下列查询:
(1)查询所有部门负责人的姓名与年龄;
(2)查询年龄大于55岁的职工的姓名和所在部门名称;
2.请用SQL语言表示下列查询:
(1)统计查询每个部门的职工人数(结果给出每个部门的名称以及该部门的职工人数);
(2)统计查询每个职工在2001年的工资总收入(包括每个职工的工号、姓名和该职工在2001年的工资总和),并按照工资总收入从高到低的顺序输出查询结果。
3.假设需要建立一个有关每个部门每个月的工资发放总额的视图,其中的属性包括:部门名称、年份、月份、该部门当月的工资发放总额。
请用SQL语言给出该视图的定义命令。
4.对于此人事组织机构数据库系统,设计并实现一个触发器用例。
三.数据库管理系统是如何实现事务的原子性的?(7分)
四.查询处理的过程是什么?查询优化的主要方法是什么?(8分)
五.有一学生管理系统,包含学生、课程和选课三个实体(15分)
(1)试画出此管理系统的E-R图
(2)给出满足第三范式的关系模式设计结果,并说明各关系表的关键字。