来源于读者投稿,作者Angel。
笔试时间: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.0到191.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、持久性 Durability
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 5次
1,2,3 miss 3次 *** 为 1,2,3
1, 2 hit
4 miss 1次,此时1出4进 此时***为2,3,4
2,3 hit
5 miss,2出5进,***为3,4,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;
}
·················· END ··················
本文分享自 嵌入式Linux系统开发 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!