嵌入式笔试刷题(第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 内核、以及实用电路知识等内容。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务