整理历年中山大学计算机研究生复试题03年11年笔试+面试.docx
《整理历年中山大学计算机研究生复试题03年11年笔试+面试.docx》由会员分享,可在线阅读,更多相关《整理历年中山大学计算机研究生复试题03年11年笔试+面试.docx(58页珍藏版)》请在冰豆网上搜索。
![整理历年中山大学计算机研究生复试题03年11年笔试+面试.docx](https://file1.bdocx.com/fileroot1/2023-6/13/21e6c995-516a-49ac-957f-ccd22f37e0a5/21e6c995-516a-49ac-957f-ccd22f37e0a51.gif)
整理历年中山大学计算机研究生复试题03年11年笔试+面试
成大事者,在孤独中享受寂寞,从寂寞中厮杀黎明
历年中大计算机研究生复试题03年-11年
11年
这次参加复试的有100+,学术录取46人,专硕24人
首先咱们谈谈笔试
英语题型是:
中译英(校长的就职演讲),英译中(关于算法方面的相对中译英难度要低一些,没有什么特别难翻译的句子),作文(给一幅图关于PopulationReferenceBureau)
专业笔试:
离散总共五道题,
第一道关于一阶逻辑求主析取范式、主合取范式、真值表(只要看了书,计算细心点,这道题一般能拿满分)
第二道对循环关系有如下定义:
对于A上的关系R,若对任意属于R且属于R,则属于R.
证明:
R是自反和循环关系当且仅当R是等价关系。
(我当时不知道什么是循环关系,悲剧了)
第三道考得是集合的求解,思想与课本上的200能被3、5、7整除解法类似,(文氏图法或都公式法)
第四道考得Dijkstra算法,初试数据结构是重点章节,问题不大
第五道证明对于任意一个具有6个顶点的简单图,要么它包含一个三角形,要么它的补图包含一个三角形(这个题当时很晕,不知如何下手)
C语言:
第一道是关于全局变量和局部变量的,要求写出程序结果,只要好分析,做出来不难
第二道是关于静态变量的,要求写程序结果,只要掌握静态变量只初始一次就可以了
第三道求从串中找子串的,只有三个空
第四道是进行分类,如12a3bc4,要求输出为1234abc
第五道设计一个程序,从in.txt读入数据,对每一行的数字都单独按从大到小的顺序排序,
将结果输出到out.txt。
每一行的数字第一个字符是数字标志,每个数字之间用空格隔开。
这次笔试相对往年离散比往年的难度要大些,普遍考得不好,本以为文件会考哪知,这次考了,所以建议大家在复习还是把每个要求的知识好好看一遍
对于面试
首先老师要我自我介绍,然后用英语问了一个我的优点和缺点
随后,老师开始进行专业知识的考查,有个考官问我选的专业是什么,然后针对我选的专业问我ERP是什么,BPR有哪几种类型(我当时只是从网上了解了一下,哪记得这么多,我吱吱唔唔了半天,那个老师微笑地对我说不知道就不知道,知道就知道)
接着又问了我的学校(其实我们学校不是很好)但老师并没因此而认为你不行,至少我可以证明,中大老师绝不会有学校歧视,他们面试非常地公平。
然后,问了一个关于软件工程有哪几种模型,又问我做项目时用得哪种模型。
软件开发的流程,而后问我需求分析主要是干什么的,当时回答成了概要设计的去了。
接着,又问我哪门学得好点,我说数据结构,我本以为老师会问数据结构中的内容,哪知却问我,学数据结构应该要学哪些课程,我当时有点晕,(比如高等数学、离散数学、线性代数、C语言等等)其实,这是老师在考验的我们的反应能力。
这道回答得不好。
最后,问了一个有关离散的问题,先是问知不知道等价关系,我说完后,老师竟然问我老乡是不是等价关系,我又晕了,我说不是,然后,老师就问我为什么,我就按照定义去说,幸好,有个男老师帮我解围,按照老师的提示顺利答出此题。
另外,我听同组其它同学面试的题目,有些很灵活,比如一根铁丝紧紧围隹地球,只增加一米,问一只猫能通过吗?
还有像哈夫曼树、结构化程序设计等等
希望,我所写的对大家有点帮助,总得来说,复试没有想像的那么恐怖,但也不是那么容易,只要保持平静的心态就行了。
03
2003:
一程序,C语言,有关递归,特烦
二求最长公共子串,程序填空形式(略)
三迷宫,自己写程序
八离散部分
1)R是A上的一个对称和传递的关系,对于任意a属于A,都存在一个b属于A,使得属 于R,证明R是一个等价关系。
2)是一个半群,对于任意a,b属于G,a!
=b,则a*b!
=b*a。
试证:
对任一元素a属于 G,有a*a=a。
3)证明一个图G,它顶点的最小顶点度不小于2,证明它存在圈。
4)求(PVQ)<->P主析取范式。
04年中山大学计算机系复试笔试试题
inttestNum(intNumber,intradius)
{
intmaxpower,leftpower,rightpower,leftNum,rightNum;
leftpower=0;
rightpower=radius;
while(Number/rightPower>radius) leftpower*=radius;
while(leftpower>rightpower)
{
leftNum=(Number/leftpower)%radius;
rightNum=Number/radius;
if(leftNum!
=rightNum) return0;
leftpower=leftpower/radius;
rightpower=rightpower*radius;
}
return1;
}
main()
{
intNumber,result1,result2;
printf(“thenumberis”);
for(Number=700;Number<=730;Number++)
{
result1=testNum(Number,10);
result2=testNum(Number,2);
}
if(result1=1&&result2=1) printf(“%d”,Number);
2.程序填空(10分)
此程序主要完成的功能是:
把一个整数W分解成不多于N个整数的和,且这些整数只能取自数组b[],程序如下:
(程序实在想不起来了,只记得程序是用递归完成的,总共有5个空,我认为都不难)。
3.编写一段函数,满足以下要求:
将字符串S1中出现的所有S2都替换成S3,并且不损坏字符串S1。
函数原型为:
charexchange(charS1,charS2,charS3) (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.写出以下程序的输出.
#defineMAXN100
inta[MAXN],r[MAXN]
nd(intn)
{inti,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]a[k]:
r[k];
r[k+1]=r[k]-a[k+1];
k++;
}
}while(k>0)
}
main()
{
intdata=4;a[0]=data;
nd(data);
}
2.本程序用回溯算法来产生由0或1组成的2m个二进位串,使该串满足一下要求.
视串为首尾相连的环,则由m位二进制数字组成的2^m个子序列,每个可能的子序列都互不
相同.例如,如果m=3,在串11101000首尾相连构成的环中,由3位二进制数字组成的每个可能
的子序列都在环中恰好出现一次,它们依次是111,110,101,010,100,000,001,011,如图所示:
1
0 1
0 1
0 0
1
#defineN1024
#defineM10
intb[N+M-1];
intequal(intk,intj,intm)
{
inti;
for(i=0;iif(b[k+i]____
(1)____)return0;
return1;
}
intexchange(intk,intm,intv)
{
while(b[k+m-1]==v)
{
b[k+m-1]=!
v;
____
(2)_____
}
____(3)_____=v;
returnk;
}
init(intv)
{
intk;
for(k=0;k}
main()
{intm,v,k,n,j;
printf("Enterm(1scanf("%d%d,&m,&v);
n=0x01<v);k=0;
while(__(4)__ for(j=0;j if(equal(k,j,m))
{
k=exchange(k,m,v);
j=__(5)__;
}
for(k=0;k}
尾数不
3.自然数中有一类数被称为"自守数".所谓自守数就是自已和自己相乘以后得到的数,
变.例如:
25×25=625.76*76=5776请编写程序:
用户输入m,n(10得所有自首数并输出,每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写的程序,仅供参考^_^)
longGetHelpNum(longnum)
//用来得到帮助测试的数字,例如11返回100,999返回1000
{longresult=10;
while(num/10>0)
{result*=10;num/=10;}//这里num只是一个副本,所以不会改变原变量
returnresult;
}
intTest(longnum)
//用来测试一个数是否是自首数,是返回1,不是返回0
{if((num*num-num)%GetHelpNum(num)==0)return1;
elsereturn0;
}
voidmain()
{cout<<”Enter2numbers:
”;
longm,n;
cin>>m>>n;//这里没有做数值检查,有兴趣可以加上去
longcount=0;
for(longnum=m+1;num{if(Test(num)==1)
{count++;cout< 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->Bg:
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)多态性(多形性)
多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。
不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。
多态性允许每个对象以适合自身的方式去响应共同的消息。
多态性增强了软件的灵活性和重用
6CMM是什么:
有哪五个层次
CMM是是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。
CMM分为五个等级:
一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。
CMM是指“能力成熟度模型”,是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。
它是在美国国防部的指导下,由软件开发团体和软件工程学院(SEI)及CarnegieMellon大学共同开发的。
CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。
CMM是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。
CMM分为五个等级:
一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。
从当今整个软件公司现状来看,最多的成熟度为1级,多数成熟度为2级,少数成熟度为3级,极少数成熟度为4级,成熟度为5级的更是凤毛麟角。
其所依据的想法是:
只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件生产中的困难。
CMM它是目前国际上最流行、最实用的一种软件生产过程标准,已经得到了众多国家以及国际软件产业界的认可,成为当今企业从事规模软件生产不可缺少的一项内容
7.你选择研究的方向是什么?
你对自己的专业有什么了解?
你觉得应该怎样开始一项研
究工作?
8.为什么要考研?
9.OSI.体系结构?
是物理层,数据链路层,网络层,传输层,会话层,表示层和应用层
TCP/IP参考模型共分为四层
1.应用层(applicationlayer)
2.传输层(transportlayer)
3.互连层(internetlayer)
4.主机-网络层(host-to-networklayer)
10.csandbs的优缺点?
BS和CS的区别以及优缺点
C/S又称Client/Server或客户/服务器模式。
服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。
客户端需要安装专用的客户端软件。
B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或InternetExplorer,服务器安装Oracle、Sybase、Informix或SQLServer等数据库。
浏览器通过WebServer同数据库进行数据交互。
C/S的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提