2019年华南理工大学软件工程专硕考研经验
先介绍一下我的基本情况,本科双非,主修会计,辅修软件工程,可以说是半个跨专业的,本科搞过一年ACM,项目经验也是初试结束后参加王道C/Linux短期班才有的一个项目。
考研成绩:zz:71,英语二:72,数学二:116,计算机基础综合(408):117,总分:376,初试排名:13,复试成绩:86.74,复试排名:3,综合排名:6。我是从3月份开始复习的,3月-6月零散的复习,7月-12月全部时间投入复习,把该推掉事情的全都推掉了,四科的复习时间比是数学:408:zz:英语=4:4:1:1。
下面说一下各科的复习情况:
zz:肖秀荣精讲精练、1000题,肖八肖四,王吉掌中宝、掌中贝,zz我从8月底开始复习,每天的时间1-1.5小时,8月-10月精讲精练和1000题过一遍,11月过一遍掌中宝和背掌中贝的马原部分,11月中下拿到肖八开始刷肖八,考前两周拿到肖四每天花5-6小时疯狂背肖四。肖四分析题务必全部背熟,背到的直接默写加结合一下材料,其他没背到的直接套肖四能套的话加打乱顺序抄材料就可以了。
英语二:本人英语较差,整个过程花的时间不是特别多,但是也是考了72,所以英语不好的千万别放弃,英语我做的工作有:每天花20分钟背单词,单词真是非常重要,读不读得懂文章其实就是单词的问题,然后背了几篇作文模板,做了历年英二真题,英二真题单词的重复率较大,所以真题中出现过的单词,不管是选项还是文章,务必全部背熟。
数学二:我是全程跟张宇,高数18讲,线代9讲,1000题,32年真题,八套卷四套卷。每天4小时左右学数学,不得不说,数学还是难度比较大,不花大量时间准备的话很容易翻车,10月份之前完成高数线代二刷,1000题一刷,10月份是真题月,一天一套真题,11月开始八套卷,四套卷,这个八四简直是做的我难受,简直就是劝退券,不过看今年的计算量,和八四也是有的一比的。
408:408真的是一个巨坑,对跨考的极度不友好,虽然本科学过一点,但是基本忘了,从头开始学真是感觉内容又多又杂。用到的材料是王道四本单科书,王道真题思路分析,王道最后8套卷。一开始4月-9月底花了5个月时间学完第一编,课本内容全看,课后习题只做选择题;9月底-11月上完成二刷,课本内容二刷,选择题只看第一遍错的,然后做大题。11月中-12月中刷真题和8套卷,一天一套,完成一刷。今年408难度较大,大题特别新颖,而且一道计组大题直接给的汇编代码叫你看然后分析做题,我没学过汇编,估计这题就扣了挺多分。
---------------------------------------------------------------------
以下是复试
笔试(复试权重30%):
一、填空题(40分,每空4分)
1.二叉排序树根据值查找结点,很基础的4个空
Typedef struct BSTree{
int data;
strcut BSTree*left,*right;
}*BSTree;
BSTree BSearch(BSTree root,int data){
if(root==NULL){
return (1)_______;
}
if(root->data==data){
return(2)_______;
}
else if(data<root->data){
return(3)_______;
}
else return (4)_______;
}
2.扑克牌洗牌,C++面向对象的使用,特别注意类里面this是指针,因此this后面不能跟.而应该跟-> ,有三个空应该用的->我都写成了. ,也是扣了很多分
二、算法分析题(40分,20分/题)
1.找一个数组中的最大最小元素,可以用分治的方法寻找,具体思路如下:想要寻找数组{a1,…,an}的最大最小值x,y;n<=2时直接得出;否则可以先找{a1,…,a(n/2)}的最大最小值x1,y1;再找{a(n/2+1),…,an}的最大最小值x2,y2;x=max(x1,x2),y=min(y1,y2);设n=2^k
(1)分析算法的时间复杂度的递推公式T(n)
(2)根据递推公式解方程求出算法时间复杂度
2.给出一个无向图
(1)用Kruskal算法描述边加入的顺序
(2)简述Kruskal算法基本思想
三、编程题(20分)
要求用C++或Java语言编写一个MyStack类实现栈的功能,要求包含出栈,入栈,判栈空
机试(复试权重30%):(编程语言不限)
一、读入xml文本,按成绩大小由大到小排序输出成txt,(40分)
Xml文本大致内容:
<grades>
<grade>
<id>2019001</id>
<name>张三</name>
<course>机器学习</course>
<score>85</score>
</grade>
<grade>
<id>2019002</id>
<name>李四</name>
<course>操作系统</course>
<score>90</score>
</grade>
<grade>
<id>2019003</id>
<name>王五</name>
<course>数据结构</course>
<score>95</score>
</grade>
</grades>
输出txt文本:
2019003,王五,数据结构,95
2019002,李四,操作系统,90
2019001,张三,机器学习,85
推荐用Java做,Java读xml会方便很多,由于我之前没用过Java读写xml,我是用C++fgets一行一行读匹配标签,然后fwrite写入txt,虽然存在中文编码方面的问题,但是看了机试成绩挺高的,估计基本要求实现了就能得高分
二、数据库编程
1.建三个表:课程表(课程id,课程名),学生表(学生id,学生名,性别),分数表(课程id,学生id,分数)(20分)
2.编写应用程序,要求有可视化界面,能进行数据库连接,和实现如下操作
(1)实现将xml文件导入数据库。注意题目说不是直接导入,而是要写代码实现导入。这题我不会,直接百度了一份代码copy下来,然后调了一会运行不了就直接注释掉不管了。(20分)
(2)实现根据课程名查看学生的成绩,成绩要求从大到小排序(20分)
今年的机试巨坑,真的是得xml者得天下,60分全出的xml,会读xml的瞬间逆袭,不过大部分也是死在机试了,风格较往年来说有较大变化,估计以后考xml的可能性还是比较大,所以请务必熟练掌握xml的读写操作
面试(专业面30%+英语面10%):
面试一共分四个组,每个组18人,分开面,我是抽到组里面倒数第二个面的,候考室里师兄师姐先收掉手机,然后从早上9点等到下午5点半才轮到我,我感觉我真是要憋死在候考室了。面试提问的一共6个老师,老师们都很好人,基本没怎么刁难我,进去先恭恭敬敬地把资料递给老师,我交的是简历和一些获奖证书;前15分钟是专业面,开始先用中文做自我介绍,然后老师叫我抽两个问题选一个回答,我抽到的问题是(1)求k的n次幂可以用什么方法,时间复杂度是多少 (2)端口号有什么作用?说出几个常用的端口号 第一题一眼印象这不是快速幂吗,不过想了一下,凭我的表达能力是解释不清楚了;然后就选择了第二题,一开始一时紧张,我说了端口号是用来进程间通信,有一个老师一脸惊讶,简直要把我吓得半死,后面也是勉强改过来了。然后大部分时间就是提问简历的,感兴趣的方向,机器学习基本算法有哪些,解释一下线性回归,Linux和Windows编程的区别,学过哪些数据结构与算法,毕业设计,还问了我一下简历上的项目的内容,大学的课程。最后5分钟是英语面:自我介绍,大学课程,学得最好的课程,毕业打算。英语面真是面的我尴尬,我说最好的课程是数学,然后一个老师叫我tellme more details about math,我想说学过高数,线代,概率论,但是英语我不会啊啊啊,然后就用了中式英语高数higher math,线代linear math,概率论probability math,也是勉勉强强混过去了,看了一下英语面的分数还挺高,所以就是即使不会也不要什么都不说,往靠近的方向说大概能听懂就行了。整常面试感觉老师特别友好,自信一点就好了,建议提前准备好简历,认真看看自己简历上写到的点哪些是有可能问的,提前准备好,这样主动权就在自己手里了。不然老师问的问题可能范围很大,就不太好答。
- 2022-02-15
- 2022-04-20
- 2022-04-10
- 2022-03-14
- 2022-05-11