2022春招大厂-嵌入式开发经典笔试面试题目大整理

前言:嵌入式其实是一个知识比较杂乱的岗位,软件你要懂,硬件你也要懂;底层要懂,做应用开发的话上层也要懂。

第一章进程线程的基本概念

1、什么是进程,线程,有什么区别
2、多进程、多线程的优缺点
3、什么时候用进程,什么时候用线程
4、多进程、多线程同步(通讯)的方法
5、进程线程的状态转换图 。什么时候阻塞,什么时候就绪
6、父进程、子进程的关系以及区别
7、什么是进程上下文、中断上下文
8、一个进程可以创建多少线程,和什么有关
9、进程间通讯:
(1)管道/无名管道(2)信号(3)共享内存(4)消息队列(5)信号量(6)socket
注意:临界区则是一种概念,指的是访问公共资源的程序片段,并不是一种通信方式。
10、线程通讯(锁):
(1)信号量(2)读写锁(3)条件变量(4)互斥锁(5)自旋锁

第二章C/C++面试题

  • 1、new和malloc的区别
  • 2、 malloc的底层实现
  • 3、在1G内存的计算机中能否malloc(1.2G)?为什么?
  • 4、指针与引用的相同和区别;如何相互转换?
  • 5、C语言检索内存情况,内存分配的方式
  • 6 、extern”C” 的作用
  • 7、头文件声明时加extern定义时不要加,因为extern可以多次声明,但只有一个定义
  • 8、重写memcpy()函数需要注意哪些问题,(strcat strncat strcmp strcpy)哪些函数会导致内存溢出
  • 9、 char和int之间的转换;
  • 10 、static的用法(定义和用途)static静态变量,只初始化一次
  • 11 、const的用法(定义和用途)
  • 12、const常量和#define的区别(编译阶段、安全性、内存占用等)
  • 13 、volatile作用和用法
  • 14、有常量指针 指针常量 常量引用 没有 引用常量
  • 15、变量的作用域(全局变量和局部变量)
  • 16、sizeof 与strlen (字符串,数组)
  • 17、经典的sizeof(struct)和内存对齐(一字节对齐)
  • 18、const * char 与 const char *
  • 19、inline函数
  • 20、内存四区,什么变量分别存储在什么区域,堆上还是栈上。

第三章网络编程

  • 1 、TCP、UDP的区别
  • 2 、TCP、UDP的优缺点
  • 3 、TCP UDP适用场景
  • 4、 TCP为什么是可靠连接
  • 5、OSI典型网络模型,简单说说有哪些;
  • 6、三次握手、四次挥手

第四章常见算法

1、各种排序算法的时间空间复杂度、稳定性
2、各种排序算法什么时候有最好情况、最坏情况(尤其是快排)
3、冒泡排序
4、选择排序
5、插入排序
6、希尔排序
7、归并排序
8、快速排序
9、二分法查找的原理

第五章Linux操作系统常见面试题

1、 Linux内核的组成部分
2、用户空间与内核通信方式有哪些?
3、系统调用read()/write(),内核具体做了哪些事情
4、系统调用与普通函数调用的区别
5、内核态,用户态的区别
6、 bootloader内核 、根文件的关系
7 、Bootloader启动过程:

8、 linux下检查内存状态的命令

1、大小端的区别以及各自的优点,哪种时候用。(判断大小端的三种方式)
 2 、一个程序从开始运行到结束的完整过程(四个过程)
 3、什么是堆,栈,内存泄漏和内存溢出?
 4、堆和栈的区别
 5、死锁的原因、条件
 6、硬链接与软链接的区别;
 7、虚拟内存,虚拟地址与物理地址的转换
 8、计算机中,32bit与64bit有什么区别
 9、中断和异常的区别
 10、中断怎么发生,中断处理流程
 11、 Linux 操作系统挂起、休眠、关机相关命令
 12、编译优化选项 -o
 13、在有数据cache情况下,DMA数据链路为:外设-DMA-DDR-cache-CPU,CPU需要对cache做什么操作,才可以得到数据
 14、linux中改变文件属性的命令:chmod
 15、linux中查找文件中匹配字符串的命令:grep

第六章 单片机常见面试题

1、ROM与RAM
2、 IO口工作方式:上拉输入 下拉输入 推挽输出 开漏输出
3、请说明总线接口USRT、I2C、USB的异同点(串/并、速度、全/半双工、总线拓扑等)
4、I2C协议时序图
5、单片机的SP指针始终指向:栈顶
6、I2C总线在传送数据过程***有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。
7、FIQ中断向量入口地址
8、全双工总线类型
9、SPI四种模式,简述其中一种模式,画出时序图

第八章 其他面试题

1、讲一讲冯诺依曼和哈佛体系的区别
2、讲一讲二叉树和红黑树
3、http默认端口号:80
4、面向对象编程的三大特性,以及重载的意思。重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。
5、linux中mysql数据库默认的端口是:3306
6、反转链表的代码补全
7、判断回文(首尾相同)
输入abcba 返回true 输入abc 返回flase

8、C语言编程中,单片机平台,一般有.c和.h文件,如果一个人在.h文件中定义了一个变量,会有什么后果。(讨论编程习惯的问题,我一般是只在.h文件中声明函数,不会做变量定义;另外,编程中每一个模块都会有对应的.c和.h文件,最终的总程序自己定义一个comm.c和comm.h去调用各个模块,这样的习惯我觉得还行)
9、if语句中如果是或运算( | ),第一个条件满足时,第二个条件还会判断吗。或运算的话,当然不会,因为 0|1=1,中断了
10、IIC、SPI、UART通信协议的作用和区别,以及为什么用这个不用另外一个进行通信
11、用变量a给出下面的定义
8、C语言编程中,单片机平台,一般有.c和.h文件,如果一个人在.h文件中定义了一个变量,会有什么后果。(讨论编程习惯的问题,我一般是只在.h文件中声明函数,不会做变量定义;另外,编程中每一个模块都会有对应的.c和.h文件,最终的总程序自己定义一个comm.c和comm.h去调用各个模块,这样的习惯我觉得还行)
9、if语句中如果是或运算( | ),第一个条件满足时,第二个条件还会判断吗。或运算的话,当然不会,因为 0|1=1,中断了
10、IIC、SPI、UART通信协议的作用和区别,以及为什么用这个不用另外一个进行通信
11、用变量a给出下面的定义
a) 一个整型数;
b)一个指向整型数的指针;
c)一个指向指针的指针,它指向的指针是指向一个整型数;
d)一个有10个整型的数组;
e)一个有10个指针的数组,该指针是指向一个整型数;
f)一个指向有10个整型数数组的指针;
g)一个指向函数的指针,该函数有一个整型参数并返回一个整型数;
h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数

精品文章推荐:

2022年嵌入式开发想进互联网大厂,你技术过硬吗?

从事十年嵌入式转内核开发(23K到45K),给兄弟们的一些建议

腾讯首发Linux内核源码《嵌入式开发进阶笔记》差距差的不止一点点哦

  • 2
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简说Linux内核

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值