考研计算机复试上机
北邮计算机院和网院复试上机真题以及参考代码

北邮复试上机网研的题目第一题:查找输入数组长度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,具体描述得借助图形比较好,懒得写了,基本就是这个样子的。
北邮计算机研究生复试历年上机测试模拟试题及真题

2008年北邮计算机学院研究生入学考试(复试)上机测试模拟试题第一题:人数统计 1305 Submit: 1853 Accepted:717Time Limit: 1000MS Memory Limit: 65535KDescription今年计算机学院研究生入学复试分多个小组。
现在老师需要知道每组复试同学中男生和女生的人数。
请你编写程序分别统计出男女生的总人数。
男生和女生的人数。
请你编写程序分别统计出男女生的总人数。
Input输入的第一行是一个数t(0 < t < 10),表示有t 组测试用例。
组测试用例。
对于每组输入数据有两行,第一行是一个正整数n (1 < n < 1000),表示参加该组复试的总人数。
接下来一行有n 个整数(取值为0或1),),00代表男生,代表男生,11代表女生,整数间由一个空格隔开。
代表女生,整数间由一个空格隔开。
Output 对于每组测试用例,输出一行,由两个数组成,用一个空格隔开,分别表示男生和女生的总人数。
和女生的总人数。
Sample Input 221 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 。
华科计算机考研复试历年上机题汇总

华科历年上机题汇总(欢迎补全)代码都很多是我自己写的,不一定正确啊!错了可不负责任的,呵呵~~~仅供参考!==》10年保送生上机试题1、不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来。
#include<stdio.h>#include<stdlib.h>int main(){char s1[200],s2[100];int i,len1,len2;scanf("%s %s",s1,s2);for(i=0;i<200;i++){if(s1[i]=='\0'){len1=i;break;}}for(i=0;i<100;i++){if(s2[i]=='\0'){len2=i;break;}}for(i=len1;i<len1+len2;i++){s1[i]=s2[i-len1];}printf("%s\n",s1);system("pause");}2、输入一串数,要求建平衡二叉排序树,然后先序遍历。
3.、有4个小问,是超长整数的存储、计算、输出。
要把超长整数存在一个单向循环链表中,是每四位一个节点。
注:我是用单链表写的!感觉单循环链表没有什么用处么~~~#include<stdio.h>#include<string.h>#include<stdlib.h>#define MAXLEN 100typedef struct node{int data;struct node *next;}LNode,*LinkList;int changeString(char s[],int len){//把字符串长度变成4的整数倍;int i,temp;char ss[MAXLEN];if(len%4!=0){temp=4-len%4;//需要在前面添加的0的个数;for(i=0;i<len;i++){ss[i]=s[i];}for(i=0;i<temp;i++){s[i]='0';}for(i=temp;i<temp+len;i++){s[i]=ss[i-temp];}}return temp;}LinkList createList(char *s,int len){//创建单链表;int i,temp,add_len;LinkList L,p,start;if(len<=0){return NULL;}add_len=changeString(s,len);len+=add_len;i=0;temp=0;while(i<4&&i<len){//给头结点赋值;temp=temp*10+s[i]-'0';i++;}L=(LinkList)malloc(sizeof(LNode));//头结点;L->data=temp;L->next=NULL;start=L;temp=0;while(i<len){//继续创建单链表;if((i+1)%4==1){//需新建一个结点;p=(LinkList)malloc(sizeof(LNode));}temp=temp*10+s[i]-'0';if((i+1)%4==0||i==len-1){//一个结点结束;p->data=temp;p->next=NULL;start->next=p;//插入结点;start=p;temp=0;//重新计数;}i++;}start->next=NULL;return L;}LinkList reverse(LinkList L){//逆转单循环链表;LinkList p,q,r;if(L!=NULL){p=L->next;L->next=NULL;while(p!=NULL){q=p;p=p->next;q->next=L;L=q;//printf("**%d\n",L->data);}return L;}return NULL;}void display(LinkList L){//打印输出单链表;LinkList p;printf("%d ",L->data);p=L->next;while(p!=NULL){printf("%d ",p->data);p=p->next;}printf("\n");}LinkList add_LNumber(LinkList L1,LinkList L2){//2大数相加,单链表实现;LinkList L,p,q,head,r;int c;//进位;int temp;L=(LinkList)malloc(sizeof(LNode));head=(LinkList)malloc(sizeof(LNode));head->next=NULL;L=head;p=L1;q=L2;c=0;while(p!=NULL&&q!=NULL){r=(LinkList)malloc(sizeof(LNode));temp=p->data+q->data+c;r->data=temp%10000;//printf("***%d\n",r->data);r->next=NULL;c=temp/10000;head->next=r;head=r;p=p->next;q=q->next;}while(p!=NULL){//L1剩余部分非空;r=(LinkList)malloc(sizeof(LNode));temp=p->data+c;r->data=temp%10000;r->next=NULL;c=temp/10000;head->next=r;head=r;p=p->next;}while(q!=NULL){//L2剩余部分非空;r=(LinkList)malloc(sizeof(LNode));temp=q->data+c;r->data=temp%10000;r->next=NULL;c=temp/10000;head->next=r;head=r;q=q->next;}if(c!=0){//还有进位;r=(LinkList)malloc(sizeof(LNode));r->data=c;r->next=NULL;head->next=r;}return L->next;}int main(){char s1[MAXLEN],s2[MAXLEN];int len1,len2,add_len,i;LinkList L1,L2,L;L1=(LinkList)malloc(sizeof(LNode)); L2=(LinkList)malloc(sizeof(LNode)); printf("请输入第一个大数:\n"); scanf("%s",s1);len1=strlen(s1);L1=createList(s1,len1);printf("请输入第二个大数:\n"); scanf("%s",s2);len2=strlen(s2);L2=createList(s2,len2);L1=reverse(L1);L2=reverse(L2);//display(L1);//display(L2);L=add_LNumber(L1,L2);//display(L);L=reverse(L);display(L);}==》09年09华中科技大学复试有关题目嵌入式方向笔试是数据库和算法概论数据库考了查询语言,死锁,等等算法概论:1题:好像是螺丝和螺母问题,每个螺丝对应一个螺母,大概有100对吧,找出相应对,最后计算时空复杂度。
北航计算机复试 06-14上机真题及答案

北京航空航天大学计算机系考研复试06-14上机真题及答案复试上机指导1.本真题只是提供辅助作用,关键还是研友平时动手能力练习和对算法、数据结构的理解,参加过ACM的有一定优势没参加过的也不用紧张,北航的上机题相对于清华和北大,难度上小很多,多练习的话,问题不大;2.上机时,可以快速阅读所有的题目,按照从易到难的次序做题,保证会的一定得分;3.熟悉编程环境,熟悉c的常用函数;4.为了快速测试代码的正确性,尤其是矩阵输入的情况,可以利用标准输入重定向,freopen(“c:\\input.txt”,”r”,s tdin);加快测试过程;5.注意程序边界条件的测试;6.如果你有什么疑问,或者我们提供的材料有问题,欢迎联系我们:*****************提供北航计算机报考和选导师指导,或者到 给我们留言。
14年上机题第一题,阶乘数。
输入一个正整数,输出时,先输出这个数本身,跟着一个逗号,再输出这个数的各位数字的阶乘和,等号,阶乘和的计算结果,并判断阶乘和是否等于原数,如果相等输出Yes,否则输出No。
题目说明输入的正整数以及其各位阶乘和都不会超出int型的表示范围。
输入样例1:145输出样例1:145,1!+4!+5!=145Yes输入样例2:1400输出样例2:1400,1!+4!+0!+0!=27No第二题,五子棋。
输入一个19*19的矩阵,只包含数字0、1、2,表示两人下五子棋的棋牌状态,1、2分别表示两人的棋子,0表示空格。
要求判断当前状态下是否有人获胜(横向、竖向或者斜线方向连成5个同色棋子)。
题目说明输入样例保证每条线上至多只有连续5个同色棋子,并且保证至多只有1人获胜。
如果有人获胜,输出获胜者(1或2)加一个冒号,接着输出获胜的五连珠的第一个棋子的坐标,从上到下从左到右序号最小的为第一个,序号从1开始编号。
如果无人获胜,输出no。
样例略。
第三题,排版题。
输入若干行字符,表示某电影的演职员表,每行只有一个冒号,冒号前面是职位,冒号后面是姓名,要求把各行冒号对齐,删除多余空格后输出。
复旦大学计算机科学技术学院专业硕士复试上机考试题(2013-03-27)

复旦大学计算机科学技术学院专业硕士复试上机考试题(2013-03-27)第一篇:复旦大学计算机科学技术学院专业硕士复试上机考试题(2013-03-27)复旦大学计算机科学技术学院专业硕士复试上机考试题(2013-03-27)建议时间:120分钟。
评分方法和注意事项:1.按考场老师指示的方法和要求提交源代码文件。
按题目编号命名和上传源代码文件problem1.cpp、problem2.cpp、problem3.cpp。
提交不必要的文件、建不必要的文件夹、不必要的压缩、不按要求命名文件,而导致评测程序找不到对应文件的,将得0分。
2.第一、二题我们拟只采用黑盒测试,因此:可以不书写注释;更不必美化程序。
3.第三题我们对未通过黑盒测试的程序,将检查其程序,因此推荐写解题思路、注释,保持良好的编程风格。
解题思路以注释的形式,放在源代码文件的开始,建议采用伪代码风格。
如果您不能完成全部代码,书写正确的解题思路可能得部分分数。
4.仔细阅读题目要求,一定要确保您的输入输出严格符合要求。
如输入输出格式不严格遵循题目的要求,会导致被判断为结果错误而不得分。
没有特别说明的,输入为标准输入(键盘),输出为标准输出(屏幕)。
5.提交的源代码必须保持无编译错误,提交有编译错误的程序该题直接得-10分。
6.除题目另有要求外,程序执行时间应在1秒之内,程序中的死循环恕不等待。
7.不要编写破坏性程序,否则产生的结果对您也是破坏性的,即取消评分资格。
Problem1: 字符串匹配对于主串M和模式串P,找到P在M中出现的所有子串的第一个字符在P中的位置。
P中第一个字符所在的位置为0。
首行的数字表示有多少组字符串。
[输入及示例] 2 ababababa ababa aaa aa [输出及示例] 0 2 4 0 1(相邻位置之间用一个空格隔开)Problem2:A Famous ICPC TeamMr.B, Mr.G, Mr.M and their coach Professor S are planning their way for the ACM-ICPC World Finals.Each of the four has a square-shaped suitcase with side length Ai(1<=i<=4)respectively.They want to pack their suitcases into a large square box.The heights of the large box as well as the four suitcases are exactly the same.So they only need to consider the large box’s side length.Of course, you sho uld write a program to output the minimum side length of the large box, so that the four suitcases can be put into the box without overlapping.[Input] There are N test cases.The first line is N.Each test case contains only one line containing 4 integers Ai(1<=i<=4, 1<=Ai<=1,000,000,000)indicating the side length of each suitcase.[Output]For each test case, display a single line containing the case number and the minimum side length of the large box required.[Sample Input] 2 2 2 2 2 2 2 2 1 [Output for Sample Input] Case 1: 4 Case 2: 4 [Explanation]For the first case, all suitcases have size 2x2.So they can perfectly be packed in a 4x4 large box without wasting any space.For the second case, three suitcases have size 2x2 and the last one is 1x1.No matter how you rotate or move the suitcases, the side length of the large box must be at least 4.Problem3:A Famous Grid Mr.B has recently discovered the grid named “spiral grid”.Construct the grid like the following figure.(The grid is actually infinite.The figure is only a small part of it.) Considering traveling in it, you are free to any cell containing a composite number or 1, but traveling to any cell containing a prime number is disallowed.You can travel up, down, left or right,but not diagonally.Write a program to find the length of the shortest path between pairs of nonprime numbers, or report it's impossible.[Input]There are N test cases.The first line is N.Each test case is described by a line of input containing two nonprime integer 1 <=x, y<=10,000.[Output]For each test case, display its case number followed by the length of the shortest path or “impossible”(without quotes)in one line.[Sample Input] 3 1 4 9 32 10 12[Output for Sample Input] Case 1: 1 Case 2: 7Case 3: impossible第二篇:北京大学硕士计算机上机题上机题(占总成绩的30%)1、编写一个C++程序,计算并输出两个同符号的整数m与n的整商(其中| m | ≤ 10,1000| n | ≤ 10)。
浙大计算机学院考研复试上机试题及参考答案

浙江大学计算机复试上机2005-2007(由林子整理)2005年浙江大学计算机学院考研复试上机试题及参考答案(1/5)第一题:A+B(10分) [结题]题目要求:读入两个小于100的正整数A和B,计算A+B。
需要注意的是:A和B的每一位数字由对应的英文单词给出。
输入格式:测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔。
当A和B同时为0时输入结束,相应的结果不要输出。
输出格式:对每个测试用例输出1行,即A+B的值。
输入样例:one + two =three four + five six =zero seven + eight nine =zero + zero =输出样例:39096#include <>#include <>#include <>#include <>int main(void){const char data[12][6] = {"zero", "one","two", "three", "four","five", "six", "seven", "eight", "nine", "+", "="};unsigned a, b; /* 转换后的表达式参数,如a+b(123+456) */unsigned i, j, k; /* 临时变量,作为下标*/ char str[100]; /* 输入字符串,足够大容量*/ char temp[6]; /* 临时字符串,用于检索数字,如"one"->'1' */char result[30]; /* 转换后的表达式参数,如"123+456=" */a =b = i = j = k = 0; /* 初始化变量 */memset(str, 0, sizeof(str));memset(temp, 0, sizeof(temp));memset(result, 0, sizeof(result));gets(str); /* 获取输入字符串,不能使用scanf,因为有空格 */for(i=0, k=0; i<strlen(str); ++i){for(j=0;!isspace(str[i])&&i<strlen(str);++i,++j) /* 提取一个单词 */temp[j] = str[i];temp[j] = 0; /* 字符串结束标记 */for(j=0; j<12; j++) /* 把这个单词转换为数字 */if(strcmp(temp, data[j]) == 0){if( j <= 9 ) result[k++] = j + '0';if( j == 10 ) result[k++] = '+';if( j == 11 ) result[k++] = '=';break; /* 找到匹配数字就不必再搜索了 */ }result[k] = 0; /* 字符串结束标记,result形式"123+456=" */sscanf(result,"%d+%d=",&a,&b); /* 用sscanf来获得a,b的值 */if( a==0 && b==0 ) break; /* A,B同时为零则退出程序 */else printf("%d\n", a + b); /* 打印输出 A + B 的数值 */}while(1);return 0;}2005年浙江大学计算机学院考研复试上机试题及参考答案(2/5)第二题:谁是开门关门的人?(10分)题目要求:每天第一个到机房的人要把门打开,最后一个离开的人要把门关好。
贵州大学计算机学院研究生复试上机考试题目

注意事项:1、请勿使用书籍、U盘、光盘等任何资料。
2、考试时间:2小时。
3、文件一定要保存在E盘,其余盘重新启动后会还原。
程序设计,用C语言完成(75分)1、从键盘上输入一个字符串,将该串分为数字、字母、其他字符三个部分输出,例如:输入:Thdad29#@12aH;77输出:ThdadaH291277#@;2、对任意正整数N,求XN,,要求运算的时间复杂度为O(logN)。
例如X30,有X30=X15*X15,X15=X7*X7*X,X7=X3*X3*X,X3=X*X*X,共7次乘法运算完毕。
3、有N个小朋友围成一圈玩击鼓传花游戏,将小朋友编号为1~N,从1号开始传花,每次传3个,拿到花的小朋友表演节目后退出,任给N,问最后一个表演的小朋友编号是多少。
例如:5个小朋友,从1号开始传花,第一个表演的是3号,第二个表演的是1号,第三个表演的是5号,第四个表演的是2号,最后一个表演的是4号。
数据库(25分)4、设某物流系统有如下表:仓库表(仓库号,仓库名,地点)货物表(货物号,货物名,单价)出入库表(仓库号,货物号,出入库数量,时间)要求:(1)使用SQL语句建立以上三张表(需要主键、外键)(2)使用SQL语句查询:单价高于100元的货物名、出入库总次数、总数量注:不需要在电脑上建表,仅需要写出SQL语句,保存到文本文件中即可2016年的:程序设计,可使用C、C++、Java或C#完成(75分)1、从键盘输入一个字符串(可能含数字、字母、其他可见字符),输出出现频率最高的英文字母及次数,忽略字母的大小写(如大写A 和小写a均视为a)。
例如:输入:There are 10,000 soldiers in the town.输出:e 54、某学院管理系统有如下表:课程表(课程号,课程名,任课老师姓名,学时数)学生表(学号,学生姓名,性别,年级)选课表(课程号,学号,成绩)要求:(1)使用SQL语句建立以上三张表(需要主键、外键)(2)建立视图:对于每门课程,列出课程号,课程名以及不及格学生人数注:不需要在电脑上建表,仅需要写出SQL语句,保存到文本文件中即可1.视图的作用是什么?2.关系数据库的作用?3.数据库设计的基本步骤?4.数据库安全性的常用方法和常用技术?贵大数据库笔试:选择题都比较简单,知识面比较杂,一般的复习题的知识能复习到就行。
计算机考研复试不考机试的高校汇总

<初试折算成绩> = [60+(考生初试原始分-原报学科大类分数线)´40%]´55%;(【注】初试折算成绩最高为55分,超过55分者取55分;)
<复试折算成绩> =<面试成绩>´20%+<英语听力成绩>´5%+<专业课笔试成绩>´20%
2.综合面试不及格者不予录取。
14.中国人民大学
信息学院
学硕
初试成绩权重为70%,复试成绩权重为30%。
专业课测试+外语笔试+外语口语听力测试+综合面试
总成绩=初试/5*0.7+复试/3.5*0.3
每部分需要保证至少拿到60%以上的分数
专业课(100分)测试分为C语言笔试(80分,2道程序设计题)和机试(20分,2道机试题)
外语笔试(50分):这部分由2块组成。一块是英译汉,基本是一些学术论文的摘要。另一部分写作相对固定,就是让你用英语写一篇研究生规划,可以提前写好在考场上默写即可。
自动化学院
面试+笔试(科目非常多)+翻译
总成绩的计算公式为:总成绩=初试成绩*0.55/5+复试成绩*0.45
(1)学术型硕士研究生:
复试成绩=外语水平测试成绩*0.3+综合素质面试成绩*0.4+专业知识笔试成绩*0.3
(2)专业型硕士研究生:
复试成绩=外语水平测试成绩*0.2+综合素质面试成绩*0.2+专业知识笔试成绩*0.3+实验技能考核成绩*0.3
前沿交叉学科研究院
18年只有面试、无机试。其中面试包括5分钟左右的英语口语测试和15分钟左右的中文面试。