嵌入式笔试刷题(第50天)

11. arm-linux-gcc 编译生成的 ELF 文件相关说法(多选)

答案:C、D

📌 解析:

  • A ❌ arm-linux-ar 是静态库打包工具,查看 ELF 应使用 readelfobjdump
  • 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

-1

补码取反

b. !0

1

逻辑非

c. 2&4

0

位与:0010 & 0100 = 0000

d. 2&&4

1

非零即真:true && true = 1

e. 2|4

6

位或:0010 | 0100 = 0110

f. 2||4

1

逻辑或:true || true = 1

g. 5<<3

40

左移: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 内核、以及实用电路知识等内容。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务