嵌入式笔试刷题(第11天)
1. 十进制数226转换成二进制和十六进制
十进制 226:
- 二进制:
11100010
→0b11100010
- 十六进制:
E2
→0xE2
✅ 正确答案:D. 0b11100010 , 0xE2
2. 宏定义计算题
宏定义:
#define MOD(x, y) x%y
执行语句:
int a = 13, b = 94; printf("%d\n", MOD(b, a+4));
会展开为:
printf("%d\n", b % a + 4); // 相当于 (b % a) + 4
但是这不是我们想要的,应是:
b % (a + 4) = 94 % 17 = 9
但原宏未加括号,实际运行为:
94 % 13 + 4 = 3 + 4 = 7
✅ 正确答案:B. 7
3. strcmp("2.56", "4.728") 的值类型
字符串比较函数 strcmp
比较 ASCII 值:
- '2'(50) vs '4'(52) → 前者小于后者,结果为负数(非零)
✅ 正确答案:A. 非零整数
4. 结构体大小计算
struct { short a; char b; float c; } st;
内存布局(假设 32 位系统):
short a
: 2 字节char b
: 1 字节- 对齐需要填充 1 字节
float c
: 4 字节
总大小:2 + 1 + 1(填充) + 4 = 8
✅ 正确答案应为:未给出,应该是 8(选项有误)
5.
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式笔试专栏 文章被收录于专栏
本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。