嵌入式笔试刷题(第18天)
11. 写一个函数,输入一个整数,返回这个整数的位数
✅ 函数原型:
int GetCount(int nValue);
✅ 示例实现:
int GetCount(int nValue) { int count = 0; if (nValue == 0) return 1; if (nValue < 0) nValue = -nValue; while (nValue) { count++; nValue /= 10; } return count; }
12. 跨阶问题:满足多个条件同时为真的最小阶梯数
✅ 条件:
- 每步跨2阶,余1;
- 每步跨3阶,余2;
- 每步跨5阶,余4;
- 每步跨6阶,余5;
- 每步跨7阶,刚好整除。
✅ 解析:
这是一道同余方程问题,可转换为:
n ≡ -1 (mod 2) n ≡ -1 (mod 3) n ≡ -1 (mod 5) n ≡ -1 (mod 6) n ≡ 0 (mod 7)
等价于:
n ≡ -1 (mod LCM(2,3,5,6) = 30) n ≡ 0 (mod 7)
寻找最小正整数 n,满足:
n % 30 == 29 n % 7 == 0
✅ 示例代码:
int GetPhaseNum() { int n = 1; while (1) { if (n % 7 == 0 && n % 30 == 29) return n; n++; } }
✅ 结果:
最小阶梯数是 119
13. 反转单链表函数
✅ 示例实现(C):
struct Node { int val; struct Node* next; }; struct Node* reverseLis
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式笔试专栏 文章被收录于专栏
本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。