没有合适的资源?快使用搜索试试~ 我知道了~
2021年华为面试编程题.doc
需积分: 3 1 下载量 110 浏览量
2022-12-06
21:26:46
上传
评论
收藏 43KB DOC 举报
温馨提示
试读
19页
2021年华为面试编程题.doc
资源推荐
资源详情
资源评论
华为软件校园招聘编程测验
类别:软件 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 之间。如果需要进行更大范畴十进制整数加法,需
要使用特殊
方式实现,例如使用字符串保存操作数和成果,采用逐位运算方式。如下:
+ = ?
剩余18页未读,继续阅读
资源评论
matlab大师
- 粉丝: 2375
- 资源: 9万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功