嵌入式笔试刷题(第40天)
1. 设有如下定义:
int (*ptr)( );
则以下叙述中正确的是( )
A. ptr是指向一维数组的指针变量
B. ptr是指向int型数据的指针变量
C. ptr是指向函数的指针变量,该函数返回一个int型数据
D. ptr是一个函数名,该函数的返回值是指向int型数据的指针
答案:C. ptr是指向函数的指针变量,该函数返回一个int型数据
解答过程:
int (*ptr)()
表示:ptr
是一个指向函数的指针。- 这个函数没有参数,返回
int
类型结果。
2. 定义一个结构体,需4字节对齐,则应填入的V1,V2,V3,V4,V5,V6的值为:
#define PADS(x, y) char pad##x[y] typedef struct { short a; PADS(V1, V2); char b[3]; PADS(V3, V4); char *p; PADS(V5, V6); } ST_TEST;
A. 0,1,0,4,0,0
B. 1,2,3,4,5,6
C. 100,2,1234,1,0,0
D. 1,2,3,7,1,12
答案:A. 0,1,0,4,0,0
解答过程:
short a;
占2字节,为了4字节对齐,需要加2字节填充。char b[3];
占3字节,为了4字节对齐,需要1字节填充。char* p;
指针占4字节,已对齐,不需要填充。
3. OPERATION(ST_TEST, e)的结果为:
#define OPERATION(X, Y) ((long)(&(((X *)0)->Y))) typedef struct { int a; int b[12]; int c[100]; } ST_TEST;
A. 13
B. 52
C. 452
D. 会导致异常退出
答案:B. 52
解答过程:
a
占4字节,b[12]
占48字节(12×4),那么c
的偏移量=4+48=52。- 所以
OPERATION(ST_TEST, c)
结果是52。
4. 关于虚函数的描述中,哪个是正确的( )
A
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式笔试专栏 文章被收录于专栏
本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。