华为面试编程题.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2010年华为软件校园招聘编程测验 类别:软件C语言 编程题(共2题,第一题40分,第二题60分,共100分。请上机编写程序,按题目要求提交文件。[详见考试说明] 本试题采用自动测试用例进行评分,测试用例不对考生公开,凡不满足提交要求导致不能运行或用例不通过,不予评分)。 1. 删除字符串中所有给定的子串(40分) 问题描述: 在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。 要求实现函数: int delete_sub_str(const char *str, const char *sub_str, char *result_str) 【输入】 str:输入的被操作字符串 sub_str:需要查找并删除的特定子字符串 【输出】 result_str:在str字符串中删除所有sub_str子字符串后的结果 【返回】 删除的子字符串的个数 注: I、 子串匹配只考虑最左匹配情况,即只需要从左到右进行字串匹配的情况。比如: 在字符串abababab中,采用最左匹配子串aba,可以匹配2个aba字串。如果 匹配出从左到右位置2开始的aba,则不是最左匹配,且只能匹配出1个aba字串。 II、 输入字符串不会超过100 Bytes,请不用考虑超长字符串的情况。 示例 输入:str = abcde123abcd123 sub_str = 123 输出:result_str = abcdeabcd 返回:2 输入:str = abcde123abcd123 sub_str = 1234 输出:result_str = abcde123abcd123 返回:0 view plaincopy to clipboardprint? 01.#include stdio.h 02.#include string.h 03.#include stdlib.h 04. 05./*删除字串函数,在src中删除sub子串,并将结果保存在result字符串中*/ 06.int delSubStr(char * src,char * sub,char * result) 07.{ 08. char * src_p=src; 09. char * sub_p=sub; 10. char * res_p=result; 11. int count=0;//记录包含子串的个数 12. int sub_len=strlen(sub);//记录子串的长度 13. char * temp;//临时保存子串的副本 14. temp=(char *)malloc(sub_len+1); 15. memset(temp,\0,sub_len+1); 16. while(*src_p) 17. { 18. memcpy(temp,src_p,sub_len); 19. 20. /*原串中包含与sub完全匹配的子串*/ 21. if(!strcmp(temp,sub)) 22. { 23. count++; 24. src_p+=sub_len; 25. } 26. else 27. *res_p++=*src_p++; 28. *res_p=\0; 29. free(temp); 30. return count;//返回包含子串的个数 31.} 32. 33.void main() 34.{ 35. char result[100]; 36. int count=delSubStr(abcdefgde,de,result); 37. printf(The new string is:); 38. printf(%s\n,result); 39. printf(count is:); 40. printf(%d\n,count); 41.} 2. 高精度整数加法(60分) 问题描述: 在计算机中,由于处理器位宽限制,只能处理有限精度的十进制整数加减法,比如在32位宽处理器计算机中, 参与运算的操作数和结果必须在-231~231-1之间。如果需要进行更大范围的十进制整数加法,需要使用特殊 的方式

文档评论(0)

137****0427 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档