嵌入式面试常见问题(八)—各大公司面试题

1、大疆笔试题

在深圳做嵌入式,大疆公司绝对是Top级别的,大疆的技术栈也很深。但2020受美国制裁后,有所缩
招。另外提醒,研发岗对学历要求高一些。
大疆公司每年秋招是分批考试,考试时间自选,分为AB卷,本文分享是B卷。
选考时间:2020.08.16,19:00-20:30(A卷为2020.08.10)
题型:单选(2’ * 10)、多选(3’ * 5)、填空(4’ * 4)、简答(6’ * 3)、编程( * 2 = 31’)
B卷主要考察C语言,还考察一些Liunx和ARM知识点

一、单选:

1、

const *charconst char* 定义变量的区别

2、关于cache错误的是?

3、sizeof 结构体(含位域的)

unit16_t
unit32_t
unit8_t

4、FIQ中断向量入口地址?(考察ARM知识点)

回答:FIQ的中断向量地址在0x0000001C,而IRQ的在0x00000018

5、R15除了本身的功能还可以作为程序计数器?

回答:寄存器R13在ARM指令中常用作堆栈指针SP,寄存器R14称为子程序链接寄存器LR(LinkRegister),寄存器R15用作程序计数器(PC)。
ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个位状态寄存器。通用寄存器R0~R14、程序计数器PC(即R15)是需要熟悉其功能的。

6、如何判断机器大小端?
联合体方法判断方法:利用union结构体的从低地址开始存,且同一时间内只有一个成员占有内存的特性。大端储存符合阅读习惯。联合体占用内存是最大的那个,和结构体不一样。

a和c公用同一片内存区域,所以更改c,必然会影响a的数据

#include<stdio.h>

int main(){
union w
{
int a;
char b;
}c;
c.a = 1;
if(c.b == 1)
printf("小端存储\n");
else
printf("大端存储\n");
return 0;
}

指针方法
通过将int强制类型转换成char单字节,p指向a的起始字节(低字节)


#include <stdio.h>
int main ()
{
	int a = 1;
	char *p = (char *)&a;
if(*p == 1)
{
	printf("小端存储\n");
}
else
{
	printf("大端存储\n");
}
return 0;
}



二、多选
1、哪些类型可以自加:i++

2、全双工总线类型有哪几个?
在这里插入图片描述

3、线程间同步方式?
进程间通讯:
(1)有名管道/无名管道(2)信号(3)共享内存(4)消息队列(5)信号量(6)socket
线程通讯:
(1)信号量(2)读写锁(3)条件变量(4)互斥锁(5)自旋锁

三、填空
1、填一种编译优化选项:-o

2、在有数据cache情况下,DMA数据链路为:外设-DMA-DDR-cache-CPU,CPU需要对cache做什么操
作,才可以得到数据?

3、面向对象编程三大特点?

回答:封装、继承和多态

四、简答

1、SPI四种模式,简述其中一种模式,画出时序图?

回答:请参考CSDN博客。

2、判断大小端的三种方式?

3、为什么TCP是稳定传输?

回答:可以从TCP和UDP的区别出发去回答。

五、编程
1、求最大的和:
取两个不重复的字串,求他们的最大的和

2、停车,求收费最多(数据太多,可能有误,自己可以想思路)

用户编号 1 2 3 4
开始时间 1 2 3 7
结束时间 4 4 12 9

同一时间只能服务一个用户

用户编号 1 2 3 4
开始时间 1 2 3 7
结束时间 4 4 12 9

2、小米笔试题

岗位:嵌入式软件工程师
笔试时间:2020.09.08,18:00-19:30
选择题10(3分)=30
专项选择题10(3分)=30
编程题2(20分)=40
选择题:
1、如果要在根目录运行程序,需要把路径设置到下面哪个环境变量中?

2、inline函数的特性。

3、冯‘诺依曼体系:计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成。

4、对900,512,613,700,810,采用选择排序,则第三轮排序后结果输出是多少?

5、某一段程序的时间复杂度是多少?(考察时间复杂度和空间复杂度)

6、简单逻辑题。

7、入栈ABCDE,不可能的出栈顺序是?

答案
8、死锁是怎么发生的,以下哪种情况会发生死锁?

9、在搜索中“主键”的意思是?

10、采样频率至少不小于多少才能还原波形?

专项选择题:
1、构造函数和析构函数的调用参数的顺序是?

2、进程和线程的区别?(经典)

答案:经典题目,参见下面链接

3、java如何实现类继承?

4、java的垃圾回收机制是哪些表述?

5、结构体避免编译器优化的关键字?

比如:attribute((packed))

6、java中,switch(expression)语句,expression不可能是什么类型?

7、一段python代码运行结果是?

8、C语言中static关键字的作用?(经典)

9、C++中不能重载的符号是哪一项?

++、>=、sizeof、delete?

10、C++中生成.exe文件的过程

编程题

1、密码生成器
时间限制:1000MS
内存限制:65536KB
题目描述:
注册网站时,需要使用包含不同类型(数字、符号、大写字母、小写字母)的字符,和特定长度。检查一个
密码内容同时包含以上4种类型的字符,并且长度在8-120个字符之间。符合要求,返回0;长度不符合返
回1;类型不符合要求返还2.
可以一次输入多组密码,以空格符间隔,空格符不作为密码。
输入描述

需要验证的密码,多个密码以空格符间隔,空格符不作为密码的部分

输出描述

每个密码的检查结果,每个结果需要换行输出

样例输入

123 12345678 123abcABC!!!

样例输出

1
2
0

2、单词搜索

第二道题是leetcode原题第78题,难度中等。
时间限制:3000MS

内存限制:589824KB
题目描述:
给定一个二维网格和一个单词,找出该单词是否存在于网格中。
单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相
邻的单元格。同一个单元格内的字母不允许被重复使用。
输入描述:

 需要查询的单词

输出描述:

true代表单词存在,false表示不存在

示例

board =
[
['A','B','C','E'],
['S','F','C','S'],
['A','D','E','E']
]
给定 word = "ABCCED", 返回 true
给定 word = "SEE", 返回 true
给定 word = "ABCB", 返回 false
  • 1
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值