我想与HP R&D Labs专家分享我最近的面试经历。我有4年从事网络协议开发的经验。空缺职位是针对网络协议开发人员(Layer2/Layer3)的。被选中的人被要求开车。
总共一天有5发子弹。 (4技术(1书面+ 3面对面), 人力资源)
笔试(客观):
笔试中的问题是测试C语言和OS的基础知识。
主要强调按位运算符, little endian和big endian。
技术回合1:
此回合完全针对c。访调员问了有关按位运算符和链表的问题。
C程序的内存布局。
【惠普研发实验室采访经验|S7(有经验的)】1.如何使用按位运算符设置, 重置和切换位?
2.使用链表实现堆栈?
3.反向链接列表?
4. c程序的内存布局?如何找出每个段(数据, 堆栈, 代码)的起始地址?
我可以清除第一轮并要求第二轮。
技术回合2:
在这一轮中, 面试官评估了我在网络协议以及工作, 操作系统和C方面的知识。
在浏览完我的简历后, 面试官询问了我所从事的协议操作和实际情况。
主要强调操作系统。
1.信号量和互斥量之间的区别?
2.什么是比赛条件?如何避免它们?
3.什么是死锁?如何检测呢?
4.你的项目中使用了哪种操作系统?
5.这些操作系统的X因子是什么?
在C中
1.交换链表(不是数据)的两个节点?
2. Malloc为二维数组分配内存?
3.
int main() {
chat *p=NULL;
p++;
printf("%d", p);
}
上面程序的输出?
4.什么是NULL指针崩溃?如何检测呢?
5.内存泄漏如何发生?如何找到他们?
第三轮技术(经理+技术人员):
本轮比赛由经理进行。他试图测试从C基础知识, 网络, 操作系统和软件方法论出发的所有内容。正如预期的那样, 经理提出了其他问题。
人力资源回合:
这是最后一轮。关于通知期, 人力资源问题, 薪资谈判等只是偶然的讨论。
推荐阅读
- 汇丰面试经验详细分享
- 如何显示C变量的内存表示形式()
- 如何在不使用循环的情况下打印1到100之间的数字()
- Python如何在Kivy中使用多个UX小部件()
- 如何编写修改链表头指针的C函数()
- 如何在Python中编写空函数-pass语句()
- 如何为你的项目编写好的SRS
- 如何使用Jupyter Notebook(终极指南)
- 如何在Java中使用Iterator()