您的位置:首页 > 其它

2014华为实习生招聘机试题

2014-04-26 10:01 441 查看
由于本人只做出两道题,第三题没来得及细看,所以只列出前两道题目及其解法(C语言),仅供参考。
1、输入一个字符串(由小写字母组成,长度不超过1000),输出为对应的数字字符串。(60分)
样例:

输入:yiersansi
输出:1234
#include<stdio.h>
int main()
{
charstr[1000]={"0"},s[100]={"0"};
char*p=str,*q=s;
scanf("%s",str);
while(*p!='\0')
{
if('y'==*p)
{
*q='1';
q++;
p+=2;
}
else
if('e'==*p)
{
*q='2';
q++;
p+=2;
}
else
if('s'==*p)
{
p+=1;
if('a'==*p)
{
*q='3';
q++;
p+=2;
}
else
{
*q='4';
q++;
p+=1;
}
}
else
if('w'==*p)
{
*q='5';
q++;
p+=2;
}
else
if('l'==*p)
{
*q='6';
q++;
p+=3;
}
else
if('q'==*p)
{
*q='7';
q++;
p+=2;
}
else
if('b'==*p)
{
*q='8';
q++;
p+=2;
}
else
if('j'==*p)
{
*q='9';
q++;
p+=3;
}
}
*q='\0';
printf("%s",s);
return0;
}

2、输入一个字符串(由小写字母组成,大小不超过255),字符串由一个个单词组成,每个单词之间有个空格,最后一个单词末尾不加空格;输出为各个单词按字典的字母由小到大排序后的字符串,每个单词之间仍有个空格,最后一个单词末尾不加空格。(100分)

样例:

输入:i am a student

输出:a am i student

#include<stdio.h>
#include<string.h>
int main()
{
charstr[255]={"0"},s[20]={"0"},str_1[20][20]={"0"},str_2[20]={"0"};
char*p=str,*q=s;
inti,j,k=0;
gets(str);
while(*p!='\0')
{
while(*p!=''&&*p!='\0')
*q++=*p++;
*q='\0';
p++;
strcpy(str_1[k++],s);
strcpy(s,"0");
q=s;
}
for(j=0;j<k-1;j++)
for(i=0;i<k-1-j;i++)
if(strcmp(str_1[i],str_1[i+1])>0)
{
strcpy(str_2,str_1[i]);
strcpy(str_1[i],str_1[i+1]);
strcpy(str_1[i+1],str_2);
}
for(i=0;i<k;i++)
printf("%s",str_1[i]);
return0;
}


总结:1、华为机试主要考查字符串,有一定的灵活性;
2、机考系统的内核为VS2005及JDK1.7,注意输入输出的格式;
3、只要做出一道题(60分以上),就可以参加下一轮考核。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: