嵌入式软件工程师 秋招笔试题
某半導體公司的筆試題,當時花在C語言上的時間太少,答得很不好,現在有時間就分析一下錯題吧。
1.存儲一個32位數0x12345678到0x1000H-0x1003H四個字節單元中,若以小端模式存儲,則0x1002H存儲單元的內容為( )。
A. 0x56
B.0x65
C.0x34
D.0x43
小端存儲的方式,最低地址存放最低位字節,然后逐漸由低位字節向高位字節存放。最低位字節是指最右邊的那個字節,類似于一個n位數字的最低位是在最右邊,比如234的最低位,即個位,是4。
這邊的最低位字節是0x78,因此0x1000H這個存儲單元放的是0x78,隨后0x1001H存放0x56,0x1002H存放0x34。
2.
#define N 3
#define Y(n) ((N+1)*n)
則表達式2*(N+Y(5+1))的值是( )。
A.42
B.48
C.54
D.出錯
由于宏定義做的是完全的文本替換,因此原式為:2*(3+((3+1)*5+1) = 48。
3.
代碼:
32位機上的運行結果為:( )
A.2
B.4
C.14
D.16
這題考的知識點是內存對齊,由于32位只有4個字節,且內存對齊是按照最長成員對齊,此處最長成員int有4個字節。因此a占4個字節,s被填充為12個字節(10+2)形成4的倍數,因此選D。
4.
下面代碼中,變量p1在內存中的位置:( )段
/main.c/
A.BSS
B.棧
C.堆
D.數據
p1是未初始化的全局變量,因此是存放在BSS段,數據段存放初始化后的全局變量,棧是存放一些局部變量,堆存放一些動態分配的內存。
總結
以上是生活随笔為你收集整理的嵌入式软件工程师 秋招笔试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何开搓饵不掉钩_防止小鱼闹钩的方法
- 下一篇: 贵州高二会考计算机考试题,贵州省普通高中