嵌入式笔试刷题(第58天)
11. 单向链表排序
题目:给定 n(1 < n < 100)个整数,使用链表存储并按从小到大排列,不限算法。
输入样例:
5 1 3 2 5 4
输出样例:
1 2 3 4 5
解题思路:
- 使用结构体构建链表节点;
- 将输入元素插入链表;
- 排序可用冒泡或直接插入;
- 遍历输出链表。
简化代码示例(插入排序):
typedef struct Node { int val; struct Node* next; } Node; Node* insert_sorted(Node* head, int val) { Node *new_node = malloc(sizeof(Node)); new_node->val = val; new_node->next = NULL; if (!head || val < head->val) { new_node->next = head; return new_node; } Node *curr = head; while (curr->next && curr->next->val < val) curr = curr->next; new_node->next = curr->next; curr->next = new_node; return head; }
12. 鹿死谁手
题目简述:8位将军 AH 各说了一句话,其中有 X 人说对了。给定 X(18),判断是哪位将军射中鹿。如果结果唯一则输出将军,否则输出 NONE
。
输入样例:
1
解法:枚举每位将军为“真凶”,判断在这种假设下有多少人说对了。若唯一匹配人数为 X,返回该将军。
核心判断逻辑写法(伪代码):
for (killer in A~H) { count = 0; if ((killer == H || killer == F) == true) count++; // A说 if (kill
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式笔试专栏 文章被收录于专栏
本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。