1 / 20
文档名称:

华为机试题及答案.doc

格式:doc   大小:55KB   页数:20页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

华为机试题及答案.doc

上传人:gdntv68 2021/8/25 文件大小:55 KB

下载得到文件列表

华为机试题及答案.doc

文档介绍

文档介绍:- -
- 考试资料
华为机试题及答案
1、通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。请编写一个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’并将子串存储。
测试:输入:“abc def gh i d” 输出:“abc,def,gh,i,d,”
#include<>
#include<>
void DivideString(const char *pInputStr, long lInputLen, char *pOutputStr)
{
int i=0,j=0;
int flag=0;
while(pInputStr[i]==' ')
{
i++;
}
for(;i<lInputLen;i++)
{
if(pInputStr[i]==' ')
{
flag=1;
continue;
- -
- 考试资料
}
if(flag==1)
{
flag=0;
pOutputStr[j++]=',';
}
pOutputStr[j++]=pInputStr[i];
}
pOutputStr[j++]=',';
pOutputStr[j]='\0';
}
int main()
{
char test[40];
char re[40];
gets(test);
DivideString(test, strlen(test), re);
printf("%s",re);
return 0;
}
2、将输入的字符串(字符串仅包含小写字母‘a’到‘z’),按照如下规则,循环转换后输出:a->b,b->c,…,y->z,z->a;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换
- -
- 考试资料
2次。例如:aa 转换为 bc,zz 转换为 ab;当连续相同字母超过两个时,第三个出现的字母按第一次出现算。
测试:输入:char*input="abbbcd" 输出:char*output="bcdcde"
#include<>
#include<>
void convert(char *input,char* output)
{
int i;
for(i=0;i<strlen(input);i++)
{
if(i==0)
{
output[i]=input[i]+1;
if(output[i]==123)
{
output[i]=97;
}
}
else
{
if(input[i]!=input[i-1])
{
- -
- 考试资料
output[i]=input[i]+1;
if(outpu