嵌入式系统开发方向的面试题总结

面试题总结:

1 Linux常用命令
2 Linux设置环境变量,举例说明
3 单例模式,及其线程安全
4 打开一个网站的时候,发生了什么
5 10MB大小的数据排序,有10MB的内存,如何排序
6 称重的方法(从100个硬币中找出最轻的那个假币)
7 用两种方法(占临时内存最少/最快),写出从字符串里找到某个字符或者莫个字符串出现的所有位置的程序
8 如何创建多线程
9 多线程如何进行信息交互
10 多线程共用一个数据变量需要注意什么
11 Http请求的过程与原理
12 TCP连接的特点
13 TCP连接如何保证安全可靠的
14 为什么TCP连接需要三次握手,两次不可以吗,为什么
15 AOP的原理
16 那么你说说代理的实现原理呗
17 什么是线程池?如果让你设计一个动态大小的线程池,如何设计,应该有哪些方法?
18 什么是死锁
19 数据库中什么是事务?事务的隔离级别?事务的四个特性?什么是脏读,幻读,不可重复读?
20 数据库索引的结构有哪些?我说B树和B+树,他说只有这两个吗。我又说全文倒排索引。然后介绍B+树的结构。
21 数据库中的分页查询语句怎么写?
22 什么是一致性哈希?用来解决什么问题?
23 归并排序的过程?时间复杂度?空间复杂度?
24 你平常用什么排序?快速排序。说说在那些场景下适用,哪些场景下不适用。
25 TCP和UDP分别有什么优缺点?如何改进TCP?
26 栈溢出和内存溢出有什么区别?
27 给你一万个数,如何找出里面所有重复的数?用所有你能想到的方法,时间复杂度和空间复杂度分别是多少?
28 给你一个数组,如何里面找到和为K的两个数?
29 什么时候会出现内存泄露?你在实际的项目中有碰到过内存泄露啊?
30 close_wait
31 time_wait 的作用
32 分治策略是什么
33 快排退化为冒泡的情况分析
34 快排的原理,如何利用的分治策略,实现快排
35 快排哪种情况下,不适合使用(数据基本有序),为什么会这样
36 面向对象和面向过程的区别(我只回答了面向对象的 封装继承和多态)
37 银行家算法
38 什么响应状态300、200、500
39 cookie
40 N * N的方格纸,里面有多少个正方形
41 两个数组求交集
42 现在下载速度很慢,试从网络协议的角度分析原因,并优化(网络的5层都可以涉及)
43 比如两个数组求交集的那个题,讲了hash方法之后,要求对hash做优化,上亿个QQ出现极端的hash冲突怎么办?
44 一共憋了三种方法,嵌套哈希,分治,红黑树才放我过去
45 按照A、B、...、Z、AA、AB、...、ZZ、AAA 的序列,给出字符串返回序号。二十六进制,说了下思路写出来了。
46 给出一个个微信用户的好友关系对,将这些用户分成两组,每组内的用户全都互相不是好友。讲了下思路,面试官说复杂度太高怎么办?想了好久都不知道怎么办,就下一题了。  是图的二着色问题么?不知道大家有什么好的想法
47 环形圈内有n个加油站,加油站内的油刚好够跑一圈,给出每个加油站的距离和里面的油量,找到够油跑完一圈的路线。
48 C++中的虚函数是怎么实现的
49 什么是多态?
50 用过外观模式,设计模式
51 TCP滑动窗口机制
52 TCP拥塞控制机制
53 socket模型
54 宏、const
55 模板
56 虚析构
57 虚函数实现机制、虚表、虚指针
58 vector与list的区别,map是如何实现的,查找效率是多少
59 extern 关键字有什么用
60 malloc和new的区别,能否malloc(1.2G)
61 内存池实现
62 进程间通信机制
63 Linux ps命令,以及看内存当前使用状态的命令
64 进程与线程的区别,共享的数据
65 进程的内存空间
66 大整数加、减、乘、除、求模运算实现
67 找出一个数组中出现一半的数(肯能没有一个数出现过一半)
68 很多整数,找其中出现次数最多的那个数
69 单链表翻转(两个指针如何实现)、查找、删除、插入
70 双链表排序
71 有序链表合并(递归)
72 判断一个整数是否是2的整数次幂.(n&(n-1))
73 二分查找(注意边界条件)
74 常见排序算法的实现以及稳定性(快排跟归并考的很多)
75 匹配(KMP算法)
76 字符串翻转(O(n))
77 最长递增子序列(nlogn的算法)
78 链表判断是否有环,环的入口,两个链表是否相交(快慢指针)。
79 指定一个数组,求2个数的和等于指定的和(某一个数),如果是3,4,5,n个等于个的和(某一个数)呢?(可以看作背包问题)
80 跳台阶问题
81 红黑树的性质以及插入和删除
82 解析XML文件
83 千万级的用户,提供一个服务,该服务有很多模块,现在有一个底层模块需要优化,问怎么实现,在不影响其他服务模块以及用户体验的情况下。(面IEG)
84 卡特兰数以及公式推导(应多很多)
85 未知大小的文件,翻转整个文件
86 如果内存中有个cache存储qq号和最近登录时间问怎么样做hit和淘汰
87 检测短信敏感词
88 大数据问题
89 什么是二叉平衡树,如何插入节点,删除节点,说出关键步骤。
90 Linux下如何进行进程调度的?
91 常用的hash算法有哪些?
92 如何理解分布式锁?
93 什么是一致性哈希?
94 数据库中的范式有哪些?
95 数据库中的索引的结构?什么情况下适合建索引?
96 线程同步与阻塞的关系?同步一定阻塞吗?阻塞一定同步吗?
97 同步和异步有什么区别?
98 如何创建单例模式?说了双重检查,他说不是线程安全的。如何高效的创建一个线程安全的单例?
99 你知道的开源协议有哪些?
100 你知道的开源软件有哪些?
101 操作系统如何进行分页调度?
102 https和http的区别,RSA是什么,数字签名是什么;
103 守护、僵尸、孤儿进程这种概念
104 select/poll/epoll的区别的时候,这题烂大街的答案就是前两个遍历后者回调,所以后者效率高,我答的更加深一点:select内部是数组实现、poll内部是链表实现,所以select有最大fd限制,poll没有限制(系统资源假设无穷大的话),它俩都有用户态到内核态拷贝的过程,两者的切换和数据拷贝都很消耗性能,而epoll是内部是一棵红黑树,(你要是不懂红黑树就说内部是哈希表,因为epoll以前是哈希表,现在是红黑树,这个点说错了面试官也不会太责罚,他也不一定知道),这个数据结构效率很高,epoll还没有内核和用户态的切换,因为epoll内部采用了共享内存机制,共享内存就这特点。
105 Linux软连接,硬链接
106 树的LL,LR,RR,RL
107 数组中的a={},a,&a,&a[0]等,二维数组
108 OS常用的调度算法 FCFS,SPF,HRN等
109 promise的状态
110 str类函数的自己实现
111 process和thread的区别
112 单链表快速排序
113 Linux启动的过程
114 文本处理系列的命令和查找系列的组合命令、find awk sed
115 红黑树的实现
116 Linux的各类调度算法
117 ospf rep 拥塞控制
118 大端小端
119 不可以重载的运算符
120 双链表快速排序
121 分布式
122 网络字节序是大段
123 SNMP的端口是160传输数据161是告警
124 TCP和UDP的端口号是独立的
125 进程和线程的区别。
126 死锁的必要条件,怎么处理死锁。
127 Window内存管理方式:段存储,页存储,段页存储。
128 进程的几种状态。
129 IPC几种通信方式。
130 什么是虚拟内存。
131 虚拟地址、逻辑地址、线性地址、物理地址的区别。
132 OSI与TCP/IP各层的结构与功能,都有哪些协议。
133 TCP与UDP的区别。
134 TCP报文结构。
135 TCP的三次握手与四次挥手过程,各个状态名称与含义,TIMEWAIT的作用。
136 TCP拥塞控制。
137 TCP滑动窗口与回退N针协议。
138 Http的报文结构。
139 Http1.1和Http1.0的区别
140 Http怎么处理长连接。
141 Cookie与Session的作用于原理。
142 电脑上访问一个网页,整个过程是怎么样的:DNS、HTTP、TCP、OSPF、IP、ARP。
143 Ping的整个过程。ICMP报文是什么。
144 C/S模式下使用socket通信,几个关键函数。
145 IP地址分类。
146 路由器与交换机区别。
147 队列和栈,出栈与入栈。
148 链表的删除、插入、反向。
149 字符串操作。
150 Hash表的hash函数,冲突解决方法有哪些。
151 各种排序:冒泡、选择、插入、希尔、归并、快排、堆排、桶排、基数的原理、平均时间复杂度、最坏时间复杂度、空间复杂度、是否稳定。
152 快排的partition函数与归并的Merge函数。
153 对冒泡与快排的改进。
154 二分查找,与变种二分查找。
155 二叉树、B+树、AVL树、红黑树、哈夫曼树。
156 二叉树的前中后续遍历:递归与非递归写法,层序遍历算法。
157 图的BFS与DFS算法,最小生成树prim算法与最短路径Dijkstra算法。
158 KMP算法。
159 排列组合问题。
160 动态规划、贪心算法、分治算法。(一般不会问到)
161 大数据处理:类似10亿条数据找出最大的1000个数.........等等
162 指针数组,数组指针,指针函数,函数指针的区别
163 SQL语句:create、delete、update、drop等等
164 数据库事务、索引
165 SQL的优化、order by的优化
166 HTTP和HTTPS的主要区别
167 如何设计一个高并发的系统
168 Cookie和Session的区别
169 两条相交的单向链表,如何求他们的第一个公共节点
170 常用的设计模式:单例模式、工厂模式一定要会。单例模式、简单工厂模式、工厂模式、抽象工厂模式、策略模式、观察者模式、组合模式、适配器模式、装饰模式、代理模式、外观模式
171 洗牌算法,播放器随机播放音乐的算法设计
172 二叉树的遍历方式,前序、中序、后序和层序
173 volatile、const、static关键字的使用
174 重载的分类
175 在浏览器地址栏中输入例如www.baidu.com回车到显示页面,网络中的整个过程
176 Linux常用命令及使用的参数
177 TCP/IP的11中状态中常见的几种:SYN_SEND、TIME_WAIT、CLOSE_WAIT
178 三次握手为啥是三次,四次挥手为啥是四次
179 最小堆 插入,删除 编程实现
180 实现atoi()函数
181 给一个数组,求数组中比平均数大的数字个数。
182 矩阵相乘
183 构造函数可以调用虚函数吗
184 析构函数可以抛出异常吗?为什么不能抛出异常?除了资源泄露,还有其他需考虑的因素吗?
185 c++中类型转换机制?各适用什么环境?dynamic_cast转换失败时,会出现什么情况?(对指针,返回NULL.对引用,抛出bad_cast异常)
186 找出链表倒数第k个数(要求使用多种方法)
187 洗牌算法,如何证明算法是随机的
188 100万个32位整数,如何最快找到中位数。能保证每个数是唯一的,如何实现O(N)算法?
189 b树/b+树
190 socket api
191 网络通信模型
192 使用C语言实现C++的特性
193 结构体对其
194 linux的stack有多大,为什么
195 HASH
196 数据元素去重
197 素数、水仙花数、回文串等等概念
198 心跳包
199 STL中常见容器的底层实现的数据结构是什么
200 涂色问题
201 1000瓶液体中有一瓶有毒的,最少多少老鼠可以判断出那个有毒(最少10只,考虑二进制处理)
202 链表删去指定值的节点
203 两个栈实现队列
204 红黑树的特点
205 template
206 算法中的时间复杂度和空间复杂度计算
207 IPC中最快的、可以跨进程的
208 找出一个数组中最大或者最小的K个数
209 大数相加相减

210 各种二叉树

未完!2018/1/5

浦发银行面试:

211.套接口与管道的区别?

222.如何减少代码量?

223.内存是如何分配的?

猜你喜欢

转载自blog.csdn.net/weibo1230123/article/details/78978291