嵌入式软件工程师 秋招笔试题
某半导体公司的笔试题,当时花在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段,数据段存放初始化后的全局变量,栈是存放一些局部变量,堆存放一些动态分配的内存。
总结
以上是生活随笔为你收集整理的嵌入式软件工程师 秋招笔试题的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 如何开搓饵不掉钩_防止小鱼闹钩的方法
- 下一篇: 贵州高二会考计算机考试题,贵州省普通高中