嵌入式软件工程师笔试题1

网友投稿 256 2022-09-22

嵌入式软件工程师笔试题1

1、写出运行结果: union V { struct X {  unsigned char s1:2;  unsigned char s2:3;  unsigned char s3:3; } x; unsigned char c;    } v;    v.c = 100;    printf("%d", v.x.s3); }//3

2、Union{

Int a;

Struct {

Char b1;

Short b2;

Char b3;

}u;

}x;

若x.a = 0x22334455,则x.u.b1,x.u.b2,x.u.b3的值分别是多少?//0x55,0x2233,0x随机值

3、简述结构体和共用体的区别。

1、结构体存在字节对齐,这样节省存储空间。

2、共用体共用一块内存空间。

3、结构体大小为:最后一个元数偏移首地址大小+自身类型大小+补齐后大小

4、共用体大小为:最大数据类型的大小。

4、 UCHAR *pucCharArray[10][10];

typedef union unRec

{

ULONG   ulIndex;

USHORT usLevel[6];

UCHAR  ucPos;

}REC_S;

REC_S   stMax,*pstMax;

四字节对齐方式时: sizeof(pucCharArray) = 4*100,

sizeof(stMax)=2*6, sizeof(pstMax)=4,sizeof(*pstMax)=2*6.

5、struct BBB

{

long     lNum;

char     *pcName;

short    sDate;

char     cHa[2];

short    sBa[6];

}*p;

p = 0x100000;

p + 0x1 = 0x100018

(unsigned long)p + 0x1 = 0x100001

(unsigned long *)p + 0x1 = 0x100004

(char *)p + 0x1 = 0x100001

6、struct tagAAA

{

unsigned char ucId:1;

unsigned char ucPara0:2;

unsigned char ucState:6;

unsigned char ucTail:4;

unsigned char ucAvail;

unsigned char ucTail2:4;

unsigned long ulData;

}AAA_S;/9/12

问:AAA_S在字节对齐分别为1、4的情况下,占用的空间大小是多少?

7、#pragma pack(4)/*编译选项,表示4字节对齐*/

int main(int argc, char* argv[])

{

struct tagTest1

{

short a;

char d;

long b;

long c;

};

struct tagTest2

{

long b;

short c;

char d;

long a;

};

struct tagTest3

{

short c;

long b;

char d;

long a;

};

struct tagTest1 stT1;

struct tagTest2 stT2;

struct tagTest3 stT3;

printf("%d %d %d", sizeof(stT1), sizeof(stT2), sizeof(stT3));

return 0;

}12/12/16

#pragma pack()(编译选项结束)

请问输出结果是:_________

8、enum ENUM_A

{

X1=2,

Y1,

Z1 = 6,

A1,

B1

};

enum ENUM_A enumA = Y1;

enum ENUM_A enumB = B1;

请问 enumA = 3; enumB = 8;

9、struct tagABC

{

char  cB;

short sC;

char  cD;

long  lA;

}*pAbc;

pAb=0x100000;

那么pAbc+0x100 = 0x100c00; (ULONG)pAbc + 0x100 = 0x100100;

(ULONG *)pAbc + 0x100 = 0x_100400;(char *)pAbc + 0x100 = 0x100100;

10、设struct {

short a; char b; float c; }cs; 则sizeof(cs)的值是 A.4 B.5 C.6 D.8

11、怎么在结构体中实现函数?

我们知道在c语言中,结构体中不能使用函数的,在c++中类可以使用函数,

要在c语言中使用函数,则需要使用回调函数(函数指针)void(*p)(int    int);

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:拷贝构造函数深拷贝(10)
下一篇:小米、比亚迪,数千亿市值巨头同时大跌,都与一件事相关?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~