笔试题——2014百度校园招聘笔试题

笔试目的:获得面试的机会
1.简述iso的7层设计
解题思路:既然是面试题,就不要那么单纯真的写出7层就结束了,千篇一律的答案,能突出自己吗?
解题目的:突出自己的个性
解题方法:画图(非常棒的方法),思维分析(不一样的体现)

画个图:

思维分析:
1、OSI参考模型的全称是开放系统互连参考模型,是由国际组织ISO提出的
2、 ISO 7层模型的实际应用意义不是很大 ,在现实中一般都使用的是TCP/IP的四层模型
3、 ISO 7层模型 每一层都为其上一层提供服务
4、不同主机之间对话,都是在相同层次,称为对等层。
5、下层不"关心"上层的数据格式而是把整层递交的数据包看成是一个整体进行封装
6、主要的功能就是帮助不同类型的主机实现数据传输。

这题这么解答的原因有三:
其一:既然是企业笔试就不要用应试思维来解题,非得那么官方的语言写出答案。
其二:那些一百度就出来的详细解释,既然可以百度出来,背下来写上去能体现什么呢,写不写无所谓了
其三:企业更希望找到的是有思维的人,而不是死背书的人,理解最重要。


2.如何在多个进程间进行数据共享(至少写出3种)
解题思路:进程间常用的几个共享机制  :管道,信号量,共享内存,本地套接字,文件映射(Windows)
解题目的:进程间通信的了解
解题方法:列出几个机制,写出自己日常使用的理解
管道:A进程创建一个管道,B进程只能接受这个管道,A进程只能发送数据
信号量:A进程等待该信号量,B进程发出该信号后,A进程继续执行,这里指的通信是进程同步不是交互数据
共享内存:在系统中开辟一块内存,A,B进程都可对其进行读写以实现进程间的数据共享
本地套接字:A进程创建一个服务端套接字,B进程创建一个客户端套接字,使AB进程像网络中的服务器与客户端间通信
文件映射(Windows):A进程创建一个文件映射,B进程得到一个A进程创建的文件映射句柄,AB进程就可以像读文件一样读写该映射
这题这么解答的原因有二
其一:让HR了解你是会使用或者使用过这些机制的
其二:可以让HR知道你了解系统中的内存和文件的读写方式

3.简述TCP与UDP的区别
解题思路:TCP,UDP的区别有很多,但是要突出二者的应用领域
解题目的:突出自己使用经验
解题方法:列表(画图),简述使用领域

在需要用到高效或者高响应的通信时,例如视频广播,语音聊天等应用开发时一般采用UDP协议。
在需要用到高可靠性通信时,例如文件传输,加密通讯时一般采用TCP协议。

这题这么解答的原因有二
其一:让HR了解你是会使用或者使用过这些通信协议
其二:可以让HR知道你会根据工程需求应用不同的网络通信协议

4. 假设把整数关键码K散列到N个槽列表,以下哪些散列函数是好的散列函数

          A: h(K)=K/N;

          B: h(K)=1;

          C: h(K)=K mod N;

          D: h(K)=(K+rand(N)) mod N, rand(N)返回0N-1的整数

答案:D

解题思路:散列函数的目的是为了提高查询效率,所以AB排除,C和D的区别就是D加了一个随机数,这样可以更随机的存储数据。


5. 下面排序算法中,初始数据集的排列顺序对算法的性能无影响的是:

          A: 堆排序 B:插入排序

          C: 冒泡排序 D:快速排序

答案:A

插入排序:最优时间复杂度O(n)最差时间复杂度O(n^2)平均时间复杂度O(n^2)

        冒泡排序:最优时间复杂度O(n)最差时间复杂度O(n^2)平均时间复杂度O(n^2)

        快速排序:最优时间复杂度O(nlogn)最差时间复杂度O(n^2)平均时间复杂度O(nlogn)

        堆排序:最优时间复杂度O(nlogn)最差时间复杂度O(nlogn)平均时间复杂度O(nlogn)


6:某进程在运行过程中需要等待从磁盘上读入数据,此时进程的状态将:

A: 从就绪变为运行  B:从运行变为就绪

C: 从运行变为阻塞  D:从阻塞变为就绪

答案:C

解题思路:这里就是进程状态的理解,在运行过程中需要等待读入数据如图所示


7:如下函数,在32bit系统foo(2^31-3)的值是:

Int foo(int x)
{

Return x&-x;

}

A:   B:  C:2 D:4

答案:C

步骤:

   【1】2^31-3这个表达式看成2的31平方减3就错了。实质^是异或 ,—比^优先级高,所以2^(31-3)=2^28=30

   【2】foo(30):

                  return 30 & -30;(很重要的一点是-和~的区别,一个是数字大小取反,一个是将补码取反,有很大区别)

   30原码补码:0000 0000 0001 1110

         -30原码:1000 0000 0001 1110

         -30反码:1111 1111 1110 0001

         -30补码:1111 1111 1110 0010

              0000 0000 0001 1110

          &  1111 1111 1110 0010

          =   0000 0000 0000 0010   =2

所以选C 2



8:用两种颜色去染排成一个圈的6个棋子,如果通过旋转得到则只算一种,一共有多少种染色:

A: 10 B:11 C:14: D:15

答案:C

解释:应该有14种方案,设只有黑白两色,默认白色,那么,用p(n)表示有n个黑棋的种类

p(0)=p(6)=1

p(1)=p(5)=1

p(2)=p(4)=3 //相邻的一种,隔一个的一种,两个的一种

p(3)=4 //都相邻的一种,BB0B的一种,BB00B的一种,B0B0B的一种,一共4种

综上是14种


9. 一个栈的入栈序列式ABCDE则不可能的出栈序列是:

        A:DECBA B:DCEBA  C:ECDBA  D:ABCDE

答案:C

分析:

A: ABCD依次入  D出  E入  D入

B:ABCD依次入   D出   C出 E入  C入 D入

C:不可能

D:A入 A出 B入 B出 C入 C出 D入 D出 E入 D入 C入 B入 A入

 

答案:A.

分析:对于几何中的每个字符串取hash可以看作是同分布的独立重复事件,所以每一个事件出现10的概率都是p=1/1024,那么当出现的时候,期望的次数就是1/p,1024.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值