华为机试题及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

{

{华为机试题及答案

1、通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格

分隔。请编写一个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’并将子串存储。

测试:输入:“ abc def gh i d ” 输出:“ abc,def,gh,i,d, ”

#i nclude

#i nclude

void DivideStri ng(c onst char *pln putStr, long lln putLe n, char

*pOutputStr)

{

int i=0,j=0;

int flag=0;

while(pI nputStr[i]=='')

{

i++;

}

for(;i

  • if(pInputStr[i]=='')

    flag=1;

    con ti nue;

    }

    if(flag==1)

    {

    flag=0;

    pOutputStr[j++]=',';

    }

    pOutputStr[j++]=p In putStr[i];

    }

    pOutputStr[j++]=',';

    pOutputStr[j]='\O';

    }

    int main()

    {

    char test[40];

    char re[40];

    gets(test);

    DivideStri ng(test, strle n(test), re);

    prin tf("%s",re);

    return 0;

    2、将输入的字符串(字符串仅包含小写字母‘ a'到‘ z'),按照如下规则,循

    环转换后输出:a->b,b- >c,…,y->z,z->a ;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换2次。例如:aa转换为be, zz转换为ab ;当连续相同字母超过两个时,第三个出现的字母按第一次出现算。

    测试:输入:ehar*input="abbbcd" 输出:char*output="bcdcde"

    #i nclude

    #i nclude

    void con vert(char *in put,char* output)

    {

    int i;

    for(i=0;i

    {

    if(i==0)

    {

    output[i]=i nput[i]+1;

    if(output[i]==123)

    {

    output[i]=97;

    }

    }

    else

    if(i nput[i]!=i nput[i-1])

    {

    output[i]=i nput[i]+1;

    if(output[i]==123)

    {

    output[i]=97;

    }

    }

    else

    {

    output[i]=i nput[i]+2;

    if(output[i]==123)

    {

    output[i]=97;

    }

    if(output[i]==124)

    {

    output[i]=98;

    }

    }

    }

    output[i+1]='\0';

    int main()

    {

    char in[ 20]={"asdfzzxzxz"};

    char o n[20];

    〃gets(i n);

    conv ert(i n,on);

    prin tf("%s",o n);

    return 0;

    }

    3、通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。

    测试:输入:“ afafafaf ”输出:“ af ”

    #i nclude

    #i nclude

    void stri ngFilter(c onst char *pln putStr, long lln putLe n, char *pOutputStr)

    {

    int i,j,co unt;

    int k=0;

    for(i=0;i

    {

    coun t=0;

    for(j=0;j

    {

    if(pI nputStr[i]==pOutputStr[j])

    {

    coun t++;

    }

    }

    if(co un t==0)

    {

    pOutputStr[k++]=pl nputStr[i];

    }

    }

    pOutputStr[k]='\0';

    }

    int main()

    {

    char in[ 20]={"aabbccabacddsads"};

    char o n[20];

  • 相关文档
    最新文档