瞻博面试经历
第1轮:
————
1)解释一个盒子如何决定交换或路由数据包
2)解释目前的项目和问题(超过5个与你的项目相关的问题)
3)给定一个程序int*p;
*++p、++*p、*++p 的结果
4)解释 volatile 关键字
5)c程序的内存布局
6)给定数组2,5.4.7.8.6,打印第二大元素
7)给定数组 1、1、2、3、5、5、7 打印重复的元素
8)给予乐趣
乐趣()
{
诠释一个[100];
一些操作
}
两个线程thread1和thread2正在访问这个乐趣,我们应该在a上使用互斥锁吗?
证明你的回答
9)如何将控制数据包提升到cpu。
10)你使用的不同类型的插座
第 2 轮:
————
1)使用连接到连接到两个路由器的两个交换机的 2 个主机来解释网络中的数据包流
2)解释你的项目
3)给定矩阵
1 2 3 4
5 6 7 8
9 10 11 12
打印矩阵,使结果为 1, 2, 3, 4, 8, 7, 6, 5, 9, 10, 11, 12
4)给定链表中的一个节点,删除该节点(头不给)
5) 给定 int a=0x1234
使用按位运算打印 3412
6)切换给定数字中的特定位
7)给定一棵二叉树
1
2 3
4 5 6 7 person watching from here
8
9
10
print all the elements the person can see
8)c程序的内存布局,每一层存储的变量是什么,静态和全局的区别,可以用extern做静态吗,还有相关的问题
9)什么是volatile关键字,用在哪里?
10)什么是自旋锁
11)宏和内联函数的区别
12)编译阶段并解释每个阶段发生了什么?
第三轮
————————————
1)解释当前项目(4-5个棘手的问题)
2)解释802.1ad(来自我以前的项目)
3) 给定 int a=10
printf ("%d", ~a);
将打印什么,证明你的答案
4)我们可以使用队列实现堆栈吗,如果可以,编写代码
5)使用链表实现堆栈(检查每一行代码)
6)给定一个数字,在该数字上进行循环移位,给定没有移位的次数(在我的情况下为 5)
7)如何使用位运算运算符找到两个数中的最大值(写一个 MACRo)
8) 在不使用 for 循环的情况下以二进制形式查找数字中的 1。
9)以二进制形式的数字找到最远的1。
10)内存布局,存储限定符(常量和易失)
11)使用双指针为二维数组分配内存
注意:他们想要优化的答案,而不仅仅是答案(没有 for 循环、while 循环、更小的时间复杂度等)