真题回忆

笔试

和大部分人一样选了数据库和算法,考的一般,主要讲一下大题考的地方。

  • 数据库:第一题是考用选择投影链接那些运算拼出来他要的查询条件,然后写SQL语言,特别是SQL那边查询很复杂,建议掌握相关子查询可以大量减少书写量。
    第二题是给你两个事务,让你组一个可串行序列,然后又问你如果遵循2PL怎么排序列可能会死锁。想不到这章考的这么细。
    第三题是标准ER图,瞎画就完事了。

  • 算法:算法是10道选择(102)和两道设计(152)。选择坑的是考了个NP和P问题的关系,大题第一个就是个二分查找,第二题是考回溯算法。我一直以为回溯
    很蠢,就是个树的DFS,结果真正写起伪代码发现还是有点问题,看来回溯还是要认真看一下实现步骤的。

机试

今年机试爆炸,考了文件操作,md这谁记得啊,我好不容易从include文件夹检索所有头文件找到了要用fstream,结果死活不能把流对象转成char *,浪费了很多时间。

题目有三个,除了最后一个难剩下的很简单:

  • 1.梅林素数,反正核心代码就是个判断素数,送分题。

  • 2.把上一题的源代码转存为”abc.c”,并读取这个文件内容(巨坑的文件操作),
    并尝试把其中的注释(//和/*/)里的内容全部删掉,本质就是遍历字符串,如果碰到//就跳过直到\n,如果碰到/就跳过直至*/,说起来很烦但其实就两行代码解决

  • 3.输入一段文字加密,
    每个字母变成其后两个字母,如a -> c, d -> f 。若是y,z就对应a,b,即形成一个环。依旧是个遍历字符串题。 最后还有一小问压轴,就是把密文再进行奇校验(二进制,最高位设为0/1保证其二进制中始终仅奇数个1),考察的是
    二进制和十进制的相互转换和如何判断二进制中有几个1(这个好难)。

总结难度适中,核心是判断素数,遍历字符串,十/二进制转换,不得不说和去年考的核心部分重叠部分好大。

面试

真的很巧,我是南航的学生,结果我报考的团队BOSS就是南航毕业的。但其实复试也没什么,我是把本科的获奖资料拿过去了,也有人做了简历去面试的(我怎么就没想到做份简历呢- -)。总之进去后先是自我介绍一下,然后讲讲自己的项目经历。然后BOSS就和我唠南航的家常,说什么南航的副校长还有我们院院长都是他同学:)。之后随便问了些志愿方面的东西就结束了,出来后和其他团队面试完的谈了谈,结果他说他面试也是问了些无聊的问题,亏我还一直以为他会问专业方面的问题,看来面试就是走个流程,核心还是要把复试笔试和机试搞好。特别是机试很关键,一定要多练习练习。

summary and suggestions

笔试每年考点不一样,好好复习吧,特别是 回溯法 。英语简单说一下,听力白给,10个选择题,只要你过了CET4保证你对9个。口语就那样,看个人语言表达能力了,随机性很高。主要说一下上机,感触还是挺大的,昨天晚上搞到一点多,把一些题刷了刷看了看C++常用函数,结果今早考试50%都用到了,很高兴。

先列几个C++很有可能用到的库:

  • #include<string.h> 这是个非常恐怖的库,它有很多便捷的函数,字符串操作每年必考吧,那么涉及到字符串(char *)那就可以用到这个库。首先,介绍 最最最最常用的一个函数strlen(a),返回a的长度。这个库其他函数你可以不会,但这个你一定要会。考虑这样的情况,遍历字符串为什么要用到strlen?没错就是i的上界。 你定义了一个char a[MAX], 然后输入std::cin >> a,然后呢你不可能对i 0->MAX循环吧,上界必定是strlen(a)。其余库函数还有strcpy和memset也可以用,稍微看一看就好。课外小问题,如何定义一个初始全是0的int a[max]数组?答案是int a[max] = {0};

补充和 #include< string>区别,string.h是C语言对字符串的操作函数库,函数如上。而string库则是C++定义的一种叫string 的结构,这种结构类似向量,很好用,但基本上机是用不到这个库的。

  • #include<math.h> 方便计算的库,常用的是pow和sqrt。pow指数函数的使用今年考了两次(真的好用),一次是梅林素数,一次是二进制转十进制,算是很常用的函数。sqrt用于判定素数的优化,但其实不优化也行,能做出来就行考虑时间复杂度干啥。

  • #include< fstream>, 今年新增的文件坑

剩下的stdlib是涉及动态分配malloc或系统函数exit/pause的,选用。

Comments

2019-03-10

⬆︎TOP