嵌入式筆試刷題(第50天)
11. arm-linux-gcc 編譯生成的 ELF 文件相關(guān)說法(多選)
? 答案:C、D
?? 解析:
- A ?
arm-linux-ar
是靜態(tài)庫打包工具,查看 ELF 應使用readelf
、objdump
; - B ?
str
是字符串常量,通常存儲在.rodata
,不是代碼段.text
; - C ?
arm-linux-strip
會移除調(diào)試信息,減小文件大??; - D ? 內(nèi)核模塊
.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);
? 答案(程序有誤):打印內(nèi)容是錯誤的(重復打印兩次 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. 分析結(jié)構(gòu)體及訪問
定義:
struct bem { int limbs; char type[30]; }; struct bem *pb; struct bem deb = { 6, "arcturan" }; pb = &deb;
printf("%s\
? 輸出:
剩余60%內(nèi)容,訂閱專欄后可繼續(xù)查看/也可單篇購買
嵌入式筆試專欄 文章被收錄于專欄
本專欄系統(tǒng)整理了嵌入式方向筆試中常見的知識點和高頻考題,涵蓋基礎(chǔ)理論、常用算法、C語言陷阱、操作系統(tǒng)原理、驅(qū)動開發(fā)、常見外設(shè)通信協(xié)議(如 I2C/SPI/UART)、RTOS、Linux 內(nèi)核、以及實用電路知識等內(nèi)容。