09年华科图像所复试全记录——为后来者铺路
查看(1349) 回复(0) |
|
jevin
|
发表于 2010-08-24 20:06
楼主
2010年研究生考生刚结束,大家接着就要准备复试了!!听说为了方便学生找工作,今年
考研复试时间提前了!为了大家过个好年,我把我09年图像所复试的经验和试题写了下来 ,希望能给大家以帮助!!同时也收集了目前能够找到的图像所往年的复试资料,方便广 大学生! 图像所的复试是重要,从它占最后总成绩的40就可以看出!!同时华科的复试也是很正规 的!!这点大家放心!!希望大家重视!!大家可以从09年的初试名单和最后的入取名单 就可以了解一二(初试名单和入取名单都是根据成绩由高到低进行排列的,可以从图像所 主页中的教务专栏进行查询)!! 以下内容写于我09年4月12号,我刚刚结束复试考试!! 09年华科图像所复试全记录 我参加的是09年的图像所复试,下面说的保证是真题 笔试(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、 实现查找子串的函数:函数 int fun(string mainstring,string substring),该 函数的功能是查找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的值. BUFFER1 DW 1234 BUFFER2 DW 2345 BUFFER3 DW 3456 .... MOV AX BUFFER1 PUSH AX POP DS MOV AX BUFFER2 PUSH AX POP SS MOV AX BUFFER3 PUSH AX POP SI MOV AX [SI] .... 内存单元 ... 15796 15797 ... 值 ... 01H 02H ... 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),给出方阵,如 1 4 2 3 2 3 4 1 4 1 3 2 3 2 1 4 编一程序,判断此矩阵是否满足要求 (2) 有一矩阵 3 ? ? ? ? 2 ? ? ? 4 1 ? ? ? 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) int Num; (2) float Seq; (3) BOOL Flag; (4) char *psWord 2.编写完整程序 (1)编程实现手机键盘上的字母和数字互译(A,B,C->2;……;W,X,Y,Z->9) (2)不使用if 和 while 等判断语句,实现上面功能。(提示:string str=”2223334445 5566677778889999”) 3.K(2<=K<100)个整数,将这个K个数分成两组,求这两组数的和的差的绝对值的最小 值的最后算法。请写出完整程序。 《英语听力》 短对话:和六级很类似,唯一不同的是短对话是多选。 长对话: eg L(长段子的对话):4min 其实也就是发生在美国校园的故事: 学生会的一个leader (Woman,很牛!)采访一个普通大二学生(Man,很挫!)围绕M 的课程(computer science),学习环境(dorm and labrary),个人兴趣(music an d hang out),奖学金(M说很少,低于¥1000),还有对学校的建议(希望开设哪些课 程和服务--男的说 多开设art类 和 job 指导类),减少学生开会时间和次数。 最后,W要求M加入学生会,M委婉的拒绝,并表示考虑以后再说~ 《英语口语》 全程录音,一般会问你这些问题: 1. self intro (1~1.5min) 2. Topic and Q&A topic: family members; Hometown; hobby(reading/sports); Study Aim in the Gradute School; Future caree(to be a boss or a worker/coder/engineer, or sth else...) Admireable person; woderful place; pop-star (or famous peson); the relationship bewteen study and research (why do u quit your job to go b ack to school for further study) 这个好像是06年的上机题(比较简单): 1 生成一个长度为21的数组,依次存入1到21 2 建立一个长度为21的单向链表,将上述数组中的数字依次存入链表每个结点中 3 将上述链表变为单向封闭(循环)链表 4 从头结点开始数,将第17个结点删除,将它的下一个结点作为新的头结点 5 重复上述过程,直到该链表中只剩一个结点,显示该结点中存入的数字 下面是我自己写的,大家可以参考参考。 #include <stdio.h> typedef struct Node //链表的结构定义 { int data; struct Node *next; }LNode,*LinkedList; LNode *CreatList(int a[],int n) //给定一个数组生成一个带头结点的单链表 { int i; 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; p->next=Head->next; //逆序,头插法 Head->next=p; } return Head; } void PrintList(LinkedList list) //打印链表 { LNode *p; p=list->next; while(p!=NULL) { printf("-4199144",p->data); p=p->next; } printf(" "); } void PrintCircleList(LinkedList list) //打印循环链表 { LNode *p; p=list; do { p=p->next; printf("-4199144",p->data); } while (p->next->data!=list->next->data); printf(" "); } void Convert(LinkedList list) //将单链表变成循环链表 { LNode *p; p=list->next; while(p->next!=NULL) { p=p->next; } p->next=list->next; } void DeleteNode(LinkedList list,int n) //删除指定位置的节点 { LNode *p,*q; int i; 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; } void GetLastNode(LinkedList list,int n) //循环删除节点 { LNode *p,*q; int i; i=n; p=list->next; for (int j=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); } } void main() { int num[21],i; for (i=1;i<22;i++) { num[i-1]=i; } LinkedList head; head=CreatList(num,21); //生成链表 PrintList(head); //打印输出 Convert(head); //将单链表转换为循环链表 DeleteNode(head,17); //删除第17个节点 PrintCircleList(head); //打印循环链表 GetLastNode(head,17); //循环删除第17个节点,直到剩下最后一个节点,输出节点数 据 } |
回复话题 |
||
上传/修改头像 |
|
|