嵌入式笔试刷题(第14天)
11. C语言格式化输出语法错误
float num1 = 1.8495; unsigned long num2 = 32; printf(“%.2f”, %4ld%%\n”, num1, num2);
错误:
- 使用了两个格式字符串:
%.2f和%4ld%%,但位置不对 - 应该是:
printf("%.2f, %4ld%%\n", num1, num2);
✅ 修正后输出:1.85, 32%
12. C++ 虚函数、多态调用
程序:
class Father {
public:
virtual void foo() { cout << "M" << endl; }
void fun() { cout << "S" << endl; }
};
class Child : public Father {
public:
void foo() { cout << "T" << endl; }
void fun() { cout << "R" << endl; }
};
Father fa;
Child ch;
Father *pfa = &fa;
pfa->foo(); // M
pfa->fun(); // S
pfa = &ch;
pfa->foo(); // T(虚函数调用子类)
pfa->fun(); // S(非虚函数仍走父类)
✅ 输出顺序是:M S T S
13. C++ 多态的两种类型与实现方式
- 多态类型:编译时多态(静态多态)运行时多态(动态多态)
- 实现方式:静态多态:函数重载、模板动态多态:虚函数 + 基类指针或引用
✅ 填空答案:
编译时多态、运行时多态;函数重载/模板、虚函数机制
14. 链表中删除第 i 个结点的两句
代码:
if(q == NULL) return 0; (1) p = q->next; (2) q->next = p->next; free(p);
解释:
q指向第 i-1 个节点p指向第 i 个节点- 将
q->next改为p->next,再释放p
✅ 答案:
(1) p = q->next; (2) q->next = p->next;
15. 牧场吃草问题(草生长问题)
题干总结:
- 27头牛,6天吃光
- 23头牛,9天吃光
设草地每天生长量为 x,初始草量为 S
列出方程:
27 * 6 = S + 6x → S = 162 - 6x 23 * 9 = S + 9x → S = 207 - 9x → 联立解得 x = 15, S = 72
换成 21 头牛,要解:
21d = 72 + 15d → 6d
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式笔试专栏 文章被收录于专栏
本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。