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