接着上一篇博文,说说这次找工作面试遇到的面试题。
腾讯,面试职位:后台服务器工程师,大概有七八到笔试题,只能凭印象写出还记得的一些题目
1.const的用法
2.大小端问题
3.二叉排序树的插入
4.应用题,一台服务器一分钟的访问量是200W次,要求每隔五到十分钟提示重复登录的用户,请提供设计思路和算法
其他一些公司的面试题:
1.整型转字符串的实现(不使用库函数)
2.字符串的翻转
3.位设置与清除
4.String类的实现
5.0-N的乱序数组的时间复杂度为O(N)的排序
6.忽略大小写的字符串大小比较
7.单链表的节点插入
笔试题大致记得也就这些,其中字符串处理相关的题目基本每次都会遇到,还有就是机器大小端的识别和位设置与清除也是遇到过好几次。
其实感觉嵌入式这行的笔试题其实也就那些,网上搜罗一下,也就七七八八了,个人觉得也不需要所有都弄的熟透,尤其对写代码的笔试题,大致有个思路,知道怎么处理,到时候笔试的时候上网查看下就可以(这也是我多次笔试总结的技巧之一),这个比自己空想自己实现要来的快的多,毕竟有些东西我们平时用的确实不多。另外可能代码的规范和出错逻辑的考虑,这些编程习惯也可能是面试官比较看重的,就像我们平时写代码,不要只把重心放在功能实现上,以为功能实现了就差不多了,但事实上这个跟产品的要求相差甚远,不说大的方面的构架是否是高内聚低耦合,适合以后扩展,小的方面的出错处理,代码规范,这些都是决定以后代码是否强壮稳定,是否经得起测试的关键。习惯很重要,扯远了,再说说面试。
通用面试:
1.多线程与多进程,这是一个经久不衰的问题
2.函数与宏的差别
3.程序布局,堆栈,数据区这些问题
4.第一次组建的网络的一次http访问的过程用到的协议及过程
5.ioctl函数是如何从用户态切换到内核态的
6.GCC中-O选项代表什么
剩下更多是你做的项目部分的面试,因为很多东西逻辑都是相通的,即使他们没接触过,但是如果你能把你做过的东西讲的很容易让他们听懂,我觉得这是会加分的。面试就靠交流沟通的能力了,你懂的地方尽量多讲,不懂的也不用害怕,闻道有先后,术业有专攻,做IT这行,最强的不是你已经学到什么,而是你的学习能力,真正的大牛,肯定是积淀很丰富的,都是通过不断学习一步步走来的。