嵌入式笔试(第四天)

嵌入式笔试题汇总(前 10 题)

1. 某 32 位系统下,C 程序,请写出输出结果:

void Foo(char str[100]){
    printf("%d\n", sizeof(str));
}

int main(int argc, char **argv){
    char str[] = "http://localhost";
    char *p1 = str;
    void *p2 = malloc(100);
    int n = 10;

    struct A {
        int n;
        char str[10];
    } struct_a;

    printf("%d\n", sizeof(str));
    printf("%d\n", sizeof(p1));
    printf("%d\n", sizeof(p2));
    printf("%d\n", sizeof(n));
    printf("%d\n", sizeof(struct_a));

    Foo(str);
    return 0;
}

答案:

  • sizeof(str):18(字符串常量初始化,包含 \0
  • sizeof(p1):4(指针大小,32 位系统)
  • sizeof(p2):4(void 指针大小)
  • sizeof(n):4(int 类型)
  • sizeof(struct_a):16(结构体包含对齐)
  • Foo(str) 中的 sizeof(str):4(函数参数退化为指针)

2. 简述以下两段关于循环的程序的优缺点:

第一种写法:

for (i = 0; i < N; i++) {
    if (condition)
        DoSomething();
    else
        DoOtherthing();
}

第二种写法:

if (condition) {
    for (i = 0; i < N; i++)
        DoSomething();

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

嵌入式笔试专栏 文章被收录于专栏

本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。

全部评论
点赞 回复 分享
发布于 04-25 21:39 山西
😄😄😄😄
点赞 回复 分享
发布于 04-25 16:23 上海
接好运
点赞 回复 分享
发布于 04-15 15:10 黑龙江
第一个不应该16吗
点赞 回复 分享
发布于 04-09 04:28 山东

相关推荐

评论
2
3
分享

创作者周榜

更多
牛客网
牛客企业服务