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