2012年10月份,百度笔试题
一、简答题
1、列举几个常见的哈希算法,简述哈希算法的主要用途
http://blog.csdn.net/zxycode007/article/details/6999984
这篇文章介绍的很清楚了。
主要用途:查找关键字、文件校验、数字签名
2、描述OSI的7层架构,并指出HTTP、UDP、ARP协议在那一层?
应用层:为应用程序提供网络服务
表示层:确保不同应用信息的识别
会话层:建立数据传输通路
传输层:进行流量控制、分割数据包,以及定义一些传输协议
网络层:提供IP地址服务、进行IP到MAC地址的转化
数据链路层:确保帧的无差错传输
物理层:提供bit或者电压的处理
ARP属于网络层,UDP属于传输层、HTTP属于应用层
3、简述让一段C语言代码运行起来的代码要求和执行过程。
编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。
编译的过程:源代码-->预处理-->编译-->优化-->汇编-->链接-->执行
预处理:头文件(Include file)的插入, 宏 (Macro) 的解开,条件编译(Conditional compilation)的处理 。
编译:编译器首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,编译器把代码翻译成汇编语言。
汇编:将汇编语言转换成机器语言。
链接:将参与链接的对象文件合并成一个可执行文件。
(http://lavasoft.blog.51cto.com/62575/187229)
二、算法与程序设计
1、 小杨拉来一车苹果进行包装,如果3个包一袋剩下2个,5个包一袋剩下3个,7个包一袋剩下2个,设计算法,求出N个符合条件的苹果个数。
思路:
1)N符合N%3 =2,N%5=3,N%7=2,可知(N-2)%3=0,(N-2)%7=0,(N-3)%5=0,
假设A=N-2,那么A%3=0,A%7=0,(A-1)%5=0,
所以,A是3与7的公倍数,且A-1的结尾是0或者5,
按照这个思路,就可以解题了。代码如下: