嵌入式笔试刷题(第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 的作用

答案:

  1. 修饰局部变量:延长生命周期为整个程序运行期(静态存储周期);
  2. 修饰全局变量或函数:限制其作用域仅在当前源文件;
  3. 静态成员:用于类内部所有对象共享的变量或函数(在 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) = 8char 占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 内核、以及实用电路知识等内容。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务