北京航空航天大学计算机系考研
复试06-14上机真题及答案
复试上机指导
1.本真题只是提供辅助作用,关键还是研友平时动手能力练习和对
算法、数据结构的理解,参加过ACM的有一定优势没参加过
的也不用紧张,北航的上机题相对于清华和北大,难度上小很
多,多练习的话,问题不大;
2.上机时,可以快速阅读所有的题目,按照从易到难的次序做题,
保证会的一定得分;
3.熟悉编程环境,熟悉c的常用函数;
4.为了快速测试代码的正确性,尤其是矩阵输入的情况,可以利用
标准输入重定向,
freopen(“c:\\input.txt”,”r”,s tdin);加快测试过
程;
5.注意程序边界条件的测试;
6.如果你有什么疑问,或者我们提供的材料有问题,欢迎联系我们:
bwiunbuaa@https://www.doczj.com/doc/d511190119.html,提供北航计算机报考和选导师指导,或者
到https://www.doczj.com/doc/d511190119.html, 给我们留言。
14年上机题
第一题,阶乘数。输入一个正整数,输出时,先输出这个数本身,跟着一个逗号,再输出这个数的各位数字的阶乘和,等号,阶乘和的计算结果,并判断阶乘和是否等于原数,如果相等输出Yes,否则输出No。题目说明输入的正整数以及其各位阶乘和都不会超
出int型的表示范围。
输入样例1:
145
输出样例1:
145,1!+4!+5!=145
Yes
输入样例2:
1400
输出样例2:
1400,1!+4!+0!+0!=27
No
第二题,五子棋。输入一个19*19的矩阵,只包含数字0、1、2,表示两人下五子棋的棋牌状态,1、2分别表示两人的棋子,0表示空格。要求判断当前状态下是否有人获胜(横向、竖向或者斜线方向连成5个同色棋子)。题目说明输入样例保证每条线上至多只有连续5个同色棋子,并且保证至多只有1人获胜。如果有人获胜,输出获胜者(1或2)加一个冒号,接着输出获胜的五连珠的第一个棋子的坐标,从上到下从左到右序号最小的为第一个,序号从1开始编号。如果无人获胜,输出no。
样例略。
第三题,排版题。输入若干行字符,表示某电影的演职员表,每行只有一个冒号,冒号前面是职位,冒号后面是姓名,要求把各行
冒号对齐,删除多余空格后输出。先输入一个数字,表示排版要求的冒号位置,该位置号保证比各行冒号前的最大字符数还要大。再输入若干行字符,最多50行,每行最多100个字符,除空格、制表符和回车之外都是有效字符,要求每行的冒号处于格式要求的位置,冒号两边与有效单词之间各有一个空格,冒号前面的单词之间只有一个空格(删除多余的空格和制表符),在冒号左边右对齐,前面全由空格填充,冒号后面的单词之间也只有一个空格,在冒号右边左对齐,最后一个单词后不加空格直接换行。
13年上机题
第一题,给一个真分数的分子分母,输出约分后的分子分母,送分题,25分;第二题,简单版八皇后,15分;第三题,给出一个标准输入的正数(开头末尾没有多余的0),输出其科学计数法表示结果。比如:输入
0.000002,输出2e-6;输入123.456,输出
1.23456e2;输入123456,输出1.23456e2
12年上机题
1.【问题描述】
某些整数能分解成若干个连续整数的和的形式,例如
15 = 1 + 2+3+4+5
15 = 4 + 5 + 6
15 = 7 + 8
某些整数不能分解为连续整数的和,例如:16
输入:一个整数N(N <= 10000)
输出:整数N对应的所有分解组合,按照每个分解中的最小整数从小到大输出,每个分解占一行,每个数字之间有一个空格(每行最后保留一个空格);如果没有任何分解组合,则输出NONE。
根据题目,任何可以进行分解的整数,必然满足(m+n)(n-m+1)/2的形式,可以暴力尝试所有m和n组合,如果满足则输出,否则输出None。
#include
#include
int main(){
int n;
while(scanf("%d",&n) != EOF){
int begin,end;
int found = 0;
for(begin=1;begin for(end=begin+1;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"); } } return 0; } 2.【问题描述】 小岛面积 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 1 1 1 1 上面矩阵的中的1代表海岸线,0代表小岛。求小岛面积(即被1中包围的0的个数)。注意:仅求这样的0,该0所在行中被两个1包围,该0所在列中被两个1包围。 输入: 第一行输入一个整数N,表示输入方阵的维数 输入一个N维方阵 输出: 小岛面积 样例输入: 6 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 1 1 1 1 样例输出: 8 理解题目本身意思,可以发现对于矩阵中的0是否属于内陆,取决于该0所处的行和列上,如果0满足,如下条件则O为内陆,否则不是。 0所在的行,0的左边和右边必须有1 0所在的列,0的上面和下面必须有1 所以,解题思路就是,遍历所有的行和列,记录改行或列,最左面和最右面(或者最上面和最下面)1的坐标,然后当遇到0,判断是否处于记录的值的中间,是,则是内陆,面积加1,否则不加。 代码: #include #include #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); #endif/* JOBDU_H_ */ while(scanf("%d",&N) != EOF){ int i,j; //初始化 memset(data,-1,100*4*sizeof(int)); //读入数据 for(i=0;i for(j=0;j scanf("%d",&island[i][j]); } } for(i=0;i for(j=0;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 for(j=0;j if(island[i][j] == 0){ //小岛边界 if(i > data[j][2] && i < data[j][3] && j > data[i][0] && j < data[i][1]){ 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 输出: 关键字if,while,for对应的位置,按照关键字出现的顺序依次输出。输出格式为:关键字,后跟冒号,然后是出现的位置。扫描到关键字就输出,每个输出占一行。 样例输入: #include = '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;} 样例输出: if:43 while:88 if:133 if:170 首先把输入字符串切分为一个个的单词,然后对每个单词进行匹配。注意c语言中的strtok函数,不能够返回位置(当分隔符连续时,比如+=,计算出前导的分割符有几个),所以不能满足本题的要求,必须自己写获取单词的函数(反正也不复杂啦)。因为考虑到引号的问题,我们的解决方案是首先对输入字符串进行预处理,将“”内的每个字符都替换为#,然后再进行单词分割(切词),最后进行匹配。具体步骤: 输入源码字符串预处理,将””内的每个字符替换为# 一次获取源码中的单词,看是否为查找的关键词,如果是则输出 #include #include #include #define DEBUG_BUAA_123 #define MAX_WORD_LEN 128 #define MAX_LEN 300 #define KW_NUM 3 /** * 将一段源代码中间的,位于双引号“”的以#代替 */ void replaceQuota(char buf[]){ int i; int len = strlen(buf); int quotaL = 0,quotaR = 0; for(i=0;i if(buf[i] == '"'){ if(quotaL == 0){ //左引号 quotaL = 1; }else{ //右引号 quotaL = quotaR = 0; } } else{ if(quotaL == 1){ //该字符属于引号之间的,替换为# buf[i] = '#'; } } } } // 判断字符是否为分隔符 int isdelim(char ch){ switch(ch){ case' ': case'=': case',': case';': case'<': case'>': case'(': case')': case'{': case'}':return 1; default:return 0; } /** * 从input数组下标pos处开始一个单词,返回的单词放在word数组中 * 返回下次查找开始的位置 */ int getWord(char input[],int pos,char word[]){ int len = strlen(input); int i; int isbegin = 0; int wpos = 0; for(i=pos;i if(isdelim(input[i])){ if(isbegin == 0){ //略过该分隔符 continue; } else{ //单词获取结束 break; } } else{ isbegin = 1; word[wpos++] = input[i]; } } word[wpos]='\0'; //结束标志,勿忘,切记 return (i>=len) ? -1:i; //如果到文件结尾了,返回-1 } int main(){ char input[300]; char word[MAX_WORD_LEN]; #ifdef DEBUG_BUAA_123 freopen("/Users/bwiunbuaa/tmp/oj/buaa_123.in", "r", stdin); #endif/* JOBDU_H_ */ char delim[] = " ,();\",+-*/=<>?:"; //单词分隔符 while(gets(input) != NULL){ //首先对input进行预处理,将引号中间的字符都转化为# replaceQuota(input); int beg_pos = 0; do { beg_pos = getWord(input,beg_pos,word); int wlen = strlen(word); //判断是否为指定的关键字 if(strcmp("if",word) == 0){ printf("if:%d\n",beg_pos-wlen+1);//位置以1开始,而不是0,所以要加1 } else if(strcmp("while",word) == 0){ printf("while:%d\n",beg_pos-wlen+1); } else if(strcmp("for",word) == 0){ printf("for:%d\n",beg_pos-wlen+1); } }while(beg_pos >= 0); } return 0; } 11年上机题 1. 【问题描述】 孪生数定义:如果 A 的约数(因数,包含1,但不包含A本身)之和等于 B , B 的约数(因数)之和等于 A , A 和 B 称为孪生数(A和B不相等)。试找出正整数 M 和 N 之间的孪生数。 输入: 从控制台输入两个正整数M和N(1<=M 输出: 在标准输出上输出符合题目描述的M和N之间的全部孪生数对(包括M和N)。每行输出一对孪生数,用一个空格隔开,小的先输出;各行孪生数按照第一个数从小到大的顺序输出,一对孪生数只输出一次。如果没有符合要求的孪生数对,则输出字符串“NONE”。 输入样例 20 300 200 250 输出样例 220 284 NONE 样例说明 样例1输入的区间为[20,300],其间有一对孪生数对,即:220(1+2+4+5+10+11+20+22+44+55+110=284)和284(1+2+4+71+142=220)。样例2输入的区间是[200,250],其间没有孪生数对,所以输出字符串:NONE。 评分标准 该题要求输出区间中的所有孪生数对,共有5个测试点,提交程序文件名为example1.c或example1.cpp。 这题目很简单,比较每对数的约数和,看是否满足条件,如果满足则输出。 #include #include //计算x约数的和 int yinzisum(int x) { int i=1,sum=0; if(x == 1) return 0; while(i { if(x%i==0) sum=sum+i; i++; } return sum; } int main(){ int x,y,flag=0,i,j; scanf("%d%d",&x,&y); int min,max; if(x > y){ max=x; min=y; }else{ max=y; min=x; } int* array=(int*)malloc(sizeof(int)*(max-min+1)); for(i=0;i array[i]=yinzisum(min+i); for(i=0;i for(j=i+1;j if(array[i]==j+min && array[j]==i+min) { printf("%d %d\n",i+min,j+min); flag=1; } if(flag==0) printf("NONE\n"); return 1; } 2. 【问题描述】 先输入两个矩阵A和B,然后输入替换位置(左上角),编写程序将矩阵A中从替换位置开始的子矩阵(与B同样大小)替换为B,并输出替换后的矩阵。 【输入形式】 从控制台先输入矩阵A的行数和列数(行数和列数均大于等于1,小于等于20),然后在新的行上输入矩阵A的各行数字(以一个空格分隔的整数)。再以同样的方式输入矩阵B。最后输入替换位置(用一个空格分隔的两个整数表示,行数和列数都从1开始计数,因此两个整数都大于等于1)。若替换位置超出了矩阵A的行数或列数,则原样输出矩阵A。 【输出形式】 在标准输出上分行输出替换后的矩阵,每行中各数字之间以一个空格分隔。 【输入样例1】 5 6 10 2 34 -1 800 90 2 76 56 -200 2 3 1 35 0 0 98 8 3000 2000 100 -1 1 2 0 8 7 85 963 496 8 2 3 9 9 9 9 9 9 3 3 【输出样例1】 10 2 34 -1 800 90 2 76 56 -200 2 3 1 35 0 9 9 9 3000 2000 100 9 9 9 0 8 7 85 963 496 8 【样例1说明】 输入的矩阵A为5行6列,矩阵B是2行3列,替换位置为第3行的第3列,即:将A中第3行第3列开始的、行数为2列数为3的子矩阵替换为B。 【输入样例2】 3 4 10 2 34 -1 2 76 56 -200 35 0 0 98 2 3 9 9 9 9 9 9 2 3 【输出样例2】 10 2 34 -1 2 76 9 9 35 0 9 9 【样例2说明】 输入的矩阵A为3行4列,矩阵B是2行3列,替换位置为第2行的第3列,即:将A中第2行第3列开始的、行数为2列数为3的子矩阵替换为B。但该子矩阵超出了A的范围,所以只实现了部分替换。 【评分标准】 该题要求输出替换后的矩阵,共有5个测试点,提交程序文件名为example2.c或example2.cpp。 很简单,略。 #include #include void main () { int x0,y0,i,j,x1,y1,x2,y2; printf("输入矩阵行列数[行,列]:"); scanf("%d%d",&x0,&y0); int** array0=(int**)malloc(sizeof(int*)*x0); for(i=0;i array0[i]=(int*)malloc(sizeof(int)*y0); for(i=0;i for(j=0;j scanf("%d",&array0[i][j]); printf("输入矩阵行列数[行,列]:"); scanf("%d%d",&x1,&y1); int** array1=(int**)malloc(sizeof(int*)*x1); for(i=0;i array1[i]=(int*)malloc(sizeof(int)*y1); for(i=0;i for(j=0;j scanf("%d",&array1[i][j]); printf("输入替换坐标[行,列]:"); scanf("%d%d",&x2,&y2); for(i=0;i for(j=0;j array0[i+x2-1][j+y2-1]=array1[i][j]; for(i=0;i { for(j=0;j printf("%d ",array0[i][j]); putchar('\n'); } } 3. 【问题描述】 从键盘输入包含扩展符'-'的字符串,将其扩展为等价的完整字符,例如将a-d扩展为abcd, 并输出扩展后的字符串。 要求:只处理[a-z]、[A-Z]、[0-9]范围内的字符扩展,即只有当扩展符前后的字符同时是小写字母、大写字母或数字时才进行扩展,其它情况不进行扩展,原样输出。例如:a-R、D-e、0-b、4-B等字符串都不进行扩展。 【输入形式】 从键盘输入包含扩展符的字符串 【输出形式】 输出扩展后的字符串 【输入样例1】 ADEa-g-m02 【输出样例1】 ADEabcdefghijklm02 【输入样例2】 cdeT-bcd 【输出样例2】 cdeT-bcd 【样例说明】 将样例1的输入ADEa-g-m02扩展为:ADEabcdefghijklm02;样例2的输入cdeT-bcd中,扩展符前的字符为大写字母,扩展符后的字符为小写字母,不在同一范围内,所以不进行扩展。 【评分标准】 结果完全正确得15分,共5个测试点,每个测试点3分,提交程序文件expand.c或expand.cpp。 很简单,略。 #include #include int getindex(char ch) { int index=-1; if(ch>='a' && ch<='z') index=0; else if(ch>='0' && ch<='9') index=1; else if(ch>='A' && ch<='Z') index=2; return index; } int main() { char str[300],ch; ch=getchar(); int i=0,j; while(ch!='\n') { str[i]=ch; ch=getchar(); i++; } str[i]='\0'; for(i=0;str[i]!='\0';i++) if(str[i]=='-') { if(getindex(str[i-1])==getindex(str[i+1]) && getindex(str[i-1])!=-1) { ch=str[i-1]+1; while(ch { putchar(ch); ch++; } } } else putchar(str[i]); return 0; } 2010年上机真题(回忆版) 1.利用泰勒公式求cos(x)=1-x2/2!+x4/4!-……公式已给,重要的就是注意细节 (比如阶乘的存储最好用double类型),二级C语言的难度。 2.归并两个有序字符串,要求输出不能有重复字符(数据结构上做过N遍的Merge 函数) #include #include void main() { char str0[200],str1[200],str[400],ch; ch=getchar(); int i=0,j,k; while(ch!='\n') { str0[i]=ch; ch=getchar(); i++; } str0[i]='\0'; i=0; ch=getchar(); while(ch!='\n') { str1[i]=ch; ch=getchar(); i++; } str1[i]='\0'; i=j=k=0; while(str0[i]!='\0' && str1[j]!='\0') { if(str0[i] if(str0[i]==str[k-1]) i++; else { str[k]=str0[i]; k++; i++; } else if(str0[i]>str1[j]) if(str1[j]==str[k-1]) j++; else { str[k]=str1[j]; j++; k++; } else if(str0[i]==str[k-1]) { i++; j++; } else { str[k]=str0[i]; i++; j++; k++; } } if(str0[i]=='\0'){ while(str1[j]!='\0'){ if(str1[j]!=str[k-1]) str[k++]=str1[j++]; else j++; } } else{ while(str0[i]!='\0') if(str0[i]!=str[k-1]) str[k++]=str0[i++]; else i++; } int length = strlen(str); for(i=0;i printf("%c",str[i]); } } 3.两个整数数组(无序,可有重复元素),判断两个整数数组是否完全相同(重复元素的话,重复次数也要相同) #include #include void main() { int n,i,ii,j,k,l; scanf("%d",&n); int* array0=(int*)malloc(sizeof(int)*n); for(i=0;i scanf("%d",array0+i); int* array1=(int*)malloc(sizeof(int)*n); for(i=0;i scanf("%d",array1+i); for(i=0;i { j=l=0; for(ii=0;ii if(array0[i]==array0[ii]) j++; for(k=0;k if(array1[k]==array0[i]) l++; if(j!=l) { printf("not equal!\n"); exit(0); } } printf("equal! \n"); } 北航考研详解与指导 一.飞行器设计 对于本校的学生来说,每年复试的内容可能会不太一样,所以具体的准备还是以到时学校通知为主,这里主要介绍去年的复试,仅供参考。2012年飞行器设计专业复试分为笔试和面试,笔试又分为专业课和专业英语。专业课考的是航天器动力学基础,给了一本参考书是肖叶伦教授的《航天器建模**》之类的,具体名字不太记得了,北航本校本专业的学生可以直接用赵育善老师航天器飞行动力学课的教材,内容基本是一样的。把这本书好好的看一遍就可以了,一个星期绝对没有问题,因为考试考的也都是比较基础的东西,看懂概念,轨道六要素,欧拉角、奇点问题,摄动,航空航天器的分类,还有几个坐标系转换,基本都是概念,动力学方程以及复杂的公式都不会考,四元数的计算也不会考。有条件的同学想办法找一下赵育善老师那门课往年的期末考试题,可以作为参考。跨专业的、以前没接触过航天课程的同学,如果看不懂书可以去找一下你联系的导师,让他安排个学生给你稍微指点一下。专业英语的话考的是翻译,给了几段中文和英文,汉译英以及英译汉,每一段都不长,都是跟航天知识有一些关系的,准备的话上网搜索一些航天相关词汇背一背就好,当然也不用找特别专业的词汇,毕竟考试中的那些单词还都是平时读文献会比较常用到的。 面试的话也不用很紧张,基本都是先简单的介绍一下自己(只有中文,没有英文介绍),问问你跟的导师是谁,四六级考了多少分,如实回答就可以。北航的同学会很快,老师问什么你答什么就行了。外校的同学老师会再问一下你本科参加竞赛的情况,或者是毕业设计的内容,在本科期间参加的重要活动什么的。总之面试其实是个很简单的事,完全不必担心,放松心态正常交流就行了。 最后提一下,其实复试并没有那么难,大家能够通过初试,都是从成千上万同龄人中脱颖而出的佼佼者,应付这么一个小考试完全没有问题。而且我留意了一下,复试名单是按照初试成绩的名次排列的,经过复试之后,前面二三十个人的名次是完全没有变化的,复试的目的只是为了从后几名中筛选一下,所以初试成绩比较高的同学只要稍加准备正常发挥就行了,不用担心的太多。 二.航天导航制导与控制 首先简单介绍一下去年复试的情况,去年是王新龙老师管招生,复试有专业英语翻译和专业笔试,笔试上的内容都是本科传感器那门课的课件里的,去年进入复试的录取率大概在百分之八十多,录取了20人,其中专业硕士和学术硕士的比例是1:1,今年未知,估计是王可东、宋佳、杨博等老师,估计只有面试,没有笔试,面试需要有一个5分钟的英文自我介绍,之后对于本校的来说,一般不会问专业性问题,都是聊聊本科时候的表现,问问你研究生打算之类的,一般都是你的导师主要问,其他老师偶尔插一句,对于外校的来说,也是先英文自我介绍,然后如果导师定下来的话,也是导师主要问问题,可能会问一些专业性的问题,但大部分都是很开放的,比如王新龙老师会问惯性导航平台和捷联的区别联系,材料力学和理论力学哪个更基础,也会有老师问一些其他无关的问题,比如为什么要来GNC等等。王新龙老师建议大家准备复试的时候重点花在对英语自我介绍的完善以及导航制导控制转业的理解上。 2015年考研复试在即,面对又一轮的考研挑战,同学们不仅要面对像初试时所要准备的专业 一. 飞行器设计 对于本校的学生来说,每年复试的内容可能会不太一样,所以具体的准备还是以到时学校通知为主,这里主要介绍去年的复试,仅供参考。2012年飞行器设计专业复试分为笔试和面试,笔试又分为专业课和专业英语。专业课考的是航天器动力学基础,给了一本参考书是肖叶伦教授的《航天器建模**》之类的,具体名字不太记得了,北航本校本专业的学生可以直接用赵育善老师航天器飞行动力学课的教材,内容基本是一样的。把这本书好好的看一遍就可以了,一个星期绝对没有问题,因为考试考的也都是比较基础的东西,看懂概念,轨道六要素,欧拉角、奇点问题,摄动,航空航天器的分类, 还有几个坐标系转换,基本都是概念,动力学方程以及复杂的公式都不会考,四元数的计算也不会考。有条件的同学想办法找一下赵育善老师那门课往年的期末考试题,可以作为参考。跨专业的、以前没接触过航天课程的同学,如果看不懂书可以去找一下你联系的导师,让他安排个学生给你稍微指点一下。专业英语的话考的是翻译,给了几段中文和英文,汉译英以及英译汉,每一段都不长,都是跟航天知识有一些关系的,准备的话上网搜索一些航天相关词汇背一背就好,当然也不用找特别专业的词汇,毕竟考试中的那些单词还都是平时读文献会比较常用到的。 面试的话也不用很紧张,基本都是先简单的介绍一下自己(只有中文,没有英文介绍),问问你跟的导师是谁,四六级考了多少分,如实回答就可以。北航的同学会很快,老师问什么你答什么就行了。外校的同学老师会再问一下你本科参加竞赛的情况,或者是毕业设计的内容,在本科期间参加的重要活动什么的。总之面试其实是个很简单的事,完全不必担心,放松心态正常交流就行了。 最后提一下,其实复试并没有那么难,大家能够通过初试,都是从成千上万同龄人中脱颖而出的佼佼者,应付这么一个小考试完全没有问题。而且我留意了一下,复试名单是按照初试成绩的名次排列的,经过复试之后,前面二三十个人的名次是完全没有变化的,复试的目的只是为了从后几名中筛选一下,所以初试成绩比较高的同学只要稍加准备正常发挥就行了,不用担心的太多。 二. 航天导航制导与控制 首先简单介绍一下去年复试的情况,去年是王新龙老师管招生,复试有专业英语翻译和专业笔试,笔试上的内容都是本科传感器那门课的课件里的,去年进入复试的录取率大概在百分之八十多,录取了20人,其中专业硕士和学术硕士的比例是1:1,今年未知,估计是王可东、宋佳、杨博等老师,估计只有面试,没有笔试,面试需要有一个5分钟的英文自我介绍,之后对于本校的来说,一般不会问专业性问题,都是聊聊本科时候的表现,问问你研究生打算之类的,一般都是你的导师主要问,其他老师偶尔插一句,对于外校的来说,也是先英文自我介绍,然后如果导师定下来的话,也是导师主要问问题,可能会问一些专业性的问题,但大部分都是很开放的,比如王新龙老师会问惯性导航平台和捷联的区别联系,材料力学和理论力学哪个更基础,也会有老师问一些其他无关的问题,比如为什么要来GNC 等等。王新龙老师建议大家准备复试的时候重点花在对英语自我介绍的完善以及导航制导控制转业的理解上。 北京航空航天大学计算机系考研 复试06-14上机真题及答案 复试上机指导 1.本真题只是提供辅助作用,关键还是研友平时动手能力练习和对 算法、数据结构的理解,参加过ACM的有一定优势没参加过 的也不用紧张,北航的上机题相对于清华和北大,难度上小很 多,多练习的话,问题不大; 2.上机时,可以快速阅读所有的题目,按照从易到难的次序做题, 保证会的一定得分; 3.熟悉编程环境,熟悉c的常用函数; 4.为了快速测试代码的正确性,尤其是矩阵输入的情况,可以利用 标准输入重定向, freopen(“c:\\input.txt”,”r”,s tdin);加快测试过 程; 5.注意程序边界条件的测试; 6.如果你有什么疑问,或者我们提供的材料有问题,欢迎联系我们: bwiunbuaa@https://www.doczj.com/doc/d511190119.html,提供北航计算机报考和选导师指导,或者 到https://www.doczj.com/doc/d511190119.html, 给我们留言。 14年上机题 第一题,阶乘数。输入一个正整数,输出时,先输出这个数本身,跟着一个逗号,再输出这个数的各位数字的阶乘和,等号,阶乘和的计算结果,并判断阶乘和是否等于原数,如果相等输出Yes,否则输出No。题目说明输入的正整数以及其各位阶乘和都不会超 出int型的表示范围。 输入样例1: 145 输出样例1: 145,1!+4!+5!=145 Yes 输入样例2: 1400 输出样例2: 1400,1!+4!+0!+0!=27 No 第二题,五子棋。输入一个19*19的矩阵,只包含数字0、1、2,表示两人下五子棋的棋牌状态,1、2分别表示两人的棋子,0表示空格。要求判断当前状态下是否有人获胜(横向、竖向或者斜线方向连成5个同色棋子)。题目说明输入样例保证每条线上至多只有连续5个同色棋子,并且保证至多只有1人获胜。如果有人获胜,输出获胜者(1或2)加一个冒号,接着输出获胜的五连珠的第一个棋子的坐标,从上到下从左到右序号最小的为第一个,序号从1开始编号。如果无人获胜,输出no。 样例略。 第三题,排版题。输入若干行字符,表示某电影的演职员表,每行只有一个冒号,冒号前面是职位,冒号后面是姓名,要求把各行 11年上机题 1. 【问题描述】 孪生数定义:如果 A 的约数(因数,包含1,但不包含A本身)之和等于 B ,B 的约数(因数)之和等于 A , A 和 B 称为孪生数(A和B不相等)。试找出正整数 M 和 N 之间的孪生数。 【输入形式】 从控制台输入两个正整数M和N(1<=M 要求:字符串的查找删除 给定文件filein.txt 按要求输出fileout.txt。 输入: 无空格的字符串 输出: 将filein.txt删除输入的字符串(不区分大小写),输出至fileout.txt sample 输入:in 输出:将filein.txt 中的In、IN、iN、in删除,每行中的空格全部提前至行首,输出至fileout.txt 例: filein.txt中的值为: #include 2013年''数据结构与C程序设计〃(代码991)试题 一、单项选择题(本题共20分,每小题各2分) 1.对于长度为n的线性表.建立其对应的做链表的时间复杂度为()。 A.0(1): B. O(log2n):? O(n): D? O(n2)。 2.一般情况下,在一个双向链表中插入一个新的链结点,()o A.需要修改4个抬针域内的指针: B.需要修改3个指针域内的指针: C.需要修改2个指针域内的抬针:D?只需要修改1个指针域内的指针。 3.假设用单?个字母表示中缀表达式中的一个运算数(或称运算对&)?并利用堆栈产生中缀表达式对应的后缀表达式。对于中缀表达式A+B*(C/D-E),十从左至右扫描到运算数E时,堆栈中的运算符依次是()。(注:不包含表达式的分界符) A.+*/-: B. +*(/-: C? +*-:? +*(-o 4.若某二叉排序树的前序遍历序列为50,20,40,30,80,60,70.则后序遍历序列为()。 A. 30,40,20,50,70,60,80: B. 30,40,20,70,60,80,50: C. 70,60,80,50,30,40,20: D. 70,60,80,30,40,20,50. 5.分别以6, 3, 8, 12, 5Z 7对应叶结点的权值构造的哈夫曼(Huffman)树的深度为()。 A. 6: B. 5: C? 4: D? 3。 &下列关于图的叙述中,错误的是()0 A.根据图的定义,图中至少有一个顶点: B.根据图的定义.图中至少有一个顶点和一条边(弧): C.具有n个顶点的无向图最女有n(n-l)/2条边; D.具有n个顶点的有向图最多有n(n-l)条边(弧)。 7.若在有向图G的拓扑序列中,顶点vi在顶点vj之前,则下列4种情形中不可能出现的是()》 A.G中有弧 B.G中没有弧vvi,vj>: C.G中有一条从顶点vi到顶点vj的路径: D?G中有一条从顶点vj到顶点vi的路径。 8.下列关于査找操作的叙述中.错误的是()。 A.在顺序表中査找元素可以采用顺序查找法,也可以采用折半査找法: B.在链表中査找结点只能采用顺序査找法,不能采用折半査找法: C.一般情况下,顺序査找法不如折半查找法的时间效率商: D.折半査找的过程可以用一棵称之为''判定树"的二叉树來描述。 9.在一棵m阶B?树中,除根结点之外的任何分支结点包含关键字的个数至少是()。 A. m/2-1: B? m/2: C? m/2-l: D? m/2° 10.若对序列(49, 38, 65, 97, 76, 13, 27f 49J进行快速排序,则第一趙排序结束(即确定了第1个分界元素的最终位宜)时.序列的状态是()。 A. (13, 27, 49; 38, 49, 76, 97, 65): B. (13, 38, 27, 49; 49, 76, 97, 65): C. (13, 38, 49; 27, 49, 97, 76, 65): D. (13, 38, 49;27t 49z 76, 97, 65)。 二、填空题(本题共20分,每小题各2分) 2009级基础物理实验期末试题 一、单项选择题(每题3分,共30分) 1、不确定度在可修正的系统误差修正以后,将余下的全部误差按产生原因及计算方法不同分为两类,其中 B 属于A类分量。 A、由测量仪器产生的的误差分析 B、同一条件下的多次测量值按统计方法计算的误差分量 C、由环境产生的误差分析 D、由测量条件产生的误差分量 2、下列说法中 C 是正确的。 A、在给定的实验条件下,系统误差和随机误差可以相互转化 B、当测量条件改变后,系统误差的大小和符号不随之变化 C、随机误差可以通过多次重复测量发现 D、一组测量数据中,出现异常的值即为粗大误差 5、已知(),下列公式中 B 是正确的。A、 B、 C、 D、 7、用千分尺(精度0、01mm)测某金属片厚度d的结果为 i 1 2 3 4 5 6 7 1.516 1.519 1.514 1.522 1.523 1.513 1.517 则测量结果应表述为d D_Dd_______ A、(1.518D_Dd__________????___________ C、(1.518D_Dd__________ (1.518_____ 8.tg45°1′有 B 位有效数字 A、6 B、5 C、4 D、3 9、对y=a+bx的线性函数,利用图解法求b时,正确的求解方法是 C 。 A、b=tg B、b=(、为任选两个测点的坐标值之差) C、b=(、为在所作直线上任选两个分得较远的点的坐标值之差) D、b=(x、y为所作直线上任选一点的坐标) 10、用量程为500mV的5级电压表测电压,下列测量记录中哪个是正确的? D A、250.43mV B、250.4mV C、250mV D、0.25V 二、填空题(每题3分,共15分) 11、已被确切掌握了其大小和符号的系统误差成为可定系统误差。 12、已知某地的重力加速度值为9.794,甲、乙、丙三人测量的结果分别为:9.795?^,9.811?^,9.791?^,试比较他们测量的精密度、正确度和准确度。甲测量的精密度低,正确度高;乙测量的正确度最低;丙测量的准确度最高。 13、如图所示,游标卡尺的读数为10.830 (cm),该游标的仪 看了很多帖子,感觉对双控的总结都不怎么靠谱。因此本屌觉得很有必要写一下今年(12年)三系双控复试的情况,让以后报考的同学们少走些弯路,少经历些我原来因为看到各种不靠谱消息所产生的惶恐。 双控今年招收13个学术硕士(专硕我不清楚),比往年削减了很多,而且今年考分很高,竞争异常激烈。复试前曾经收到短信,建议390以下的同学调剂到别的方向。鉴于此情况,系里可能动了侧影之心,给我们又增加了一个专硕名额,也只是这一个而已。 最终来参加复试的共有34人,其中强军计划的有2人,不占以上14个名额(13学+1专)。400分及以上的有14人,390分及以上(包括400以上)的有24人(此处可见本论坛的投票十分不靠谱)。最终录取结果大致如下:初试排名第二425分的同学不幸被调剂专硕,另有几个400以上直接被刷。录取的初试最低分不详,我预计不低于390(该预计不靠谱,欢迎拍砖),可见初试分还是很重要的(原先听说复试满分也是500,最后录取是看初试+复试满分1000分的得分,让我以为初始分高点根本没优势,现在看来,初试分参考价值还是比较大)。 复试共分为笔试和面试。面试又细分为理论、工程、英语三个组。 笔试满分150分,本屌认为十分难,本来考前愁笔试愁的肠子都快断了,后来一看考题,顿时释然了,因为这个难度和题量,本屌认为大家肯定也都半斤八两。考完之后众屌丝聚在一起分析也都认为笔试应该只是个参考。但是不能因此就说不重视笔试,你要是能做上其他人做不出的题,你也有优势嘛不是!笔试具体考题本屌实在记不起来,但是考的科目可以说说:概率(3道)、静力学(2道还是3道记不太清了)、自控(3道)、单片机应用连线题一道、C语言编程一道(我们考的是编一个万年历,已知2008年1月1日是星期X,要求这个函数能完成以下功能:输入年月日,输出这天是星期几)、设计题一道(要求不高,给出大致框架即可)、汉译英1段(个人认为超难)、英译汉2段(比汉译英容易多了),还有一道题(在卷子上是第二大题),由于本屌丝智商趋近窝狗,不知道到底考的是什么,就我理解可能是考平面几何,初中的内容。这些科目以后不知道会不会有变化,大家做参考吧。 面试是重头戏,原先复试通知上写的是英语50、理论工程各150,但是今年道听途说听说英语50、理论50、工程200(这样算复试总分就是450了,因此这个消息的准确性有待考证)。英语面试没有了复试通知中的自我介绍,但是以后不知道会不会有,最好有备无患。进去以后直接读几段专业性外语,然后翻译。单词读错一个扣一分,翻译翻错一处扣一分,所以口语不太标准的同学们小心咯!本屌觉得读还行,但是翻译起来有点难。最后大家一般都得40分左右。 理论面试,进去以后先简单的自我介绍一下(不需要刻意准备,真的是很简单的自我介绍,随便说说就可以,很多老师都不听),然后抽三道题,现场解答。具体的题目类型有数学(高数线代都有,概率可能是笔试考的多,这里就没考,反正我没听说有概率题)、自控(经典线控都有)、静力学、动力学、大学物理。三道题都打完了以后,老师可能还会问问你别的,这个因人而异。如果抽到的题不会,不要捉急,老师很和蔼,不会刁难你鄙视你什么的。你可以用已知的知识尽量往上靠,实在不行就实话实说不会。 工程面试主要考察实践,毕业设计、设计大赛、建模啥的,有什么说什么,不过这一组的老师和理论组不同,理论组是问你问到会为止,这里是问你问到不会为止,老师可能会揪着一个你不太清楚的问题一直发问,这个时候不要紧张,大不了就说不会请老师指点。如果你没什么科研活动可讲,老师可能会看你的成绩单,然后问问你学的比较好的一些科目什么的。总的来说,复试考察侧重于情商、临场应变,对老师不要畏惧,当然也要保持谦虚(每个人都会讨厌对着自己吹牛逼的2货)。理工科学生的表达能力毕竟有限,只要努力展示自己的优点就好。 关于所谓对非211的歧视,我曾经也以为是有的(本屌丝就是个非211屌丝学校的),但是 2015. 机试两道题矩阵+字符串(60+40),后来我在论坛中看到往年机试也是这样的形式,连题型都相同。 1.矩阵 输入 开始数字和矩阵大小如1 3 输出 1 2 5 4 3 6 9 8 7 2.字符串替换,这是个比较常见的题了 将原始字符串中所有应替换字符串替换为目标字符串 2014. 第一题,阶乘数。 输入一个正整数,输出时,先输出这个数本身,跟着一个逗号,再输出这个数的各位数字的阶乘和,等号, 阶乘和的计算结果,并判断阶乘和是否等于原数,如果相等输出Yes,否则输出N o。题目说明输入的正整数 以及其各位阶乘和都不会超出int型的表示范围。 输入样例1: 145 输出样例1: 145,1!+4!+5!=145 Yes 输入样例2: 1400 输出样例2: 1400,1!+4!+0!+0!=27 No 第二题,五子棋。 输入一个19*19的矩阵,只包含数字0、1、2,表示两人下五子棋的棋牌状态,1、2分别表示两人的棋子,0表示空格。 要求判断当前状态下是否有人获胜(横向、竖向或者斜线方向连成5个同色棋子)。题目说明输入样例保证每条线上至多 只有连续5个同色棋子,并且保证至多只有1人获胜。如果有人获胜,输出获胜者(1或2)加一个冒号,接着输出获胜的 五连珠的第一个棋子的坐标,从上到下从左到右序号最小的为第一个,序号从1开始编号。如果无人获胜,输出no。 2011. 2013. 1. 给定两个元素个数不超过20的整数数组a和b,要求将a和b合并成一个新数组。合并规则:如果一个元素在两个数组中同时出现,则需在合并后的数组中去掉该元素;对于只在一个数组中重复出现的元素,合并后只保留一个。合并后按照从小到大的顺序将新数组输出(测试数据保证不会出现合并后无数据的情况)。 北京航空航天大学2015年 硕士研究生入学考试试题科目代码:961 计算机综合 (共8页) 考生注意:所有答题务必书写在考场提供的答题纸上,写在本试题单上的答题一律无效(本题单不参与评卷) 一、 单项选择(15道小题,每题2分,共30分) 1、常见的几种总线仲裁方式中,对电路最为敏感的方式为() A、链式查询 B、计数器查询方式 C、独立请求 D、中断查询 2、在常用的I/O控制方式中,要求主存与I/O设备之间有直接数据通路的方式为() A、程序查询 B、程序中断 C、I/O通道 D、DMA 3、某机器字长为64位,内存容量为256MB,若按字编址,则其寻址空间为() A、0~8M-1 B、0~16M-1 C、0~32M-1 D、0~64M-1 4、某机器字长为16位,内存按字编址,PC当前值为2000H,当读取一条双字长指令后PC的值为() A、2000H B、2004H C、2008H D、200AH 5、某程序运行于一个由L1、L2两级cache以及主存组成的存储系统,L1 cache和L2 cache的命中率分别为50%和80%,则整个存储系统cache的命中率为() A、65% B、80% C、90% D、95% 6、段式存储管理的逻辑地址空间为() A、一维线性的 B、二维的 C、三维的 D、由操作系统决定的 7、下列选项中,操作系统提供给用户的接口为() A、库函数 B、中断 C、系统调用 D、驱动程序 8、设某进程的页面走向为:5、4、3、2、4、3、1、4、3、2、1、5,系统中 有3页物理内存,请问采用LRU和FIFO淘汰算法的缺页次数分别为() A、9和10 B、5和7 C、6和6 D、8和10 9、进程可以使用的最大地址空间受限于() I.地址位数;II.物理内存大小;III.辅存大小 A、I B、I和II C、II和III D、I,II,III 10、有5个记录A,B,C,D,E存放在某磁盘的某磁道上,假定这个磁道划分为5块,每块存放一个记录,若磁盘旋转一周需要20ms,处理程序每读出一个记录后需要花费6ms进行处理,程序处理这些数据时磁盘照常旋转,按照()顺序存放这5个记录可以使其按照A,B,C,D,E顺序处理这些记录的时间最少。 A、“A,B,C,E,D” B、“A,C,E,B,D” C、“A,D,E,C,B” D、“A,E,B,C,D” 11、以太网交换机按照自学算法建立转发表,它通过()进行地址学习 A、ARP协议 B、帧中的源MAC地址和目的MAC地址 C、帧中的目的MAC地址 D、帧中的源MAC地址 12、以太网内某主机甲的IP地址为:211.71.136.23,子网掩码为:255.255.240.0,网关地址为:211.71.136.1,若主机甲向主机乙【IP地址为:211.71.130.25】发送一个IP分组,则() A、该分组封装成帧后直接发送给乙,帧中目的MAC地址为网关MAC地址 B、该分组封装成帧后直接发送给乙,帧中目的MAC地址为主机乙的MAC 地址 C、该分组封装成帧后交由网关转发,帧中目的MAC地址为网关的MAC地址 D、该分组封装成帧后交由网关转发,帧中目的MAC地址为主机乙的MAC 地址 13、Internet中所有末端系统和路由器都必须实现()协议以确定网络的连通。 A、IP B、UDP C、TCP D、OSPF 14、主机甲向主机乙发送一个(SYN=1,seq=1000)的TCP段,期望与主机乙 有限元分析软件ANSYS12.0 上机指南 2015下 目录 Project1 潜水艇的热力学分析 (01) Project2 薄板的平面应力问题分析 (02) Project3 坝体的平面应变问题分析 (08) Project4 热障涂层降温过程应力场分析 (10) Project5 钢梁的瞬态动力学分析 (13) Project6 热电制冷分析 (17) Project7 简单直流致动器电磁分析 (20) Project 1 潜水艇的热力学分析 计算分析模型如图所示, 习题文件名: Thermal。 某一潜水艇可以简化为一圆筒,它由三层组成,最外面一层为不锈钢,中间为玻纤隔热层,最里面为铝层,筒内为空气,筒外为海水,求内外壁面温度及温度分布。 几何参数:筒外径30 feet 总壁厚 2 inch 不锈钢层壁厚0.75 inch 玻纤层壁厚 1 inch 铝层壁厚0.25 inch 筒长200 feet 导热系数不锈钢8.27 BTU/hr.ft.o F 玻纤0.028 BTU/hr.ft.o F 铝117.4 BTU/hr.ft.o F 边界条件空气温度70 o F 海水温度44.5 o F 空气对流系数 2.5 BTU/hr.ft2.o F 海水对流系数80 BTU/hr.ft2.o F 沿垂直于圆筒轴线作横截面,得到一圆环,取其中1度 进行分析,如图示。 1.Utility Menu>File>change jobename, 输入Steady1; 2.Utility Menu>File>change title,输入Steady-state thermal analysis of submarine; 3.Main Menu: Preprocessor>Material Props>Material Library>Select Units,选择BFT; 4.Main Menu: Preprocessor>Element Type>Add/Edit/Delete,选择Thermal Mass-Solid-Plane55; 5.Main Menu: Preprocessor>Material Prop>Material Models>Mat Mod Num 1-Thermal- Conductivity -Isotropic,材料编号1,在KXX框中输入8.27,选择OK;Material-New Model-2-OK,同上,Therm-Cond-Iso-KXX框中输入0.028,选择OK;同上新建材料3,KXX值设定为117.4; 6.Main Menu: Preprocessor>-Modeling->Create>-Areas-Circle>By Dimensions ,在RAD1中输入15,在RAD2中输入15-(.75/12),在THERA1中输入-0.5,在THERA2中输入0.5,选择APPL Y,在RAD1中输入15-(.75/12),在RAD2中输入15-(1.75/12),选择APPL Y,在RAD1中输入15-(1.75/12),在RAD2中输入15-2/12,选择OK; 7.Main Menu: Preprocessor>-Modeling->Operate>-Booleane->Glue>Area,选择PICK ALL; 8.Main Menu: Preprocessor>-Meshing-Size Contrls>-Lines-Picked Lines,选择不锈钢层短边,在NDIV框中输入4,选择APPL Y,选择玻璃纤维层的短边,在NDIV框中输入5,选择APPL Y,选择铝层的短边,在NDIV框中输入2,选择APPL Y,选择四个长边,在NDIV中输入16; 9.Main Menu: Preprocessor>-Attributes-Define>Picked Area,选择不锈钢层,在MAT框中输入1,选择APPL Y,选择玻璃纤维层,在MA T框中输入2,选择APPL Y,选择铝层,在MA T框中输入3,选择OK; 10.Main Menu: Preprocessor>-Meshing-Mesh>-Areas-Mapped>3 or 4 sided,选择PICK ALL; 11.Main Menu: Solution>-Loads-Apply>-Thermal-Convection>On lines,选择不锈钢外壁,在V ALI框中输入80,在V AL2I框中输入44.5,选择APPL Y,选择铝层内壁,在VALI框中输入2.5,在V AL2I框中输入70,选择OK; 12.Main Menu: Solution>-Solve-Current LS; 13.Main Menu: General Postproc>Plot Results>-Contour Plot-Nodal Solu,选择Temperature。 2008年北京航空航天大学961计算机专业综合考研试题 一、简答题(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个顶点的无向图最多有n(n-1)/2条边。 5、有人说,折半查找的时间效率一定比顺序查找的时间效率高,你怎么看待这种说法?为什么? 二、算法设计题(10’) 已知一非空完全二叉树存放于数组BT[0..n-1]中,请写出中序遍历该二叉树的非递归算法。 三、算法设计题(10’) 写出不带头结点的双向链表的插入排序算法。 四、简答题(4’×5) 1、数据传输控制方式有哪些? 2、引入线程的目的是什么? 3、P, V操作是如何实现互斥的的? 4、什么是死锁?产生死锁的原因是什么? 5、什么是文件系统? 五、判断题(1’×10) 略。(基本上来自于历年真题) 六、解答题(10’) 某机器字长为16位,采用段页式存储管理算法,页内偏移为12位,段表和页表内容如下,给出4个虚拟地址(二进制形式),问哪个地址产生缺段中断,哪个地址产生缺页中断,哪些地址可以转换为物理地址,并求转换后的物理地址。(地址格式中段号占1位,段内页号占3位,页内偏移为12位,另外,在给出的页表中,物理块号占6位,最后又问该机器的最大物理内存是多少(答案:256 KB)。) 七、简答题(4’×4) 1、利用等值演算的方法,写出求命题逻辑公式的主范式的方法。 2、谓词逻辑中的永假式、可满足式、重言式、永真式之间的关系是什 北航2016上机真题逆序数 题目描述 给定一个数n,将这个数的各位顺序颠倒,称为逆序数m。 例如1234的逆序数是4321。 输入 输入一个数n(0 } int j; for(j=0; j<=top; j++) { m=m*10+stack[j]; } if(m>n||m==n) { if(m%n==0) { printf("%d*%d=%d\n",n,(m/n),m); } else { printf("%d ",n); for(int k=0; k<=top; k++) { printf("%d",stack[k]); } printf("\n"); } } else { printf("%d ",n); for(int l=0; l<=top; l++) { printf("%d",stack[l]); } printf("\n"); } } return 0; } 字符串的解析 题目描述 给一个c语言的enum定义语句,输出enum中规定的各项值。输入 北航2015年考研991科目的答案 一、单项选择题 1.C 2.A 3.D 4.B 5.C 6.B 7.D 8.A 9.C 10.D 二、填空题 1.顺序2.O(m) 3.log2k+1 4.235 5.2(n-1) 6.该有向图中不存在回路7.2.9 8.m-1 9.插入排序法10.9 三、综合题 1.答:(1)多个堆栈共享一个连续的存储空间,可以充分利用存储空间,只有在整个存储空间都用完时才能产生溢出,其缺点是当一个堆栈溢出时需要向左、右栈查询有无空闲单元。若有,则需要移动相应元素和修改相关的栈底和栈顶指针的位置。当各个堆栈接近溢出时,查询空闲单元、移动元素和修改栈底栈顶指针位置的操作频繁,计算复杂,并且耗费时间。(2)每个堆栈仅用一个顺序存储空间时,操作简便。但难以确定初始分配存储空间的大小,空间分配少了,容易产生溢出,空间分配多了,容易造成空间浪费;并且各个堆栈不能共享空间。 (3)一般情况下,分别建立多个链接堆栈不考虑堆栈的溢出(仅受用户内存空间限制),缺点是堆栈中各元素要通过指针链接,比顺序存储结构多占用存储空间。2.(T->lchild==NULL && T->rchild==NULL) T->lchild T->rchild 3.(由于图表显示限制,此题答案见指定教材(《数据结构教程第二版》(2012年4月第7次印刷)) 第418页8-16题)4. (1).根据α=散列表中存入的元素数/散列表的长度,得到表的长度为18,因此,合适的散列函数应该为H(k)=k MOD 17。 (2).(由于图表显示限制,此题答案见指定教材(《数据结构教程第二版》(2012年4月第7次印刷)) 第428页9-15题) 四、算法设计题SORT(int A[ ], int n) { int ,i, j, min, max, temp; i=1; while(i<=n/2){ min=i; max=i; for(j=i+1;j 数字电子技术基础(A卷)(无答案) 一.解答下列问题(共40分,每小题5分) 1.十进制数 X = 117,其ASCII码表示为:。 在8位机器中,[X]补 = ,[-X]补 = 。 2.已知逻辑函数:() F A C BC A B CD =+++,直接用反演规则写出其反函数和对偶函数。 3.用卡诺图化简逻辑函数∑∑ + =) 15 , 1013 ,8,2,1( ) 14 , 12 ,7,6,0(4 4d m F 4.用OC 门驱动发光二极管电路如图,若V F=2V,I F=20mA,试完善电路并计算电阻R=? 5.画出图示电路的输出波形 A B C Y A B & E n 6. 主-从JK 触发器,已知CP 、J 、K 信号波形如图示,画出输出波形(初始状态为0)。 7. 分析函数 F AB ABC =+ 所组成的电路存在何种险象。 8. 图示电路中触发器: 建立时间 t su = 20ns , 保持时间 t h = 5ns , 传输迟延时间t pdcp-Q,/Q = 30ns, 门G迟延t pd G= 10ns, 时钟脉冲F max = ? 二.逻辑函数(,,) =++(本题共14分,每小题7分) F A B C ABC BC AC 1.用3-8译码器及适当门电路实现。 2.用“四选一”数据选择器及适当门电路实现。 三.分析下列电路所实现的逻辑功能(本题共16分,每小题8分)Array 1.由2-5-10进制异步计数器构成的电路。 2. 由74LS163构成计数器电路。 四. 某同步时序系统的原始状态表如图示(本题15分) 1. 用隐含表法化简; 2. 自然序编码; 3. 用JK 触发器及适当门设计电路; 4. 检查是否可以自启动。 数字电子技术基础(A 卷) 2013年“数据结构与C程序设计”(代码991)试题 一、单项选择题(本题共20分,每小题各2分) 1.对于长度为n的线性表,建立其对应的单链表的时间复杂度为( )。 A.O(1);B.O(log2n);.O(n);D.O(n2)。 2.一般情况下,在一个双向链表中插入一个新的链结点,( )。 A.需要修改4个指针域内的指针;B.需要修改3个指针域内的指针; C.需要修改2个指针域内的指针;D.只需要修改1个指针域内的指针。 3.假设用单个字母表示中缀表达式中的一个运算数(或称运算对象),并利用堆栈产生中缀表达式对应的后缀表达式。对于中缀表达式A+B*(C/D-E),当从左至右扫描到运算数E时,堆栈中的运算符依次是( )。(注:不包含表达式的分界符) A.+*/-;B.+*(/-;C.+*-;.+*(-。 4.若某二叉排序树的前序遍历序列为50,20,40,30,80,60,70,则后序遍历序列为( )。 A.30,40,20,50,70,60,80;B.30,40,20,70,60,80,50; C.70,60,80,50,30,40,20;D.70,60,80,30,40,20,50。 5.分别以6, 3, 8, 12, 5, 7对应叶结点的权值构造的哈夫曼(Huffman) 树的深度为( )。 A.6;B.5;C.4;D.3。 6.下列关于图的叙述中,错误的是( )。 A.根据图的定义,图中至少有一个顶点; B.根据图的定义,图中至少有一个顶点和一条边(弧); C.具有n个顶点的无向图最多有n(n-1)/2条边; D.具有n个顶点的有向图最多有n(n-1)条边(弧)。 7.若在有向图G的拓扑序列中,顶点vi在顶点vj之前,则下列4种情形中不可能出现的是( )。 A.G中有弧2015年北京航空航天大学飞行器设计历年真题,心得分享,考研大纲,考研笔记,复试真题
北航宇航学院各方向研究生复试经验介绍
北航计算机复试 06-14上机真题及答案
北航上机题
北航考研复试C语言题
北航数据结构与程序设计真题-2013北航991真题与答案
北航基础物理实验考试试题及答案
北航 3系 双控考研复试总结
北航考研保研机考题
北航2015年961真题
ANSYS上机指南-北航 2017考试答案
北京航空航天大学961计算机专业综合考研试题(历年)
2016年北航机试习题及代码
北航2015年考研991科目的答案
北航数电2015试题及答案
北航数据结构程序设计真题 2013年北航991真题及答案