免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 870 | 回复: 0
打印 上一主题 下一主题

2006百度笔试题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-22 10:27 |只看该作者 |倒序浏览
2006百度笔试题  
一、选择题:15分 共10题 1.一个含有n个顶点和e条边的简单无向图,在其邻接矩阵存储结构中共有____个零元素。 A.e    B.2e    C.n2-e   D.n2-2e
2.____是面向对象程序设计语言中的一种机制。这种机制实现了方法的定义与具体的对象无关,而对方法的调用则可以关联于具体的对象。 A.继承(Inhertance) B.模板(Template) C.对象的自身引用(Self-Reference) D.动态绑定(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.任何一个基于"比较"的内部排序的算法,若对6个元素进行排序,则在最坏情况下所需的比较次数至少为____。 A.10 B.11 C.21 D.36
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
9.使用malloc系统调用分配的内存是在____ 上分配的? A 栈; B bss; C 物理内存; D 堆
10.最坏情况下,合并两个大小为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' && *piterator
piterator += 32;
}
2.(5分)对给定的上亿条无序的url,请按照domain、site以及path分别排序,并请指出排序过程中可能会遇到的哪些问题?如何提高效率? 例如:http://www.baidu.com/path/about.html,domain、site以及path的定义分别如下: Domain:baidu.com Site:www.baidu.com Path: www.baidu.com/path
3.(10分)某型CPU的一级数据缓存大小为16K字节,cache块大小为64字节;二级缓存大小为256K字节,cache块大小为4K字节,采用二路组相联。经测试,下面两段代码运行时效率差别很大,请分析哪段代码更好,以及可能的原因。 为了进一步提高效率,你还可以采取什么办法? A段代码 int matrix[1023][15]; const char *str = "this is a str"; int i, j, tmp, sum = 0;
tmp = strlen(str); for(i = 0; i for(j = 0; j sum += matrix[j] + tmp; } }
B段代码 int matrix[1025][17]; const char *str = "this is a str"; int i, j, sum = 0;
for(i = 0; i for(j = 0; j sum += matrix[j] + strlen(str); } }
三、编程题:30分 共1题
注意:要求尽可能提供完整代码,如果可以编译运行酌情加分。
1.内存中有一个长数组,条目数为10万,数组单元为结构体struct array,sizeof(struct array)为512字节。结构有一int型成员变量weight。现需要取得按weight值从大到小排序的前500个数组单元,请实现算法,要求效率尽可能高。
四、设计题:35分 共1题
注意:请尽可能详细描述你的数据结构、系统架构、设计思路等,建议多写一些伪代码或者流程说明。
1.请设计一个字典。以字符串为索引,存储用户定义的定长结构。要求有增、删、查、改的功能。已经给定一个函数,可以由字符串映射到一个签名,每个签名由两个unsigned int类型组成。假设每一个字符串能够对应唯一的一个签名,完全没有重复(或者重复的概率可以忽略),并且签名分布足够均匀。
请描述你的数据结构?内存如何申请?增、删、查、改的功能如何实现?如果操作很频繁,该如何优化?
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/100881/showart_2075376.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP