南京大学软件工程考研真题03-07
软件工程考研真题-选择题
1、软件工程学概述1.1 软件危机1、软件是一种()A.有形产品B.逻辑产品C.物质产品D.消耗产品【答案】B -重庆大学2015【解析】2、以下哪一项不是软件危机的表现形式( )A.成本高B.生产率低C.技术发展快D.质量得不到保证【答案】C【解析】3、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做()。
A.软件工程B.软件周期C.软件危机D.软件产生【答案】C【解析】4、“软件危机”是指()。
A. 计算机病毒的出现B.利用计算机进行经济犯罪活动C.软件开发和维护中出现的一系列问题D.人们过分迷恋计算机系统【答案】C【解析】软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
1.2 软件工程概念和任务1、下列不是软件工程基本要素的是()A过程B生产C方法D工具【答案】B【解析】软件工程三要素:方法、过程、工具。
2、软件工程是采用()的概念、原理、技术方法指导计算机程序设计的工程学科。
A.工程B.系统工程C.体系结构D.结构化设计【答案】A[中国传媒大学2014研]【解析】软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,从而经济地开发出高质量的软件,并且进行有效的维护。
3、为了解决软件危机,人们提出了用()的原理来设计软件。
A.运筹学B.工程学C.软件学D.数学【答案】B【解析】为了解决软件危机,通过采用软件工程来指导软件的设计。
软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护。
4、下列有关软件工程的标准,属于国际标准的是( )A.GBB.ANSIC.ISOD.IEEE【答案】C【解析】5、软件工程的基本要素包括方法、工具和()。
南京计算机考研真题及答案
南京计算机考研真题及答案一、考前准备参加考研是每个计算机专业学子都希望实现的梦想,而南京作为中国的计算机科学研究中心,其考研竞争也非常激烈。
为了帮助大家更好地备考,下面将提供一些南京计算机考研真题及答案,供同学们参考。
二、数据结构与算法分析题目1:请给出一个时间复杂度为O(nlogn)的排序算法,并简要描述其基本思想。
答案:归并排序是一个时间复杂度为O(nlogn)的排序算法。
其基本思想是将待排序的序列分成两个长度相等或者相差一个元素的子序列,分别对两个子序列进行递归排序,最后将两个有序的子序列进行合并,得到最终的有序序列。
题目2:请解释动态规划算法的基本原理,并结合具体的问题进行说明。
答案:动态规划是一种通过将原问题分解为相互依赖的子问题来求解的算法。
基本原理是通过记忆化存储子问题的解,避免重复计算,从而提高算法的效率。
例如,背包问题就可以使用动态规划算法进行求解,其基本思想是求解每个子问题的最优解,并利用子问题的最优解求解原问题的最优解。
三、操作系统题目1:请解释内存管理中的页面置换算法,并给出至少两种常见的页面置换算法及其优缺点。
答案:页面置换算法是内存管理中的一种重要策略,用于处理内存不足时的页面替换问题。
常见的页面置换算法包括FIFO算法和LRU 算法。
FIFO算法(First-In-First-Out):按照页面进入内存的先后顺序进行置换。
优点是实现简单,缺点是无法适应程序的访问特点,无法很好地利用页面的局部性原理。
LRU算法(Least Recently Used):根据页面最近的使用情况进行置换。
优点是能够较好地利用页面的局部性原理,缺点是实现较为复杂,需要额外的数据结构(如链表)来记录页面的使用顺序。
题目2:请解释死锁的发生条件,并给出至少两种常见的死锁处理策略。
答案:死锁是指系统中的多个进程由于竞争有限的资源而导致的僵持状态。
常见的死锁发生条件包括互斥条件、请求与保持条件、不可剥夺条件和环路等待条件。
《软件工程导论》试题及答案
《软件工程导论》试题及答案软件工程导论试题及答案一、选择题1. 软件工程是一门多学科交叉的学科,其中包括以下哪些学科?A. 计算机科学B. 电子工程C. 数学D. 管理学E. 心理学答案:A、B、C、D2. 软件工程的目标是什么?A. 提高软件开发效率B. 提高软件质量C. 提高软件可靠性D. 提高软件维护性E. 提高软件安全性答案:A、B、C、D、E3. 软件过程模型是指软件开发过程中的一种抽象表示方法,常用的软件过程模型有哪些?A. 瀑布模型B. 增量模型C. 螺旋模型D. 敏捷模型E. 喷泉模型答案:A、B、C、D4. 以下哪个开发方式可以在软件开发过程中提供更多的灵活性和快速反馈?A. 瀑布模型B. 增量模型C. 螺旋模型D. 敏捷模型答案:D5. 软件需求分析的主要任务是什么?A. 确定软件的功能和性能需求B. 定义软件系统的架构C. 设计软件的用户界面D. 实施软件测试答案:A二、填空题1. 软件工程的核心目标是提高软件的 ______ 和 ______ 。
答案:质量、可靠性2. 软件工程中的四个基本活动是需求分析、设计、 ______ 和______ 。
答案:实现、维护3. 瀑布模型的五个阶段依次是:需求分析、设计、编码、 ______ 和 ______ 。
答案:测试、维护4. “快速原型”开发模型注重 ______ 。
答案:用户参与5. 敏捷开发模型的核心原则是 ______ 。
答案:迭代开发三、简答题1. 请简要说明为什么软件工程是一门多学科交叉的学科?答:软件工程在开发软件的过程中需要结合计算机科学的知识来实现软件的功能,同时也需要借鉴电子工程的设计思想来构建软件系统的架构。
此外,软件工程还应用了数学方法来进行软件需求分析和软件质量保证,同时也需要管理学的知识来进行项目管理和团队协作。
2. 请简述螺旋模型在软件开发过程中的应用场景。
答:螺旋模型适用于大型复杂项目或对安全性要求较高的项目。
2023年全国硕士研究生入学考试软件工程真题
2023年全国硕士研究生入学考试软件工程真题考试时间:2023年6月10日上午9:00-11:30考试地点:各省考试中心一、单项选择题(共60题,每题2分,共120分)1. 下列哪项不属于软件开发的生命周期?A. 可行性研究B. 需求分析C. 系统设计D. 程序编码2. 软件测试的目的是 ___________ 。
A. 发现全部缺陷B. 提高软件质量C. 验收软件符合需求D. 用户满意度3. 下列哪项不属于面向对象分析方法?A. CRC卡B. 数据流图C. 用例图D. 类图二、简答题(共3题,每题20分,共60分)1. 请简要描述软件工程的定义和作用。
软件工程是一门研究使用工程原理、方法和工具来开发和维护高质量软件的学科。
它涉及软件开发周期的各个阶段,包括需求分析、系统设计、编码、测试和维护。
软件工程的作用在于提高软件的质量、可靠性和可维护性,以满足用户的需求,并提高软件开发的效率和产品的竞争力。
2. 请简要介绍敏捷开发方法并阐述其优势。
敏捷开发是一种以迭代、循序渐进的方式进行软件开发的方法。
它强调团队合作、快速响应变化和持续交付价值。
与传统的瀑布模型相比,敏捷开发具有以下优势:- 灵活性:敏捷开发能够快速适应需求变化和市场变化。
- 透明度:团队成员之间的沟通更加频繁和紧密,项目进展和问题可以及时暴露和解决。
- 用户参与:敏捷开发注重用户的反馈和参与,能够更好地满足用户需求并提高用户满意度。
- 高质量:通过频繁的测试和持续集成,可以尽早地发现和修复软件缺陷,提高软件质量。
- 提高团队效率:敏捷开发强调团队协作和自组织,能够更加高效地开展工作。
3. 请简要解释软件需求的三个关键属性:可行性、一致性和可跟踪性。
- 可行性(Feasibility):软件需求应该在技术、经济和法律等方面是可行的。
也就是说,软件需求在技术上能够实现,经济上可行(考虑成本和收益),并符合法律法规和规范要求。
- 一致性(Consistency):软件需求之间应该是相互协调和一致的。
2016年南京大学842数据结构、软件工程、操作系统和计算机网络考研真题【圣才出品】
2016年南京大学842数据结构、软件工程、操作系统和计算机网络考研真题(回忆版)今年专业课继去年风格大变之后,果然又一次改变了出题方式,不再像前几年的类408风格,感觉有点走回南大08年统考前命题风格,今年一道选择题都没出。
数据结构(45分)总共四道大题,一道计算,三道算法一、计算题1.hash表(软院06年期末题)设散列表长度为11,散列函数H(K)=(K的第一个字母在英文字母表中的序号,设A的序号为1)%11,若输入顺序为(B,D,M,CI,I,K,TM,X),处理冲突方法为线性探测法,要求:1)构造此散列表。
2)对表中所有键值分别查找1次,求出总的比较次数。
二、算法题1.长度为n的数组a[0…n-1],编写一个算法在O(n)的时间复杂度内将数组中所有负数放在非负数前面。
2.已知first为不带表头结点的单链表的表头指针(如下图所示),链表中存储的都是整型数据,试写出求所有结点的data域平均值的递归函数。
(软院05年数据结构期末题)3.假设以数组Q[m]存放循环队列中的元素,同时以rear和length分别指示环形队列中的队尾位置和队列中所含元素的个数,试用C++语言写出一个程序,给出该循环队列的类声明,给出队空条件和队满条件,并写出相应的插入元素(Add)和删除(Delete)元素的算法(用类模板,函数模板形式写)(软院04年考研原题)软件工程(45分)两道问答题以及三道大题一、问答题1.软件质量保障常用的是哪三种手段?(5分)2.给了5个需求描述,说出他们分别是哪种类型的需求。
(5分)二、大题1.分析ATM机的取款操作,编写他的用例。
(10分)2.分析下面代码违反了哪个面向对象原则?有什么后果?应如何改进?(10分)3.一道关于契约式设计和防御式编程的代码修改题。
(15分)这道题题目很长,具体我不太记得了,大概就是讲取款的操作,有几个条件:①取款金额必须是100的整数倍;②每次取款金额不能超过3000;③每天的取款金额不能超过两万(具体代码太长我忘了)操作系统(35分)题目比较常规,但是题量很大,全是大题,可是每道题才2、3分的样子1.在一个操作系统,inode节点中分别含有12个直接地址的索引和一、二、三级间接索引。
(NEW)南京大学《842数据结构、软件工程、操作系统和计算机网络》历年考研真题汇编
1996年南京大学计算机考研真题(操作系统、数据结构部分) 1997年南京大学计算机考研真题(操作系统、数据结构部分) 1998年南京大学计算机考研真题(操作系统、数据结构部分) 1999年南京大学计算机考研真题(操作系统、数据结构部分) 2000年南京大学计算机考研真题(操作系统、数据结构部分) 2001年南京大学计算机考研真题(操作系统、数据结构部分) 2002年南京大学计算机考研真题(操作系统、数据结构部分) 2003年南京大学计算机考研真题(操作系统、数据结构部分) 2004年南京大学软件基础一考研真题(操作系统、数据结构部分) 2004年南京大学软件基础三考研真题(操作系统、数据结构部分) 2005年南京大学软件基础一考研真题(操作系统、数据结构部分) 2005年南京大学软件基础二考研真题(操作系统、数据结构部分) 2006年南京大学软件基础一考研真题(操作系统、数据结构、软件工程 部分) 2007年南京大学软件基础一考研真题(操作系统、数据结构部分) 2007年南京大学软件基础三考研真题(操作系统、数据结构部分)
分)
2013年南京大学842数据结构、软 件工程、操作系统和计算机网络
考研真题
2013年南京大学842数据结构、软 件工程、操作系统和计算机网络
考研真题备用卷
2014年南京大学842数据结构、软 件工程、操作系统和计算机网络
考研真题
2015年南京大学842数据结构、软 件工程、操作系统和计算机网络
考研真题(回忆版)
数据结构部分(45分)
一、选择题(2×10) 1 13年第一题原题
2 队列rear和length求head
3 数组a[0…8][0…3],每个元素6字节,共多少字节,下面忘了
4 树,只有叶节点和度为2的节点,当树有n个非叶节点,问有多 少叶节点,又问各个叶节点的层数和为多少(根为0层)
2018年南京大学842数据结构、软件工程、操作系统和计算机网络考研真题【圣才出品】
2018年南京大学842数据结构、软件工程、操作系统和计算机网络考研真题(回忆版)赞个人品,趁热回忆下真题。
今年的题感觉和17年的难度差不多,数据结构依旧没有算法题(准备了那么多呀),除了软工题型也都是之前见过的题型,唯独操作系统的那个UNIX进程的那个,是期末试卷的一道选择题,当时看时就没懂,也就没印象了。
软工的题型一直很活,很少有原题,两道大题蒙着答的。
总的来讲都是比较基础的,有很多原题,期末试卷中那些难的题都没有考。
名词解释感觉重在理解名词的含义,没必要死背,考前各科整理了n多个名词解释,一直因为这个性价比最低的背不下来感到没谱,结果考试要么是比较简单的(如计网的),要么是压根就没整理到的(OS的就没整理到)。
PV算法的话感觉把课件上那几个都掌握了,也就没问题了(注:我是跨考的,有些语言描述可能不规范,望谅解)数据结构(45分)一、填空(3×5)1.一个t叉树,有n个叶子节点,s个非叶子节点,写出n和s的关系2.快速排序最坏情况下时间复杂度3.给出二叉树前序序列和中序序列,写出后序序列4.赫夫曼树,n个叶子节点,求总的节点个数5.一个平衡二叉树,加入一个关键字后,重新调整为平衡二叉树二、大题(10×3)1.对关键码序列{23,17,12,61,26,8,70,75,53},用堆排序方法进行排序,画出排序过程中所建的初始堆,以及输出前三个关键码过程的示意图。
(要求建立的堆为任一父母结点的关键码都小于其子女结点的关键码)2.请画出往下图的5阶B-树中插入一个关键码390后得到的B-树,以及再删除关键码100后得到的B-树。
3.按Dijkstra方法计算从顶点1到其它顶点的最短路径。
按路径递增顺序写出先后计算出的最短路径(包括起止点和途径各点)及该路径长度。
软件工程(45分)一、问答题(5×5)1.说明下工程和科学的区别(政治题走错片场了吧?)2.什么是集成测试,什么是单元测试,单元测试用例和集成测试用例有什么区别3.功能性需求和非功能性需求4.写出四个体系结构视角5.质量模型的可用性二、大题(10×2)1.一个购房评估系统,一个类中含有两个功能,一个是输入存款、月工资、月花销、想要购房面积……完后得出可以购房的面积和首付款,另一个功能是根据面积和首都得出一个各小区的的房价列表,供用户参考,问这种设计合理吗?不合理的话画出设计类图并写出类的定义(含属性和方法)2.一个计算税费的问题,根据什么一堆经济的指标什么印花税、公证费、契税、委托办理手续费、房屋买卖手续费啥的,计算出税费,各地的计算方法不同,要求能够灵活扩展,按照一种设计模式设计,画出设计类图并写出关键接口定义。
南京大学 攻读硕士学位研究生入学考试计算机试题 考研真题
南京大学20XX年攻读硕士学位研究生入学考试试题考试科目名称及代码软件基础二838适用专业:计算机软件与理论计算机应用技术注意:1.所有答案必须写在研究生入学考试答题纸上,写在试卷和其他纸上无效。
2.本科目不允许使用无字典存储和编程功能的计算器。
《程序设计》一:程序设计基本概念:1.在定义函数参数时,何时需要把参数定义成指针或引用类型?C++提供了什么机制,可以防止指针或引用类型参数可能带来的函数副作用问题?2.抽象类的作用是什么?二. 请把下面的过程程序改写为面向对象程序:enum FigureType { LINE, RECTANGLE,CLRCLE };struct Line{FigureType t;double x1,y1,x2,y2;};void draw_line (struct Line x) {…………..}void save_line (struct Line x) {…………..}struct Rectangle{FigureType t;double left,top,right,bottom;};void draw_rectangle (struct Line x) {…………..}void save_rectangle (struct Line x) {…………..}struct Circle{FigureType t;double x,y,r;};void draw_circle (struct Line x) {…………..}void save_circle (struct Line x) {…………..}union Figure{FigureType type;Line line;Rectangle rect;Circle circle;};void main(){union Figure *figure[100]int i;//初始化…….//显示图形for(i=0;i<100;i++){switch (figure[i]->type){case LINE: draw_line(figure[i]->line); break;case RECTANGLE: draw_rectangle(figure[i]->rect); break;case CIRCLE: draw_circle(figure[i]->circle); break;}}//存储图形for(i=0;i<100;i++){switch (figure[i]->type){case LINE: save_line(figure[i]->line); break;case RECTANGLE: save_rectangle(figure[i]->rect); break;case CIRCLE: save_circle(figure[i]->circle); break;}}}三.根据下图写一个函数:int path(int n);计算从结点1到结点n(n大于1)共有多少条不同的路径。
南京大学计算与软件工程II试卷
考试科目名称 计算与软件工程II (B 卷)考试方式: 闭卷 考试日期 2013 年 月 日 教师 丁二玉 刘钦 系(专业) 软件学院(软件工程) 年级 班级 学号 姓名 成绩注意:所有作答请写直接写在卷面上。
一、名词解释。
本题满分15分,每小题5分)1、 软件工程2、 软件验证与确认3、 增加开发模型和迭代开发模型二、(本题满分10分)图书管理系统中有多个借阅者角色。
本科生、研究生和教师。
所有借阅者都可以借阅图书。
教师借阅图书的行为和本科生,研究生略有不同时。
当教师希望借阅的某种图书被借空时,系统将自动通知借阅者归还图书, 本科生只可借阅普通图书,最多可同时借阅 5 本;研究生可以最多可同时借阅10 本;老师可以借阅20 本。
Hyoga 同学熟悉结构化编程,给出了如下设计。
请根据以上借阅图书相关的功能性需求和面向对象的思想,指出Hyoga 设计的问题,画出关于借阅者的设计类图,并且写出各个类和借阅相关的属性和方法的定义(不用实现)。
1)请画出下列代码设计的顺序图。
(系统已有Sales对象、Commodity对象、SalesLineItem 对象)2)getSubtotal内聚性如何?是否违反某些设计原则,解释这些原则。
3)画出修改之后的顺序图。
12)如果合理,请解释其合理性。
如果违反,请解释该原则,并修改、Grade类的averageGradeforTop50 和ArrayList<Student>类之间是哪种类型的耦合,如何修改?内容耦合六、(本题满分10分)画出常见ATM机软件系统的用例图。
选择其中一个用例,画出其系统顺序图。
七、(本题满分10分)Array 1)利用黑盒测试的方法完成功能测试的测试用例的设计,说明思路2)给出相应的测试代码八、(本题满分10分)分析一款常用的浏览器。
请支持至少3条该软件在人机交互方面的有些优点,分析它们体现了哪些人机交互的原则?九、(本题满分10分)假设你需要一个可以返回每个月中天数的函数(为简单起见不考虑闰年),一个方法是一个大的if语句:改进这个设计,给出改进的代码。
南京大学软件工程2018真题
2018年南京大学软件工程842真题(回忆版)数据结构填空(3X5)1、一个t叉树,有n个叶子节点,s个非叶子节点,写出n和s的关系2、快速排序最坏情况下时间复杂度3、给出二叉树前序序列和中序序列,写出后序序列4、赫夫曼树,n个叶子节点,求总的节点个数5、一个平衡二叉树,加入一个关键字后,重新调整为平衡二叉树大题(10X3)1、对关键码序列{ 23,17,12,61,26,8,70,75,53 }, 用堆排序方法进行排序,画出排序过程中所建的初始堆,以及输出前三个关键码过程的示意图。
(要求建立的堆为任一父母结点的关键码都小于其子女结点的关键码)答:2、请画出往下图的5阶B-树中插入一个关键码390后得到的B-树,以及再删除关键码100后得到的B-树。
3、按Dijkstra方法计算从顶点1到其它顶点的最短路径。
按路径递增顺序写出先后计算出的最短路径(包括起止点和途径各点)及该路径长度。
软件工程问答题(5X5)1、说明下工程和科学的区别(政治题走错片场了吧?)2、什么是集成测试,什么是单元测试,单元测试用例和集成测试用例有什么区别3、功能性需求和非功能性需求4、写出四个体系结构视角5、质量模型的可用性大题(10X2)1、一个购房评估系统,一个类中含有两个功能,一个是输入存款、月工资、月花销、想要购房面积……完后得出可以购房的面积和首付款,另一个功能是根据面积和首都得出一个各小区的的房价列表,供用户参考,问这种设计合理吗?不合理的话画出设计类图并写出类的定义(含属性和方法)2、一个计算税费的问题,根据什么一堆经济的指标什么印花税、公证费、契税、委托办理手续费、房屋买卖手续费啥的,计算出税费,各地的计算方法不同,要求能够灵活扩展,按照一种设计模式设计,画出设计类图并写出关键接口定义。
操作系统名词解释(2X3)1、特权指令2、内部碎片3、程序的局部性原理大题1、(4分)UNIX系统有一个主函数main{fork();/*<–pc(程序计数器),进程Afork();fork();}问最多最多可再产生多少个进程?并画出家族树(都不懂说的是啥)2、(3分)在一个操作系统的inode节点中分别含有10个直接地址的索引和一、二、三级间接索引。