北邮计算机复试软件工程试题(A)附答案_(2)
北邮计算机院和网院复试上机真题以及参考代码
北邮复试上机网研的题目第一题:查找输入数组长度n输入数组 a[1...n]输入查找个数m输入查找数字b[1...m]输出YES or NO 查找有则YES 否则NO如(括号内容为注释)输入:5(数组长度)1 52 4 3(数组)3(查找个数)2 5 6(查找具体数字)输出:YESYESNO#include <stdio.h>#include <stdlib.h>int main(){int n,m,i,j,a[2001]={0},b[2001]={0},flag=0;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);scanf("%d",&m);for(i=0;i<m;i++)scanf("%d",&b[i]);for(i=0;i<m;i++){for(j=0;j<n;j++){if(b[i]==a[j]){flag=1;printf("YES\n");break;}}if(flag!=1)printf("NO\n");flag=0;}// // system("PAUSE");return 0;}第二题:查找第K小数查找一个数组的第K小的数,注意同样大小算一样大如 2 1 3 4 5 2 第三小数为3如(括号内容为注释)输入:6(数组长度n)2 13 5 2 2(数组)3(K 即为第三小数)输出:3Code#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){int n,k,i,j,a[1001],temp,m=1;scanf("%d %d",&n,&k);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n-1;i++)for(j=0;j<n-i-1;j++)if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}for(i=0;i<n-1;i++)if((a[i]==a[i+1])&&(i<k))k++;printf("%d\n",a[k-1]);// system("PAUSE");return 0;∙}第三题:打牌牌只有1到9,手里拿着已经排好序的牌a,对方出牌b,用程序判断手中牌是否能够压过对方出牌规则:出牌牌型有5种[1]一张如4 则5...9可压过[2]两张如44 则55,66,77,...,99可压过[3]三张如444 规则如[2][4]四张如4444 规则如[2][5]五张牌型只有12345 23456 34567 45678 56789五个,后面的比前面的均大压过输出YES 否则NO如(括号内容为注释)输入:12233445566677(手中牌)33(出牌)输出:YESProblem Id: 1820Submit time: 2010-04-25 20:28:36User_id: jyjyjy1989Memory:204K Time:19MSLanguage:G++ Result:Accepted∙Code∙#include<iostream>∙#include<string.h>∙using namespace std;∙∙int main(void)∙{∙char str1[100],str2[5];∙scanf("%s",str1);∙char ch;ch=getchar();∙scanf("%s",str2);∙int i=0;int count[10]={0};∙while(str1[i]!='\n')∙{∙if((str1[i]-'1')==0)count[0]++;∙else if((str1[i]-'1')==1)count[1]++; ∙else if((str1[i]-'1')==2)count[2]++; ∙else if((str1[i]-'1')==3)count[3]++; ∙else if((str1[i]-'1')==4)count[4]++; ∙else if((str1[i]-'1')==5)count[5]++; ∙else if((str1[i]-'1')==6)count[6]++; ∙else if((str1[i]-'1')==7)count[7]++; ∙else if((str1[i]-'1')==8)count[8]++; ∙else break;∙i++;∙}∙int s1,s2,s3,s4,s5;int flag=1;∙if(strlen(str2)==1)∙{s1=*str2-'1';∙for(;s1<9;s1++)∙if(count[s1+1]>0)∙{printf("YES\n",s1);flag=0;break;}∙}∙else if(strlen(str2)==2){s2=*str2-'1';for(;s2<9;s2++)if(co unt[s2+1]>=2){printf("YES\n",s2);flag=0;break;}}∙else if(strlen(str2)==3){s3=*str2-'1';for(;s3<9;s3++)if(co unt[s3+1]>=3){printf("YES\n");flag=0;break;}}∙else if(strlen(str2)==4){s4=*str2-'1';for(;s4<9;s4++)if(co unt[s4+1]>=4){printf("YES\n");flag=0;break;}}∙else if(strlen(str2)==5){s5=*str2-'1';for(;s5<9;s5++)if(co unt[s5+5]>0&&count[s5+1]>0&&count[s5+2]>0&&count[s5+3]>0&&count [s5+4]>0&&((s5+5)<9)){printf("YES\n");flag=0;break;}}∙if(flag==1)printf("NO\n");∙//system("PAUSE");∙return EXIT_SUCCESS;∙}第四题:树查找简单说就是一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY,具体描述得借助图形比较好,懒得写了,基本就是这个样子的。
计算机二级考试软件工程题库及答案
计算机二级考试软件工程题库及答案一、选择题1. 下列哪个不是软件工程的基本特征?A. 可靠性B. 可维护性C. 可重复性D. 可移植性答案:C2. 软件需求分析的目的是什么?A. 建立软件体系结构B. 确定软件需求C. 设计软件模块D. 编写软件代码答案:B3. 下列哪个不是软件开发生命周期的阶段?A. 需求分析B. 设计C. 测试D. 销售答案:D二、填空题1. 软件工程的目标是提高软件的_________。
答案:质量2. 软件需求分析阶段的主要任务是对用户的需求进行_________。
答案:分析3. 软件测试的目的是为了发现软件中的_________。
答案:缺陷三、简答题1. 什么是软件开发生命周期?请简要描述各个阶段的主要任务。
答案:软件开发生命周期指的是软件从开始开发到结束的整个过程。
主要阶段包括需求分析、设计、编码、测试和维护。
需求分析阶段的主要任务是确定用户的需求;设计阶段的主要任务是根据需求设计软件的结构和模块;编码阶段的主要任务是根据设计编写软件代码;测试阶段的主要任务是发现并修复软件中的缺陷;维护阶段的主要任务是对软件进行更新和修复。
2. 请简要说明软件工程的重要性。
答案:软件工程的重要性体现在以下几个方面。
首先,软件工程可以提高软件的质量,确保软件能够满足用户的需求。
其次,软件工程可以提高软件的可维护性,使得软件可以持续更新和修复。
最后,软件工程可以提高软件的开发效率,节省时间和资源。
以上是计算机二级考试软件工程题库及答案的内容。
希望对您有所帮助!。
北京邮电大学网络教育学院-软件工程综合练习题及解答
《软件工程》综合练习题第一章一、单项选择题1、软件是一种逻辑产品,软件产品具有无形性,它是通过()体现它的功能和作用的。
A、复制B、计算机的执行C、开发和研制D、软件费用2、同一软件的大量软件产品的生产主要是通过()而得到A、研究B、复制C、开发D、研制3、作坊式小团体合作生产方式的时代是()时代。
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、软件开发费用只占整个软件系统费用的()A、1/2B、1/3C、1/4D、2/39、软件开发中大约要付出()%的工作量进行测试和排错A、20B、30C、40D、5010、()方法是一种面向数据结构的开发方法。
A、结构化B、JacksonC、维也纳开发D、面向对象开发11、准确地解决“软件系统必须做什么”是()阶段的任务:A、可行性研究B、需求分析C、详细设计D、编码12、软件生存周期中时间最长的是()阶段A、需求分析B、概要设计C、测试D、维护13、()方法是以数据结构为驱动的、适合于小规模的项目。
A、JSPB、JSDC、VDMD、Jackson14、软件是一种()产品A、物质B、逻辑C、有形D、消耗二、填空题1、软件与物质产品有很大的区别,软件产品是一种产品。
2、软件工程是一门综合性交叉学科,计算机科学着重于理论和原理,软件工程着重于。
3、概要设计主要是把各项功能需求转换成系统的。
4、最基本、应用广泛、以文档为驱动、适用于开发功能明确的软件项目生存期模型是。
北京邮电大学2018年807软件工程考研真题参考答案
LinkList MergeListAndReverse(LinkList LA, LinkList LB) {
// 首先进行链表的升序合并 LinkList LC; //创建一个指针,用来表示单链表 C Node *pa, *pb, *r; // pa, pb 分别用来遍历链表 A, B,r 指向 C 的链尾,方便进行插入
4
邮学,北邮考研辅导领军者
pb = pb->next; } // 如果 pa, pb 有一个已经遍历到表尾, 那么 C 就接上非空的那条; // 如果 pa, pb 都不为空, 那么该操作相当于无效
if(pa) {
r->next = pa; } else {
r->next = pb; } } // 下面进行链表反置。相当于遍历 LC 的每一个元素,然后使用头插法重新插入. // 总结来说,就是将 LC 看作一个有序输入序列,然后重新使用头插法建立一个 // 新的链表. Node *p, *q; // p 指向当前节点,并将其重新头插到 LC 中;q 用来记住下一个节点 的位置
22. 【解析】:不会死锁 按照最容易死锁的方式分配资源,得到的死锁临界状态是三个进程中,每个进程均持有一个 一个资源。这种状态每个程序都差了一个资源无法运行,但是系统有四个资源实例,所以至 少有一个进程得到了两个资源,能够顺利执行完毕然后释放资源。此时还有两个进程没有执 行,系统有四个资源实例,可以让所有进程顺利执行完毕。所以不存在死锁。
两种算法对应的最小生成树按照过程连接即可。
2
北邮计算机复试软件工程试题(A)附答案_(2)
北京邮电大学 2007 2008 学年第二学期一、单项选择题(共 10 题,每题 1 分,共 10 分)1、需求规格说明书的作用不包括( C )A .软件验收的依据B .用户与开发人员对软件要做什么的共同理解C .软件可行性研究的依据D .软件设计的依据2、软件结构图中, 模块框之间若有直线连接, 表示它们之间存在 ( A ) A 、调用关系 B 、组成关系 C 、链接关系 D 、顺序执行关系3、下面关于 DFD 中的加工的描述正确的是 ( C )A. 每个加工只能有一个输入流和一个输出流B. 每个加工最多有一个输入流,可以有多个输出流C. 每个加工至少有一个输入流和一个输出流D. 每个加工都是对输入流进行变换,得到输出流4、在基于数据库的信息管理系统中,数据库概念模型的设计对应于系:名姓软件工程》期末考试试题 A 卷:号序内班:号学:级10、用白盒测试法设计测试用例的方法包括( C )A .错误推测B .因果图C .基本路径测试D .边界值分析、判断题(共 10题,每题 1分,共 10 分)1. 软件是一种逻辑实体,由可执行代码构成。
( 错 )2. 用例模型是用来说明系统应该具备的功能描述。
( 对 )3.软件质量主要通过软件的功能测试来保证。
( 错 )统开发的( B )阶段。
A 、需求分析B 、概要设计C 、详细设计D 、 程序设计5、为了提高模块的独立性,模块之间最好是A. 控制耦合B. 公共耦合C. 内容耦合D. 数据耦合 6、下列关于效率的说法不正确的是 A.( B )效率是一个性能要求,其目标应该在需求分析时给出B. 提高程序效率的根本途径在于采用高效的算法C. 效率主要指处理机时间和存储器容量两个方面D. 程序的效率与程序的算法有关 7、测试的关键问题是 ( D ) A. 如何组织对软件的评审 B. 如何验证程序的正确性 C. 如何采用综合策略D. 如何选择测试用例8、某企业的软件系统希望从 开发厂商为了满足企业的要求进行的维护属于A. 改正性维护 C. 完善性维护9、软件测试的目的是( Windows 平台移植到 Linux 平台上,软件(B )A.为了表明程序没有错误B. 适应性维护 D. 预防性维护)B.为了说明程序能正确地执行C.为了发现程序中的错误D. 为了评价程序的质量4. UML 中顺序图和协作图不仅能用来表示对象之间的动态行为,也能表示对象内部的状态变化。
2016年北京邮电大学软件工程考研、复试真题,心得分享,考研大纲,考研笔记,复试真题
北邮考研详解与指导081200计算机科学与技术083500软件工程0812Z1信息安全085211计算机技术60分钟六门选四门编译原理与技术1、编译程序设计原理与技术李文生北京邮电大学出版社2、编译原理(第2版)张素琴等,清华大学出版社3、现代编译原理C语言描述AndrewW.Appel著,赵克佳等译计算机系统结构1、《计算机体系结构》郑纬民、汤志忠清华大学出版社2001年2、《并行计算机系统结构(第二版)》白中英编著科学出版社2006年数据库系统原理1、数据库系统概论王珊萨师煊著高等教育出版社2、数据库系统概念杨冬青马秀莉等译机械工业出版社3、数据库系统原理李建中王珊著电子工业出版社软件工程1、《软件工程模型与方法》,肖丁、吴建林等编,北京邮电大学出版社2、《实用软件工程》,郑人杰等,清华大学出版社3、《UML和模式应用》第三版,Craig Larman,机械工业出版社通信原理1《通信原理(合订本)》,周炯槃、庞沁华、续大我、吴伟陵,北京邮电大学出版社2《通信原理》第六版,樊昌信,国防出版社人工智能《人工智能及其应用》(本科生用书),蔡自兴等,第三版,清华大学出版社,2003.一般来讲,复试的英语考核涉及到听力及口语,之前大多数的同学是没有准备的或者准备不够充分,但是只要考生能够找到科学的学习方法、技巧,复试英语成绩是能够提高很多的!口语:根据不同的学校的情况,口语考试一般有2到3个考官和1到4个考生,考官一般是本校的外语系的老师或研究生,甚至是本专业的导师,所以说难度一般不会太大。
老师问的问题也比较常规或者说是模式化,如:个人自我介绍,让考生介绍一下自己或者自己的学校或家乡;或者是一些压力性的问题,如What is your greatest weakness?(你最大的弱点是什么?);有极少数的学校是让考生朗读文章,这个是比较简单的;还有一种是两个考生对话,考官给两个考生一个话题,给一段准备的时间,然后让考生进行对话讨论。
北邮网院软件工程与软件测试阶段作业题和答案
北邮网院软件工程与软件测试阶段作业题和答案一、判断题(共 8 道小题,共 40.0 分)1.一般情况下,如果软件的行为与它的设计者的目标是一致的,那软件才成功。
A. 正确B. 错误知识点: 第一章软件工程介绍2. 大部分软件开发项目首先设法满足一些企业的需要。
A. 正确B. 错误知识点: 第一章软件工程介绍3. 所谓“新经济”的笼罩在 90 年代的商业和金融死亡,不再影响的企业和软件工程师的决定。
A. 正确B. 错误知识点: 第一章软件工程介绍4. 软件过程可以在预先已有的软件模式之外被构造出来,以更好地满足软件工程的需要。
A. 正确B. 错误知识点: 第二章过程综述试题分5. 在统一过程模型中,需求被迭代德确定,而且可能跨越一个以上的过程阶段。
A. 正确B. 错误知识点: 第三章过程模型试题分6. 所有的敏捷过程模型或多或少不同程度上符合了敏捷的“软件开发宣言” 的原则。
A. 正确B. 错误知识点: 第四章敏捷视角下的过程7. 每个沟通会议应该有一个推动者,以确保客户不能去控制会议议项。
A. 正确B. 错误知识点: 第五章软件工程实践综述8.软件工程实践的本质是理解问题,计划解决方案,实施计划,并检查结果的精确度。
A. 正确B. 错误知识点: 第五章软件工程实践综述9.二、单项选择题(共 12 道小题,共 60.0 分)1. 软件退化不是磨损导致的,是因为A. 软件工作在在恶劣环境中B. 软件被经常使用后,缺陷可能被发现C. 多次需求变更引进了组件交互的错误产生D. 软件的备用构件变得很难去布置知识点: 第一章软件工程介绍2. 下面那个是团队软件过程的目标?A. 加速软件过程改进B. 允许训练有素的专业人士更好的时间管理C. 建立自我指导软件团队D. 显示经理如何降低成本和保持质量E. b 和 c知识点: 第二章过程综述试题分3. 下面这些哪个不是个人软件过程的特点?A. 强调对工作产品的个人测量B. 第一线工作人员需要由项目经理严谨监督C. 单个第一线工作人员负责项目估算和调度D. 第一线工作人员有权控制软件产品质量工作知识点: 第二章过程综述试题分4. 过程模型被描述为敏捷,因为他们A. 取消繁琐文件的需要B. 强调灵活性和适应性C. 在计划活动时,不浪费开发时间D. 广泛使用原型开发知识点: 第二章过程综述试题分5. 形式化方法软件开发模式使用数学方法去A. 规范定义的基于计算机的系统B. 开发无缺陷的计算机为基础的系统C. 正确性验证计算机的系统D. 以上所有知识点: 第三章过程模型试题分6. 快速应用程序开发模式(RAD)是A. 基于组件开发模式的另一个名字B. 一个有用的方式,当用户不能很清楚的定义需求的时候C. 线性顺序模型的高速变体。
南亭邮电大学计算杺学院2020年硕士研究生招生复试答试试题三
北京邮电大学计算机学院2020年硕士研究生招生复试笔试试题答题要求:1,从下面六门中选择四门进行作答,每门25分,总分100分。
2,请在每页答题纸上端填写准考证号,姓名,复试号。
下端标注页码,格式为:“第X页,共X页”3,每道题答案前请写明科目及题号编译原理与技术(25分)一、有如下文法G[S]:S→AS|aA→aA|b(1)判断该文法是否是LL(1)文法,简述判断理由。
(2)判断该文法是否是SLR(1)文法,简述判断理由。
(3)给出与该文法等价的正规表达式。
(4)给出与(3)中正规表达式等价的DFA。
(5)写出与(4)中DFA等价的不含有ε-产生式的右线性文法。
数据库系统原理(25分)二、现为某一个房地产公司开发其销售管理系统,需要对以下信息和关系进行记录和维护:销售部信息:公司有许多销售部分布在不同的城市,销售部的属性包括销售部编号、所在地等;销售部编号唯一;每个销售部有一名或多名员工。
员工的属性包括员工编号、姓名、性别等,每个员工只能分配到一个销售部工作;每个销售部有一名经理,经理也是员工;公司要记录房产信息,这些房产的属性包括房产标识、位置等,位置由省、城市、街道、邮编构成;房产标识是唯一的;销售信息:包括成交价格,成交时间;一个销售部可能销售出多个房产,也可能没有销售出任何一套房产;一套房产最终只能由一个销售部售出。
按要求完成以下各题(25分):(1)设计该系统的E_R图。
(8分)(2)假设系统中有如下关系模式:员工(员工编号,姓名,性别,年龄,所属销售部编号)房产(房产标识,省,城市,街道,邮编)销售信息(销售部编号,所在地,销售房产标识,成交价格,成交时间,销售部经理)完成如下问题:A.写出销售信息这个关系模式的主键?(2分)B.销售信息这个关系模式最高第几范式,为什么?(5分)C.对销售信息这个关系模式进行分解,要求分解结果至少都是第三范式。
(6分)D.在以上分解的结果基础上,对系统完成如下查询,写出SQL语句:(4分)和他自己销售部经理同岁的员工的编号和年龄。
计算机面试题库及答案
计算机面试题库及答案1. 什么是二进制数?二进制数是一种用0和1表示的数字系统,它是计算机科学中最基本的数字表示方法,因为计算机内部的硬件只能识别和处理0和1这两种状态。
2. 解释一下什么是算法?算法是一系列定义明确的计算步骤,用于解决特定问题或执行特定任务。
算法通常需要有限的步骤,并且每一步都明确无误,以确保能够达到预期的结果。
3. 什么是面向对象编程?面向对象编程(OOP)是一种编程范式,它将现实世界中的对象和它们的行为封装在类中。
OOP的主要概念包括类、对象、继承、封装和多态。
4. 请简述TCP/IP协议。
TCP/IP协议是一组用于数据通信的网络协议,它定义了电子设备如何在网络上进行通信。
TCP/IP协议栈包括四个层次:应用层、传输层、互联网层和网络接口层。
5. 什么是数据库规范化?数据库规范化是一种设计技术,用于优化数据库结构,减少数据冗余,并确保数据的一致性。
它通过将数据分解成多个相关的表来实现,每个表只包含相关的数据。
6. 解释一下什么是云计算。
云计算是一种提供计算资源(如服务器、存储、数据库、网络、软件等)的服务,这些资源可以通过互联网按需提供给用户。
用户无需拥有物理基础设施,而是通过服务提供商来访问这些资源。
7. 什么是区块链技术?区块链是一种分布式账本技术,它允许多个参与者共同维护一个不断增长的数据记录列表。
每个记录被称为一个区块,区块通过加密技术链接在一起,形成一个不可篡改的链。
8. 请解释一下什么是人工智能。
人工智能(AI)是计算机科学的一个分支,它试图创建能够执行通常需要人类智能的任务的机器。
这些任务包括学习、推理、解决问题、感知、语言理解和创造力。
9. 什么是软件工程?软件工程是一门应用工程原则、方法和技术来开发、运行和维护软件的学科。
它包括软件需求分析、设计、编码、测试和维护等过程。
10. 什么是网络安全?网络安全是指保护网络和数据不受未授权访问、破坏或泄露的一系列措施。
软件工程考研复试计算机机试编程题经典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之间有多少个素数,并输出所有素数。
北京邮电大学2019年软件工程专业综合考试真题807
北京邮电大学2019年硕士研究生招生考试试题考试科目:软件工程专业综合请考生注意:(1)所有答案(包括选择题和填空题)一律写在答题纸上,否则不计成绩。
(2)允许使用计算器。
(3)本考题包括数据结构,操作系统,数据库三个科目。
其中数据结构为必选部分。
操作系统,数据库为二选一,考生只需选择其中一个科目答题即可。
考生需在答题纸上标明选答科目的名称。
必选科目数据结构部分(90分)一、选择题(每小题2分,共20分)1.考虑下面程序段:void power(int m,int n){ //前提:n>=0int result=1;while(n>1)if(n为偶数){m=m*m;n=n/2;}else{result=result*m;n=n-1;}return result;}则调用power(m,n)的时间复杂度是:A.O(n)B.O(n logn)C.o(logn)D.O(n2)2.下面是对有序数组进行二分查找程序的教学版。
bool search(T a[ ],int n,T key){ //n:数组a的长度。
前提:n>=0,T是某种数据类型if(n<=0)return false;int mid=n/2;if(a[mid]==key)return true;if(almid]<key)return search(a,mid,key);else return search(a+mid+1,n-mid-1,key);}考虑函数调用search(a,n,key);下面三个命题中哪些是正确的?(1)成功查找的键值比较次数的时间复杂度是O(logn)。
(2)不成功查找的键值比较次数的时间复杂度是O(logn)。
(3)若键值x,y均不在数组中,则查找他们所执行的键值比较次数相A.(1),(2),(3)全部正确B.仅(1),(2)正确C.仅(1),(3)正确D.仅(2),(3)正确3.n个结点的简单有向图最多有多少条弧边?4.以下哪个函数是O(n3)?A.n3log(n)+n3B.n3+log(n)C.3nD.n3log(n3)5.将键值个数分别为m,n的两个有序表归并为一个大的有序表最多需要多少次键值比较?A.min(m,n)B.m+n-1C.max(m,n)D.m+n6.假设队列是用循环单链表存储,队列的长度是n,头指针是front,尾指针rear 指向队列的最后一个元素所在的结点,指针x指向的结点包含的元素需要入队,需要下面的那个选项的入队操作序列?A.front=x;front=front->next;B.x->next=front->next;front=x;C.rear->next=x;rear=x;D.rear->next=x;x->next=null;rear=x;7.具有n(n>0)个结点的完全二叉树的高度为(假设只有一个结点的二叉树的高度为0)。
北邮网研院研究生复试要看的软件工程试题
软件工程试题一2008年06月11日星期三 17:48一、名名解释(20分,每小题2分)1. 软件工程2. 软件生存周期模型3. 数据流4. 模块5. 模块独立性6. 软件可靠性7. 软件配置项8. 原型9. 类10. 消息二、填空题(20分,每小题2分)1.软件工程研究的主要内容是软件开发技术和软件开发管理两个方面。
在软件开发技术中,主要研究、和。
2.维护的副作用有、、三种。
3.技术可行性一般要考虑的情况包括:、、。
4.在需求分析阶段要进行以下几方面的工作:问题识别、、。
5.软件设计是一个把转换为的过程,包括和。
6.在一个模块中,反映模块的外部特性,反映它的内部特性。
7.面向对象有三个基本要素。
它们是、、。
8.软件测试时需要三类信息:、和。
9.为开发一个特定项目选择程序设计语言时,必须从、、几方面考虑。
10。
测试用例应由和预期的两部分组成。
这样便于对照检查。
三、选择题(20分,每小题1分)1.进行需求分析可使用多种工具,但是不适用的。
A。
数据流图B。
判定表C。
PAD图D。
数据词典2.模块,则说明模块的独立性越强。
A。
耦合越强B。
扇入数越高C。
耦合越弱D。
扇入数越低3.数据处理问题的工作过程大臻分为三步,即取得数据、变换数据和给出数据。
A。
变换型B。
事务型C。
结构化D。
非结构化4.为了最乡里实现目标系统,必须设计出组成这个系统的所有程序和文件,通常分为两个阶段完成,即和过程设计。
A。
程序设计B。
结构设计C。
系统设计D。
详细设计5.面向数据流的设计方法把映射成软件结构。
A。
数据流B。
系统结构C。
控制结构D。
信息流6.Jackson方法是一种面向的方法。
A。
对象B。
数据结构C。
数据流D。
控制流7.模块的内部过程描述就是模块内部的,它的表达形式就是详细设计语言。
A。
模块化设计B。
算法设计C。
程序设计D。
详细设计8.软件的开发与维护划分为八个阶段,其中单元测试是在阶段完成的。
A。
概要设计B。
详细设计C。
北邮计算机研究生入学考试(复试)历年上机测试模拟试题及真题
2008年北邮计算机学院研究生入学考试(复试)上机测试模拟试题第一题:人数统计 1305Submit: 1853 Accepted:717Time Limit: 1000MS Memory Limit: 65535KDescription今年计算机学院研究生入学复试分多个小组。
现在老师需要知道每组复试同学中男生和女生的人数。
请你编写程序分别统计出男女生的总人数。
Input输入的第一行是一个数t(0 < t < 10),表示有t组测试用例。
对于每组输入数据有两行,第一行是一个正整数n(1 < n < 1000),表示参加该组复试的总人数。
接下来一行有n个整数(取值为0或1),0代表男生,1代表女生,整数间由一个空格隔开。
Output对于每组测试用例,输出一行,由两个数组成,用一个空格隔开,分别表示男生和女生的总人数。
Sample Input221 070 1 0 0 1 1 0Sample Output1 14 3数字统计 1306 1512Submit: 1257 Accepted:578Time Limit: 1000MS Memory Limit: 65536KDescription给你一个非常大的整数x,(-10^400 <=x<= 10^400),请统计x的每一位,分别输出9,1,2出现的次数.Input一个大整数;Output一共三行,第一行是9出现的次数,第二行是1出现的次数,第三行是2出现的次数。
Sample Input912912912910915902Sample Output654第二题:统计字母1512Submit: 2259 Accepted:625Time Limit: 1000MS Memory Limit: 65535KDescription给定一个只有小写英文字母组成的字符串,串长为n。
请你编写程序求出这个字符串中出现次数最多的字母。
软件工程研究生复试程序题真题
1 编程实现从键盘输入一个字符串,将其字符顺序颠倒后重新存放,并输出这个字符串。
【算法思想】定义两个指针分别指向字符串的两端,同时向前和向后移动边交换。
【参考答案】#include <stdio.h>#include <string.h>main(){char *pStr,temp,str[80];char *pStart, *pEnd;int len;pStr = str;printf(“Input string:\n”);gets(pStr); /*输入字符串*/len = strlen(pStr); /*求出字符串长度*/for(pStart = pStr,pEnd=pStr + len-1;pStart<pEnd;pStart++,pDend--){ /*pStart,pEnd分别指向串的首和尾*/temp = *pStart;*pStart = *pEnd;*pEnd = temp; /*交换pStart和pEnd指向的串中的字符*/}puts(pStr);}程序运行结果:Input string:abcdeffedcba2 编写一个交换变量值的函数,利用该函数交换数组a和数组b中的对应元素值。
【参考答案】#include <stdio.h>#define ARRAY_SIZE 10void Swap(int *x,int *y);main(){int a[ARRAY_SIZE],b[ARRAY_SIZE],I,n;printf(“Input array length n<=10: ”);scanf(“&d”,&n);printf(“Input array a:\n”);for(i=0;i<n;i++){scanf(“&d”,&a[i]);}printf(“Input arrary b:\n”);for(i=0;i<n,i++){scanf(“&d”,&b[i]);} /*输入两个数组内容*/for(i=0;i<n;i++){Swap(&a[i],&b[i]); /*调用交换函数*/}printf(“After swap:\n”);printf(“Array a:\n”);for(i=0;i<n;i++)\{printf(“&d”,a[i]);}printf(“\n”)printf(“Array b:\n”);for(i=0;i<n;i++){printf(“&d”,b[i]);}printf(“\n”);}/*函数功能:交换两个整型数的值函数参数:整型指针x和y分别指向两个待交换的整型数函数返回值:无*/void Swap(int *x,int *y) /*交换函数*/{int temp;temp =*y;*x = *y;*y = temp;}程序运行结果:Input array length n<=10:5Input array a:1 3 5 7 9Input array b:2 4 6 8 10After swap:Array a:2 4 6 8 10Array b:1 3 5 7 93 从键盘任意输入10个整数,用函数编程实现计算最大值和最小值,并返回它们所在数组中的位置。
【2011】北邮网研院和计算机院复试上机题目
2011北邮网研院复试上机题目A、字符串操作Accept:93 Submit:1212Time Limit:1000MS Memory Limit:65536KB请仔细阅读“考前必读”Description大家平时都会用到字符串,现在有几种字符串操作,需要你用这几种操作处理下字符串。
Input多组数据,以EOF结束。
第一行一个字符串,字符串长度大于0,并且小于等于200。
第二行一个数字t,(0<t<=200)。
下面t行,每行表示一种操作。
共有两种操作,每行数据的第一个数表示操作的种类:翻转操作:第一个是一个数字0,然后两个数字i和len,翻转从下标i长度为len的子串。
替换操作:第一个是一个数字1,然后两个数字i和len,接着一个长度为len 的字符串str,用str替换从下标i长度为len的子串。
字符串操作后会更新,旧的字符串被舍弃。
(详见sample)Output每个操作之后输出生成的新的字符串Sample Inputbac20 0 31 12 asSample OutputcabcasHint字符串下标从0开始,所有操作的数据范围都合乎规范。
B、虚数Accept:36 Submit:448Time Limit:1000MS Memory Limit:65536KB请仔细阅读“考前必读”Description给你一个复数集合{Aj+i*Bj},保证Aj和Bj都是整数,初始为空集。
每次会给你如下两种操作中的一种:1."Insert x+iy",其中x,y都是整数。
表示在集合中加入一个复数 x+ iy,同时输出此时集合的大小;2."Pop"。
如果集合为空集直接返回“Empty!”,如果有元素则以"x+iy "的形式显示集合中模值最大的复数,然后将该元素从集合中删除,之后在第二行显示操作之后的集合大小,如果为空集则显示“Empty!”。
软件工程最全题库含答案
A.让软件做什么 B.要给软件提供哪些信息 C.要求软件工作效率怎样 D.让软件具有何种结构
55. DFD 中的每个加工至少有( )
A.一个输入流或一个输出流
B.一个输入流和一个输出流
C.一个输入流
D.一个输出流 答案:B
56. 数据字典总,一般不出现的条目是( )
A 数据流
B 数据存储 C.加工 D.源点与终点 答案:D
A)需求复审
B)过程设计 C)单元测试
D)编码
48. 在整个软件项目定义与开发各阶段一种典型的工作量分布原则,称为 40-20-40 分布原则,其中 20%的工作量指的是( B )
A)需求分析工作量 B)编码工作量 C)详细设计工作量 D)测试工作量
49. 下列选项中,不属于可行性研究的任务的是( A )
8. 下列选项中属于过程的外部属性的是( B )。
A)工作量 B)成本 C)事件 D)计划及进度
9. 下列选项中属于资源的外部属性的是( C )。
A)经验 B)人员 C)生产率 D)工具
10. 10.下列说法中,不正确的是( B )。
A)软件项目工作量分布曲线不是线性的
B)到开发后期临时增加人力可加快进度
A)人员的分工
B)估算软件项目的成本
C)对控制软件质量要素
D)对软件阶段产品进行评审
4. 下列选项中,不属于质量管理的主要任务的是( C )。
A)制定软件质量保证计划 B)按照质量评价体系控制软件质量要素
C)增加软件产品的功能
D)对最终软件产品进行确认
5. 下列选项中,属于软件配置管理的任务的是( D )。
52. 在软件工程中,( C )不属于软件开发部分的任务
A)软件总体设计 B)单元测试计划 C)软件经销
(完整版)计算机复试面试题目参考
(完整版)计算机复试面试题目参考1. 什么是程序局部性,为什么会有程序的空间局部性?程序局部性是指程序在运行时呈现出局部性规律,在一段时间间隔内,程序的执行是局限在某个部份,所访问的存储空间也只局限在某个区域。
空间局部性是指若一个存储单元被访问,那么它附近的单元也可能被访问,这是由于程序的顺序执行引起的。
2. 比较TCP与UDPTCP与UDP都是传输层的协议,且都用端口号标识数据所达的进程。
TCP提供的是面向连接服务,提供可靠交付。
且具有流量控制和拥塞控制。
可用于可靠要求高的场合如:SMTP,FTP,HTTP等UDP提供的是无连接服务,提供不可靠交付,且无确认机制。
主要用于即时强的场合如:视频聊天,语音电话等。
3. 网络协议的三个核心要素,及概念 .各起什么作用?语法,定义了数据与控制信息的格式;语义,定义了需要发出何种控制信息,完成何种响应动作以及作出何种响应;同步,定义了事件实现顺序的详细说明;4. 关系数据库都有那些操作,特点是什么?◇查询:选择、投影、连接、除、并、交、差◇数据更新:插入、删除、修改关系操作的特点:集合操作方式,即操作的对象和结果都是集合。
5. 解释一下网络体系结构,它得实现和理论有什么区别?是指通信系统的整体设计,它为网络硬件、软件、协议、存取控制和拓扑提供标准。
网络体系统结构采用分层结构,各层之间相互独立、较易维护、灵活性好。
国际标准化组织制定了OSI/RM标准,该标准采用了七层结构应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
七层协议体系结构既复杂又不实用,但其概念清楚,体系结构理论较完整。
而TCP/IP却成为了事实上的标准,它采用了四层结构即应用层、传输层、网络层和网络接口层。
6. 为了实现重定位需要哪些硬件?最简单的方式是在系统中增设一个重定位寄存器,用来存放正在执行作业的内存地址,每次访问数据时,由硬件自动将相对地址与重定位寄存器中的起始地址相加,形成实际的特理地址。
计算机考研复试面试题库及答案
计算机考研复试面试题库及答案一、专业基础知识1. 计算机组成原理题目:简述冯·诺伊曼体系结构的基本原理。
答案:冯·诺伊曼体系结构是一种计算机系统的设计原则,也是现代计算机的基础。
它的基本原理包括以下几点:- 存储程序:计算机通过将指令和数据存储在同一个存储器中,实现了程序的自动执行。
- 二进制系统:计算机使用二进制表示数据和指令,简化了计算机系统的设计和实现。
- 指令流水线:计算机通过将指令的执行过程划分为多个阶段,并同时进行不同指令的执行,提高了计算机的执行效率。
- 内存层次结构:计算机通过多层次的存储器结构,包括高速缓存、内存和外部存储器,提供了不同速度和容量的存储器选择。
2. 算法与数据结构题目:什么是二叉搜索树?如何实现插入和删除操作?答案:二叉搜索树(BST)是一种特殊的二叉树,满足以下条件:- 对于树中的每个节点,其左子树的所有节点的值小于该节点的值,右子树的所有节点的值大于该节点的值。
- 对于树中的每个节点,其左子树和右子树也是二叉搜索树。
实现插入操作的步骤:- 从根节点开始,将待插入的值与当前节点的值进行比较。
- 如果待插入的值小于当前节点的值,且当前节点的左子树为空,则将待插入的值作为当前节点的左子节点。
- 如果待插入的值大于当前节点的值,且当前节点的右子树为空,则将待插入的值作为当前节点的右子节点。
- 如果待插入的值小于当前节点的值,且当前节点的左子树不为空,则将当前节点更新为其左子节点,重复上述步骤。
- 如果待插入的值大于当前节点的值,且当前节点的右子树不为空,则将当前节点更新为其右子节点,重复上述步骤。
实现删除操作的步骤:- 如果待删除的节点为叶子节点,直接删除。
- 如果待删除的节点只有一个子节点,将子节点连接至待删除节点的父节点。
- 如果待删除的节点有左右子节点,找到其右子树中的最小节点,用该节点替换待删除节点,并删除最小节点。
二、算法设计与分析1. 动态规划题目:请简述动态规划算法的基本思想,并给出一个应用动态规划算法的例子。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件工程》期末考试试题A卷10题,每题1分,共10分)、需求规格说明书的作用不包括( C )A.软件验收的依据B.用户与开发人员对软件要做什么的共同理解C.软件可行性研究的依据 D.软件设计的依据、软件结构图中,模块框之间若有直线连接,表示它们之间存在( A )、调用关系 B、组成关系 C、链接关系 D、顺序、下面关于DFD中的加工的描述正确的是( C )A. 每个加工只能有一个输入流和一个输出流B. 每个加工最多有一个输入流,可以有多个输出流C. 每个加工至少有一个输入流和一个输出流D. 每个加工都是对输入流进行变换,得到输出流、在基于数据库的信息管理系统中,数据库概念模型的设计对应于系B)阶段。
、需求分析 B、概要设计C、详细设计D、程序设计5、为了提高模块的独立性,模块之间最好是( D )A. 控制耦合B. 公共耦合C. 内容耦合D. 数据耦合6、下列关于效率的说法不正确的是( B )A. 效率是一个性能要求,其目标应该在需求分析时给出B. 提高程序效率的根本途径在于采用高效的算法C. 效率主要指处理机时间和存储器容量两个方面D. 程序的效率与程序的算法有关7、测试的关键问题是( D )A. 如何组织对软件的评审B. 如何验证程序的正确性C. 如何采用综合策略D. 如何选择测试用例8、某企业的软件系统希望从Windows平台移植到Linux平台上,软件开发厂商为了满足企业的要求进行的维护属于 (B )A. 改正性维护B. 适应性维护C. 完善性维护D. 预防性维护9、软件测试的目的是( C )A.为了表明程序没有错误B.为了说明程序能正确地执行C.为了发现程序中的错误D.为了评价程序的质量10、用白盒测试法设计测试用例的方法包括( C )A.错误推测 B.因果图C.基本路径测试 D.边界值分析二、判断题(共10题,每题1分,共10分)1.软件是一种逻辑实体,由可执行代码构成。
(错)2.用例模型是用来说明系统应该具备的功能描述。
(对)3.软件质量主要通过软件的功能测试来保证。
(错)4.UML中顺序图和协作图不仅能用来表示对象之间的动态行为,也能表示对象内部的状态变化。
(错)5.单元测试中只能使用白盒测试方法。
(错)6.软件能力成熟度模型是衡量软件项目管理水平的标准。
(错)7.软件维护的周期远远大于软件开发的周期。
(对)8.领域模型是面向对象分析和设计的一个组成部分,因而它也是待构建的软件模型的一个部分。
(错)9.在顺序图中,一个对象A发送了一条创建另一个对象B的消息,那么表明对象B具备了处理该条消息的职责。
(错)10.在进行软件类设计的过程中可以应用GRASP中的“信息专家”模式决定类中的方法。
(对)三、简答题(共3题,每题5分,共15分)1、简述面向对象开发方法中OOA和OOD要完成的工作。
OOA:建立用例图、写用例文本描述、创建领域模型、绘制顺序图(可选)、创建操作契约。
OOD:软件体系结构设计、用例实现设计(用协作图寻找参与用例的对象,对对象职责进行分配,并生成设计类图)、用户界面设计。
2、说明软件测试步骤?简述每个步骤的测试对象和测试依据。
3、什么是软件项目管理?制定项目计划时包含的项目管理过程有哪些?软件项目管理就是为了实现软件项目目标,使软件项目获得成功而对软件开发项目的工作范围、可能遇到的风险、需要的资源(人力、硬件和软件)、要完成的任务、经历的里程碑、花费的工作量(成本)以及进度的安排等进行管理的过程。
制定项目计划是建立项目行动指南的基准,包括对软件项目的估算、风险分析、进度安排、人员的选择与配备等。
四、应用题(3题,共35分)1、电子表除了能显示时间外,还具有闹钟的功能,并且电子表上具有三个按钮:1.第一个是模式按钮,用以切换时间显示和时间调节的模式,在调节模式下用以切换小时和分钟的位置;2.第二个按钮用来调节小时和分钟,且只能以+1的方式进行调节;3.第三个按钮用于结束闹表响铃,仅按下一次是临时结束响铃,一分钟之后又开始响铃;连续按二次彻底结束响铃。
问题:要求给出电子表有关闹钟功能的状态迁移图(10分)评分要点:1、四个状态,每个状态1分,共4分2、按钮1状态迁移条件2分,按钮2状态迁移条件2分,按钮3及Timer迁移条件2分,共6分2、北京邮电大学计算计学院属于北京邮电大学除了行政单位之外的下属18个院级教学单位中的一个;计科院内部由院党委、行政、教学和科研及学生组成;其中的教学单位又分为5个中心;计科院的学生由本科生、硕士研究生组成,其中本科生分为四个年级,每个年级有三个大班,每个大班有5个小班;硕士研究生分为三个年级且分别属于教学单位的5个中心。
问题:请给出以上内容的领域模型(10分)评分要点:1、确定概念类,重点在于计算机学院内部的概念类,原则上少一个概念类扣0.5分;共5分。
2、建立概念类之间的关系,重点在于组合、聚合以及“学生-年级”的关联关系和“学生与研究生、本科生的继承关系”,原则上一个关系错误扣0.5分;共5分。
3、测试用例设计(输入年、月、日,判断下一天日期)有一程序要求分别输入年、月和日三个整数类型的数据,年份数据的范围是1900-2099;月份数据的范围是1-12;日期数据的范围是1-31;系统的功能可根据公历历法给出的第二天的日期。
问题:请根据等价类划分原则给出等价类表(15分)1、输入条件、有效等价类、无效等价类各占5分2、输入条件除上述基本内容外,可有自己定义的条件,如有错误扣1.5分3、有效和无效等价类中如果缺少标号扣1.5分4、有效和无效等价类中内容缺少一个扣1分五、综合题(1题,共30分)问题描述:有一个医院期望开发一个《医院挂号和问诊管理系统》,该系统要求能够实现挂号与医院科室医生的排队情况相结合,做到合理安排病人的排队次序,达到高效的就诊管理效果。
要求挂号时能够将病人的病历(电子病历)与挂号的医生相关联,一旦挂号完成医生能够实时查看到新的病人的到来;同时也要兼顾病人对已熟知医生的挂号要求。
然后根据医生的级别以及相应的收费规则(假定有:排队时间最短,收费最少,指定医生)确定本次挂号的费用,并完成收取挂号费,记录挂号信息和打印挂号单。
已知:现有经过初步分析得到的领域模型和系统顺序图,1.SSD的第一条消息,系统返回挂号单的流水号、时间和挂号员的工号。
2.SSD的第二条消息,系统根据病人提供的病历号返回病人的姓名、年龄、性别等基本信息。
3.SSD的第三条消息,挂号员根据病人的信息向系统提供科室、医生及支付策略的选择,系统返回本次挂号所需要的挂号费用。
4.SSD的第四条消息,病人支付挂号金额,系统返回要找赎的金额、打印挂号单完成一次挂号。
图5-1领域模型图5-2系统顺序图问题一:请给出上述内容的用例图,并给出“挂号”用例的用例说明(5分)评分要点:1、用例图总共2分2、重点在于“挂号”和“查看队列”用例,缺少一个扣1分3、“挂号”用例后的包含用例作为选项考查用例名称:挂号主要角色:挂号员前置条件:挂号员必须已经登陆到系统中后置条件:为病人分配合适的科室和医生;生成挂号单;收取挂号费。
主要成功场景:1.病人来到挂号处,申请挂号,开始挂号用例;2.根据病人提供的病例号,调用“病历管理”用例(检验有效性并在系统中填写病例号);3.根据病人的病情基本信息或者提供的科室和医生的请求,调用“队列管理”用例(确定科室和医生及相应的排队号);4.确定本次挂号的费用,并提示给病人,收取病人的挂号费用;5.打印挂号单,并将挂号单交给病人;6.系统记录本次挂号的信息;7.系统返回到下一个挂号处理状态。
备选场景:2.1。
如果有效性检查没有通过或者病人没有提供病例号,挂号人员将给病人建立新的病例号;3.1.如果病人请求的科室或者医生已经达到当前最大的排队数,则询问病人是否有其他选择,再进行科室和医生的选择。
3.2.如果科室和医生的排队情况已经达到当天的最大数,则退出本次挂号请求,返回到7。
A*。
在收取挂号费之前的任何时刻,病人都有权利请求退出本次挂号。
评分要点:1、用例说明占3分;2、正确书写成功场景给2分;如有部分错误扣1分;3、正确书写备选场景给1分;缺少扣1分;问题二:请根据以上顺序图并结合相应的领域模型给出每一条系统事件对应的操作契约的后置条件。
(10分)评分要点:1、每个操作契约2.5分,共10分2、后置条件不完整扣1-2分3、其中,创建实例1分,建立关联关系1分,属性赋值0.5分4、Payment操作契约中缺少删除实例扣1分;问题三:请根据以上基本信息确定参与“StartNewRegistration”系统消息的对象,根据GRASP“信息专家”模式绘制出相应的设计模型的交互图并给出对象所对应类的方法。
(15分)评分要点:1、正确找出参与该系统事件的对象3分;2、按照操作契约在交互图上给出创建对象实例的给2分;3、正确给出对象之间的消息序列给5分;4、明确返回消息参数的给2分;5、给出挂号类和挂号单类两个类方法说明的给3分;。