这些 C 语言的题,各位不用电脑纯手写的话,能做到什么程度呢?

4 天前
 AFOX

这些 C 语言的题,各位不用电脑纯手写的话,能做到什么程度呢?

今天下午笔试被挂了,题目如下:

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...

然后面的岗位是嵌入式工程师,没有要求必须要相关经验,之前做过三年机器人相关的开发。

我这水平是不是菜到家了?

4023 次点击
所在节点    程序员
52 条回复
opticalproperti
4 天前
让哥们帮你做课堂作业是吧
AFOX
4 天前
@opticalproperti 做完了,挂了,呜呜呜,我很想去的公司
feather12315
4 天前
1 考察指针运算
2 考察 bit 运算
3 没想出来,暴力找?
3 ,4 ,5 ,6 刷题,哎
7 ,8 高等数学,微积分公式,高中的难度
9 这个,确实但疼,能记住就会
10 ,11 ,12 ,13 是 Linux OS 领域的,会不会看有没有接触过

你面的公司考察得挺不错的。

菜不至于,估计他们想找对计算机系统有兴趣、智商好(也就是大学好)的人吧。
对计算机系统没兴趣,10 ,11 ,12 ,13 分布这么广泛工作时间短真不好搞;智商不好,多年不刷题 7 ,8 ,9 不好搞
feather12315
4 天前
我有点好奇是哪家
@AFOX #2
AFOX
4 天前
@feather12315 第一题不是指针运算 qwq
AFOX
4 天前
@feather12315 一家小公司,你想跳槽的话我可以告诉你
ipwx
4 天前
hr 的评价不用太在意。根据我的经验,hr 要么是自己找的题库,要么是让开发给的题库,但是开发事儿多所以大概率是找的题库。

因为 hr 都不会,所以看不出来每道题是不是 “基础”。
AFOX
4 天前
@ipwx 开发找的,开发说我基本都是错的....我就回来自己算了下
nagisaushio
4 天前
第一题只能说谁没事这么写。。
2-6 说基础感觉没问题
LHN
4 天前
@AFOX #5 第一题输出应该是 2,1 吧
AFOX
4 天前
@LHN 第一题是语法错误,很操蛋的题
nagisaushio
4 天前
@LHN 其实是 2,5 。&a+1 会跳过 5 个元素,a+1 才是 1 个
feather12315
4 天前
@AFOX #5

`*(p-1)`太操蛋了。同事提醒恍悟:
`&a == &a[0] == a`,`a`与`&a[0]`含义一样,但是`&a`与`a`含义不同,`&a`代表的是数组`a[5]`的地址,+1 就是`&a[6]`了。

就是坑人的
AFOX
4 天前
@AFOX 不对,我好像少了个括号,不过我写的是 2 ,1 ,反正是错了 qwq
AFOX
4 天前
iOCZS
4 天前
第二题好像可以用快速幂来做
AFOX
4 天前
``` C
// 关于这道题,有两种情况,比如如果是下面这样,那输出就是 2 ,5
int main() {
int a[5] = {1, 2, 3, 4, 5};
int *p = &a + 1;
printf("%d, %d", *(a+1), *(p - 1));

return 0;
}

// 如果是下面这样,那么编译报错
int main() {
int a[5] = {1, 2, 3, 4, 5};
int *p = &(a + 1);
printf("%d, %d", *(a+1), *(p - 1));

return 0;
}

有点记不清当时题目有没有这个括号了,不过我都错了 qwq
```
tool2dx
4 天前
&a+1 会跳过 5 个元素, 我还第一次遇到,涨见识了。
AFOX
4 天前
@iOCZS 因为要一个表达式,所以应该是 (number & number - 1) == 0
iOCZS
4 天前
@AFOX 的确如此

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1053424

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX