嵌入式面试资料整理

您所在的位置:网站首页 奥运会团结协作的例子 嵌入式面试资料整理

嵌入式面试资料整理

2023-02-18 23:28| 来源: 网络整理| 查看: 265

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

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通信协议的作用和区别,以及为什么用这个不用另外一个进行通信

三、经典面试题

1.嵌入式系统中经常要用到无限循环,如何用C编写死循环?

while(1){}或者for(;;)

2.程序的局部变量存在于哪里,全局变量存在于哪里,动态申请数据存在于哪里?

程序的局部变量存在于栈区;全局变量存在于静态区;动态申请数据存在于堆区

3.关键字const有什么含义?

1)只读。

2)使用关键字const也许能产生更紧凑的代码。

3)使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改

4.请问以下代码有什么问题?

int main() {

char a;

char *str=&a;

strcpy(str,"hello");

printf(str);

return 0;

}

没有为str分配内存空间,将会发生异常,问题出在将一个字符串复制进一个字符变量指针所指地址。虽然可以正确输出结果,但因为越界进行内在读写而导致程序崩溃

5.已知一个数组table,用一个宏定义,求出数据的元素个数?

#define NTBL (sizeof(table)/sizeof(table[0]))

6.写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个?

#define MIN(A,B) ((A)



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3