北航计算机系考研复试上机真题及答案(06-12年)
北京航空航天大学计算机学院计算机学科专业基础综合历年考研真题汇编
北京航空航天大学计算机学院计算机学科专业基础综合历年考研真题汇编
最新资料,WORD格式,可编辑修改!
目录
2014年北京航空航天大学计算机学院408计算机学科专业基础综合真题及详解................ 2013年北京航空航天大学计算机学院408计算机学科专业基础综合真题及详解................ 2012年北京航空航天大学计算机学院408计算机学科专业基础综合真题及详解................ 2011年北京航空航天大学计算机学院408计算机学科专业基础综合真题及详解................ 2010年北京航空航天大学计算机学院408计算机学科专业基础综合真题及详解................ 2009年北京航空航天大学计算机学院408计算机学科专业基础综合真题及详解................ 2008年北京航空航天大学计算机学院961计算机专业综合考研真题.......................... 2007年北京航空航天大学计算机学院461计算机专业综合考研真题.......................... 说明:2007~2008的科目名称为“计算机专业综合”,代码分别为461和961;2009~2014
年的科目代码与名称为“408计算机学科专业基础综合”;2015年起,科目代码与名称改为“961
计算机学科专业基础综合”,本书书名以此为准。
2014年北京航空航天大学计算机学院408计算机学科专业基础综合真题及详解
一、单项选择题:1~40小题,每小题2分,共80分。下列每题给出的四个选项中,只
北京航空航天大学计算机考研复试情况指导
2018年北航复试安排:
复试前要进行体检,地点是北航学院路校医院。这里不再多说。
第一天上午进行报到和复试情况说明,提交报到材料,某些人需要提交CSP(中国计算机学会软件能力测试)成绩来折合上机考试分数。折合办法是按照CSP成绩在当时测试中的比例,认定这个比例是本次上机考试中的比例。比如说CSP成绩超过全国80%的考生,那么提交成绩认定,本次上机成绩也要超过本次考试80%的考生。需要注意的有两点:第一是提交CSP 成绩后不要参加上机考试,提交CSP成绩后仍参加的,CSP成绩作废;第二是经验性的,提交CSP成绩后仍参加的考生,只有及其少的几个,上机成绩高于折合的成绩,其他作死大户都是上机成绩低于折合成绩,但是成绩按上机成绩记录。
第一天的下午上机考试,安排得很紧,第一场1:00开始,第二场3:30开始。建议考试之前一定要先去看看考场。上机考试一般在学院路新主楼,但是新主楼的构造,确实比较复杂。尤其是1点考试的同学,时间非常紧,不要因此耽误了考试。上机可以使用c/c++编程,提供的编译器有和VS等等。建议使用标准c编程。还有要注意的是,提交的文件只能是.c或者.cpp文件,使用VS编程的,尽量留出来单份源码文件。提交的系统只提供检查编译是否通过,不提供程序是否完全正确,每个题按最后一次提交作为评判的内容,最多提交5次。上机考试考察内容:按近几年的考察,难度在逐渐加大,但是考察内容不会超出算法与数据结构的内容,包括线性表,栈,串,数组,树,图,查询,排序。我的考试题有两道,第一道链表,60分;第二道三叉树,40分。
北京航空航天大学考研复试真题
北航考研详解与指导
一、学习方面:
数学,这是一门高技术的公共课,需要的是长期不间断的投入时间和精力。去年我的成绩是128分,说一下我的数学参考书:同济版高数课本上下册、线性代数课本+李永乐复习全书+660+李永乐真题解析。
时间安排:课本第一遍我在五月份刚开始就已经搞定,之后便开始啃全书(此时,我也在看张宇的视频,一般这个时候大家晚上八点半就都不在教室了,自己可以拿着电脑在教室里放外音,很爽的,宇哥视频幽默易懂),在第一遍看全书过程中,会发现前面的极限一章很难搞明白,几乎每一张上能看懂的不超过三分之一(这是看,不是自己做,自己做你会发现自己根本不适合考研),这是绝对正常的,要知道全书上的知识点很多是由真题直接改编而成的,要是能看懂的话,那我们就不用准备了,可以直接读研了!在七月份的时候我参加了学校组织的数学提高班,这断断续续用了半个月,上午上课,晚上反馈。(PS我坚决不建议大家报**什么的辅导班,不要以为大家都报自己不报就会吃亏,盲目跟大流等于自欺欺人!)在7月底8月初时我的数学全书已完成一边。此时,经过学校的培训和自己的学习加上视频,我的数学水平已经有所改善。之后,我放下高数,用了二十天把线性代数搞定,线代部分需要较强的逻辑思维,只要用心,可以一次弄利索了。(注意考研真题的几种常考题型,切记要多总结)。总之,数学需要时间投入,不可以偷懒,更不可眼重手轻,可以负责任的说,只要不好好动笔的同学,最后一般数学都考的不理想,要么有思路计算出错,要么在一个拐弯处绊倒。
英语,同样需要时间投入,我的考研分数不太理想,所以在英语上不敢妄加评论。但是我自己觉得复习的还是蛮充分的,唯一出错的环节就是单词部分,后期单词记忆部分精力不够。同样说一下我的复习用书:张剑基础阅读100篇(这个我用的是去年的师兄的,他只给我留了40篇左右文章没做,都说这个不太有用,因为它的出题思路确实和真题大相径庭,不建议全部做,可作为前期热身用)+新东方乱序版单词书+真题(4份)+模拟题一份。
计算机考研复试题目及答案
计算机考研复试题目及答案计算机考研复试作为考生进入硕士研究生阶段的重要一环,对考生的计算机专业知识以及解决问题的能力进行全面考察。下面将给大家介绍一些常见的计算机考研复试题目及答案,希望能够对考生们的备考有所帮助。
一、综合知识与技术能力
1. 请简述计算机系统结构并指出其中的关键组成部分。
计算机系统结构由四个主要组成部分构成:中央处理器(CPU)、存储器、输入设备和输出设备。其中,中央处理器是计算机的核心,负责进行数据的计算和操作;存储器用于存储数据和程序;输入设备用于将外部信息输入计算机系统;输出设备则是将计算机处理的结果显示给用户。
2. 请说说主流操作系统的分类及其特点。
主流操作系统主要分为四类:分时操作系统、实时操作系统、网络操作系统和分布式操作系统。
分时操作系统以时间片轮转的方式实现多个用户同时使用计算机系统,具有良好的用户体验和资源管理能力;实时操作系统主要用于对时间要求严格的任务处理,能够满足实时性要求;网络操作系统则是针对网络环境下的计算机系统,强调对网络资源的管理和协同工作;分布式操作系统则是将多台计算机组成一个整体共享资源的系统,实现了资源共享和负载均衡的优点。
二、数据结构与算法
1. 请简述常见的排序算法并给出它们的时间复杂度。
常见的排序算法有冒泡排序、选择排序、插入排序、快速排序和归并排序。
冒泡排序的时间复杂度为O(n^2);选择排序的时间复杂度也为
O(n^2);插入排序的时间复杂度为O(n^2);快速排序的时间复杂度为O(nlogn);归并排序的时间复杂度也为O(nlogn)。
北航复试上机真题
2008年上机题目
1.素数
输入一个整数,要求输出所有从1到这个整数之间个位为1的素数,如果没有则输出-1(30分)
2.旋转矩阵
任意输入两个9阶以下矩阵,要求判断第二个是否是第一个的旋转矩阵,如果是,输出旋转角度(0、90、180、270),如果不是,输出-1。
要求先输入矩阵阶数,然后输入两个矩阵,每行两个数之间可以用任意个空格分隔。行之间用回车分隔,两个矩阵间用任意的回车分隔。(60分)
2.字符串匹配
从string.in中读入数据,然后用户输入一个短字符串。要求查找string.in中和短字符串的所有匹配,输出行号、匹配字符串到string.out文件中。匹配时不区分大小写,并且可以有一个用中括号表示的模式匹配。如“aa[123]bb”,就是说aa1bb、aa2bb、aa3bb都算匹配。(60分)
2009年的复试上机题目:
1 给出立方根的逼近迭代方程 y(n+1) = y(n)*2/3 + x/(3*y(n)*y(n)),其中y0=x.求给定的x经过n次迭代后立方根的值
要求:double精度,保留小数点后面六位。(送分题)
输入:x n
输出:迭代n次后的立方根
sample
input: 3000000 28
output:144.224957
2 数组排序
输入一个数组的值,求出各个值从小到大排序后的次序。
输入:输入的第一个数为数组的长度,后面的数为数组中的值,以空格分割
输出:各输入的值按从小到大排列的次序。
sample
input:
4
-3 75 12 -3
output:
1 3
2 1
3 字符串的查找删除
北航考研机考练习题目
【问题描述】 从键盘输入一个字符,求出它的前驱和后继字符(按照 ASCII 码值排序),并按照从小到 大的顺序输出这三个字符和对应的 ASCII 值。 【输入形式】 从键盘输入一个字符 【输出形式】
按两行输出: 第一行按照从小到大的顺序输出这三个字符,并以一个空格隔开; 第二行按照从小到大的顺序输出三个字符对应的 ASCII 值,并以一个空格隔开。 【输入样例】 b 【输出样例】 abc 97 98 99 【样例说明】 输入字符 b,b 的前驱字符是 a,后继字符是 c,第一行按照从小到大的顺序输出 a b c;第 二行输出对应的 ASCII 值 97 98 99 【评分标准】 结果完全正确得 20 分,每个测试点 4 分。提交程序名为:c0103.c。
第一章 实验准备
1.1 登录教学辅助系统
高级语言程序设计教学辅助系统用于支持“高级语言程序设计(一)”的所 有课外教学活动。学生可以从该系统中获取课程公告、课程信息(包括课程大纲、 教师介绍、课件下载等)、获取/提交作业、网上答疑(课程论坛)、课程网上考 试及个人信息。
教学辅助系统登录网址: 校内访问:http://course.buaa.edu.cn 校外访问:http://211.153.200.26
有输入语句:int a,b,c; scanf("a=%d,b=%d,c=%d", &a, &b, &c); 为使变量a 的值为 1,b的值为 3,c的值为 2,
北京航空航天大学10-12年录取分数线及复试分数线&12年录取人数
天勤论坛-我们做专业的计算机考研论坛
北航近三年来的计算机研究生录取分数线
2010 2011 2012
312 345 338
北航09-12年计算机考研复试分数线
2009 2010 2011 2012
323 310 345 338
北京航空航天大学计算机学院2012年硕士研究生统考招生复试分数线
一志愿报考学科门类(专业类别)学科代码总分
基础科目业务科目
政治英语数学专业课
计算机科学与技术081200 338 50 50 85 85 地图制图学与地理信息工程081603 320 50 50 85 85 计算机技术(专业学位)085211 320 50 50 85 85 北京航空航天大学计算机学院2011年硕士研究生统考招生复试分数线
一志愿报考学科门类(专业类别)学科代码总分
基础科目业务科目
政治英语数学专业课
计算机科学与技术081200 345 45 45 80 80 地图制图学与地理信息工程081603 310 45 45 80 80 计算机技术(专业学位)085211 300 45 45 80 80
2012年北航计算机科学与技术专业录取人数情况
北航计算机分数线345分 (单科线 45/80 )
报考人数2431人,进入复试人数296人
最终工学录取78人+ 地理8人 + 工程54人(特别注意:这里都是统考的名额,保送的大
概一百多,保送与统考几乎1:1)
学硕录取均分 375分,
专硕录取均分为366分
天勤论坛,
2008-2009+北航计算机考研复试上机题
2009 年的复试上机题目: 1 给出立方根的逼近迭代方程 y(n+1) = y(n)*2/3 + x/(3*y(n)*y(n)),其中 y0=x.求给定的 x 经过 n 次迭代后立方根的值
要求:double 精度,保留小数点后面六位。(送分题) 输入:x n 输出:迭代 n 次后的立方根 sample input: 3000000 28 output:144.224957
printf(" Hi "); } 输出的 fileout.txt 为
#clude<stdio.h> tma() {
prtf("Hi"); }
2 数组排序 输入一个数组的值,求出各个值从小到大排序后的次序。 输入:输入的第一个数为数组的长度,后面的数为数组中的值,以空格分割 输出:各输入的值按从小到大排列的次序。 sample input: 4 -3 75 12 -3 output: 1321
3 字符串的查找删除 给定文件 filein.txt 按要求输出 fileout.txt。 输入: 无空格的字符串 输出: 将 filein.txt 删除输入的字符串(不区分大小写),输出至 fileout.txt sample 输入:in 输出:将 filein.txt 中的 In、IN、iN、in 删除,每行中的空格全部提前至行首, 输ቤተ መጻሕፍቲ ባይዱ至 fileout.txt filein.txt 中的值为: #include <stdio.h> int main() {
计算机考研复试题目及答案
计算机考研复试题目及答案
### 计算机考研复试题目及答案
#### 题目一:数据结构
问题:请解释什么是二叉搜索树,并说明其基本操作。
答案:
二叉搜索树(Binary Search Tree,简称BST)是一种特殊的二叉树,它具有以下性质:
1. 若任意节点的左子树不为空,则左子树上所有节点的值均小于它的节点值。
2. 若任意节点的右子树不为空,则右子树上所有节点的值均大于它的节点值。
3. 任意节点的左、右子树也分别为二叉搜索树。
4. 没有键值相等的节点。
二叉搜索树的基本操作包括:
- 插入操作:将一个新值插入到树中,保持树的有序性。
- 查找操作:在树中查找一个给定值的节点。
- 删除操作:删除树中具有特定值的节点,并重新调整树以保持其性质。
#### 题目二:操作系统
问题:请简述死锁的必要条件,并说明如何避免死锁。
答案:
死锁是指多个进程在执行过程中因争夺资源而造成的一种互相等待的状态,若无外力作用,这些进程都无法继续执行。死锁的必要条件包括:
1. 互斥条件:至少有一个资源不能被共享,只能由一个进程使用。
2. 占有和等待条件:至少有一个进程至少占有一个资源,并且等待获取其他进程占有的资源。
3. 不可剥夺条件:已分配给一个进程的资源,在未使用完之前,不能被其他进程强行剥夺。
4. 循环等待条件:存在一个进程序列,使得每个进程都在等待下一个进程所占有的资源。
避免死锁的方法:
- 资源分配策略:如银行家算法,确保分配资源时不会导致死锁。
- 资源有序分配:确保所有进程按照相同的顺序请求资源。
- 避免循环等待:通过资源的有序分配来打破循环等待的条件。
计算机考研复试题目及答案详解
计算机考研复试题目及答案详解
一、选择题
1. 下列不属于计算机网络协议的是:
A. TCP/IP
B. HTTP
C. FTP
D. IPX/SPX
答案:D. IPX/SPX
2. 网络拓扑结构中,哪种结构的故障对整个网络影响最小?
A. 星型拓扑
B. 环型拓扑
C. 总线型拓扑
D. 树型拓扑
答案:A. 星型拓扑
3. TCP/IP协议簇中,下列协议不属于网络层的是:
A. IP协议
B. ICMP协议
C. ARP协议
D. RIP协议
答案:C. ARP协议
4. 下列哪个属于面向连接的传输层协议?
A. UDP
B. TCP
C. IP
D. ICMP
答案:B. TCP
5. 下列哪个不属于计算机网络的关键技术?
A. DNS
B. DHCP
C. NAT
D. VPN
答案:D. VPN
二、问答题
1. 请简述TCP/IP协议栈的层次结构,并描述每个层次的作用。
答:TCP/IP协议栈的层次结构分为四层,分别是物理层、网络层、传输层以及应用层。
物理层:负责将比特流转化为物理信号进行传输,并处理物理层面
的数据传输问题。
网络层:主要负责将数据包从源主机传输到目标主机,通过IP协
议进行分组传输,并处理路由选择、分组转发等问题。
传输层:提供端到端的数据传输服务,主要有TCP和UDP两种协议。TCP提供面向连接的可靠数据传输服务,包括数据分段、流量控制、拥塞控制等功能;而UDP则提供无连接的不可靠数据传输服务。
应用层:为用户提供各种网络应用服务,如HTTP、FTP、DNS等。在应用层中,数据被封装成特定的格式,通过网络传输到目标主机后
被解封装,并交给相应的应用程序进行处理。
北航计算机复试面试题
操作系统:
1.文件系统和数据库系统的区别,哪个效率更高,为什么。
2.进程上下文切换具体过程,是什么实现的
3.BIOS的意思,程序的可移植性
4..操作系统的基本概念
5.操作系统开机过程;
6.操作系统分哪些部分,进程管理包含什么内容;
7.操作系统我们所学的其他课程有什么关系,还是操作系统是个独立的课程
8.什么是系统调用?它和库函数调用有什么区别?
计算机网络:
1.数据链路层是干什么的
2.输入数据在网络层叫什么
3.分组的生命期,为什么要设置这个生命期
4.dns的工作过程
5.点击一个链接的网络过程;
6.网络模型,网络层协议有哪些,应用层协议有哪些
7.两台计算机中的进程进行通信,需要解决什么问题?
基础数学:
1.什么是极限,什么是趋近
2.极值的求法
3.?泰勒级数的展开式;为什么把一个简单的函数表示成那么麻烦的泰勒级数?
4.信息和数据的区别?
5.图形和图像有什么区别?
6.概率的全概率公式,高数的傅立叶级数,现代秩的概念
7.一枚硬币抛三次,至少一次正面的概率
8.什么是图的同构
9.说一下数理逻辑的定义
10.矩阵的用途
11.线性相关与无关
12.离散数学包含那些部分;
13.集合的势,无限集合的大小比较,偏序,良序,全序,划分,欧拉图,Hamilton图
14.什么是群
15.谓词逻辑和命题逻辑的区别
16.什么是等价关系,什么是子句,什么是合取范式
17.什么是二元关系
数据结构与算法:
1.什么是二叉树
2.已知病毒特征码一百万个和文件一个,问用什么查找算法能尽快的检测出该文件是否有病毒?
3.快排和插入排序那个更高效?
考研计算机面试题目及答案
考研计算机面试题目及答案
一、操作系统与计算机网络
1. 请简述操作系统的功能和作用。
操作系统是计算机系统中的重要组成部分,其功能和作用主要包括:- 管理和分配计算机的资源,如内存、处理器、输入输出设备等;
- 提供用户与计算机硬件之间的接口,实现用户的程序执行和数据
处理需求;
- 提供文件管理功能,用于管理和操作计算机中的各种文件;
- 实现进程调度和管理,确保多个进程能够合理、高效地共享计算
机资源;
- 提供系统安全控制功能,保护计算机系统和数据的安全性。
2. 请介绍TCP/IP协议族。
TCP/IP协议族是一组用于互联网通信的协议集合。其中,TCP(传
输控制协议)负责数据的可靠传输,IP(网际协议)负责数据在网络
中的路由和寻址。除了TCP和IP协议外,TCP/IP协议族还包括:- 网络层协议,如IP协议、ARP协议、ICMP协议等;
- 传输层协议,如TCP协议、UDP协议等;
- 应用层协议,如HTTP协议、FTP协议、SMTP协议等。
3. 请解释死锁的概念,并说明如何预防和避免死锁的发生。
死锁是指两个或多个进程互相请求对方所持有的资源,而导致进程
都无法继续执行的状态。为避免死锁的发生,可以采取以下措施:- 加锁顺序:对资源加锁时,按照相同的顺序请求资源,避免出现
环路依赖;
- 资源抢占:当一个进程请求资源时,如果该资源已被其他进程占用,可以抢占其他进程的资源,以便自身能够继续执行;
- 资源预分配:在进程执行之前,预先分配所需的所有资源,避免
资源竞争;
- 死锁检测与恢复:通过算法检测死锁的发生,并采取相应的措施,如终止某些进程或回滚操作,来解除死锁的状态。
北航上机真题及答案
标准输出 4231
三、文章识别 【简要题意】
输入一篇可能未经排版的文章,挑选出其中的单词【单词中不包含“(”等特殊符号】, 然后按字典序输出。
3
14 年上机题
第一题,阶乘数。 输入一个正整数,输出时,先输出这个数本身,跟着一个逗号,再输出这个数的各位数字
的阶乘和,等号,阶乘和的计算结果,并判断阶乘和是否等于原数,如果相等输出 Yes,否 则输出 No。题目说明输入的正整数以及其各位阶乘和都不会超出 int 型的表示范围。
第三题,排版题。 输入若干行字符,表示某电影的演职员表,每行只有一个冒号,冒号前面是职位,冒号
后面是姓名,要求把各行冒号对齐,删除多余空格后输出。先输入一个数字,表示排版要求 的冒号位置,该位置号保证比各行冒号前的最大字符数还要大。再输入若干行字符,最多 50 行,每行最多 100 个字符,除空格、制表符和回车之外都是有效字符,要求每行的冒号处于 格式要求的位置,冒号两边与有效单词之间各有一个空格,冒号前面的单词之间只有一个空 格(删除多余的空格和制表符),在冒号左边右对齐,前面全由空格填充,冒号后面的单词之 间也只有一个空格,在冒号右边左对齐,最后一个单词后不加空格直接换行。
给出一个标准输入的正数(开头末尾没有多余的 0),输出其科学计数法表示结果。 比如:输入 0.000002,输出 2e-6;输入 123.456,输出 1.23456e2;输入 123456,输出 1.23456e2
计算机考研复试面试题库及答案
计算机考研复试面试题库及答案
一、专业基础知识
1. 计算机组成原理
题目:简述冯·诺伊曼体系结构的基本原理。
答案:冯·诺伊曼体系结构是一种计算机系统的设计原则,也是现代计算机的基础。它的基本原理包括以下几点:
- 存储程序:计算机通过将指令和数据存储在同一个存储器中,实
现了程序的自动执行。
- 二进制系统:计算机使用二进制表示数据和指令,简化了计算机
系统的设计和实现。
- 指令流水线:计算机通过将指令的执行过程划分为多个阶段,并
同时进行不同指令的执行,提高了计算机的执行效率。
- 内存层次结构:计算机通过多层次的存储器结构,包括高速缓存、内存和外部存储器,提供了不同速度和容量的存储器选择。
2. 算法与数据结构
题目:什么是二叉搜索树?如何实现插入和删除操作?
答案:二叉搜索树(BST)是一种特殊的二叉树,满足以下条件:- 对于树中的每个节点,其左子树的所有节点的值小于该节点的值,右子树的所有节点的值大于该节点的值。
- 对于树中的每个节点,其左子树和右子树也是二叉搜索树。
实现插入操作的步骤:
- 从根节点开始,将待插入的值与当前节点的值进行比较。
- 如果待插入的值小于当前节点的值,且当前节点的左子树为空,
则将待插入的值作为当前节点的左子节点。
- 如果待插入的值大于当前节点的值,且当前节点的右子树为空,
则将待插入的值作为当前节点的右子节点。
- 如果待插入的值小于当前节点的值,且当前节点的左子树不为空,则将当前节点更新为其左子节点,重复上述步骤。
- 如果待插入的值大于当前节点的值,且当前节点的右子树不为空,则将当前节点更新为其右子节点,重复上述步骤。
#北航计算机考研专业课历真题
2008年真题一、简答题<4’×5)
1、写出影响算法执行的时间效率的主要因素,并指出哪些因素与算法的时间效率直接相关。
2、已知元素的入栈顺序为A,B,C,D,E,在所有可能的出栈顺序中,写出第一个出栈的元素为C 且第二个出栈的元素为D 的所有组合。
3、根据单词<Nov, Jul, Sept, Feb, Oct, Mar, May, Jun, Jan, Dec, Aug, Apr)的第一个字母在字母表中的顺序建立二叉排序树,当每个元素的
查找概率相等时,求查找成功时的平均查找长度ASL。
4、证明:具有n 1> 2 条边。-个顶点的无向图最多有n (n
5、有人说,折半查找的时间效率一定比顺序查找的时间效率高,你怎么看待这种说法?为什么?
二、算法设计题<10’)
1] 中,请写出中序遍历该二叉树的非递归算法。-已知一非空完全二叉树存放于数组BT[0..n
三、算法设计题<10’)
写出不带头结点的双向链表的插入排序算法。
四、简答题<4’×5)
1、数据传输控制方式有哪些?
2、引入线程的目的是什么?
3、P, V 操作是如何实现互斥的的?
4、什么是死锁?产生死锁的原因是什么?
5、什么是文件系统?
五、判断题<1’×10)
略。<基本上来自于历年真题)
六、解答题<10’)
某机器字长为16 位,采用段页式存储管理算法,页内偏移为12 位,段表和页表内容如下,给出4 个虚拟地址<二进制形式),问哪个地
址产生缺段中断,哪个地址产生缺页中断,哪些地址可以转换为物理地址,并求转换后的物理地址。<地址格式中段号占1 位,段内页号
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12 年上机题
1.【问题描述】
某些整数能分解成若干个连续整数的和的形式,例如 15 = 1 + 2+3+4+5 15 = 4 + 5 + 6 15 = 7 + 8
某些整数不能分解为连续整数的和,例如:16 输入:一个整数 N(N <= 10000) 输出:整数 N 对应的所有分解组合,按照每个分解中的最小整数从小到大输出,每个分解占一行, 每个数字之间有一个空格(每行最后保留一个空格);如果没有任何分解组合,则输出 NONE。
#define DEBUG_BUAA_122
int main(){ int N; //矩阵维数 int island[100][100]; int data[100][4];
//输入岛数据的方阵
#ifdef DEBUG_BUAA_122 freopen("/Users/bwiunbuaa/tmp/oj/buaa_122.in", "r", stdin);
return 0; }
2.【问题描述】
小岛面积 111111 110001 100010 110111 010100 111111
上面矩阵的中的 1 代表海岸线,0 代表小岛。求小岛面积(即被 1 中包围的 0 的个数)。注 意:仅求这样的 0,该 0 所在行中被两个 1 包围,该 0 所在列中被两个 1 包围。
输入:
第一行输入一个整数 N,表示输入方阵的维数 输入一个 N 维方阵
输出:
小岛面积
样例输入:
6 111111 110001 100010 110111 010100 111111
样例输出:
8
解题思路:
理解题目本身意思,可以发现对于矩阵中的 0 是否属于内陆,取决于该 0 所处的 行和列上,如果 0 满足,如下条件则 O 为内陆,否则不是。
输出:
关键字 if,w来自百度文库ile,for 对应的位置,按照关键字出现的顺序依次输出。输出格式为:关键 字,后跟冒号,然后是出现的位置。扫描到关键字就输出,每个输出占一行。
样例输入:
#include <stdio.h> int main() {int i = 0; if(i == 0) printf("YES"); return 0;} #include <stdio.h> int main() {int ifwhile = 0; int forif = 1;char if_for_while = 'a';char *str = "while"; while(ifwhile == 0) {ifwhile = 1;forif = 0;} if(forif == 0) {if_for_while = 'b';} if(ifwhile == 1) {if_for_while = 'c';} return 0;}
北京航空航天大学计算机系考研 复试 06-12 上机真题及答案
复试上机指导 1. 本真题只是提供辅助作用,关键还是研友平时动手能力练习和
对算法、数据结构的理解,参加过 ACM 的有一定优势 没参加 过的也不用紧张,北航的上机题相对于清华和北大,难度上小 很多,多练习的话,问题不大; 2. 上机时,可以快速阅读所有的题目,按照从易到难的次序做题, 保证会的一定得分; 3. 熟悉编程环境,熟悉 c 的常用函数; 4. 为了快速测试代码的正确性,尤其是矩阵输入的情况,可以利 用标准输入重定向, freopen(“c:\\input.txt”,”r”,stdin);加快测试过 程; 5. 注意程序边界条件的测试;
解题思路:
根据题目,任何可以进行分解的整数,必然满足(m+n)(n-m+1)/2 的形式,可以暴力尝 试所有 m 和 n 组合,如果满足则输出,否则输出 None。
代码:
#include <stdio.h> #include <stdlib.h>
int main(){ int n; while(scanf("%d",&n) != EOF){ int begin,end; int found = 0; for(begin=1;begin<n;begin++){ for(end=begin+1;end<n;end++){ // 连续整数求和 int sum = (begin + end)*(end-begin+1)/2; if(sum == n){ // 可以分解,输出结果 found = 1; int i; for(i=begin;i<=end;i++){ printf("%d ",i); } printf("\n"); } } } if(found == 0){ printf("NONE\n"); } }
0 所在的行,0 的左边和右边必须有 1 0 所在的列,0 的上面和下面必须有 1 所以,解题思路就是,遍历所有的行和列,记录改行或列,最左面和最右面(或 者最上面和最下面)1 的坐标,然后当遇到 0,判断是否处于记录的值的中间, 是,则是内陆,面积加 1,否则不加。 代码:
#include <stdio.h> #include <stdlib.h>
area++;
//printf("i=%d,j=%d\n",i,j); for debug } } } } printf("%d\n",area); } return 0; }
3.【问题描述】
统计关键字出现位置
输入:
一行标准 c 语言代码(字符个数小于 300),统计出该字符串中关键字的 if,while,for 所 在的位置,按照关键字出现的顺序依次输出。注意双引号内的不需要统计。 输入:一行标准 c 语言代码,字符个数小于 300
} }
for(i=0;i<N;i++){ for(j=0;j<N;j++){
if(island[i][j] == 1){ //小岛边界
if(data[i][0] == -1){ data[i][0] = j;
} if(data[j][2] == -1){
data[j][2] = i; } data[i][1] = j; data[j][3] = i; } } } int area = 0; for(i=0;i<N;i++){ for(j=0;j<N;j++){ if(island[i][j] == 0){ //小岛边界 if(i > data[j][2] && i < data[j][3] && j > data[i][0] && j < data[i][1]){
#endif /* JOBDU_H_ */ while(scanf("%d",&N) != EOF){
int i,j; //初始化 memset(data,-1,100*4*sizeof(int)); //读入数据 for(i=0;i<N;i++){
for(j=0;j<N;j++){ scanf("%d",&island[i][j]);