百度历年招聘笔试试题汇总六篇_第1页
百度历年招聘笔试试题汇总六篇_第2页
百度历年招聘笔试试题汇总六篇_第3页
百度历年招聘笔试试题汇总六篇_第4页
百度历年招聘笔试试题汇总六篇_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

4、符串“”的首地址。int maxContinuNum(const char *inputstr,const char *outputstr)int max=0,count=0;while(*inputstr!='0') /如果字符串没有到末尾,继续循环if(*inputstr>=49 && *inputstr<=57) /如果在统计范围内count+; else /如果在统计范围外if(count>max)max=count;outputstr=inputstr-count; /返回最大数字子串的首地址对应的数字count=0;elsecoun

5、t=0;inputstr+;if(*inputstr='0') /特殊情况,最长字符串在末尾max=count; outputstr=inputstr-count; /返回最大数字子串的首地址对应的数字cout<<"返回最大数字子串的首地址对应的数字:"<<*outputstr<<endl;return max;int main()int max;char *str="abc123abcdef12345abcdefgh123456789" max=maxContinuNum(str,str);cout&

6、lt;<"字符串“abc123abcdef12345abcdefgh123456789”中最长的数字串的长度为:"<<max<<endl;8:New Coke的一项失败营销方略始于可口可乐与百事可乐之争的。这是商业史上的著名案例,很多人曾经从不同角度分析这个案例。而在blink书中,两种可乐在做产品比较时采取了错误的“切片”方法。百事在最初攻击可口时,曾经通过在大街上随即抽取人员作双盲测试,并发现大多数人认为百事可乐更好喝,以此为证据说明百事的优点。可口也作了同样的测试,惊恐的发现事实确实如此。于是他们断定可口可乐必须在产品上改进,经过大量的投

7、入,一种新的New Coke发布出来了。New Coke在做同样的双盲测试时,更多人认为New Coke比Pepsi好喝。当时的CEO郭思达在发布时说,这是可口可乐有史以来做的最有把握的一件事。可是,事实是,New Coke迅速被消费者抵制,最后可口可乐不得不重新推出原来的可口可乐并完全摒弃New Coke。这种双盲测试是一种错误的切片方法,因为在做这种试验时,用户对每种饮料都只喝一小口,而不是像正常时一次喝一瓶。而当用户只喝一小口饮料时,大多数人会更喜欢更甜的那一种虽然当他们喝一整瓶的时候会有不同的看法。书中又举了更多例子说明,所谓的用户测试并不是一种能够让你相信的结果,因为用户测试会被很多

8、不同的因素所影响,包括包装、饮用方法。9:链表和数组的优缺点?链表:链表是一块不连续的动态空间,长度可变;链表需要按顺序检索节点,效率低; 链表的优点是可以快速插入和删除节点,大小动态分配,长度不固定。 链表不存在越界问题。数组:数组是一快连续的空间,声明时长度就需要固定。 数组的优点是速度快,数据操作直接使用偏移地址。 数组有越界问题。百度试题21、请实现两棵树是否相等的比较,相等返回,否则返回其他值,并说明算法复杂度。数据结构为:typedef struct_TreeNodechar c;TreeNode *leftchild;TreeNode *rightchild;TreeNode;函

9、数接口为:int CompTree(TreeNode* tree1,TreeNode* tree2);注:A、B两棵树相等当且仅当Root->c=RootB->c,而且A和B的左右子树相等或者左右互换相等。2、写一段程序,找出数组中第k大小的数,输出数所在的位置。例如2,4,3,4,7中,第一大的数是7,位置在4。第二大、第三大的数都是4,位置在1、3随便输出哪一个均可。函数接口为:int find_orderk(const int* narry,const int n,const int k)2'、已知一个字串由GBK汉字和ansi编码的数字字母混合组成,编写c语言函数实

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

11、s.my- 如下形式叫做目录页: .tw/user/tgk5ar1r/profile/ 请注意: a) url有可能带http头也有可能不带 b)动态url(即含有"?"的url)的一律不算目录页,如: 另:如果你会linux,请用linux下的grep命令实现第2题的功能(附加5分)。 3)此题40分 如果必须从网页中区分出一部分"重要网页"(例如在10亿中选8亿),比其他网页更值得展现给用户,请提出一种方案。 4)此题40分 假设有10亿网页已经被我们存下来,并提供如下信息:网页全文(即网页的源码)、全文长度、网页正文(即网页中提取的主体文字)、 正

12、文长度,以及其他网页提取物等,现在希望去掉其中的重复网页,请提出可行的方案,计算出每个网页对应的重复度,你可以自己 对网页重复下定义,也可以提出需要哪些更多的网页提取物来实现更好的去重复方案百度试题4一、 选择题:15分 共10题 1.一个含有n个顶点和e条边的简单无向图,在其邻接矩阵存储结构中共有_个零元素。 Ae B2e Cn2-e Dn2-2e 2._是面向对象程序设计语言中的一种机制。这种机制实现了方法的定义与具体的对象无关,而对方法的调用则可以关联于具体的对象。 A继承(Inhertance) B模板(Template) C对象的自身引用(Self-Reference) D动态绑定(

13、Dynamic Binding) 3.应用层DNS协议主要用于实现 网络服务功能. A. IP地址到网络设备名字的映射 B. IP地址到网络硬件地址的映射 C. 网络设备名字到IP地址的映射 D. 网络硬件地址到IP地址的映射 4.linux默认情况下,一个进程最多能打开多少文件 A.64 B. 128 C. 512 D. 1024 5.下面结构体 struct s1 char ch, *ptr; union short a, b; unsigned int c:2, d:1; struct s1 *next; ; 的大小是_: A. 12字节 B.16字节 C.20字节 D. 24字节 6.

14、任何一个基于"比较"的内部排序的算法,若对6个元素进行排序,则在最坏情况下所需的比较次数至少为_。 A10 B11 C21 D36 7.以下不是进程间通讯的是_ A 共享内存 B 信号量 C线程局部存储 D 消息队列 8.下面程序,求count的值 int func(x) int count= 0; x=9999; while(x) Count +; x = x&(x-1); return count; A 8; B 10; C 5; D 11 A9.使用malloc系统调用分配的内存是在_D_ 上分配的 A 栈; B bss; C 物理内存; D 堆 10.最坏情

15、况下,合并两个大小为n的已排序数组所需要的比较次数_ A.2n B.2n-1 C.2n+1 D.2n-2 二、简答题:20分,共3题 1.(5分)下面这段代码是把中英文混合字符串(汉字用两个字节表示,特点是第一个字节的最高位为1)中的大写字母转化为小写字母,请找出其中的bug,注意各种异常情况。 for (char *piterator = szWord; *piterator != 0; piterator+) if (*piterator & 0x80 != 0) piterator+; else if (*piterator >= 'A' &&

16、; *piterator <= 'Z') piterator += 32; 2.(5分)对给定的上亿条无序的url,请按照domain、site以及path分别排序,并请指出排序过程中可能会遇到的哪些问题 如何提高效率 例如: Domain: Site: Path: 3.(10分)某型CPU的一级数据缓存大小为16K字节,cache块大小为64字节;二级缓存大小为256K字节,cache块大小为4K字节,采用二路组相联。经测试,下面两段代码运行时效率差别很大,请分析哪段代码更好,以及可能的原因。 为了进一步提高效率,你还可以采取什么办法 A段代码 int matrix10

17、2315; const char *str = "this is a str" int i, j, tmp, sum = 0; tmp = strlen(str); for(i = 0; i < 1023; i+) for(j = 0; j < 15; j+) sum += matrixj + tmp; B段代码 int matrix102517; const char *str = "this is a str" int i, j, sum = 0; for(i = 0; i < 17; i+) for(j = 0; j < 1

18、025; j+) sum += matrixj + strlen(str); 三、编程题:30分 共1题 注意:要求尽可能提供完整代码,如果可以编译运行酌情加分。 1.内存中有一个长数组,条目数为10万,数组单元为结构体struct array,sizeof(struct array)为512字节。结构有一int型成员变量weight。现需要取得按weight值从大到小排序的前500个数组单元,请实现算法,要求效率尽可能高。 四、设计题:35分 共1题 注意:请尽可能详细描述你的数据结构、系统架构、设计思路等,建议多写一些伪代码或者流程说明。 1.请设计一个字典。以字符串为索引,存储用户定义的

19、定长结构。要求有增、删、查、改的功能。已经给定一个函数,可以由字符串映射到一个签名,每个签名由两个unsigned int类型组成。假设每一个字符串能够对应唯一的一个签名,完全没有重复(或者重复的概率可以忽略),并且签名分布足够均匀。 请描述你的数据结构 内存如何申请 增、删、查、改的功能如何实现 如果操作很频繁,该如何优化 取自"百度试题5一、选择题:15 分 共 10 题1. 在排序方法中,关键码比较次数与记录地初始排列无关的是:A. Shell 排序 B. 归并排序 C. 直接插入排序 D. 选择排序2. 以下多线程对 int 型变量x的操作,哪几个需要进行同步:A. x=y;

20、 B. x+; C. +x; D. x=1;3. 代码void func()static int val;中,变量 val 的内存地址位于:A. 已初始化数据段 B.未初始化数据段 C.堆 D.栈4. 同一进程下的线程可以共享以下:A. stack B. data section C. register set D. thread ID5. TCP 和 IP 分别对应了 OSI 中的哪几层 A. Application layer B. Data link layer C. Presentation layer D. Physical layer E. Transport layer F. S

21、ession layer G. Network layer6. short a100,sizeof(a) 返回 A. 2 B. 4 C. 100 D. 200 E. 4007. 以下哪种不是基于组件的开发技术_。A. XPCOM B. XP C. COM D. CORBA8. 以下代码打印的结果是(假设运行在 i386 系列计算机上):struct st_t int status;short *pdata;char errstr32;st_t st16;char *p = (char *)( st2.errstr + 32 );printf( "%d", ( p - (ch

22、ar *)(st) ) );A. 32 B. 114 C. 120 D. 11129. STL 中的哪种结构是连续形式的存储:A. map B. set C. list D. vector10. 一个栈的入栈序列是 A,B,C,D,E,则栈的不可能的输出序列是:A. EDCBA B. DECBA C. DCEAB D. ABCDE二、简答题:20 分,共 2 题1. (5 分)重复多次 fclose 一个打开过一次的 FILE *fp 指针会有什么结果,并请解释。考察点:导致文件描述符结构中指针指向的内存被重复释放,进而导致一些不可预期的异常。2. (15 分)下面一段代码,想在调用 f2(1

23、) 时打印 err1,调用 f2(2) 时打印 err4,但是代码中有一些问题,请做尽可能少的修改使之正确。1 static int f1( const char *errstr, unsigned int flag ) 2 int copy, index, len;3 const static char *_err = "err1", "err2", "err3", "err4" ;45 if( flag & 0x10000 ) 6 copy = 1;7 index = ( flag & 0x30

24、0000 ) >> 20;89 if( copy ) 10 len = flag & 0xF;11 errstr = malloc( len );12 if( errstr = NULL )13 return -1;14 strncpy( errstr, _errindex, sizeof( errstr ) );15 else16 errstr = _err + index;17 1819 void f2( int c ) 20 char *err;2122 swtch( c ) 23 case 1:24 if( f1( err, 0x110004 ) != -1 )25

25、 printf( err );26 case 2:27 if( f2( err, 0x30000D ) != -1 )28 printf( err );29 30 三、编程题:30 分 共 1 题注意:要求提供完整代码,如果可以编译运行酌情加分。1. 求符合指定规则的数。给定函数 d(n) = n + n 的各位之和,n 为正整数,如 d(78) = 78+7+8=93。 这样这个函数可以看成一个生成器,如 93 可以看成由 78 生成。定义数 A:数 A 找不到一个数 B 可以由 d(B)=A,即 A 不能由其他数生成。现在要写程序,找出 1 至 10000 里的所有符合数 A 定义的数。

26、输出:13四、设计题:35 分 共 1 题注意:请尽可能详细描述你的数据结构、系统架构、设计思路等。建议多写一些伪代码或者流程说明。1. 假设一个 mp3 搜索引擎收录了 224 首歌曲,并记录了可收听这些歌曲的 230 条 URL,但每首歌的 URL 不超过 210 个。系统会定期检查这些 URL,如果一个 URL 不可用则不出现在搜索结果中。现在歌曲名和 URL 分别通过整型的 SONG_ID 和 URL_ID 唯一确定。对该系统有如下需求:1) 通过 SONG_ID 搜索一首歌的 URL_ID,给出 URL_ID 计数和列表2) 给定一个 SONG_ID,为其添加一个新的 URL_ID3

27、) 添加一个新的 SONG_ID4) 给定一个 URL_ID,将其置为不可用限制条件:内存占用不超过 1G,单个文件大小不超过 2G,一个目录下的文件数不超过 128 个。为获得最佳性能,请说明设计的数据结构、搜索算法,以及资源消耗。如果系统数据量扩大,该如何多机分布处理 百度第二套百度试题6一、选择题:15 分 共 10 题1. 已知一个线性表(38,25,74,63,52,48),采用的散列函数为 Hash($Key)=$Key mod 7,将元素散列到表长为7的哈希表中存储。请选择后面两种冲突解决方法分别应用在该散列表上进行等概率成功查找的平均查找长度,拉链法 ,线性探测法 .A. 1.

28、0 B. 1.5 C. 1.7 D. 2.0 E. 2.3F. 7/6 G. 4/3 H. 3/22. 需要将OS缓冲区的数据刷新到硬盘,可以调用的函数有(多选):A.fflush() B. fsync() C. sync() D.writev()3. 下面哪个shell语句不能打印出用户主目录的路径 A. echo "$HOME" B. echo C. echo $HOME D. echo $HOME4. 最坏情况下,合并两个大小为n的已排序数组所需要的比较次数A.2n B.2n-1 C.2n+1 D.2n-25. 一个B类网的子网掩码是,这个子

29、网能拥有的最大主机数是:A. 240 B. 255 C.4094 D. 655346. 以下代码执行后,val的值是_:unsigned long val = 0;char a = 0x48;char b = 0x52;val = b << 8 | a;A 20992 B 21064 C 72 D 07. 内存的速度远远高于磁盘速度,所以为了解决这个矛盾,可以采用: A 并行技术 B 虚存技术 C 缓冲技术 D 通道技术8. 以下代码打印的结果是(假设运行在i386系列计算机上):struct st_tint status;short* pdata;char errstr32;st

30、_t st16;char* p = (char*)(st2.errstr + 32);printf("%d", (p - (char*)(st);A 32 B 114C 120 D 11129. 同一进程下的线程可以共享以下A. stack B. data sectionC. register set D. thread ID10. 以下哪种操作最适合先进行排序处理 A 找最大、最小值 B 计算算术平均值C 找中间值 D 找出现次数最多的值二、简答题:20分,共2题1. (6分)下面是一个http请求:GET /baidu/blog/item/6605d1b4eb64337

31、38ad4b26d.html HTTP/1.1Host: User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:) Gecko/20060728 Firefox/Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5Accept-Language: zh-cn,zh;q=0.5 Accept-Encoding: gzip,deflateA

32、ccept-Charset: gb2312,utf-8;q=0.7,*;q=0.7Keep-Alive: 300Connection: keep-aliveReferer: Cookie: BAIDUID=AFB70E986AC48B336ABAB7505CDD1C76;请解释以下各字段基本含义: Host、User-Agent、Accept-Charset、Connection、Referer、Cookie2. (14分)函数A将字符串str1转成小写,并打印出转化前后的字符串。另外,改错时不能改变函数的接口和主要思路。改错时,请指出行号。1 #include 2 #include 345

33、char* str1 = "ABDFLjlero我们都是saf"67 char* ToLower(char s)8 9 static size_t i=sizeof(s);1011 for (i; i>=0; i-) 12 if (s>"A" && s<"Z") 13 s += 26;14 15 16 return s;17 1819 int A()20 21 printf("old str%s after lower%sn", str1, ToLower(str1);22 三、编程题:30分 共1题注意:要求提供完整代码,如果可以编译运行酌情加分。 1. 两个已排序的整型数组,求交集,最快算法输入:两个已排序的整型数组(int am, bn)输出:两个数组的交集四、设计题:35分 共1题注意:请尽可能详细描述你的数据结构、系统架构、设计思路等。建议多写一些伪代码或者流程说明。1. 考虑一个字符串替换的过程,在一个文本文件中含有一些文本内容和一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论