华中科技大学 图像所复试题目.docx
《华中科技大学 图像所复试题目.docx》由会员分享,可在线阅读,更多相关《华中科技大学 图像所复试题目.docx(16页珍藏版)》请在冰豆网上搜索。
华中科技大学图像所复试题目
2010年研究生考生刚结束,大家接着就要准备复试了!
!
听说为了方便学生找工作,今年
考研复试时间提前了!
为了大家过个好年,我把我09年图像所复试的经验和试题写了下来
,希望能给大家以帮助!
!
同时也收集了目前能够找到的图像所往年的复试资料,方便广
大学生!
图像所的复试是重要,从它占最后总成绩的40%就可以看出!
!
同时华科的复试也是很正规
的!
!
这点大家放心!
!
希望大家重视!
!
大家可以从09年的初试名单和最后的入取名单
就可以了解一二(初试名单和入取名单都是根据成绩由高到低进行排列的,可以从图像所
主页中的教务专栏进行查询)!
!
另外,现在华科校内以及网上有很多叫卖图像所复试资料的广告,希望大家不要亲信!
!
我就上过当!
!
图像所复试资料基本上到白云黄鹤的IPRAI版内都可以找到!
!
希望大家切记!
!
切记!
!
以下内容写于我09年4月12号,我刚刚结束复试考试!
!
09年华科图像所复试全记录
我参加的是09年的图像所复试,下面说的保证是真题,有什么疑问的可以联系我。
qq:
10
4914765,邮箱:
leo5412@。
笔试(40分):
上午8点开始笔试,考试科目是《微机原理》,复试细则上面的要求是“不指定参考书。
考
试内容不依赖CPU具体类型,着重考察考生在基本概念、基本原理和基本技能方面掌握的情
况。
”因此虽然说考的是微机原理,但更像《计算机组成原理》,对于初试专业课选择计
算机综合的考生,会比较容易些。
在准备复试时,只需要再看看汇编语言就可以了。
考试
形式是6道问答题,总共40分。
基本上都有一道用汇编编程题,一道涉及存储器与CPU连接
的题目,另外一个比较重要的知识点是IO设备与主机的信息传送的控制方式,即程序控制
、程序中断以及DMA,这个知识点几乎年年都考过,要么单独考一个方面,要么把3个拉着
一起考。
下面是09年的题目
1、简述CPU的主要组成部件,以及各部件的主要功能。
(基本知识点)
2、叙述你熟悉的一种型号CPU的存储器组织方式(编址及寻址的大小和方式)。
(建议以
8086/8088型号的CPU来说明,比如它有20个地址线,1M的寻址范围,分物理地址和逻辑地
址,以及它们之间的转换,至于寻址方式有立即、直接、间接、寄存器、相对、基址等等
)
3、汇编编程:
数组BUF包含1024个数据(字符型DB),编程求这些数据的均值和标准差。
(我就求出了均值,好像很多人都和我一样。
。
。
。
。
。
。
)
4、比较程序查询、程序中断以及DMA,并简述它们的优缺点。
(基本知识点)
5、说明静态RAM和动态RAM的区别以及各自适用的范围。
(基本知识点,静态一般用做缓
存,动态一般做内存)
6、现有128k*8位的内存,如何实现256k*32位的内存,要求画出原理图。
(先4块128k*8
位进行位扩展成组成128k*32位一组,然后这样的2组进行字扩展成256k*32位,共需8个12
8k*8位,图略)
上机题目(20分):
笔试考完后,就接着进行上机。
不知道什么原因,今年复试上机不是在电脑上实际操作,
而是直接在答题纸上写,可能有很多人很不适应这种考试方式吧。
总共有5道题,时间为7
5分钟吧。
虽然题目都很基本,但还是感觉时间有点紧。
我做完后再大致检查了一遍,就到
时间了。
下面是题目:
1、写出一个排序算法,并说明它的时间复杂度和空间复杂度。
(数据结构中提到的排序
算法很多,随便写出一个就行了,我写的是冒泡算法,很初级)
2、一个文件中有一个float型的数组,要求在该数组中查询指定的float型数据是否存在
。
并说明你的查询算法的时间复杂度。
(注意文件的打开和关闭操作,另外建议用fread函
数,先将文件中的数组取出来,然后再进行查找)
3、实现查找子串的函数:
函数intfun(stringmainstring,stringsubstring),该
函数的功能是查找mainstring中是否包含子串substring,如果存在函数返回mainstring中
第一次出现substring的首字符的位置,如果不包含则返回-1。
(建议先求出两个串的长度
,如果mainstring的长度比substring的长度小,那么就没有比较的意义了)
4、现有2个有序的数组,要求把这2个数组合并成一个有序的数组,要求用链表来实现。
(非常基本的链表操作题,学过数据结构的同学看到后,可能会偷偷笑出来)
5、求出Fibonacci数列的第n个数据,要求用递归和非递归两种方式实现。
(Fibonacci数
列应该不陌生吧,递归算法很简单,很多资料上都有;至于非递归的算法,我的做法是用
一个数组存储该数列,那么a[n]=a[n-1]+a[n-2])
听力口语(20分):
下午2点开始进行听力和口语:
1、听力的形式是听录音然后做题。
先听10个短对话,根据对话的内容和问题在答题纸上
选出答案,形式与英语4、6级一样;然后是听对话填单词,共10个空,先放一段对话,答
题纸上是该对话的摘要,当然一些重要的位置空了出来,需要你根据对话来填上。
录音就
放一遍,一共20个题,每题0.5分,共10分。
抱怨下,这次放的录音效果很不好,每段对话
中间基本没有停顿,发言也很难听,我基本上是属于靠感觉做的,不过填单词还是写出了
7、8个吧,不过大家好像都差不多,呵呵。
2、这次口语分成了3个小组来进行,参加考核的老师都是图像所自己的老师,所以气氛很
融洽。
形式一般都是先要求你进行一下自我介绍,然后老师就根据你的自我介绍来问问题
,一般2、3个问题。
如果你是来自外地,就可能问下你的家乡,有什么风景和特长等等;
如果你介绍你喜欢踢足球,就可能问你最喜欢的球星是什么,为什么喜欢他等等;如果你
是工作后来考研的,就会问你为什么辞职来考研,以及为什么选择华科等等。
总的感觉还
是很轻松的,希望大家这方面的压力不要太大,一般5、6分钟就完了。
面试(20分):
第二天早上8点半开始面试。
这次面试是根据你所填报的方向和导师,来分别进行分组面试的。
面试官一般都是该方向
的教授和副教授了,阵容很大,好像有5、6个人。
至于面试的内容,好像不同分组之间差
别很大,当然首先还是要你自己先介绍一下。
我所在的这个组,导师问的主要内容都是你
的一下学习、生活以及工作方面的经历等等,涉及到的专业知识方面很少,不过另外有个
组的导师好像特喜欢问这方面的知识,比如你的毕业设计、做过什么项目、编程方面的知
识等等。
当然了,老师也不会特意的为难你,也不可能问那些专业性很强的问题。
我的建
议就是实话实说,知道就是知道,不知道就是不知道。
关于面试的时间,好像不同的组相
差很大,有的组可能10分多钟才面试完一个人,而有的组可能5、6分钟就可以面试完一个
了。
总的来说,复试还是非常重要的,尤其是笔试和上机,因为其他两项要拉出差距很难的,
而且老师还是很看重笔试和上机的。
再说下笔试,从图像所往年的题目来看,虽然说的科目是微机原理,但还是建议大家看
看《计算机组成原理》这个本书,因为该书主要介绍的就是计算机的一些基本的原理、概
念以及组织结构方面的知识,是不依赖任何一款CPU的,这与图像所的要求是一致的,重点
看看存储器、I/O设备、CPU的结构和功能这几个方面。
当然微机原理还是要看下,建议主
要看下8086/8088的组织结构和工作原理。
至于汇编编程,从这几年的考题来看,所考的都
是给你一段数组数据,然后对该段数据进行处理,比如找出最大和最小值或者求出它们的
均值、方差或者标准差什么的。
因此这方面的要求不是很高的,会编基本的程序,把以前
的考试题做一遍就可以了。
另外,这次上机是在纸上做的,而且事先大家都不知道,可能有些同学会一时不很适应。
希望大家能做好这方面的练习,谁知道下次还是不是这样呢,呵呵。
这次上机题目很基础
,但涉及面广,需要大家有很强的基本功,值得说的是数据结构这们课还是很重要的。
下面是我收集的往年的图像所的笔试和上机资料(都是从图像所主页和白云黄鹤上的IPRA
I讨论区找的,所以大家一般就到这两个地方查资料就行了,绝对真题!
^-^):
08年复试试题:
微机原理:
1.求AX的值.
BUFFER1DW1234
BUFFER2DW2345
BUFFER3DW3456
....
MOVAXBUFFER1
PUSHAX
POPDS
MOVAXBUFFER2
PUSHAX
POPSS
MOVAXBUFFER3
PUSHAX
POPSI
MOVAX[SI]
....
内存单元...1579615797...
值...01H02H...
2.汇编编程实现从4096个字节数中找出最大的三个和最小的三个,然后显示出来.
3.什么叫计算机存储器分级结构?
为什么采用计算机存储器分级结构?
4.1)中断响应的时间和条件.
2)中断响应一般执行那些操作.
3)中断响应允许嵌套,怎么设置.
5.分析以下器件地址范围.
6.分析以下四位数据缓冲器的逻辑.
c语言上机
1.求2个矩阵A和B相乘的结果(提示:
先判断所给的2个矩阵是否可以进行相乘!
)
2.有一个4×4的方阵。
要求:
每个元素必须是1,2,3,4其中的一个,而且每一行不能重
复,例如不能有2个1等,每一列也不能重复。
而且将矩阵分成4个2×2的矩阵,每个小方阵
也不能有重复。
(1),给出方阵,如
1423
2341
4132
3214
编一程序,判断此矩阵是否满足要求
(2)有一矩阵
3?
?
?
?
2?
?
?
41?
?
?
3?
编一程序,求出矩阵其他的元素。
.2007年复试试题真题!
!
《微机原理》
1.汇编语言程序分析
……
BUFFER1
BUFFER2
BUFFER3
BUFFER4
……
关键是要记得各种寻址方式和段寄存器的分配方式!
计算相应的地址。
2.汇编编程实现求10个数的均值和方差。
3.说明为什么要采用中断技术?
并比较中断与子程序调用的异同!
4.说明DMA模式的基本实现过程。
并论述DMA方式下与存储器、I/O口之间传递过程。
5.片选译码,得出每个芯片的译码地址范围。
大多书上都有的经典题目。
6.普通存储器(没有给具体型号)管脚之间逻辑分析。
(4个A脚,4个D脚,1个CLK脚,
一个CS脚)
《C语言》
1.分别写出下列部分与了“零值”比较的代码
(1)intNum;
(2)floatSeq;
(3)BOOLFlag;
(4)char*psWord
2.编写完整程序
(1)编程实现手机键盘上的字母和数字互译(A,B,C->2;……;W,X,Y,Z->9)
(2)不使用if和while等判断语句,实现上面功能。
(提示:
stringstr=”2223334445
5566677778889999”)
3.K(2<=K<100)个整数,将这个K个数分成两组,求这两组数的和的差的绝对值的最小
值的最后算法。
请写出完整程序。
《英语听力》
短对话:
和六级很类似,唯一不同的是短对话是多选。
长对话:
eg
L(长段子的对话):
4min
其实也就是发生在美国校园的故事:
学生会的一个leader(Woman,很牛!
)采访一个普通大二学生(Man,很挫!
)围绕M
的课程(computerscience),学习环境(dormandlabrary),个人兴趣(musican
dhangout),奖学金(M说很少,低于¥1000),还有对学校的建议(希望开设哪些课
程和服务--男的说多开设art类和job指导类),减少学生开会时间和次数。
最后,W要求M加入学生会,M委婉的拒绝,并表示考虑以后再说~
《英语口语》
全程录音,一般会问你这些问题:
1.selfintro(1~1.5min)
2.TopicandQ&A
topic:
familymembers;
Hometown;
hobby(reading/sports);
StudyAimintheGraduteSchool;
Futurecaree(tobeabossoraworker/coder/engineer,orsthelse...)
Admireableperson;
woderfulplace;
pop-star(orfamouspeson);
therelationshipbewteenstudyandresearch(whydouquityourjobtogob
acktoschoolforfurtherstudy)
这个好像是06年的上机题(比较简单):
1生成一个长度为21的数组,依次存入1到21
2建立一个长度为21的单向链表,将上述数组中的数字依次存入链表每个结点中
3将上述链表变为单向封闭(循环)链表
4从头结点开始数,将第17个结点删除,将它的下一个结点作为新的头结点
5重复上述过程,直到该链表中只剩一个结点,显示该结点中存入的数字
下面是我自己写的,大家可以参考参考。
#include
typedefstructNode//链表的结构定义
{
intdata;
structNode*next;
}LNode,*LinkedList;
LNode*CreatList(inta[],intn)//给定一个数组生成一个带头结点的单链表
{
inti;
LNode*Head=(LNode*)malloc(sizeof(LNode));
LNode*p;
Head->next=NULL;
for(i=n-1;i>=0;i--)
{
p=(LNode*)malloc(sizeof(LNode));
p->data=a[i];
p->next=Head->next;//逆序,头插法
Head->next=p;
}
returnHead;
}
voidPrintList(LinkedListlist)//打印链表
{
LNode*p;
p=list->next;
while(p!
=NULL)
{
printf("%-3d",p->data);
p=p->next;
}
printf("\n");
}
voidPrintCircleList(LinkedListlist)//打印循环链表
{
LNode*p;
p=list;
do
{
p=p->next;
printf("%-3d",p->data);
}while(p->next->data!
=list->next->data);
printf("\n");
}
voidConvert(LinkedListlist)//将单链表变成循环链表
{
LNode*p;
p=list->next;
while(p->next!
=NULL)
{
p=p->next;
}
p->next=list->next;
}
voidDeleteNode(LinkedListlist,intn)//删除指定位置的节点
{
LNode*p,*q;
inti;
i=n;
p=list->next;
while(i!
=2)
{
p=p->next;
i--;
}
q=p->next;
p->next=q->next;
free(q);
list->next=p->next;
}
voidGetLastNode(LinkedListlist,intn)//循环删除节点
{
LNode*p,*q;
inti;
i=n;
p=list->next;
for(intj=1;j<20;j++)
{
while(i!
=2)
{
p=p->next;
i--;
}
q=p->next;
p->next=q->next;
free(q);
list->next=p->next;
p=list->next;
i=n;
PrintCircleList(list);
}
}
voidmain()
{
intnum[21],i;
for(i=1;i<22;i++)
{
num[i-1]=i;
}
LinkedListhead;
head=CreatList(num,21);//生成链表
PrintList(head);//打印输出
Convert(head);//将单链表转换为循环链表
DeleteNode(head,17);//删除第17个节点
PrintCircleList(head);//打印循环链表
GetLastNode(head,17);//循环删除第17个节点,直到剩下最后一个节点,输出节点数
据
}