- 一级建造师考试
- 二级建造师考试
- 三支一扶
- 安全评价师考试
- 保险经纪资格考试
- 报关员资格考试
- 博士入学考试
- 成人高考
- 成人英语三级考试
- 程序员考试
- 出版专业资格考试
- 大学英语三级
- 大学英语四六级考试
- 单证员考试
- 导游证考试
- 电气工程师
- 电子商务设计师考试
- 房地产经纪人考试
- 房地产评估师考试
- 高级会计师资格考试
- 高考
- 高中会考
- 给排水工程师
- 公共英语等级考试
- 公务员考试
- 国际货运代理
- 国际内审师
- 国家司法考试
- 化工师
- 环境影响评价师
- 会计人员继续教育
- 会计职称考试
- 基金从业资格
- 计算机等级考试
- 计算机软件水平考试
- 监理工程师考试
- 教师招聘
- 教师资格
- 结构工程师考试
- 经济师考试
- 考研
- 空姐招聘
- 遴选
- 美术高考
- 普通话考试
- 期货从业资格
- 求职招聘
- 人力资源管理师
- 软件设计师考试
- 商务英语考试(BEC)
- 社会工作者职业水平考试
- 审计师考试
- 事业单位招聘
- 事业单位招聘
- 数据库系统工程师
- 特许公认会计师(ACCA)
- 同等学力
- 统计师考试
- 托福考试(T0EFL)
- 外贸跟单员考试
- 网络工程师考试
- 网络管理员考试
- 网络规划设计师考试
- 系统分析师考试
- 消防工程师
- 小升初
- 校园招聘
- 信息系统管理工程师考试
- 选调生考试
- 雅思考试
- 岩土工程师考试
- 医生招聘
- 艺术高考(艺考)
- 银行从业人员资格
- 银行招聘
- 英语翻译资格考试
- 营销师考试
- 造假工程师考试
- 证券从业资格考试
- 中考
- 注册安全工程师考试
- 注册测绘师考试
- 注册城市规划师考试
- 注册环保工程师考试
- 注册会计师考试
- 注册计量师考试
- 注册建筑师考试
- 注册税务师考试
- 注册资产评估师
- 专升本考试
- 专业英语四级八级考试
- 自考
- 安全员
- 跟单员
- 考试一本通
- 其它资料
2006 年百度校园招聘在线笔试题及答案
第 1 题:用 C 语言实现一个公用库函数 void * memmove(void *dest,const void *src,size_t
n)。该函数的功能是拷贝该函数的功能是拷贝 src 所指的内存内容前 n 个字节到 dest 所指的地址上。该函数的功能是拷贝注意,作为
公用库函数,请注意安全检查,注意处理内存区重合的情况。该函数的功能是拷贝
第 2 题:已知一个字串由 GBK 汉字和 ansi 编码的数字字母混合组成,编写 C 语言函数实现
从中去掉所有 ansi 编码的的数字和字母(包括大小写),要求在原字串上返回结果。该函数的功能是拷贝函数接
口为:int filter_ansi(char* gbk_string)。该函数的功能是拷贝注:汉字的 GBK 编码范围是 0x8140 - 0xFEFE
第 3 题:芯片测试。该函数的功能是拷贝有 2k 块芯片,已知好芯片比坏芯片多。该函数的功能是拷贝请设计算法从其中找出一片好
芯片,并说明你所用的比较次数上限。该函数的功能是拷贝其中:好芯片和其它芯片比较时,能正确给出另一
块芯片是好还是坏;坏芯片和其它芯片比较时,会随机的给出好或是坏。该函数的功能是拷贝
-----------------------------------------------------------在这里填写答案:
---------------------------------------
----------
第 1 题:用 C 语言实现一个公用库函数 void * memmove(void *dest,const void *src,size_t
n)。该函数的功能是拷贝该函数的功能是拷贝 src 所指的内存内容前 n 个字节到 dest 所指的地址上。该函数的功能是拷贝注意,作为
公用库函数,请注意安全检查,注意处理内存区重合的情况。该函数的功能是拷贝
void* memmove(void * dest, const void * src, size_t n)
{
void* temp = dest;
if (dest <= src || (char *)dest >= ((char *)src + n)) //无内存地址重叠
{
while (n--)
{
*(char *)dest = *(char *)src;
dest = (char *)dest + 1;
src = (char *)src + 1;
}
}
else
//有内存地址重叠
{
dest = (char *)dest + n - 1;
src = (char *)src + n - 1;
while (n--)
{
*(char *)dest = *(char *)src;
dest = (char *)dest - 1;
src = (char *)src - 1;
}
}
return (temp);
}
---------------------------------------
----------
第 2 题:已知一个字串由 GBK 汉字和 ansi 编码的数字字母混合组成,编写 C 语言函数实现
从中去掉所有 ansi 编码的的数字和字母(包括大小写),要求在原字串上返回结果。该函数的功能是拷贝函数接
口为:int filter_ansi(char* gbk_string)。该函数的功能是拷贝注:汉字的 GBK 编码范围是 0x8140 - 0xFEFE
int filter_ansi(char* gbk_string)
{
char *p = gbk_string, *q = gbk_string;
while (*q != ' ')
{
if ((*q >= 0) && (*q <= 128)) //判断是否为 asci 的字符
{
if (((*q >= '0') && (*q <= '9')) //判断是否为数字或字母
|| ((*q >= 'a') && (*q <= 'z'))
|| ((*q >= 'A') && (*q <= 'Z')))
{
q++;
}
else
{
*p++ = *q++;
}
}
else
{
if (((*((unsigned short*)q)) >= 0x8140) && ((*((unsigned short*)q)) <= 0xFEFE)) //是汉字
{
*p++ = *((char*)q)++;
*p++ = *((char*)q)++;
}
else //不是汉字
{
q++;
q++;
}
}
}
*p = ' ';
return (p - gbk_string);
}
---------------------------------------
----------
第 3 题:芯片测试。该函数的功能是拷贝有 2k 块芯片,已知好芯片比坏芯片多。该函数的功能是拷贝请设计算法从其中找出一片好
芯片,并说明你所用的比较次数上限。该函数的功能是拷贝其中:好芯片和其它芯片比较时,能正确给出另一
块芯片是好还是坏;坏芯片和其它芯片比较时,会随机的给出好或是坏。该函数的功能是拷贝
答案:
1.首先两个两个分成一对。该函数的功能是拷贝如果互测的结果是好好,那么留下,否则扔掉。该函数的功能是拷贝扔掉的里面总
是坏的不会比好的少。该函数的功能是拷贝这样剩下的要么是两个好的,要么是两个坏的。该函数的功能是拷贝可以称剩下的这样
的对为纯粹对。该函数的功能是拷贝经过这一次分对,最坏的情况是 1000 对都留下;
2.然后把留下的对再随便两两分组。该函数的功能是拷贝这样变成每组里有两个纯粹对。该函数的功能是拷贝每组比较时,从这两
个纯粹对中任意各选一个元素进行比较。该函数的功能是拷贝如果都是好的,那么留下这组,否则扔掉。该函数的功能是拷贝这样
剩下的要么四个都是好的,要么四个都是坏的,我们把四个看成一个组,这个组是纯粹组
经过这一次分对,最坏的情况是 500 对都留下;
3.接着把剩下的这些组再随便两两分对。该函数的功能是拷贝得到的每对里有两个纯粹组。该函数的功能是拷贝比较每对里的两个
纯粹组时,还是任意各选一个元素比较。该函数的功能是拷贝如果都是好的,那么留下这对,得到一个新的纯
粹组,里面有 8 个好的或者 8 个坏的。该函数的功能是拷贝否则扔掉。该函数的功能是拷贝最坏的情况是留下 250 对;
4.再把这些剩下的组两两分对。该函数的功能是拷贝同样从每对的两个纯粹组中各任选一个元素进行比较。该函数的功能是拷贝都
是好的留下,成为新的纯粹组。该函数的功能是拷贝否则扔掉。该函数的功能是拷贝这样可得到一个新的纯粹组,其中 16 个都是好
的或者 16 个都是坏的。该函数的功能是拷贝最坏的情况是留下 125 对;
5.同样两两分对,得到 62 对和一个单独的。该函数的功能是拷贝我们用同样方法比较这 62 对。该函数的功能是拷贝最坏的情况是
留下 31 对,其中每对里 32 好或者 32 坏,和单独的一个,其中 16 好或者 16 坏。该函数的功能是拷贝把它们带
入下一轮;
6.把剩下的 32 对再任意两两分组,其中一组是一个含有 32 好或坏,另一个含有 16 个好
或坏,记为 A。该函数的功能是拷贝其它的 15 组都是两个含有 32 好或坏的。该函数的功能是拷贝同样方法比较这 15 组,得到新的
纯粹组,含有 64 好或 64 坏。该函数的功能是拷贝最坏的情况留下 15 组。该函数的功能是拷贝至于 A, 我们也是两个中各任选一个
代表比较,如果同好,那么留下,成为新的纯粹组,含有 48 个好或者坏。该函数的功能是拷贝否则从含有 32
好或坏的那组中任意选 16 个和另一组含有 16 个好或坏的一起扔掉,剩下的 16 个同好或同
坏的成为一个新的纯粹组。该函数的功能是拷贝这样我们可以保证扔掉的里面总是坏的不比好的少。该函数的功能是拷贝也就是说
最坏的情况是剩下 16 组。该函数的功能是拷贝
7.把这 16 组两两分对。该函数的功能是拷贝用和第六步一样的方法。该函数的功能是拷贝我们最坏可以得到 8 个。该函数的功能是拷贝其中 7 个是 128
好或者 128 个坏,还有一个是数目小于 128 的纯粹组。该函数的功能是拷贝
8.同理,再两两分对,我们可以得到 4 组;然后得到两组。该函数的功能是拷贝这时只要从数量最多的那个组
中 任 选 一 个 , 即 为 好 的 。该函数的功能是拷贝 所 以 最 坏 的 情 况 是 要 比 较
1000+500+250+125+62+31+16+8+4+2=1998 次. (如果剩下的是两组芯片个数一样多,那么
可以从两个组中任选一个,即为好的。该函数的功能是拷贝因为好的数量总比坏的数量多,而且我们每次扔掉
的都是坏的比好的多或者相等。该函数的功能是拷贝所以剩下的这两个组中的芯片只可能都是好的。该函数的功能是拷贝)
温馨提示:当前文档最多只能预览 2 页,此文档共4 页,请下载原文档以浏览全部内容。如果当前文档预览出现乱码或未能正常浏览,请先下载原文档进行浏览。
发表评论(共0条评论)
下载需知:
1 该文档不包含其他附件(如表格、图纸),本站只保证下载后内容跟在线阅读一样,不确保内容完整性,请务必认真阅读
2 除PDF格式下载后需转换成word才能编辑,其他下载后均可以随意编辑修改
3 有的标题标有”最新”、多篇,实质内容并不相符,下载内容以在线阅读为准,请认真阅读全文再下载
4 该文档为会员上传,版权归上传者负责解释,如若侵犯你的隐私或权利,请联系客服投诉
点击加载更多评论>>