2012华为面试 编程题

2012华为面试 编程题

ID:39579739

大小:75.00 KB

页数:11页

时间:2019-07-06

2012华为面试 编程题_第1页
2012华为面试 编程题_第2页
2012华为面试 编程题_第3页
2012华为面试 编程题_第4页
2012华为面试 编程题_第5页
资源描述:

《2012华为面试 编程题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、2010年华为软件校园招聘编程测验类别:软件C语言编程题(共2题,第一题40分,第二题60分,共100分。请上机编写程序,按题目要求提交文件。[详见考试说明]本试题采用自动测试用例进行评分,测试用例不对考生公开,凡不满足提交要求导致不能运行或用例不通过,不予评分)。1.删除字符串中所有给定的子串(40分)问题描述:在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。要求实现函数:intdelete_sub_str(constchar*str,constchar*sub_str,char*result_str)【输入】str:输入的

2、被操作字符串sub_str:需要查找并删除的特定子字符串【输出】result_str:在str字符串中删除所有sub_str子字符串后的结果【返回】删除的子字符串的个数注:I、子串匹配只考虑最左匹配情况,即只需要从左到右进行字串匹配的情况。比如:在字符串"abababab"中,采用最左匹配子串"aba",可以匹配2个"aba"字串。如果匹配出从左到右位置2开始的"aba",则不是最左匹配,且只能匹配出1个"aba"字串。II、输入字符串不会超过100Bytes,请不用考虑超长字符串的情况。示例输入:str="abcde123abcd123"sub_str

3、="123"输出:result_str="abcdeabcd"返回:2输入:str="abcde123abcd123"sub_str="1234"输出:result_str="abcde123abcd123"返回:0viewplaincopytoclipboardprint?01.#include02.#include03.#include04.05./*删除字串函数,在src中删除sub子串,并将结果保存在result字符串中*/06.intdelSubStr(char*src,char*sub

4、,char*result)07.{08.char*src_p=src;09.char*sub_p=sub;10.char*res_p=result;11.intcount=0;//记录包含子串的个数12.intsub_len=strlen(sub);//记录子串的长度13.char*temp;//临时保存子串的副本14.temp=(char*)malloc(sub_len+1);15.memset(temp,'',sub_len+1);16.while(*src_p)17.{18.memcpy(temp,src_p,sub_len);19.20./*

5、原串中包含与sub完全匹配的子串*/21.if(!strcmp(temp,sub))22.{23.count++;24.src_p+=sub_len;25.}26.else27.*res_p++=*src_p++;28.*res_p='';29.free(temp);30.returncount;//返回包含子串的个数31.}32.33.voidmain()34.{35.charresult[100];36.intcount=delSubStr("abcdefgde","de",result);37.printf("Thenewstringis:")

6、;38.printf("%s",result);39.printf("countis:");40.printf("%d",count);41.}2.高精度整数加法(60分)问题描述:在计算机中,由于处理器位宽限制,只能处理有限精度的十进制整数加减法,比如在32位宽处理器计算机中,参与运算的操作数和结果必须在-231~231-1之间。如果需要进行更大范围的十进制整数加法,需要使用特殊的方式实现,比如使用字符串保存操作数和结果,采取逐位运算的方式。如下:9876543210+1234567890=?让字符串num1="9876543210",字符串n

7、um2="1234567890",结果保存在字符串result="11111111100"。-9876543210+(-1234567890)=?让字符串num1="-9876543210",字符串num2="-1234567890",结果保存在字符串result="-11111111100"。要求编程实现上述高精度的十进制加法。要求实现函数:voidadd(constchar*num1,constchar*num2,char*result)【输入】num1:字符串形式操作数1,如果操作数为负,则num1[0]为符号位'-'num2:字符串形式操作数2,

8、如果操作数为负,则num2[0]为符号位'-'【输出】result:保存加法计算

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。