海信嵌入式开发岗笔试面经(T计划)

2025-07-13:完成笔试 2025-07-14:收到AI面试

📘 一、笔试第一部分:选择题(60分钟)

Tip :15题,下面的题号不精准,知识点大概怎么多,没按照题号来。

🧩 涉及知识点(重点总结)

嵌入式 + Linux + C


✅ 1. 单片机基础

题号 知识点 大概考法 / 问题形式
1 中断优先级设置 8051/STM32 中断如何设优先级,高能否打断低?
2 上拉/下拉电阻 电阻接哪?默认电平?作用是啥?防悬空吗?
3 去耦电容作用 电源两端加电容干嘛?滤波还是稳压?
4 RAM 掉电特性 掉电后 RAM 怎么办?Backup SRAM/Flash?
5 波特率 / 定时器初值计算 给定波特率(如1200bps),问 TH/TL 初值多少?
6 UART 通信帧格式 UART 数据帧由哪些位组成?是否有起始/停止位?
7 定时器溢出周期 已知晶振、分频,问定时器多久溢出一次?

✅ 2. Linux 基础

题号 知识点 大概考法 / 问题形式
8 进程与线程的区别 是否共享内存?创建方式?开销大小?
9 pipe(管道)机制 pipe 是否适用于父子进程?单向/双向?匿名/命名?
10 常用命令(ps/top/kill等) 哪个查看进程?哪个杀进程?哪个查看CPU占用?
11 内存映射 mmap 哪个系统调用能将文件映射到内存? mmap 用法?
12 文件权限与 chmod chmod 755/644 各代表什么权限?

✅ 3. C语言基础

题号 知识点 大概考法 / 问题形式
13 字符串转整数(手写 stoi 如何实现 atoi,考虑非法字符/符号/越界?
14 数组与指针传参 数组参数能知道大小吗? sizeof(arr) 可行?
15 位运算常用技巧 判断奇偶、取某一位、清除某一位、左移右移作用?

二、笔试第一部分:编程部分(40分钟)

共两道题,算法题考察 C 语言/数据结构/字符串处理能力,建议语言选择 C/C++。


编程题 1:最大子串整数

✅ 题目:

给一个长度为 n 的字符串(仅包含数字),截取任意长度为 k 的连续子串,返回转换成整数后的最大值。

思路:

✅ C++ 实现:

int maxSubstringInt(const string& s, int k) {
    int maxVal = 0;
    for (int i = 0; i <= s.size() - k; i++) {
        int val = 0;
        for (int j = 0; j < k; j++) {
            val = val * 10 + (s[i + j] - '0');
        }
        maxVal = max(maxVal, val);
    }
    return maxVal;
}

边界点:


编程题 2:最长连续差为±1的单调序列

题目:

给定整数数组,找出最长的子数组,要求:

示例:

输入: [1,2,3,2,1,0,1,2]
输出: 4  // 如 [3,2,1,0]

C++ 实现:

int longestMonotonicDelta1(const vector<int>& nums) {
    int inc = 1, dec = 1, maxLen = 1;
    for (int i = 1; i < nums.size(); ++i) {
        int diff = nums[i] - nums[i - 1];
        if (diff == 1) {
            inc++;
            dec = 1;
        } else if (diff == -1) {
            dec++;
            inc = 1;
        } else {
            inc = dec = 1;
        }
        maxLen = max({maxLen, inc, dec});
    }
    return maxLen;
}

✅ 笔试建议

模块 建议
选择题 快速过一遍,优先做会的,知识点集中在嵌入式和 Linux
编程题 难度不大
编码风格 简洁、变量命名明确、有注释更好
时间分配 60 分钟选择题 + 40 分钟编程,每题 20 分钟控制好

AI面试

两部分:中文&英文