今天下午笔试被挂了,题目如下:
1. 下面的输出是什么,请说明原因(钓鱼执法.....很容易就做错了)
int main() {
int a[5] = {1, 2, 3, 4, 5};
int *p = &a + 1;
printf("%d, %d", *(a+1), *(p - 1));
return 0;
}
2. 请用一个 C 语言表达式判断某个数是否为 2 的 N 次幂 (没搞懂如何用一个表达式计算,这道题不谷歌真的做不出吧.....)
3. 计算某个数的质因数(例如:12 = 2 * 2 * 3 ) (这里想太多了,空在那做后面的去了)
4. 写出单链表反转的过程(写太多遍了,直接秒)
5. 写一个函数判断回文数(没写出最优解,我转换成字符串用双指针判断了)
6. 删除字符串中的数字并压缩字符串的空间,例如: 输入为 "abc123de45fg" ,输出 "abcdefg" (这里也是双指针做的,不需要开辟新的空间,判断字符串结尾是'\0')
下面的 7 和 8 选一道做
7. 微积分题,计算 y=x 和 y=x^2 围成的面积(想了一下怎么求积分)
8. 在[0, 2Π]的区间内,计算 y=sinx 与 x 轴围成的面积
9. 矩阵计算,这里具体数字记不清了,随便填一下不影响
A = [[1,2,3], [4,5,6], [7,8,9]]
B = [[3,2,1], [6,5,4], [9,8,7]]
a. 计算 AB 的值 (还记得怎么算)
b. 计算 A 的逆矩阵(不记得相关概念了,没做对)
10. 写出 TCP/IP 的系统调用函数及用法(之前的工作基本不用 tcp/ip ,这里写不出)
11. libudev 的设备通信过程(这个也不了解)
12. 讲一下 linux 的进程间通信(这个就是八股文那几个了)
13. 讲一下 linux 系统从开机到出现登陆界面的详细过程(讲了下 cpu 会从某个地址加载 bootloader ,然后 bootloader 会初始化哪些环境,然后把控制权交给内核了,最后内核从 init 函数开始启动,这里我了解的其实也不是很详细)
14. 还有一道题和前面几道类似的题,记不起来了
15.一道英语翻译题,应该是 I2C 总线手册上的(正常阅读没啥问题)
我看了下我大概写出来了一半的题,被 hr 狠狠的羞辱说题目很基础,认为我大学没认真上 qwq...
然后面的岗位是嵌入式工程师,没有要求必须要相关经验,之前做过三年机器人相关的开发。
我这水平是不是菜到家了?