百度2016实习生招聘(西安)在线笔试部分整理

百度2016实习生(西安)在线笔试部分整理

百度2016实习生系统核心研发岗和C++后台开发岗的部分试题整理。

问答题(系统核心研发岗)

  1. 在C++ 程序中被C编译器编译后的函数为什么要加 extern “C” ?
  2. 比较C++中vector、list、map的区别
  3. 在x86体系结构下,内核如何将进程的逻辑地址转换为机器物理地址?
  4. TCP/IP释放连接为什么需要四次挥手?
  5. Linux内核有哪几种内核锁?
  6. 固态硬盘与传统硬盘有什么区别?说明他们的优缺点。
  7. 大量的URL字符串,如何从中去除重复的,列出相应的时间复杂度。

编程题(系统核心研发岗)

  1. 实现快速排序(quick sort)
  2. 输入一个整数数组,判断该数组是不是某二叉查找树的后续遍历的结果,如果是返回true,否则返回false。例如输入5,7,6,9,11,10,8是下树的后序遍历的结果,因此返回true。

         8
        /  \
       6    10
      /  \  /  \
     5   7 9   11


输入7,4,6,5..没有那棵树的后序遍历结果是这个序列,返回false

编程题(C++后台岗)

  1. 判断一棵树是否为另一棵树的子树,如果是return 1,否则return -1
  2. 实现SJF(最短作业优先)并求平均等待时间:
    其中输入3个数据:
    任务的请求时间数组(request)、任务的工作时间数组(duration)、任务的个数(n)
    输出任务的平均等待时间(float类型)

3.虚拟内存管理系统可采用先进先出的方式缓存。
 当请求的内存也不在缓存且缓存已满,应该从缓存中删除保存时间最长的页面,从而为请求页面腾出空间。如果缓存未满,可直接将请求页面添加到缓存中。给定页面最多应在缓存中出现一次。
 给定缓存的最大值和页面请求数组,计算缓存的未命中数。当请求一个页面且在缓存中找不到该页面时,则为缓存未命中。最初时缓存是空的。
 写函数countCacheMiss的输入为一个整数max_cache_size、一个数组page_requests和数组长度len。假设数组page_requests中包含编号范围为1~50的页面。先请求page_requests中的索引i处,而后i+1…该函数返回一个表示缓存未命中数的整数:
示例:

 max_cache_size=2;
 page_requests={1,2,1,3,1,2};
 len = 6;
//请求进来时的缓存状态,按照页面在缓存中停留时间顺序排序(从最长到最短):
 1
 1,2
 1,2
 2,3
 3,1
 1,2
//缓存未命中:5

你可能感兴趣的:(百度,招聘)