欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

嵌入式软件工程师 秋招笔试题

发布时间:2023/12/8 编程问答 54 豆豆
生活随笔 收集整理的这篇文章主要介绍了 嵌入式软件工程师 秋招笔试题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

某半导体公司的笔试题,当时花在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.
代码:

typedef struct {int a;char s[10]; } TEST_T; TEST_T u1; printf("%d\n",sizeof(u1))

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/

Int p1; main() { static int c=0; int b; char s[] = "abc"; p1 = 10; }

A.BSS
B.栈
C.堆
D.数据

p1是未初始化的全局变量,因此是存放在BSS段,数据段存放初始化后的全局变量,栈是存放一些局部变量,堆存放一些动态分配的内存。

总结

以上是生活随笔为你收集整理的嵌入式软件工程师 秋招笔试题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。