嵌入式笔试刷题(第66天)
11. 填空题:补全 strtoull 函数与链表插入函数
[函数1] 字符串转无符号整数
原始关键语句未完整,应为:
4 if (base > 36 || base < 2 || ptr == NULL)
以及:
9 digit = *ptr - '0'; 11 digit = *ptr - 'A' + 10; 13 digit = *ptr - 'a' + 10; 16 ret = ret * base;
[代码2] 双向链表插入
补充正确内容应为:
10 pNODE p = (pNODE)malloc(sizeof(NODE)); 11 if (NULL == p) 15 p->prev->next = p; 16 _node->prev = p; 17 p->next = _node;
12. 循环队列中元素个数为多少?
答案:若 front 和 rear 指向数组下标,元素个数为:
(rear - front + m) % m
13. #include <FileName.h>
与 #include "FileName.h"
区别?
答案:
< >
:从系统默认头文件目录查找;" "
:优先从用户当前目录查找,再从系统目录查找。
14. static 的作用
答案:
- 修饰局部变量:延长生命周期为整个程序运行期(静态存储周期);
- 修饰全局变量或函数:限制其作用域仅在当前源文件;
- 静态成员:用于类内部所有对象共享的变量或函数(在 C++ 中)。
15. 数组和链表的区别
存储方式 |
连续内存 |
零散内存,靠指针链接 |
插入删除 |
效率低,需要移动元素 |
效率高,只改指针 |
随机访问 |
支持,效率高 |
不支持,需遍历 |
空间利用率 |
分配固定长度,可能浪费 |
动态分配,节省空间 |
16. sizeof 计算(32位系统)
char str[] = "Hello World!"; // 13字节(含'\0') char *p = str; struct s { char c; int n; };
sizeof(str) = 13
sizeof(p) = 4
sizeof(s) = 8
(char
占1,3字节填充,int 占4,总8)
17. 程序运行结果
#include <iostream> using namespace std; class Base { public: Base() { cout << "construct in B" << endl; } Base(Base &b) { cout << "copy in B" << endl; } ~Base() { cout << "deconstruct in B" << endl; } int a;
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式笔试专栏 文章被收录于专栏
本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。