嵌入式笔试刷题(第50天)
11. arm-linux-gcc 编译生成的 ELF 文件相关说法(多选)
✅ 答案:C、D
📌 解析:
- A ❌
arm-linux-ar
是静态库打包工具,查看 ELF 应使用readelf
、objdump
; - B ❌
str
是字符串常量,通常存储在.rodata
,不是代码段.text
; - C ✅
arm-linux-strip
会移除调试信息,减小文件大小; - D ✅ 内核模块
.ko
的加载依赖 ELF 特定段(如.modinfo
,.text
等)
12. 计算以下程序输出
int a, b, c, d; a = 2; b = a++; c = ++a; d = 10 * a++; printf("b:%d, d:%d, d:%d", b, c, d);
✅ 答案(程序有误):打印内容是错误的(重复打印两次 d)修正为:
printf("b:%d, c:%d, d:%d", b, c, d);
🧠 计算过程:
- 初始:a = 2
- b = a++ → b = 2, a = 3
- c = ++a → a = 4, c = 4
- d = 10 * a++ → d = 10 * 4 = 40, a = 5
✅ 输出:b:2, c:4, d:40
13. 逻辑/位运算快速计算(值直接写)
a. ~0 |
|
补码取反 |
b. !0 |
|
逻辑非 |
c. 2&4 |
|
位与:0010 & 0100 = 0000 |
d. 2&&4 |
|
非零即真:true && true = 1 |
e. 2|4 |
|
位或:0010 | 0100 = 0110 |
f. 2||4 |
|
逻辑或:true || true = 1 |
g. 5<<3 |
|
左移:101 << 3 = 101000 = 40 |
14. 分析结构体及访问
定义:
struct bem { int limbs; char type[30]; }; struct bem *pb; struct bem deb = { 6, "arcturan" }; pb = &deb;
printf("%s\
✅ 输出:
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式笔试专栏 文章被收录于专栏
本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。