欢迎来到天天文库
浏览记录
ID:29718238
大小:35.50 KB
页数:6页
时间:2018-12-22
《华为校园招聘电子科大上机题目》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、一、题目描述(60分):通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串“abacacde”过滤结果为“abcde”。要求实现函数:voidstringFilter(constchar*pInputStr,longlInputLen,char*pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;【
2、注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例输入:“deefd”输出:“def”输入:“afafafaf”输出:“af”输入:“pppppppp”输出:“p”main函数已经隐藏,这里保留给用户的测试入口,在这里测试你的实现函数,可以调用printf打印输出当前你可以使用其他方法测试,只要保证最终程序能正确执行即可,该函数实现可以任意修改,但是不要改变函数原型。一定要保证编译运行不受影响。二、题目描述(40分):通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序
3、,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则:1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。要求实现函数:voidstringZip(constchar*pInputStr,longlInputLen,char*pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输
4、出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例输入:“cccddecc”输出:“3c2de2c”输入:“adef”输出:“adef”输入:“pppppppp”输出:“8p”三、题目描述(50分):通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。输入字符串的格式为:“操作数1运算符操作数2”,“操作数”与“运算符”之间以一个空格隔开。补充说明:1、操作数为正整数,不需要考虑计算结果溢出
5、的情况。2、若输入算式格式错误,输出结果为“0”。要求实现函数:voidarithmetic(constchar*pInputStr,longlInputLen,char*pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例输入:“4+7”输出:“11”输入:“4-7”输出:“-3”输入:“9++7”输出:“0”注:格式
6、错误[cpp]viewplaincopyprint?//////////////////////////////////////////////////////////////////////////华为第一题19:19-19:3617分钟#include#includeusingnamespacestd;boolg_flag[26];voidstringFilter(constchar*pInputStr,longlInputLen,char*pOutputStr)
7、{assert(pInputStr!=NULL);inti=0;if(pInputStr==NULL
8、
9、lInputLen<=1){return;}constchar*p=pInputStr;while(*p!=' '){if(g_flag[(*p-'a')]){p++;}else{pOutputStr[i++]=*p;g_flag[*p-'a']=1;p++;}}pOutputStr[i]=' ';}intmain(){memset(g_flag,0,sizeof(g_flag));charinpu
10、t[]="abacacde";char*output=newchar[strlen(input)+1];stringFilter(input,strlen(input),output);cout<
此文档下载收益归作者所有