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

6、汇顶笔试题

笔试时间:2020.08.24,20:00-21:00
提醒:很多大公司秋招在七八月份就要投递简历,九月已经晚了。
通用部分
投的嵌入式软件岗位,给的题目是现场应用工程师(音频)考卷。
主要考察硬件,单片机,C语言三方面。
1、单片机程序存在哪里(有flash的情况下):D

A ROM
B RAM
C 寄存器
D flash

2、波特率的单位是什么?
答案:bps
3、读写寄存器快还是flash快?
答案:寄存器
4、中断返回地址是谁的地址?
5、简单逻辑题。
6、典型IO口电路有哪三个寄存器?
答案:状态寄存器、控制寄存器、数据寄存器。
7、三态门是什么?
答案:高电平、低电平、高阻态。
8、内存四区中各种变量存在哪里?
在这里插入图片描述
9、数组初始化方式

1. 直接给每个元素赋值
int array[4] = {1,2,3,4};
2. 给一部分赋值,后面的全部为0
int array[4] = {1,2};
3. 由赋值参数个数决定数组的个数
int array[] = {1,2};
4. 数组元素的值是随机分配的
int array[4] = {};

10、一段程序考察i++与++i的区别。

11、一段代码考察运算符优先级
在这里插入图片描述
12、指针变量
答案:存放地址的变量称为指针变量。指针变量是一种特殊的变量,它不同于一般的变量,一般变量存放的是数据本身,而指针变量存放的是数据的地址。

13、队列和栈的区别(经典问题)

14、考察const作用,以下两种表达方式有什么区别?

int const * a

const int * a

15、sizeof 数组的计算。

答案:这种主要考察内存。比如sizeof或者strlen。

16、编程题

判断是否是回字符串(首尾相同)
输入abcba 返回true
输入abc 返回flase

7、远景能源笔试题

笔试时间:2020.09.09
岗位:嵌入式软件工程师
题型:
单选20道,40分
不定项选择题10道,20分
编程题2道,40分
单选:
1、长度最大为150的队列满二叉树,采用广度优先遍历时,能够容纳的二叉树最大的深度为?用公式算节点

2、n个元素的有序单链表,插入一个新节点,仍然保持有序,时间复杂度为?

3、进程与线程的区别。

4、存储器速度排名:U盘、硬盘、CD-ROM、RAM?

5、内部异常分为故障(fault)、陷阱(trap)、终止(abort),他们的区别是什么?

6、HTTP1.0中,状态码302表示?答案:D
A.成功
B.内部错误
C.网页未找到
D.文件被转移
7、C++创建对象时,对象的内存和指向对象的指针放在哪里? 答案:B

A.栈区,堆区
B.堆区,栈区
C.全局区,栈区
D.常量区,堆区

解析:自己创建的,在堆。指针是自动的,在栈
8、ABCDE类地址,B类IP地址的范围是多少?

答案:128.0.0.0191.255.255.255

9、cache的作用是什么?
答案:高速缓冲存储器,一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问。
10、顺序存储的线性表访问节点和增加节点的时间复杂度为?答案:C

A.O(n) O(n)
B.O(n) O(1)
C.O(1) O(n)
D.O(1) O(1)

11、考察数据库的查找命令。

12、数据库事务的四个特性是?
答案:原子性 Atomicity、一致性 Consistency、隔离型 Isolation、持久性 Durabilit
13、冯诺依曼工作方式的基本特点? 答案:B

A.多指令流单数据流
B.按地址访问并顺序执行指令
C.堆栈操作
D.存储器按内部选择地址

冯诺依曼体系结构的特点是:
(1)计算机处理的数据和指令一律用二进制数表示
(2)顺序执行程序:计算机运行过程中,把要执行的程序和处理的数据首先存入主存储器(内存),计算机执行程序时,将自动地并按顺序从主存储器中取出指令一条一条地执行,这一概念称作顺序执行程
序。

(3)计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成。
14、假设某一虚拟存储系统采用先进先出(FIFO)页面淘汰算法,有一个进程在内存中占3页(开始时
内存为空),当访问如下页面序号(1,2,3,1,2,4,2,3,5,3,4,5)后,会产生几次缺页?

A.4
B.5
C.6
D.7
1 1 (一次)
2 1 2(一次)
3 1 2 3(一次)
1 1 2 3
2 1 2 3
4 2 3 4(一次)
2 2 3 4
3 2 3 4
5 3 4 5(一次)
3 3 4 5
4 3 4 5
5 3 4 5
B 51,2,3 miss 3***1,2,3
1, 2 hit
4 miss 1次,此时14进 此时***2,3,4
2,3 hit
5 miss,25进,***34,5
3,4,5 hit
总计5

15、下面哪个不是线性表? 答案:D

A.循环链表
B.队列
C.栈
D.关联数组
E.空字符串数组
F.双向链表

关联数组没有顺序,不是线性表
16、若一棵完全二叉树有768个结点,则该二叉树中叶结点的个数是? 答案:C
A.257
B.258
C.384
D.385
解析:首先理解什么而是完全二叉树,完全二叉树从根结点到倒数第二层满足完美二叉树,最后一层可以不完全填充,其叶子结点都靠左对齐。
有768个结点,则树的高度为10。前9层结点数为511,则第10层有768-511=257个叶子结点。257个叶子结点在第9层有129个根结点。则第九层剩下256-129=127个叶子结点。所以共有127+257=384。

17、交换机工作在OSI七层的哪一层? 答案:B

A.一层
B.二层
C.三层
D.三层以上

18、某二叉树的中序遍历序列为CBADE,后序遍历序列为CBADE,则前序遍历序列为

A.EDABC
B.CBEDA
C.CBADE
D.EDCBA

在这里插入图片描述
19、一段C++代码的运行结果

20、面向链接的传输协议是?

答案:TCP(传输控制协议)

不定项选择题:
1、ArrayList和LinkedList的区别是什么?
2、查找哈希表,解决冲突的方法包括? 答案:AD

A.链地址法
B.除留余数法
C.直接地址法
D.线性探测再散列法

3、构造散列(hash)的方法?

4、堆的形状是?

答案:完全二叉树

5、linux中硬链接的作用是为了什么?

答案:硬链接是指通过索引节点来进行链接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号号(Inode Index)或者Inode,它是文件或者目录在一个文件系统中的唯一标识,文件的实际数据放置在数据区域(data block),它存储着文件重要参数信息,也就是元数据 (metadata),比如创建时间、修改时间、文件大小、属主、归属的用户组、读写权限、数据所在block号等。

6、linux下创建文件的命令:touch,vi,vim

linux下创建文件夹的命令:mkdir
7、ISO七层网络中每一层的功能是什么?

8、死锁出现的条件是什么?

答案:有四个必要条件。
1、互斥,
2、占有且等待,
3、不可抢占,
4、循环等待。具体解释请百度。

9、java反射机制是什么?

答案:JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于
任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。
10、AVL和hash的考察。

编程题:
1、闭合符号检测。就是检测()【】{}“”是不是一对。
case通过率66.7%,不知道为什么。

#include<stdio.h>
#include<map>
#include<iostream>
#include<stack>
#include <algorithm>
using namespace std;
int main()
{
string s;
getline(cin,s);
int len=s.size();
map<char,char> m;
m['(']=')';
m['{']='}';
m['[']=']';
stack <char> a;
int flag=1;
for(int i=0;i<len;i++)
{
if(s[i]=='(' || s[i]=='{' || s[i]=='[')
a.push(s[i]);
else if(s[i]==')' || s[i]=='}' || s[i]==']')
{
if(a.size() && m[a.top()]==s[i])
a.pop();
else
{
flag=0;
break;
}
}
}
if(flag && a.size() == 0)
printf("yes\n");
else
printf("no\n");
return 0;
}

2、输入一个数,判断它的阶乘后面有几个0。
输入3,即3!输出0
输入5,即5!输出1
输入1000,即1000!输出249

#include<stdio.h>
int countFive(int n)
{
int i, ans = 0;
for(i = 5; i <= n; i++)
{
int j = i;
while(j%5==0)
{
ans++;
j /= 5;
}
}
return ans;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",countFive(n));
return 0;
}
  • 1
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值