收藏 分享(赏)

历年百度笔试题面试题集总.pdf

上传人:weiwoduzun 文档编号:3153382 上传时间:2018-10-04 格式:PDF 页数:81 大小:645.81KB
下载 相关 举报
历年百度笔试题面试题集总.pdf_第1页
第1页 / 共81页
历年百度笔试题面试题集总.pdf_第2页
第2页 / 共81页
历年百度笔试题面试题集总.pdf_第3页
第3页 / 共81页
历年百度笔试题面试题集总.pdf_第4页
第4页 / 共81页
历年百度笔试题面试题集总.pdf_第5页
第5页 / 共81页
点击查看更多>>
资源描述

1、11:堆和栈的区别,什么时候用堆什么时候用栈?2:树的深度优先搜索算法按照某种条件往前试探搜索,如果前进中遭到失败(正如老鼠钻迷宫老鼠遇到死胡同)则退回头另选通路继续搜索,直到找到条件的目标为止。3:广度优先搜索算法宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。Prim最小生成树算法采用了和宽度优先搜索类似的思想。其别名又叫BFS,属于一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。换句话说,它并不考虑结果的可能位址,彻底地搜索整张图,直到找到结果为止。4:树的非递归实现5:数据库事务的四大特性原子性atomic、一致性

2、consistency、分离性isolation、持久性durability事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。这种特性称为原子性。事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。分离性指并发的事务是相互隔离的。即一个事务内部的操作及正在操作的数据必须封锁起来,不被其它企图进行修改的事务看到。持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。即一旦一个事务提交,DBMS保证它对数据库中数据的改变应该是永久性的,耐得住任何系统故障。持久性通过数据库备份和恢复来保证。6:ASCI

3、I码-十进制(对应关系)0-48 9-57A-65 Z-90a-97 z122十进制:decimal,简称:DEC7:算法与程序设计题#include using namespace std;/该 函 数 实 现 返 回 一 个 以 “0”结 束 的 字 符 串 中 最 长 的 数 字 串 的 长 度 ,/并 把 该 数 字 子 串 的 首 地 址 赋 给 outputstr/不 能 使 用 任 何 库 函 数 或 已 经 存 在 的 函 数 , 如 strlen。/例 如 : 在 字 符 串 “abc123abcdef12345abcdefgh123456789”中 ,/把 该 字 符 串

4、的 首 地 址 赋 给 inputstr, 函 数 返 回 ,/outputstr指 向 字 符 串 “”的 首 地 址 。int maxContinuNum(const char *inputstr,const char *outputstr)2int max=0,count=0;while(*inputstr!=0) /如 果 字 符 串 没 有 到 末 尾 , 继 续 循 环 if(*inputstr=49 outputstr=inputstr-count; /返 回 最 大 数 字 子 串 的 首 地 址 对 应 的 数 字count=0;else count=0;inputstr+;

5、if(*inputstr=0) /特 殊 情 况 , 最 长 字 符 串 在 末 尾 max=count;outputstr=inputstr-count; /返 回 最 大 数 字 子 串 的 首 地 址 对 应 的 数 字coutc=RootBc,而且A和B的左右子树相等或者左右互换相等。2、写一段程序,找出数组中第k大小的数,输出数所在的位置。例如2,4,3,4,7中,第一大的数是7,位置在4。第二大、第三大的数都是4,位置在1、3随便输出哪一个均可。函数接口为:intfind_orderk(constint*narry,constintn,constintk)52、已知一个字串由GBK

6、汉字和ansi编码的数字字母混合组成,编写c语言函数实现从中去掉所有ansi编码的字母和数字(包括大小写),要求在原字串上返回结果。函数接口为:intfilter_ansi(char*gbk_string)注:汉字的GBK编码范围是0x8140-0xFEFE百度笔试题1)此题10分对任意输入的正整数N,编写C程序求N!的尾部连续0的个数,并指出计算复杂度。如:18!6402373705728000,尾部连续0的个数是3。(不用考虑数值超出计算机整数界限的问题)2)此题10分编写一个C语言函数,要求输入一个url,输出该url是首页、目录页或者其他url如下形式叫做首页:militia.info

7、/ B2e Cn2-e Dn2-2e2._是面向对象程序设计语言中的一种机制。这种机制实现了方法的定义与具体的对象无关,而对方法的调用则可以关联于具体的对象。A继承(Inhertance)B模板(Template)C对象的自身引用(Self-Reference)D动态绑定(DynamicBinding)3.应用层DNS协议主要用于实现网络服务功能.A.IP地址到网络设备名字的映射B.IP地址到网络硬件地址的映射C.网络设备名字到IP地址的映射D.网络硬件地址到IP地址的映射4.linux默认情况下,一个进程最多能打开多少文件A.64B.128C.512D.10245.下面结构体structs1

8、charch,*ptr;unionshorta,b;unsignedintc:2,d:1;structs1*next;的大小是_:7A.12字节B.16字节C.20字节D.24字节6.任何一个基于“比较“的内部排序的算法,若对6个元素进行排序,则在最坏情况下所需的比较次数至少为_。A10B11C21D367.以下不是进程间通讯的是_A共享内存B信号量C线程局部存储D消息队列8.下面程序,求count的值intfunc(x)intcount=0;x=9999;while(x)Count+;x=xreturncount;A8;B10;C5;D11A9.使用malloc系统调用分配的内存是在_D_上

9、分配的A栈;Bbss;C物理内存;D堆10.最坏情况下,合并两个大小为n的已排序数组所需要的比较次数_A.2nB.2n-1C.2n+1D.2n-2二、简答题:20分,共3题1.(5分)下面这段代码是把中英文混合字符串(汉字用两个字节表示,特点是第一个字节的最高位为1)中的大写字母转化为小写字母,请找出其中的bug,注意各种异常情况。for(char*piterator=szWord;*piterator!=0;piterator+)if(*piteratorelseif(*piterator=A89 if(copy)10 len=flag11 errstr=malloc(len);12 if(

10、errstr=NULL)13 return-1;14 strncpy(errstr,_errindex,sizeof(errstr);15 else16 errstr=_err+index;171819voidf2(intc)20 char*err;2122 swtch(c)23 case1:24 if(f1(err,0x110004)!=-1)25 printf(err);26 case2:27 if(f2(err,0x30000D)!=-1)28 printf(err);29 30三、编程题:30分共1题注意:要求提供完整代码,如果可以编译运行酌情加分。1.求符合指定规则的数。给定函数d(

11、n)=n+n的各位之和,n为正整数,如d(78)=78+7+8=93。这样这个函数可以看成一个生成器,如93可以看成由78生成。定义数A:数A找不到一个数B可以由d(B)=A,即A不能由其他数生成。现在要写程序,找出1至10000里的所有符合数A定义的数。输出:13四、设计题:35分共1题注意:请尽可能详细描述你的数据结构、系统架构、设计思路等。建议多写一些伪代码或者流程说明。121.假设一个mp3搜索引擎收录了224首歌曲,并记录了可收听这些歌曲的230条URL,但每首歌的URL不超过210个。系统会定期检查这些URL,如果一个URL不可用则不出现在搜索结果中。现在歌曲名和URL分别通过整型

12、的SONG_ID和URL_ID唯一确定。对该系统有如下需求:1)通过SONG_ID搜索一首歌的URL_ID,给出URL_ID计数和列表2)给定一个SONG_ID,为其添加一个新的URL_ID3)添加一个新的SONG_ID4)给定一个URL_ID,将其置为不可用限制条件:内存占用不超过1G,单个文件大小不超过2G,一个目录下的文件数不超过128个。为获得最佳性能,请说明设计的数据结构、搜索算法,以及资源消耗。如果系统数据量扩大,该如何多机分布处理百度第二套一、选择题:15分共10题1.已知一个线性表(38,25,74,63,52,48),采用的散列函数为Hash($Key)=$Key mod7,

13、将元素散列到表长为7的哈希表中存储。请选择后面两种冲突解决方法分别应用在该散列表上进行等概率成功查找的平均查找长度,拉链法,线性探测法.A.1.0B.1.5C.1.7D.2.0E.2.3F.7/6G.4/3H.3/22.需要将OS缓冲区的数据刷新到硬盘,可以调用的函数有(多选):A.fflush()B.fsync()C.sync()D.writev()3.下面哪个shell语句不能打印出用户主目录的路径A.echo“$HOME“B.echoC.echo$HOMED.echo$HOME4.最坏情况下,合并两个大小为n的已排序数组所需要的比较次数A.2nB.2n-1C.2n+1D.2n-25.一个

14、B类网的子网掩码是255.255.240.0,这个子网能拥有的最大主机数是:A.240B.255C.4094D.655346.以下代码执行后,val的值是_:unsignedlongval=0;chara=0x48;charb=0x52;val=b=0;i-)12if(s“A“/*检查此蚂蚁是否已经遇到另外一只蚂蚁*paramant*return如果遇到返回true*/publicbooleanisEncounter(Antant)returnant.position=this.position;/*改变蚂蚁的前进方向*/publicvoidchangeDistation()direction

15、=-1*direction;/*构造函数,设置蚂蚁的初始前进方向,和初始位置*paramposition*paramdirection*/publicAnt(intposition,intdirection)this.position=position;if(direction!=1)this.direction=-1;/方向设置初始位置,比如为0时,也将其设置为1.这样可以方便后面的处理elsethis.direction=1;22/packagebaidu;publicclassControllerpublicstaticvoidmain(Stringargs)inttime=0;for(

16、inti=0;i若存在,则将此小集合与大集合合并,并根据大小插入对应的位置。转3。2若不存在,则在该集合中取下一个元素。如果无下一个元素,即所有元素都不存在于其他集合。则表明此集合独立,从待处理集合列表中删除。并加入结果集合列表。转3。3。如果待处理集合列表不为空,转2。如果待处理集合列表为空,成功退出,则结果集合列表就是最终的输出。算法复杂度分析:假设集合的个数为n,最大的集合元素为m排序的时间复杂度可以达到n*log(n)然后对于元素在其他集合中查找,最坏情况下为(n-1)*m查找一个集合是否与其他集合有交集的最坏情况是m*m*(n-1)合并的时间复杂度不会超过查找集合有交集的最坏情况。所

17、以最终最坏时间复杂度为O(m*m*n*n)需要说明的是:此算法的平均时间复杂度会很低,因为无论是查找还是合并,都是处于最坏情况的概率很小,而且排序后优先用最小集合作为判断是否独立的对象,优先与最大的集合进行比较,这些都最大的回避了最坏情况。(3)可能的改进:首先可以实现将每个集合里面的字符串按照字典序进行排列,这样就可以将查找以及合并的效率增高。另外,可能采取恰当的数据结构也可以将查找以及合并等操作的效率得到提高。2006百度笔试题一、选择题:15分共10题1.一个含有n个顶点和e条边的简单无向图,在其邻接矩阵存储结构中共有_个零元素。Ae B2e Cn2-e Dn2-2e2._是面向对象程序

18、设计语言中的一种机制。这种机制实现了方法的定义与具体的对象无关,而对方法的调用则可以关联于具体的对象。A继承(Inhertance)B模板(Template)C对象的自身引用(Self-Reference)D动态绑定(DynamicBinding)283.应用层DNS协议主要用于实现网络服务功能.A.IP地址到网络设备名字的映射B.IP地址到网络硬件地址的映射C.网络设备名字到IP地址的映射D.网络硬件地址到IP地址的映射4.linux默认情况下,一个进程最多能打开多少文件?A.64B.128C.512D.10245.下面结构体structs1charch,*ptr;unionshorta,b

19、;unsignedintc:2,d:1;structs1*next;的大小是_:A.12字节B.16字节C.20字节D.24字节6.任何一个基于“比较“的内部排序的算法,若对6个元素进行排序,则在最坏情况下所需的比较次数至少为_。A10B11C21D367.以下不是进程间通讯的是_A共享内存B信号量C线程局部存储D消息队列8.下面程序,求count的值intfunc(x)intcount=0;x=9999;while(x)Count+;x=xreturncount;A8;B10;C5;D119.使用malloc系统调用分配的内存是在_上分配的?A栈;Bbss;C物理内存;D堆2910.最坏情况

20、下,合并两个大小为n的已排序数组所需要的比较次数_A.2nB.2n-1C.2n+1D.2n-2二、简答题:20分,共3题1.(5分)下面这段代码是把中英文混合字符串(汉字用两个字节表示,特点是第一个字节的最高位为1)中的大写字母转化为小写字母,请找出其中的bug,注意各种异常情况。for(char*piterator=szWord;*piterator!=0;piterator+)if(*piteratorelseif(*piterator=A2.(5分)对给定的上亿条无序的url,请按照domain、site以及path分别排序,并请指出排序过程中可能会遇到的哪些问题?如何提高效率?例如:http:/ C. x;D.x=1;3.代码voidfunc()staticintval;中,变量val的内存地址位于:A.已初始化数据段B.未初始化数据段C.堆D.栈

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 试题课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报