往年百度校园招聘笔试题.docx
往年百度校园招聘笔试题 为了保证结果的公正、公允,考场必需要求有很强的纪律约束,并且特地设有主考、监考等监督考试过程,下面我给大家共享往年百度校内聘请笔试题内容,希望能够帮助大家! 往年百度校内聘请笔试题 笔试的题目: 一.简答题 1.简述iso的7层设计 2.如何在多个进行间进行数据共享(至少写出3种) 3.简述TCP与UDP的区分 二.算法题 1.有一个数据A = a_1,a_2,a_3.a_n,n的大小不定,请设计算法将A中的全部数据组合进行输出 2.有一个数组,里面的元素相邻之间相差肯定值1,如4,5,6,5,4,5,6,7,8,7,8,9,先给定已数据A请输出该数据在数组中的位置J? 3.二叉树的面积等于二叉树的长乘以二叉树的宽,二叉树的宽等于最长节点间的距离,二叉树的长等于根节点到子节点的最长长度,请设计算法计算二叉树的面积? 三.算法设计题 百度地图中存在须要标注的许多点,并且这些点都须要带描述,现将描述假设为矩形,并且可以位于点的左边或右边,但点不能移动,假如两个点间的描述发生覆盖,则 须要将其中的一个点进行删除 1.在一个区域内,请设计算法将有效的点进行输出(尽可能多的点)? 2.假如区域足够大,点足够多,算法会出现性能的瓶颈,请设计具体的算法来说明并解决问题? 百度校内聘请笔试题 一、简答题 1、OSI的七层模型。(10分) OSI的七层模型如下图所示: 2、请列举下不同进程之间共享数据的方式(至少举出三种)。(10分) 1、文件映射(Memory-Mapped Files)能使进程把文件内容当作进程地址间一块内存那样来对待 2、共享内存(Shared Memory)实际就是文件映射的一种特别状况 3、命名管道(Named Pipe)是服务器进程和一个或多个客户进程之间通信的单向或双向管道 4、邮件槽(Mailslots)供应进程间单向通信实力,任何进程都能建立邮件槽成为邮件槽服务器 5、剪贴板(Clipped Board)为不同应用程序之间共享不同格式数据供应了一条捷径 6、动态连接库(DLL)中的全局数据可以被调用DLL的全部进程共享 3、请描述下TCP和UDP的差别,并且各列举出一个上层协议。(10分) TCP-传输限制协议,供应的是面对连接、牢靠的字节流服务。当客户和服务器彼此交换数据前,必需先在双方之间建立一个TCP连接,之后才能传输数据。TCP供应超时重发,丢弃重复数据,检验数据,流量限制等功能,保证数据能从一端传到另一端。 UDP-用户数据报协议,是一个简洁的面对数据报的运输层协议。UDP不供应牢靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。 常常运用“ping”吩咐的原理就是向对方主机发送UDP数据包,ftp等就是运用到的TCP协议 二、算法与程序设计 1、给出一个数据A=a_0,a_1,a_2a_n(其中n可变),打印出该数值元素的全部组合。(15分) 因为题目要求n可变,所以不行能是n层for循环的方式,可以采纳递归的方式来实现,每次取一个元素,在剩下元素的数组中递归,要留意递归结束的条件。 2、有这样一个数组A,大小为n,相邻元素差的肯定值都是1,如A=4,5,6,5,6,7,8,9,10,9,现在给定数组A和目标整数t,请找到t在A中的位置。(15分) 最简洁的方式是循环遍历每一个元素之后比较,找到t在A中的位置,此种方法效率最低; 改进:因为相邻元素差的肯定值都是1,那么随意两个元素相距的位置至少是两元素差的肯定值个,假设要找的元素是t,t和a(0)的差为y1=abs(t-a0),那么t和a0的距离至少是y1,再求一次差值y2=abs(t-ay1),t和ay1+y2的距离至少是y2,接着向后查找,直到相等为止,此种方法效率较前一种高 3、有一颗二叉树,定义树的高度为从根到叶子节点的最长距离,树的宽度为每层节点的最大值,树的面积定义为高度和宽度的乘积。写一个函数计算一个二叉树的面积。(15分) 广度遍历求树的宽度,深度遍历求树的高度,之后计算面积 历年网易校内聘请笔试题 1、假设进栈次序是e1, e2, e3, e4,那可能的出栈次序是() A、e2, e4, e3, e1 B、e2, e3, e4, e1 C、e3, e2, e4, e1 D、e1, e2, e4, e3 给定入栈依次,求出可能的出栈依次。(点评:老得掉渣得题目了,只要当心点都没有问题) 2、表达式X=A+B_(C-D)/E的后缀表示形式可以是() A、XAB+CDE/-_= B、XA+BC-DE/_= C、XABCD-_E/+= D、XABCDE+_/= 分析:XABCD-_E/+= 3.四叉树中包含地空指针数量有多少?假设每个节点含有四个指向其孩子的指针,那么给定n个节点,其4n个指针有多少指向空?(比较简洁的题目,n个节点运用了的指针有n-1,所以最终的答案位4n-(n-1)=3n+1) 分析:或者举例说明也行。 4.那个排序算法是非稳定的?选择,冒泡、希尔,堆排序,快速等 (也是比较基础的题目) A、冒泡排序 B、归并排序 C、快速排序 D、堆排序 E、希尔排序 分析:凡是O(n2)的全部是稳定排序,O(nlogn)的全部是非稳定排序。 5.依据函数,给予参数值,写输出。请问func(0x7f530829)的返回值是() int func(unsigned int i) unsigned int temp = i; temp = (temp & 0x55555555) + (temp & 0xaaaaaaaa)>>1); temp = (temp & 0x33333333) + (temp & 0xcccccccc)>>2); temp = (temp & 0x0f0f0f0f) + (temp & 0xf0f0f0f0)>>4); temp = (temp & 0xff00ff) + (temp & 0xff00ff00)>>8); temp = (temp & 0xffff) + (temp & 0xffff0000)>>16); return temp; A、15 B、16 C、17 D、18 分析:函数实现的是求二进制表示的时候,1的个数,一共15个 最起先把每一个位看做一个节点,相邻节点值相加,结果用两个位表示。 然后每两个位看做一个节点,相邻节点值相加,结果用四个位表示。 以此类推,直到只剩下一个节点。 6.进程与线程的区分:系统调度是对进程还是线程,线程与进程共享的内存空间、公共地址空间等; A.操作系统只调度进程,不调度线程 B.线程共享内存地址空间,进程不共享 C.线程间可共享内存数据,但进程不行以 D.进程可以通过IPC通信,但线程不行以 7.内存管理:段页式管理,地址映射表是?(操作系统方面的学问也不能掉以轻心呀) A. 每个作业或进程一张段表,一张页表 B. 每个作业或进程的每个段一张段表,一张页表 C. 每个作业或进程一张段表,每个段一张页表 D. 每个作业一张页表,每个段一张段表 8、关于TCP协议,下面哪种说法是错误的() A、TCP关闭连接过程中,两端的socket都会经过TIME_WAIT状态 B、对一个Established状态的TCP连接,调用shutdown函数可以让主动调用的一方进入半关闭状态 C、TCP协议默认保证了当TCP的一端发生意外崩溃(当机、网线断开或路由器故障),另一端能自动检测到连接失效 D、在胜利建立连接的TCP上,只有在Established状态才能收发数据,其他状态都不行以。 分析:tcp/ip协议的实际运用过程中的问题:例如单方面断开后,另一端出于哪种状态,还有 9、关于主键Primary Key和索引index的说法哪些是错误的?() A、唯一索引的列允许为NULL值 B、一个关系表中的外键必定是另一表中的主键 C、一个表中只能有一个唯一性索引 D、索引主要影响查询过程,对数据的插入影响不大 分析:数据库方面的学问:主键和索引的基本定义及其性质,例如主键在表中是否唯一,索引的速度以及对表的变更的影响;无论是唯一索引还是非唯一索引,索引列都允许取NULL值 10、数据库的事务隔离级别一般分为4个级别,其中可能发生“不行重复读”的事物级别有() A、SERIALIZABLE B、READ COMMITTED C、READ UNCOMMITTED D、REPEATABLE READ 分析数据库:数据库的不行重复访问异样,四种事务隔离级别中哪些可以避开该类异样? 各隔离级别对各种异样的限制实力 LU丢失更新 DR脏读 NRR非重复读 SLU二类丢失更新 PR幻像读 未提交读 RU Y Y Y Y Y 提交读 RC N N Y Y Y 可重复读 RR N N N N Y 串行读 S N N N N Y 11、假如F(n)为该数列的第n项,那么这句话可以写成如下形式: F(1)=1,F(2)=1,F(n)=F(n-1)+F(n-2) (n>=3) 请实现该函数F(n)的求解,并给出算法困难度,要求算法困难度小于O(n2)。 思路:运用滚动数组可以保存以前保存的结果,加快速度,削减空间困难度。 int Fib(int index) if(index<1) return-1; int a1=1,a2=1,a3=1; for(int i=0;i a3=a1+a2; a1=a2; a2=a3; return a3; 其次 部分(必做):程序设计 1、下面的程序的输出是什么? #include int main(void) int n; char y10 = "ntse" char _x = y; n = strlen(x); _x = xn; x+; printf("x=%sn",x); printf("y=%sn",y); return 0; 输出: x=tse y= 因为n=4,则_x = xn; 的功能是将x指向的第一个字符n修改为0,这样y字符串就结束了,所以其次输出为空,x+操作后,x指向其次个字符t,所以第一个输出为:tse。 2、请给出下面程序的输出结果,并说明缘由。 #include #include using namespace std; template class array public: array(int size); size_t getVectorSize() return _data.size(); size_t getSize() return _size; public: vector _data; size_t _size; ; template array:array(int size) : _size(size) , _data(_size) int main(void) array _arr = new array(3); cout cout return 0; 12.写一个程序来确定系统是大端模式还是小端模式; 13.编程实现采纳位操作来实现整数的加法操作。 14. 图的矩阵表示法,图的深度优先遍历,算法思路及其实现。 15.CAS(compare and swap)操作实现:(详细原理可以参考) 16.fork函数的用法。详细题目为: #include #include #include int main(void) int i; for(i=0; i<2; i+) fork(); printf("-"); fflush(stdout); return 0; 6个- 详见: 17.spin lock原理: 先来一些代码吧! void initlock(volatile int_ lock_status) _lock_status = 0; void lock(volatile int_ lock_status) while(test_and_set(lock_status = =1); void unlock(volatile int_ lock_status) _lock_status = 0; 问题:volatile的作用?lock函数优化(针对在多cpu上提高cpu cache)?上面的缺陷(内存模式上的)? volatile的作用: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次干脆读值。假如没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。 18.给定一个巨大的文件,如何从中选出k行,随处输出k行到文件中。要求每一行出现的概率都相等。设计算法、说明思路,算法困难度。 19.win32中WM_Quit的作用是什么? 20.比较mutex和临街区之间的区分,并说明其运用场景。 21.多线程编程,如何平安退出线程。 还有网易数据挖掘方面的题目,这次数据挖掘的题目比较新颖,都是简答题。如下: 1,简述你对数据与处理的相识; 2,简述你对中文分词的理解,说明主要难点和常用算法; 3,常见的分类算法有哪些; 4,简述K-MEANS算法; 5,设计一个智能的商品举荐系统; 6,简述你对观点挖掘的相识 网易嬉戏笔试的人太少,因此可供应的笔试题目都不全,只是听说特殊的难。还有好多是数学方面的智力题。例如: 1、英雄升级,从0级升到1级,概率100%。 从1级升到2级,有1/3的可能胜利;1/3的可能停留原级;1/3的可能下降到0级; 从2级升到3级,有1/9的可能胜利;4/9的可能停留原级;4/9的可能下降到1级。 每次升级要花费一个宝石,不管胜利还是停留还是降级。 求英雄从0级升到3级平均花费的宝石数目。 本文来源:网络收集与整理,如有侵权,请联系作者删除,谢谢!第19页 共19页第 19 页 共 19 页第 19 页 共 19 页第 19 页 共 19 页第 19 页 共 19 页第 19 页 共 19 页第 19 页 共 19 页第 19 页 共 19 页第 19 页 共 19 页第 19 页 共 19 页第 19 页 共 19 页