2008程序员面试题解:排序与字符串转复数技巧
需积分: 3 163 浏览量
更新于2024-12-02
收藏 119KB DOC 举报
【08年程序员下午试题】是一套包含两道编程相关的题目,旨在测试候选人的算法设计、数据结构理解和C语言编程能力。这些题目有助于评估应聘者的逻辑思维和编程实践。
试题一考察的是排序算法的应用。题目描述了一个合并两个已排序数组的问题,要求将数组A和数组B中的元素合并到数组C中,并保持从小到大的排序。考生需要根据提供的流程图理解其工作原理,该流程图可能涉及一种经典的合并排序方法,如归并排序的简化版,通过两个指针分别遍历两个数组,每次比较并选择较小的元素放入结果数组,直到遍历完其中一个数组,然后将剩余的另一个数组的元素直接添加到结果数组。最终,数组C会反映出所有元素的合并,重复的元素也会被保留。
试题二则关注字符串处理,特别是将单数名词转换为其复数形式。程序定义了一个名为`plural`的函数,它接受一个单词作为输入,根据不同的规则来确定复数形式。首先检查单词以'y'结尾,如果是,则替换为'i', 'e', 's';如果以's', 'ch', 'sh'结尾,添加'es';其余情况下直接加's'。考生需要填写缺失的部分:
1. 检查单词是否以'y'结尾,这通常使用条件语句实现,即`if (word[n-1] == 'y') { ... }`
2. 将`pstr[n-1]`更新为'i',这里应该是`pstr[n-2] = 'y';`,因为之前判断了'y'。
3. 如果不是'y'结尾,检查是否以's'或'h'结尾,这需要一个额外的条件判断,可能是`pstr[n-2] != 'y' && (pstr[n-1] == 's' || pstr[n-1] == 'h')`。
4. 当执行完上述条件判断后,需要设置结束符,这里是字符串复制操作的终点,所以`pstr[n+1]='\0';`应该在`else if`块的最后。
这两个题目不仅要求考生具备扎实的编程基础,还需要灵活运用所学数据结构和字符串操作技巧,以及对算法的理解和应用。通过解答这些题目,应聘者可以展示自己的编程实战能力和问题解决能力。
2010-05-17 上传
2008-09-15 上传
2008-05-28 上传
2009-01-01 上传
2009-05-09 上传
2009-09-23 上传
2010-03-28 上传
2009-10-05 上传
hyl_xnq
- 粉丝: 109
- 资源: 11
最新资源
- WordPress作为新闻管理面板的实现指南
- NPC_Generator:使用Ruby打造的游戏角色生成器
- MATLAB实现变邻域搜索算法源码解析
- 探索C++并行编程:使用INTEL TBB的项目实践
- 玫枫跟打器:网页版五笔打字工具,提升macOS打字效率
- 萨尔塔·阿萨尔·希塔斯:SATINDER项目解析
- 掌握变邻域搜索算法:MATLAB代码实践
- saaraansh: 简化法律文档,打破语言障碍的智能应用
- 探索牛角交友盲盒系统:PHP开源交友平台的新选择
- 探索Nullfactory-SSRSExtensions: 强化SQL Server报告服务
- Lotide:一套JavaScript实用工具库的深度解析
- 利用Aurelia 2脚手架搭建新项目的快速指南
- 变邻域搜索算法Matlab实现教程
- 实战指南:构建高效ES+Redis+MySQL架构解决方案
- GitHub Pages入门模板快速启动指南
- NeonClock遗产版:包名更迭与应用更新