下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2021 年百度校园招聘在线笔试题及答案第 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) 。
2、注:汉字的 GBK 编码范围是0 x8140 - 0 xFEFE第 3 题:芯片测试。有2k 块芯片,已知好芯片比坏芯片多。请设计算法从其中找出一片好芯片, 并说明你所用的比较次数上限。其中: 好芯片和其它芯片比较时,能正确给出另一块芯片是好还是坏;坏芯片和其它芯片比较时,会随机的给出好或是坏。在这里填写答案:第 1 题:用 C 语言实现一个公用库函数void * memmove(void *dest,const void *src,size_t n) 。该函数的功能是拷贝 src所指的内存内容前 n个字节到dest所指的地址上。注意,作为公用 库函数,请注意安全检查,注意处理内存区重合的情况
3、。void* memmove(void * dest, const void * src, size_t n) void* temp = dest;if (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
4、*)src;dest = (char *)dest - 1;src = (char *)src - 1;return (temp);第 2 题: 已知一个字串由 GBK 汉字和 ansi 编码的数字字母混合组成, 编写 C 语言函数实现从中去掉所有ansi 编码的的数字和字母(包括大小写),要求在原字串上返回结果。函数接口为: int filter_ansi(char* gbk_string) 。注:汉字的 GBK 编码范围是0 x8140 - 0 xFEFEint filter_ansi(char* gbk_string)char *p = gbk_string, *q = gbk_stri
5、ng;while (*q != 0)if (*q = 0) & (*q = 0) & (*q = a) & (*q = A) & (*q = 0 x8140) & (*(unsigned short*)q) = 0 xFEFE) / 是汉字p+ = *(char*)q)+;p+ = *(char*)q)+;else /不是汉字q+;q+;*p = 0;return (p - gbk_string);第 3 题:芯片测试。有2k 块芯片,已知好芯片比坏芯片多。请设计算法从其中找出一片好芯片, 并说明你所用的比较次数上限。其中: 好芯片和其它芯片比较时,能正确给出另一块芯片是好还是坏;坏芯片和其它
6、芯片比较时,会随机的给出好或是坏。答案:1 首先两个两个分成一对。如果互测的结果是好好,那么留下,否则扔掉。扔掉的里面总是坏的不会比好的少。 这样剩下的要么是两个好的, 要么是两个坏的。 可以称剩下的这样的对为纯粹对。经过这一次分对,最坏的情况是1000 对都留下;2然后把留下的对再随便两两分组。这样变成每组里有两个纯粹对。每组比较时,从这两个纯粹对中任意各选一个元素进行比较。 如果都是好的, 那么留下这组,否则扔掉。这样剩下的要么四个都是好的, 要么四个都是坏的, 我们把四个看成一个组, 这个组是纯粹组。经过这一次分对,最坏的情况是500 对都留下;3接着把剩下的这些组再随便两两分对。得到的
7、每对里有两个纯粹组。比较每对里的两个纯粹组时, 还是任意各选一个元素比较。 如果都是好的, 那么留下这对,得到一个新的纯粹组,里面有8 个好的或者 8 个坏的。否则扔掉。最坏的情况是留下250 对;4再把这些剩下的组两两分对。同样从每对的两个纯粹组中各任选一个元素进行比较。都是好的留下,成为新的纯粹组。否则扔掉。这样可得到一个新的纯粹组,其中 16 个都是好的或者 16 个都是坏的。最坏的情况是留下125 对;同样两两分对,得到 62 对和一个单独的。我们用同样方法比较这62 对。最坏的情况是留下 31 对,其中每对里32 好或者 32 坏,和单独的一个,其中 16 好或者 16 坏。把它们带
8、入下一轮; 把剩下的 32 对再任意两两分组, 其中一组是一个含有32 好或坏, 另一个含有16 个好或坏,记为Ao其它的15组都是两个含有 32好或坏的。同样方法比较这 15组,得到新的纯粹组,含有64 好或 64 坏。最坏的情况留下15 组。至于 A, 我们也是两个中各任选一个代表比较,如果同好,那么留下,成为新的纯粹组,含有48 个好或者坏。否则从含有32 好或坏的那组中任意选 16 个和另一组含有16 个好或坏的一起扔掉,剩下的 16 个同好或同坏的成为一个新的纯粹组。 这样我们可以保证扔掉的里面总是坏的不比好的少。 也就是说最坏的情况是剩下16 组。把这16 组两两分对。用和第六步一样的方法。我们最坏可以得到 8 个。其中 7 个是 128好或者 128 个坏,还有一个是数目小于 128 的纯粹组。同理,再两两分对,我们可以得到4 组;然后得到两组。这时只要从数量最多的那个组中任选一个,即为好的。所以最坏的情况是要比较1000+5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024无线硬件设备产品销售合同
- 2024山西省煤炭购销合同范本
- 辣椒线描画课程设计
- 酱油熬制培训课程设计
- 创业空间市场竞争力分析考核试卷
- 畜牧业的养殖扶贫与区域发展考核试卷
- 生物识别技术在农村金融服务中的创新应用考核试卷
- 医药制造业的创新创业机会考核试卷
- 环保策略与企业竞争力考核试卷
- 锂钴氧化物锂镍氧化物锂锰氧化物相关行业投资方案
- 团队协作课件教学课件
- 11《宇宙生命之谜》第二课时 教学设计-2024-2025学年语文六年级上册统编版
- 2023-2024学年四年级上册信息技术第一单元第1课《身边的数据》教学设计浙教版2023
- 福建省龙海市龙文区2022-2023学年五年级上学期期末英语试题
- 防范工贸行业典型事故三十条措施解读
- 2024年全国职业院校技能大赛高职组(环境检测与监测赛项)考试题库(含答案)
- 8安全记心上-交通安全(教学设计)部编版道德与法治三年级上册
- 提炼与抽象-顺畅沟通世界 课件-2023-2024学年高中美术人教版(2019)选择性必修4 设计
- 国开2024年秋季《形势与政策》专题测验1-5答案
- 2024年高考英语时事热点:航天主题(附答案解析)
- 2024-2030年工业自动化行业市场发展分析及发展前景与投资机会研究报告
评论
0/150
提交评论