栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

某半导体公司的笔试题,当时花在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("%dn",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段,数据段存放初始化后的全局变量,栈是存放一些局部变量,堆存放一些动态分配的内存。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/966246.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号