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