一、简答题
1. 简述树的深度优先遍历及广度优先遍历及其非递归实现的特点;
2. 找出以下程序中的bug:
#include
#include
struct Record{
int a;
int b;
};
int create(struct Record *p, int num)
{
p = new struct Record[num];
if (!p)
return -1;
else
return 0;
}
int Test()
{
struct Record *p = NULL;
int i;
int num;
printf("0x%08x\n", p);
scanf("Input record num:%d", &num);
if (create(p, num) < 0)
return -1;
printf("0x%08x\n", p);
for (i = 0; i < num; i++) {
p[i].a = 0;
p[i].b = 0;
}
return 0;
}
int main(void)
{
Test();
getchar();
return 0;
}
3. 有一台Mini计算机,内存大小为1K,CPU主频为1M(CPU状态每秒改变10的6次方次),问在这台计算机上可运行并且确定可以终止的程序的最长运行时间是多少?
给出思路及推理过程(可以做任何假设)。
二、算法设计
1. 某大型项目由n个组件N1, N2……Nn构成,每个组件都可以独立编译,但是某些组件的编译依赖于其它组件(即某些组件只能在其它组件编译完成后才能编译),设计算法给出统计过程。
2. 完成函数:
int maxnumstr(char *inputstr, char *outputstr)
函数功能:找出inputstr中的最长连续数字串存储到outputstr里并返回长度,如调用maxnumstr("123abc1234a", outputstr)后返回4且outputstr中为"1234"。
三、系统设计
URL(统一资源定位符)由site、path组成,并且有其它属性信息如访问时间等。
如:http://www.baidu.com/img/abc中site为http://www.baidu.com,path为/img/abc。
1. 设计系统存储100亿条URL信息;
2. 说明如何完成URL信息的添加、删除及修改;
3. 如何添加URL的属性信息;
2010搜狐校园招聘笔试题
一、选择题(20题,40分)
二、名词解释(10题,20分)
诸如SQL、TCP、HTTP、QoS、STL、XML等。
三、程序设计(可用任何编程语言实现)
1. 排序数字字符串的数字(升序),遇到0时从数字字符串中删除,如"1324”排序后应该为“1234”,”9002“排序后应该为”29“;
2. 前后颠倒输入的英文中的单词位置,标点符号(只可以出现在句尾)位置不变,如输入"Hello how are you!"输出应该为“you are how Hello!"。