北邮计算机考研复试笔试真题(可编辑修改word版)
北邮计算机院和网院复试上机真题以及参考代码

北邮复试上机网研的题目第一题:查找输入数组长度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.输出设备答案:D2.计算机中用来临时存储数据的设备是:A.硬盘B.内存C.光驱D.键盘答案:B3.在计算机中,二进制用来表示数据的基本单位是:A.字节B.位C.块D.字答案:B4.以下哪项操作不属于计算机的输入操作:A.读取文档B.接收鼠标点击C.播放音乐D.扫描二维码答案:C5.在Windows操作系统中,Ctrl+C的快捷键组合用于:A.复制选中的内容B.剪切选中的内容C.粘贴剪贴板中的内容D.关闭当前窗口答案:A二、填空题1.计算机网络是由_________和_________组成的。
答案:计算机和通信设备2.在计算机领域中,CPU的英文全称是_________。
答案:Central Processing Unit3.硬盘是计算机的_________设备。
答案:存储4.光驱可以用来读取和写入_________。
答案:光盘5.在Windows操作系统中,Ctrl+V的快捷键组合用于_________。
答案:粘贴剪贴板中的内容三、简答题1.请解释什么是操作系统?答案:操作系统是计算机系统的核心软件,它负责管理和控制计算机的硬件和软件资源,提供用户和应用程序的接口,协调和调度各种任务的执行,同时还负责内存管理、文件管理、设备管理等功能。
2.什么是二进制?答案:二进制是一种计数系统,它的基数为2,只包含两个数字0和1。
在计算机领域中,二进制被用来表示和存储数据,每个二进制位称为一比特(bit),8个二进制位组成一个字节(byte),所有的数据都可以转换成二进制进行处理。
3.请简述计算机网络的作用。
答案:计算机网络可以将多台计算机互联起来,使它们可以相互通信和共享资源。
计算机网络的作用包括但不限于以下几个方面:- 提供高效的通信方式,可以迅速传输数据和信息。
- 实现资源共享,多个计算机可以共同使用打印机、存储设备等资源。
北邮计算机2012复试机试真题

A 计1——二进制数Accept:245 Submit:618Time Limit:1000MS Memory Limit:65536KBDescription大家都知道,数据在计算机里中存储是以二进制的形式存储的。
有一天,小明学了C语言之后,他想知道一个类型为unsigned int 类型的数字,存储在计算机中的二进制串是什么样子的。
你能帮帮小明吗?并且,小明不想要二进制串中前面的没有意义的0串,即要去掉前导0。
Input第一行,一个数字T(T<=1000),表示下面要求的数字的个数。
接下来有T行,每行有一个数字n(0<=n<=10^8),表示要求的二进制串。
Output输出共T行。
每行输出求得的二进制串。
Sample Input523535262456275989835Sample Output101111000010111101001000000110110111101001111110001101010001011B 计2——矩阵幂Accept:136 Submit:589Time Limit:1000MS Memory Limit:65536KBDescription给你一个n*n的矩阵,,求其矩阵的k次幂,即P kInput第一行,一个整数T(0<T<=10),表示要求矩阵的个数。
接下来有T组数据,每组数据格式如下:第一行:两个数据n(2<=n<=10)、k(1<=k<=5),两个数字之间用一个空格隔开,其中n表示状况空间的总数,k表示待求的转移概率矩阵的步数。
接下来有n行n列个正整数,其中,第i行第j列表示p ij,(0<=p ij<=10)。
另外,数据保证最后结果不会超过10^8。
Output输出为T组数据。
每组数据为已知矩阵的k次幂,格式为:n行n列个正整数,每行数之间用空格隔开,注意,每行最后一个数后面不应该有多余的空格。
北邮计算机研究生入学考试(复试)历年上机测试模拟试题及真题

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. 请简述计算机系统结构并指出其中的关键组成部分。
计算机系统结构由四个主要组成部分构成:中央处理器(CPU)、存储器、输入设备和输出设备。
其中,中央处理器是计算机的核心,负责进行数据的计算和操作;存储器用于存储数据和程序;输入设备用于将外部信息输入计算机系统;输出设备则是将计算机处理的结果显示给用户。
2. 请说说主流操作系统的分类及其特点。
主流操作系统主要分为四类:分时操作系统、实时操作系统、网络操作系统和分布式操作系统。
分时操作系统以时间片轮转的方式实现多个用户同时使用计算机系统,具有良好的用户体验和资源管理能力;实时操作系统主要用于对时间要求严格的任务处理,能够满足实时性要求;网络操作系统则是针对网络环境下的计算机系统,强调对网络资源的管理和协同工作;分布式操作系统则是将多台计算机组成一个整体共享资源的系统,实现了资源共享和负载均衡的优点。
二、数据结构与算法1. 请简述常见的排序算法并给出它们的时间复杂度。
常见的排序算法有冒泡排序、选择排序、插入排序、快速排序和归并排序。
冒泡排序的时间复杂度为O(n^2);选择排序的时间复杂度也为O(n^2);插入排序的时间复杂度为O(n^2);快速排序的时间复杂度为O(nlogn);归并排序的时间复杂度也为O(nlogn)。
2. 请解释什么是动态规划算法,并给出一个应用实例。
动态规划算法是指通过对问题进行划分和确定状态转移方程,将问题分解为若干子问题的求解得到最优解的方法。
一个经典的动态规划应用实例是求解斐波那契数列。
斐波那契数列定义为:F(0) = 0,F(1) = 1,F(n) = F(n-1) + F(n-2)。
我们可以使用动态规划算法以时间复杂度O(n)求解斐波那契数列中的第n项。
计算机考研复试题目及答案解析

计算机考研复试题目及答案解析前言:计算机考研的复试是考生进入研究生阶段的重要一步,复试中将进行笔试和面试环节。
笔试是考察考生的基础知识和专业素养,而面试则更加注重考生的综合能力和研究潜力。
本文将为大家介绍一些常见的计算机考研复试题目,并给出答案解析,以帮助考生更好地应对复试。
一、操作系统1. 什么是进程和线程?它们有什么区别?答案解析:进程是指正在运行的程序的实例,具有独立的内存空间和系统资源。
线程是进程中的一个执行单元,一个进程可以包含多个线程。
进程是资源分配和调度的基本单位,而线程是CPU调度和执行的基本单位。
2. 解释虚拟内存的概念。
答案解析:虚拟内存是指利用磁盘空间来扩展可寻址的内存空间,使得进程可以拥有比物理内存更大的地址空间。
虚拟内存的大小受到物理内存和硬盘空间的限制。
二、数据结构与算法1. 请解释栈和队列的概念,并分别给出它们的应用场景。
答案解析:栈是一种先进后出(FILO)的数据结构,队列是一种先进先出(FIFO)的数据结构。
栈常用于递归、表达式求值和括号匹配等场景,而队列常用于模拟队列等实际应用场景。
2. 解释二叉搜索树(BST)的特点,并给出其查找和插入操作的时间复杂度。
答案解析:二叉搜索树是一种有序的二叉树,其中左子树的节点值都小于根节点,右子树的节点值都大于根节点。
其查找操作的时间复杂度为O(log n),插入操作的时间复杂度也是O(log n),其中n表示树的节点数。
三、数据库1. 什么是关系数据库?举例说明其常见的特点和优势。
答案解析:关系数据库是基于关系模型的数据库,采用表的形式存储数据。
其常见特点包括数据的结构化、数据的共享性、数据的完整性和数据的独立性。
关系数据库具有良好的数据一致性和可扩展性。
2. 解释事务的概念,并说明ACID特性的含义。
答案解析:事务是指数据库操作的一个执行单元,要么全部执行成功,要么全部回滚。
ACID是指原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),是事务应满足的特性。
南亭邮电大学计算杺学院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. 数据结构与算法1.1 简述栈和队列的定义及其主要特点。
栈是一种数据结构,遵循后进先出(LIFO)的原则。
其主要特点是只能在栈顶进行插入和删除操作。
栈的插入操作称为入栈(push),删除操作称为出栈(pop)。
例如,在程序执行中,函数调用和递归调用的栈帧可以通过栈的方式实现。
队列也是一种数据结构,遵循先进先出(FIFO)的原则。
它的主要特点是只能在队尾进行插入操作,在队头进行删除操作。
队列的插入操作称为入队(enqueue),删除操作称为出队(dequeue)。
例如,在操作系统的进程调度中,可以使用队列来实现进程的排队执行。
1.2 常见的排序算法有哪些?简单描述它们的实现原理。
常见的排序算法有冒泡排序、选择排序、插入排序、快速排序和归并排序。
冒泡排序是通过相邻元素的比较和交换来实现的,每次循环找出当前未排序部分的最大值,并将其放置在已排序部分的末尾。
选择排序通过在未排序部分选择最小(或最大)的元素,将其与未排序部分的第一个元素交换位置,实现逐渐将未排序部分的最小(或最大)元素放置到已排序部分的末尾。
插入排序通过将未排序部分的元素逐个插入到已排序部分的适当位置来实现排序。
可以将未排序部分的元素与已排序部分的元素逐个比较并移动,直到找到合适的位置。
快速排序通过选择一个基准元素,将数组分成两个子数组,其中一个子数组的所有元素都小于基准元素,另一个子数组的所有元素都大于基准元素。
然后递归地对两个子数组进行快速排序。
归并排序是将两个有序子数组合并成一个有序数组的过程。
通过不断地将数组进行二分,直到只剩下一个元素。
然后将两个只有一个元素的子数组进行合并,直到最终完成整个数组的排序。
1.3 列举几种常用的查找算法,并简述它们的实现原理。
常用的查找算法有线性查找、二分查找、哈希查找和二叉查找树。
线性查找是从列表的开头开始,逐个比较每个元素,直到找到目标元素或遍历完整个列表。
二分查找是在有序数组中通过比较目标值和数组中间元素的大小来实现的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北邮计算机考研复试笔试真题
软件工程
选择
1、需求规格说明书的作用不包括(C)
A、软件验收的依据
B、用户与开发人员对软件要做什么的共同理解
C、软件可行性研究的依据D 软设计的依据
2、为了提高模块的独立性,模块之间最好是(D)
A、控制耦合
B、公共耦合
C、内容耦合
D、数据耦合
3、在基于数据库的信息管理系统中,数据库概念模型的设计对应于系统开发的(C)
A、需求分析
B、增量设计
C、评测设计
D、程序设计
4、用白盒测试法设计测试用例的方法包括(C)
A 错误推测
B 因果图
C 基本路径测试
D 边界值分析
5、在UML 状态图中,与转椅上的事件联系在一起的瞬时操作是
A 过程
B 活动
C 动作
D 加工
判断
1、(错)UML 中顺序图和协作图不仅能用来表示对象之间的动态行为,也能表示对象的状态变化
2、(错)单元测试中只能使用白盒测试方法
3、(错)软件能力成熟度模型是衡量软件项目管理水平的标准
4、(错)领域模型不是面向对象分析和设计的一个组成部分
5、(错)在顺序图中,一个对象A 发送了一条创建另一个对象B 的消息,那么表明对象B 具备了处理该条消息的职责
填空题
1、软件的一组模块都访问同一全局变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为(外部)耦合
2、程序注释分为序言性注释和(功能性)注释
3、为了适应运行环境变化而修改软件,称之为(适应性)维护
4、ISO 质量模型中将质量特性分成三个层次:(质量特性)、(质量子特性)和(度量)
5、黑盒测试的测试用例设计方法包括(等价类划分方法)
数据库
判断
1、(错)DBMS 利用事务日志文件保存所有数据库事务的更新操作
2、(对)一般来说,一个数据库的外模式可以有多个
3、(错)若需求分解保持函数依赖,那么模式分解一定能达到BCNF
4、(对)在数据库的安全性控制中,授权控制灵活
选择
1、数据创建完毕后,数据字典中存储的是(D)
A、查询语句
B、查询结果
C、试图定义
D、所引用的基本表的定义
2、已知关系模式R(A,B,C,D,E,G),在其上建立的函数F={D->C,C- >B,B->E,E->A,G->D},则关系模式R 的候选键是(D)
A、AD
B、E
C、D
D、G
3、在SQL 中,与关系代数的运算对应的是()子句
A、SELECT
B、WHERE
C、GROUP BY
D、FROM
4、数据库的概念模型的设计独立于(A)
A、具体的DBMS
B、信息世界
C、ER 图
D、
5、关系数据库的规范化理论是为了数据库的(A)问题而引入的。
A、数据冗余,数据的不一致、插入和删除异常
B、提高查询效率
C、减少数据操作的复杂性
D、增强数据的安全性和完整性
6、下列说法正确的是(B)
A、数据库技术主要解决数据量大的问题
B、对于违反实体完整性约束规则的操作,DBMS 一般拒绝执行
C、数据库中的封锁机制是数据库安全性的主要方法
D、索引可以提高查询效率,因此在数据库设计时,应尽量多建索引
8、索引文件记录的顺序和数量文件记录一致的索引是(A)
A、聚簇索引
B、复合索引
C、唯一性索引
D、次级索引
9、在SQL 中,基本表的删除可以用(B)
A、DELETE 命令
B、DROP 命令
C、ALTER 命令
D、INSERT 命令。