中山大学计算机历年复试面试考研试题合集

本站小编 免费考研网/2019-12-09

11年
这次参加复试的有100+,学术录取46人,专硕24人
首先咱们谈谈笔试
英语题型是:中译英(校长的就职演讲),英译中(关于算法方面的相对中译英难度要低一些,没有什么特别难翻译的句子),作文(给一幅图关于Population Reference Bureau)
专业笔试:
离散总共五道题,
第一道关于一阶逻辑求主析取范式、主合取范式、真值表 (只要看了书,计算细心点,这道题一般能拿满分)
第二道对循环关系有如下定义:对于A上的关系R,若对任意<x,y>属于R且<y,z>属于R,则<z,x>属于R. 证明:R是自反和循环关系当且仅当R是等价关系。(我当时不知道什么是循环关系,悲剧了)
第三道考得是集合的求解,思想与课本上的200能被3、5、7整除解法类似,(文氏图法或都公式法)
第四道考得Dijkstra算法,初试数据结构是重点章节,问题不大
第五道证明对于任意一个具有6个顶点的简单图,要么它包含一个三角形,要么它的补图包含一个三角形(这个题当时很晕,不知如何下手)
C语言:
第一道是关于全局变量和局部变量的,要求写出程序结果,只要好分析,做出来不难
第二道是关于静态变量的,要求写程序结果,只要掌握静态变量只初始一次就可以了
第三道求从串中找子串的,只有三个空
第四道是进行分类,如12a3bc4,要求输出为1234abc
第五道设计一个程序,从in.txt读入数据,对每一行的数字都单独按从大到小的顺序排序,
将结果输出到out.txt。每一行的数字第一个字符是数字标志,每个数字之间用空格隔开。
这次笔试相对往年离散比往年的难度要大些,普遍考得不好,本以为文件会考哪知,这次考了,所以建议大家在复习还是把每个要求的知识好好看一遍
对于面试
首先老师要我自我介绍,然后用英语问了一个我的优点和缺点
随后,老师开始进行专业知识的考查,有个考官问我选的专业是什么,然后针对我选的专业问我ERP是什么,BPR有哪几种类型(我当时只是从网上了解了一下,哪记得这么多,我吱吱唔唔了半天,那个老师微笑地对我说不知道就不知道,知道就知道)
接着又问了我的学校(其实我们学校不是很好)但老师并没因此而认为你不行,至少我可以证明,中大老师绝不会有学校歧视,他们面试非常地公平。
然后,问了一个关于软件工程有哪几种模型,又问我做项目时用得哪种模型。软件开发的流程,而后问我需求分析主要是干什么的,当时回答成了概要设计的去了。
接着,又问我哪门学得好点,我说数据结构,我本以为老师会问数据结构中的内容,哪知却问我,学数据结构应该要学哪些课程,我当时有点晕,(比如高等数学、离散数学、线性代数、C语言等等)其实,这是老师在考验的我们的反应能力。 这道回答得不好。
最后,问了一个有关离散的问题,先是问知不知道等价关系,我说完后,老师竟然问我老乡是不是等价关系,我又晕了,我说不是,然后,老师就问我为什么,我就按照定义去说,幸好,有个男老师帮我解围,按照老师的提示顺利答出此题。
另外,我听同组其它同学面试的题目,有些很灵活,比如一根铁丝紧紧围隹地球,只增加一米,问一只猫能通过吗?还有像哈夫曼树、结构化程序设计等等
希望,我所写的对大家有点帮助,总得来说,复试没有想像的那么恐怖,但也不是那么容易,只要保持平静的心态就行了。
2003:
一程序,C语言,有关递归,特烦
二求最长公共子串,程序填空形式(略)
三迷宫,自己写程序
八离散部分               
1)R是A上的一个对称和传递的关系,对于任意a属于A,都存在一个b属于A,使得<a,b>属   于R,证明R是一个等价关系。
2)<G,*>是一个半群,对于任意a, b属于G,a!=b,则a*b!=b*a。试证:对任一元素a属于  G,有a*a=a。
3)证明一个图G,它顶点的最小顶点度不小于2,证明它存在圈。
4)求(PVQ)<->P主析取范式。
 
04 年中山大学计算机系复试笔试试题
2.程序填空(10分)
此程序主要完成的功能是:把一个整数W分解成不多于N个整数的和,且这些整数只能取自数组b[],程序如下:(程序实在想不起来了,只记得程序是用递归完成的,总共有5个空,我认为都不难)。
3.编写一段函数,满足以下要求:将字符串S1中出现的所有S2都替换成S3,并且不损坏字符串S1。函数原型为:char exchange(char S1, char S2, char S3)    (15分)
4.请说明信号量的结构和取各种数值时的意义。(9分)
5.请描述p操作和v操作的执行过程,以及用p,v原语解决死锁问题时有哪些需要注意的问题。(12分)
6.请描述进程的几种状态,以及各种状态之间的转换关系。(9分)
7.根据你所熟悉的操作系统,如DOS或UNIX为例,谈谈它是怎样实现层次文件目录结构的。(10分)
8.证明对于集合A、B、C,如果有A∩B=B∩C,并且A∩B=A*∩C,其中A*为A的补集,则一定有B=C。(10分)。
9.证明:一个连通且每个顶点的度数都为偶数的图一定没有割边。(10分)
10.设代数系统(G,*)为一个半群,且有左单位元e,对于任意一个x均有x’,使得x’*x=e。证明:对于任意a、b、c,如果b*a=b*c,则一定有a=c。(15分)
11.根据已知前提,证明如下结论(10分)
S),(Q前提:P ┑RVP, Q
S结论:R     
   05 年中山大学计算机系复试笔试试题
C 语言程序设计
1.写出以下程序的输出.
#define MAXN 100
int a[MAXN],r[MAXN]
nd(int n)
{int i,k;
k=0;r[0]=n;
do
{ if(r[k]==0)
     {
       printf("%d=%d,a[0],a[1]);
       for(i=2;i<=k;i++) printf("+%d",a[i]);
       printf("\n");
       while(k>0&&a[k]==1) k--;
       if(k>0) {a[k]--;r[k]++;}
     }else{
       a[k+1]=a[k]<r[k]?a[k]:r[k];
       r[k+1]=r[k]-a[k+1];
       k++;
     }
}while(k>0)
}
main()
{
int data=4;a[0]=data;
nd(data);
}
2.本程序用回溯算法来产生由 0 或 1 组成的 2 m 个二进位串,使该串满足一下要求.
   视串为首尾相连的环,则由 m位二进制数字组成的 2^m 个子序列,每个可能的子序列都互不
相同.例如,如果 m=3,在串 11101000 首尾相连构成的环中,由 3 位二进制数字组成的每个可能
的子序列都在环中恰好出现一次,它们依次是 111,110,101,010,100,000,001,011,如图所示:
                                           1
                                  0            1
                             0                   1
                               0           0
                                   1
#define N 1024
#define M 10
int b[N+M-1];
int equal(int k,int j,int m)
{
int i;
for(i=0;i<m,i++)
if(b[k+i]____(1)____) return 0;
return 1;
}
int exchange(int k,int m,int v)
{
while(b[k+m-1]==v)
{
    b[k+m-1]=!v;
    ____(2)_____
}
    ____(3)_____=v;
    return k;
}
init(int v)
{
int k;
for(k=0;k<N+M-1;k++) b[k]=v;
}
main()
{int m,v,k,n,j;
printf("Enter m(1<m<10),v(v=0,v=1) \n");
scanf("%d%d,&m,&v);
n=0x01<<m; init(!v);k=0;
while(__(4)__<n)
     for(j=0;j<k;j++)
     if(equal(k,j,m))
     {
       k=exchange(k,m,v);
       j=__(5)__;
     }
for(k=0;k<n;k++) printf("%d\n",b[k]);
}
                                                            尾数不
3.自然数中有一类数被称为"自守数".所谓自守数就是自已和自己相乘以后得到的数,
变.例如:25×25=625.76*76=5776 请编写程序:用户输入 m,n(10<m<n<200000),求得 m,n 之间
得所有自首数并输出,每 5 个一行.
. 4=4
     4=3+1
     4=2+2
     4=2+1+1
     4=1+1+1+1
2. (1) !=b[j+i]                          (2) k—
   (3) b[k+m-1]                           (4) ++k
   (5) –1
3.(这是 SJJ 写的程序,仅供参考^_^)
long GetHelpNum(long num)
//用来得到帮助测试的数字,例如 11 返回 100,999 返回 1000
{ long result=10;
     while(num/10>0)
     { result*=10; num/=10; } //这里 num 只是一个副本,所以不会改变原变量
     return result;
}
int Test(long num)
//用来测试一个数是否是自首数,是返回 1,不是返回 0
{ if((num*num-num)%GetHelpNum(num)==0 ) return 1;
     else return 0;
}
void main()
{ cout<<”Enter 2 numbers:”;
long m ,n;
cin>>m>>n;//这里没有做数值检查,有兴趣可以加上去
long count=0;
for(long num=m+1;num<n;num++)
{ if(Test(num)==1)
      { count++; cout<<num<<” “;
        if(count%5==0) cout<<”\n”;
      }
   }
}
中山大学2006计算机复试笔试题(本人回忆)
一.        离散数学
3道证明题,比较难,具体题目实在想不起来了。内容大概是关于群、半群、格、范式等。
三.        C语言
1、读程序填结果的题(不难)。结题目忘记了,应该不会有问题的。
2、编程。用递归法吧数n分解成m个数之和。(m个数要放在数组里)。
3、编程题。判断一个句子是否是回文的。(也就是顺着读和倒着读是否一样)考的是字符串处理的技能
07笔试:
====================
1.证明等价关系
2.哈夫曼树
.排序算法(自己设计)
-1.介绍最喜欢的语言与最流行的语言
-2.论文的组成
-3.什么是群
-4.如何开展自己的研究
-5.操作系统的分类定义
以下是复试题:
英语专业笔试(08年):1  写作:读研期间计划。一般包括有你选的方向,为什么选它,该领域目前发展态势,你怎样开始研究等(45分)。2英译汉两小段英文(5分)。
专业课笔试,以下是一些年份的真题(回忆版,不很全,但可以据此了解下出题重点和难易度,答案自已找)
2008:
一在1到300间(不含)整数集合中,求以下条件的个数:
   1 能被3  5和7整除;
   2 不能被3  5和7整除;
   3 (记不得了,但基本上会做前两个,后面都会做)
二 f:A->B g:B->P(A) g(b)={x|x属于A,f(x)=记不住了}
   若f是满射,证g是单射.
三 给定一图,求其邻接矩阵,可达矩阵,由邻接矩阵求通路数。
七 给一程序,写出输出结果(很简单略)
八 程序填空:水仙花数程序
九 写程序:一字符串第N个字符开始的所有字符复制到一新字符串
09
离散数学有5道题目:
1.通过文示图来求解
2.画关系图
3.写出生成树
4.图的矩阵(可达矩阵,通路,回路数)
5.有关图的证明.
这五道题比较简单,只要认真以前复试过的题目以及课本上基本的例题都会做.这里我就不去回忆具体的题目啦^^
编程题目有6道
1.通过一个循环来求1--10之间偶数和与奇数和,并在程序中故意放两个错误,让你改正
2.填写输出结果.有关指针和结构体的知识.
3.填写输出结果,程序是求一个矩阵的对角线这和,比较容易
4.填空.通过一个指针来输出一个数组的下三角
5.改正程序中的错误,题目我忘记了.
6.写一个字符串转换到整数的程序,比如输入字符串"-1234"时,程序要输出整数-1234
10
离散
一、1到300的300个整数,能被3,、5、7整除的个数是多少,不能被3、5、7整除的个数是多少等等
二、证明:f•(g•h)=(f•g) •h
三、一个图,求邻接矩阵,可达矩阵,长度为3的通路数等
四、证明:一个N阶含有n-1条边的图至少有一个度数为1的顶点
五、给了一个无向图,画出生成树
C程序
一、不记得了,关键在于理解printf(“%*d”,a,b)的含义
二、填空一个对称矩阵的程序
三、填空题:在一个串中找另一个串出现的次数
四、
写程序:在链表中查找值为A的结点,在其前面插入值为K的新结点。如不存在A结点,则插在表尾
五、用递归写程序
英语
一、    英译汉。关于云计算
二、    汉译英。接着去年校长的讲话。按这个趋势,明年可能还考
三、    作文。写一篇研究计划,包括研究领域,能做出什么样的改进,做出什么样的贡献等等
面试的题目是写在纸条上,从一叠中抽一张你答的:
1. 三分钟英语自我介绍
2. 英语提问与回答。
3. 面向对象的三个特征?
  封装,继承,抽象  向对象的三个基本特征是:封装、继承、多态。 封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”。被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程
4. 比较 unix 和 windows 有什么不同?
5. 你学过什么程序设计语言?当前最热门的语言是什么?它们各有什么特点?
Java面向对象:其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。 所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。Java语言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互操作。
面向对象的特征
  (1)对象唯一性。
  每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。
  (2)抽象性。
  分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。
  (3)继承性。
  继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。 继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重性。采用继承性,提供了类的规范的等级结构。通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。
  (4)多态性(多形性)
  多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。多态性允许每个对象以适合自身的方式去响应共同的消息。多态性增强了软件的灵活性和重用
6 CMM是什么:有哪五个层次
   CMM是是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。CMM分为五个等级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。
CMM是指“能力成熟度模型”,是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。它是在美国国防部的指导下,由软件开发团体和软件工程学院(SEI)及Carnegie Mellon大学共同开发的。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。
CMM是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。CMM分为五个等级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。 从当今整个软件公司现状来看,最多的成熟度为1级,多数成熟度为2级,少数成熟度为3级,极少数成熟度为4级,成熟度为5级的更是凤毛麟角。
其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件生产中的困难。CMM它是目前国际上最流行、最实用的一种软件生产过程标准,已经得到了众多国家以及国际软件产业界的认可,成为当今企业从事规模软件生产不可缺少的一项内容
7. 你选择研究的方向是什么?你对自己的专业有什么了解?你觉得应该怎样开始一项研究工作?
8. 为什么要考研?
9. OSI.体系结构?
是物理层,数据链路层,网络层,传输层,会话层,表示层和应用层
    TCP/IP参考模型共分为四层
1.应用层(application layer)
2.传输层(transport layer)
3.互连层(internet layer)
4.主机-网络层(host-to-network layer)
10. cs and bs 的优缺点?
BS和CS的区别以及优缺点
   C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。
B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。
C/S的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。缺点主要有以下几个:
只适用于局域网。而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。
客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。
对客户端的操作系统一般也会有限制。可能适应于Win98, 但不能用于win2000或Windows XP。或者不适用于微软新的操作系统等等,更不用说Linux、Unix等。
B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。


相关话题/