华为机试题Word文件下载.docx
- 文档编号:16140282
- 上传时间:2022-11-20
- 格式:DOCX
- 页数:11
- 大小:27.52KB
华为机试题Word文件下载.docx
《华为机试题Word文件下载.docx》由会员分享,可在线阅读,更多相关《华为机试题Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。
,'
)//输入时要在半角输入
sign=1;
if(str[i]=='
-'
)//要点:
2:
有负整数的输入
i++;
sign=-1;
}
a[j]=a[j]*10+str[i]-'
0'
;
//要点3:
输入的可以是多位数
a[j]*=sign;
//【这里有BUG,如-12,会变成-10+2,应该对结果乘以符号,而不是每一位乘以符号】
if(str[i]=='
||str[i]=='
)//这个判断是在i自加以后
j++;
//j就是a数组的个数范围0到j-1
sort(a,j);
printf("
Maxnumber+Minnumber=%d"
a[0]+a[j-1]);
return0;
}
voidsort(inta[],intn)//选择排序
inti,j;
intk;
inttemp;
for(i=0;
i<
n-1;
i++)
k=i;
for(j=i+1;
j<
n;
j++)
if(a[k]>
a[j])
k=j;
if(i!
=k)
temp=a[k];
a[k]=a[i];
a[i]=temp;
%-5d"
a[i]);
puts("
"
);
完善版:
//i++;
//易错点1
elseif(str[i]!
)//不用else的话,负号也会减去‘0’
a[j]=a[j]*sign;
//易错点2
////易错点3
结果:
华为2014校园招聘的机试题目和2013年的完全一样。
一、题目描述(60分):
通过键盘输入一串小写字母(a~z)组成的字符串。
请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
比如字符串“abacacde”过滤结果为“abcde”。
要求实现函数:
voidstringFilter(constchar*pInputStr,longlInputLen,char*pOutputStr);
【输入】pInputStr:
输入字符串
lInputLen:
输入字符串长度
【输出】pOutputStr:
输出字符串,空间已经开辟好,与输入字符串等长;
【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出
示例
输入:
“deefd”
输出:
“def”
“afafafaf”
“af”
“pppppppp”
“p”
main函数已经隐藏,这里保留给用户的测试入口,在这里测试你的实现函数,可以调用printf打印输出
当前你可以使用其他方法测试,只要保证最终程序能正确执行即可,该函数实现可以任意修改,但是不要改变函数原型。
一定要保证编译运行不受影响。
二、题目描述(40分):
请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
压缩规则:
1、仅压缩连续重复出现的字符。
比如字符串"
abcbc"
由于无连续重复字符,压缩后的字符串还是"
。
2、压缩字段的格式为"
字符重复的次数+字符"
例如:
字符串"
xxxyyyyyyz"
压缩后就成为"
3x6yz"
voidstringZip(constchar*pInputStr,longlInputLen,char*pOutputStr);
输入字符串长度
“cccddecc”
“3c2de2c”
“adef”
“adef”
“pppppppp”输出:
“8p”
三、题目描述(50分):
通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
输入字符串的格式为:
“操作数1运算符操作数2”,“操作数”与“运算符”之间以一个空格隔开。
补充说明:
1、操作数为正整数,不需要考虑计算结果溢出的情况。
2、若输入算式格式错误,输出结果为“0”。
voidarithmetic(constchar*pInputStr,longlInputLen,char*pOutputStr);
lInputLen:
“4+7”
“11”
“4-7”
“-3”
“9++7”
“0”注:
格式错误
[cpp]viewplaincopyprint?
1.#include<
2.#include<
string.h>
3.#include<
stdlib.h>
4.
5.#define
MAXCHAR
256
6.
7.void
stringFilter(const
char*
pInputStr
long
lInputLen
pOutputStr)
8.{
9.
bool
hash[26]
=
{0};
//统计字符是否出现
10.
int
i
j;
11.
for(i
0
j
<
lInputLen;
++i)
12.
{
13.
if(false
==
hash[pInputStr[i]
-
'
a'
])
//该字符还木有出现过
14.
15.
]
true;
16.
pOutputStr[j++]
pInputStr[i];
17.
}
18.
19.
pOutputStr[j]
20.}
21.
22.void
stringZip(const
23.{
24.
k
num;
25.
char
buffer[20];
26.
0;
)
27.
28.
num
29.
for(j
+
1
++j)
30.
31.
if(pInputStr[i]
pInputStr[j])
//统计字符串中每个字符后面连续出现的重复字母次数
32.
++num;
33.
else
34.
break;
35.
}//for
36.
if(0
!
num)
//num可能是两位或三位或更多位的整数
37.
38.
memset(buffer
sizeof(buffer));
39.
itoa(num
buffer
10);
//将整数按10进制转换为字符串
40.
strcpy(pOutputStr
buffer);
41.
+=
strlen(buffer);
42.
43.
pOutputStr[k++]
pInputStr[
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华为 试题