华为机试题及答案

  • 格式:doc
  • 大小:35.00 KB
  • 文档页数:10

下载文档原格式

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

华为机试题及答案

1、通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。请编写一个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’并将子串存储。

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

#include

#include<string、h>

voidDivideString(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';ﻩ

}

intmain()

{

ﻩchartest[40];

charre[40];

ﻩgets(test);

DivideString(test,strlen(test),re);

ﻩprintf("%s",re);

return0;

2、将输入得字符串(字符串仅包含小写字母‘a’到‘z’),按照如下规则,循环转换后

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

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

#include

#include<string、h>

void convert(char*input,char*output)

{

int i;

ﻩfor(i=0;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(output[i]==123)

ﻩ{

ﻩoutput[i]=97;

ﻩﻩ}

ﻩﻩ}

ﻩelse

ﻩ{

ﻩﻩoutput[i]=input[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 on[20];

ﻩ//gets(in);

ﻩconvert(in,on);

printf("%s",on);

ﻩreturn 0;

}

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

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

#include<stdio、h>

#include<string、h>

void stringFilter(const char *pInputStr, long lInputLen, char*pOutputStr)

{

inti,j,count;

ﻩint k=0;

ﻩfor(i=0;i

ﻩ{

ﻩﻩcount=0;

for(j=0;j

{

ﻩﻩif(pInputStr[i]==pOutputStr[j])

{

ﻩcount++;

ﻩﻩ}

ﻩ}

ﻩif(count==0)

ﻩﻩ{

ﻩpOutputStr[k++]=pInputStr[i];

ﻩﻩ}ﻩ

pOutputStr[k]='\0';

int main()

{

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

char on[20];

ﻩ//gets(in);

stringFilter(in,strlen(in),on);

ﻩprintf("%s",on);