嵌入式笔试刷题(第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 内核、以及实用电路知识等内容。
查看4道真题和解析