- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)