嵌入式笔试刷题第8天
✅ 第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):数组str是初始化为"http://localhost"(长度 17,含结尾 \0),但定义为数组,数组大小为 17。sizeof(p1):p1是一个指针,32 位系统指针大小为 4。sizeof(p2):void *指针,大小也是 4。sizeof(n):整型,32 位系统中为 4。sizeof(struct_a): 成员:int n(4字节)+ char str[10](10字节);结构体可能有字节对齐,填充到 16 字节,所以为 16。sizeof(str)(在Foo中):传入的是数组名退化为指针,因此为 4。
最终输出:
17 4 4 4 16 4
✅ 第2题
题目:
请简述以下两段关于循环的程序的优缺点:
// 第一个
for(i = 0; i < N; i++) {
if (condition)
DoSomething();
else
DoOtherthing();
}
// 第二个
if (condition) {
for(i = 0; i < N; i++)
DoSomething();
} else {
for(i = 0; i < N; i++)
DoOt
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式笔试专栏 文章被收录于专栏
本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。
SHEIN希音公司福利 370人发布
