笔者为苏州大学19届学生,大一下转入计算机科学与技术学院,在考试中取得了不错的成绩,现将题目与个人解析分享给大家,希望能对未来转专业的考生有所帮助。
一、试卷构成
(笔者仅保证题目是今年考试的题目,不代表未来的试卷构成)
选择题:0.5*40题,关于选择题,大多是基础知识,会有几题涉及到正则表达式、文件操作、异常处理之类学校or网课不怎么提及的内容,但这影响不大,分数主要是看大题,大题如果做的好了那选择题分数自然不会低,大题如果做不好那选择做的再好也没用。
大题:10*8题,这是大头,并且需要提及的是,如果大题中出现了语法错误导致编译不通过的话,那就直接0分了,相关的在考试前一天发的文档中会有提及,考试时老师也会有所说明,但每年仍然会有考生犯这种失误,其中不乏选择题没怎么错的学生,非常可惜。
考试时间:三个小时,其中选择最多一小时,但可以提前交选择,选择为闭卷,编程题为开卷,可以携带书和纸质材料(但事实上没啥用,如果你抱着现学现卖的想法那你一定做不完),开卷主要就是不用记很多的公式和语法,但你仍要做到熟悉语法和公式
二、大题题目&简析
![b47a549dbbdb98a2e7cb746b2a39b741.png](https://i-blog.csdnimg.cn/blog_migrate/89025eb629c6b51fcc7fe0614c1a7ba2.png)
这是一道签到题,也就是说主要目的是送分,注意一下大小写就行,没啥好说的
def
![2fb894f40e623aa465a0a46a999bca2e.png](https://i-blog.csdnimg.cn/blog_migrate/658f742885ac2e47a3ed0b26e4310384.png)
这同样是一道签到题,能读懂题就能做出来
def
![f7e6f74e694116fcbbe48efbb91a8ce0.png](https://i-blog.csdnimg.cn/blog_migrate/4640b9cf23d0018146e166377577407e.png)
这题就不算送分题了,思路是先将小数转化为分数,比如11.25125化作1125125/100000,接着求分子和分母的最大公约数即可,简单的数学函数可以适当地记忆一点,比如这里的GCD,还有就是一定要试一试,换不同的输入,能发现不少程序的问题
def
![3158ad38128271cdf945be6fc0cd8565.png](https://i-blog.csdnimg.cn/blog_migrate/911a7b4a43c90fb0647f2a6f769131b8.jpeg)
这个题看似很有难度实际上不涉及到算法之类,只需要掌握基本的语法知识即可,大家可以注意一下利用字典来统计单词和创建函数来排序的程序模块,都是很实用的
import
![d5492267e80b2c6c58eab6653ab67571.png](https://i-blog.csdnimg.cn/blog_migrate/0ef3b42e98beedcada6d1bef6f0f0232.jpeg)
笔者个人认为这是这次考试里比较难的题了,对没有做过的同学来说是一道坎,但这题在leetcode的上是有原题的(https://leetcode-cn.com/problems/spiral-matrix/)笔者之前刷过原题所以考试的时候做的比较顺利,下面写的是我自己的一个方法,比较冗长,感兴趣的同学也可以自己去看看leetcode上面的解法,比我写的要详细和可读不少
def
![9b2fc868315b78cd4a93351dc3840584.png](https://i-blog.csdnimg.cn/blog_migrate/8a41f7919f1f649b9e4487800c8f5245.jpeg)
这道题也是看着复杂其实并不难,用python做算比较容易的了
def
![e9185972123cd3694a76ee50f37fb69c.png](https://i-blog.csdnimg.cn/blog_migrate/95f6eac63090097e727b202fbdd9ced2.png)
这道题算是比较考验算法的一道题了,主要运用了“剪枝”思想,具体可以参考leetcode上的这道题(https://leetcode-cn.com/problems/combination-sum/)算是一个简化版,还有python里global的应用也算一个难点,需要注意一下
def
![80ee79f986f6fb2c2b143967946cb0ea.png](https://i-blog.csdnimg.cn/blog_migrate/d928d7015ae7b9123b3ff4b23ef1441b.png)
这道题可以说是压轴题,光看题目中给的样例似乎不难,但实际上可能有很多奇奇怪怪的输入,比如“23,54.578,678,76”之类,如果不停的用判断之类整个程序会显得非常冗杂(事实上学校的用例都很简单,笔者考场上就是慢慢写判断,很多情况没有考虑这题仍然拿满了)最简单的方法就是用正则表达式(本人水平不够,代码应该还能优化)
import
(代码是笔者下考场后无聊写的,不保证全对,有错的话欢迎联系我修改)
三、学习顺序
由于今年疫情,转专业考试推迟到了6月份,正常来说转专业应该是在四月份左右,这时候大家学校里的编程课应该还没学完或者说根本就没有编程课,所以主要要靠大家自学。给大家笔者自己的学习顺序供大家参考:
Python MOOC(北理工)--编程基础入门
《C Primer Plus》--编程基础深入
《数据结构与算法》&对应网课 --编程知识深入
sit.suda.edu.cn --熟悉选择题
Leetcode(至二叉树)--编程实践
关于leetcode:这是一个很好的平台,希望大家能利用好,Hard的题目不用做,Medium的想半个小时如果还不会做就看答案,Easy一定要会做。上文提到的转专业考试的题目涉及到算法最难的也就是5和7,这也仅仅是Medium的难度。
四、是否要转专业
关于是否要转专业,我的答案是看你自己,计算机这一行是竞争很激烈的行当,大家都想进来,内卷也挺严重的,如果不是真的喜欢的话最好还是谨慎考虑。苏大也有很多别的专业,不乏那种比较稳定的,比如医学和师范,希望大家认真思考再做决定。
如果你是还没有填报志愿的,分数恰恰够上苏大,那我的建议是换一个学校,首先你一定分到的专业是苏大最没人报的专业,其次这些专业可能在阳澄湖校区,比较偏,将来转专业换宿舍啥的会有诸多不便,而且你报的专业可能不是靠近计算机的,这就意味着你要补很多的课,甚至有延毕的可能,谨慎考虑。本省人可以考虑的有南师,南农,江南,矿大,南邮,外省人建议别来江苏上学,江苏的学生太tm擅长考试了。