华为机试一霸教你过华为机试

华为机试一霸教你过华为机试
华为机试一霸教你过华为机试

大师兄教你如何过华为机试

宝典1—内功心法

大华为这个大数据时代土豪金海量式的招聘又要开始了!!!

近期听说大华为的校招机试马上就要开始了,由于华为软件岗位的招聘只有技术面跟机试是与技术有关的内容,所以机试的地位非常重要。对于机试,除了长期积累的软件基本功以外,还有很多可以短期训练的东西,类似于考试之前的突击,可以迅速提高机试成绩,就像在我西电大杨老师考前最后一堂课一定要去,那个重点就是考点阿。

这篇机试葵花宝典的内容是针对华为软件类上机准备的,如果你认真看了本宝典,如果你是真正通过自己能力考上西电的话,想不过都难。同样想拿高级题的同学,请移步或者,刷上200道题,机试不想拿满分都难。

对于机试,首先应该调整好自己的心态,不要觉得写程序很难,机试题很难,也不要去考虑,万一机试考到自己不会的内容怎么办,要相信,机试题永远是考察每个人的基础,基础是不会考的很偏的,会有人恰好做过某个题而做出来那个题,但不会有人恰好没做过一个题而做不出来那个题。

机试之前,应该做的准备有:

1、买一本《算法竞赛入门经典》,这本书不同于普通的算法或者编程语言的书籍,这本书既讲语言,又讲算法,由浅入深,讲的很好,能看完前几章并且把例题都做会,想通过机试就很简单了

2、调整好心态,时刻告诉自己,哪些小错误是自己以前经常犯的,最好用笔记本记录下来,写每道题前再看一遍,如果遇到代码调不出来了,先想想自己是否犯过以前那些错误。还有就是,看了题目以后,先仔细想清楚细节,在纸上写清楚自己需要用到的变量,以及代码的基本框架,不要急于动手去写代码

3、不要惧怕任何一道看起来很难的题目,有不会的就去问身边会的人,让别人给自己讲清楚

4、心中默念10遍C++跟C除了多了两个加号其实没有区别,会C就能上手C++

5、大量的练习是必要且有效的

6、看完这篇宝典,预过机试、必练此功。

在这里推荐一个帖子,是机试归来的学长写的,写的很不错,里面的例题在后面的攻略中也会提及, 就在好网上。

宝典二:常用招式

1:机试常用变量类型

C\C++常用的变量类型有很多种,想通过机试,掌握好其中的几种就可以,他们分别是int,double, string, char[]

int 类型是最常用的整数类型,对于输入类型是整形的变量,使用int来进行定义和读入。还有一种更大的整形变量是long long,在机试中一般不会涉及到考察,如果考虑到运算的过程中有可能超过int的大小,再考虑使用long long,int最大可以到达2^31级别,long long最大可以到达2^63。

PS:有时机试读入多个整数的时候会是这样的形式

5,10

中间有一个逗号,在这种情况下,其实读入也是很简单的,可以这么写:

scanf(“%d%c%d”,&a,&b,&c);

或者是:

scanf(“%d”,&a);

getchar();

scanf(“%d”,&c);

有的机试题会说:两个整数之间有若干个空格符或tab字符。在这种情况下,读入的方式还是使用scanf(“%d%d”,&a,&b)这样,scanf函数或者cin函数都可以很好的吃掉除了数字字符以外的字符。

double类型是最常用的浮点数类型,当运算涉及到小数运算的时候,需要使用double来定义。其中,特别需要注意的一点是,如果使用了如下语句:

double x=a/b;

在这里,a和b是int,那么x的值将是a和b整除后的结果,而不是想要的结果,想要得到期望的结果,须改成

double x=(a+/b;

在这里,将a加上一个浮点数,程序会在后台将它强制转换成一个double类型的数字,此时再除一个整数,就没有问题了

string类型是遇到字符串类问题应该首选的变量,区别于字符数组char[],string类型是直接将字符数组封装了进去,定义string s相当于定义了一个大小特别长的字符数组。使用string的好处是,避免了使用char数组时定义数组长度过小导致越界,同时更加直观的将字符串看做了一个对象。

如果要定义一个string变量,首先得包含string的头文件以及使用C++中的标准命名空间,标准命名空间这个东西,只要记得写上就行,没有任何影响。

#include pp即可,其他都是一样的。

#include<>

using namespace std;

在不同的环境下,可能会有不同的头文件包含了string的用法,可能的头文件有cstring,string。在机试的环境中,一般使用即可。

定义一个string和定义其他变量方式相同:

string s;

读入和输出string也只需要使用

cin>>s;

cout<

这是比c语言的字符数组要简单了很多的。

需要注意的是,string类型读入的时候与char数组的scanf读入一样,都是遇到空格符或者回车符就停止读入,当做一个完整字符串来处理,因此,使用string处理带空格的字符串是不明智的,其他情况下是都可以的。

string变量包含了很多强大的功能,如:

[cpp] view plaincopyprint

1. s[i]; (); if (s1

5. if (s1

string类型还有很多强大的功能,但是对于机试来说,会使用以上三种功能就足够了。

char[50],char[100]这种字符数组与string类型很像,只不过他是C语言里面的用法,对于机试,只建议在输入带有空格字符的字符串时使用char数组,使用的方式是:

gets(s);

在这里,gets函数区别于scanf函数的是,gets函数会直接将一整行读进来,而不会遇到空格就停下来。

常见机试题类型

初级题常见的类型无非就是字符串处理类的题目和数字处理类的题目,在这里归结如下:1:字符串处理类

字符串所有大写转小写:

1. for (int i=0;i<();i++)

2. if (s[i]>=’A’ && s[i]<=’Z’)

3. s[i]=s[i]-’A’+’a’;

for (int i=0;i<();i++)

2. {

3. if (s[i]满足删除要求) 跳过;

4. else 输出s[i];

5. }

倒转字符串:

与删除字符串的思路类似,倒转一个字符串,其实就是倒着输出,只需要将循环反过来就可以。

1. for (int i=()-1;i>=0;i--)

字符串比较大小:

如果比较的规则与字符串的比较规则相同,则直接使用s1>s2这种方式,如果规则不同,则用一重循环按位比较即可。

2、数字处理类

数字处理类的题目,最常见的两种考察形式是整数拆分、进制转换和排序。

整数拆分是指将一个整数拆分开每一位,比如123拆分成1,2,3。整数拆分的思路有两种,第一种是直接用字符串读入,然后把每一位用字符的形式提取出来:

[cpp] view plaincopyprint

1. for (int i=0;i<();i++)

2. num[i]=s[i]-'0';

还有一种思路是不断去除以10,把余数提取出来,方法是:

[cpp] view plaincopyprint

1. while (n!=0)

2. {

3. num[i]=n%10;

4. n=n/10;

5. i++;

6. }

进制转换:

进制转换又分为10进制转换成别的进制以及别的进制转换成10进制,进制转换其实特别简单,只需要记住如下代码:

10进制转换成X进制

[cpp] view plaincopyprint

1. while (n!=0)

2. {

3. num[i]=n%x;

4. i++;

5. n=n/x;

6. }

X进制转换成10进制

[cpp] view plaincopyprint

1. for (int i=0;i<=length;i++)

2. {

3. ans=ans*x+num[i];

4. }

其中,num[i]表示的是该x进制数的每一位,比如一个二进制数101,用这种转换方式去转换,ans的值从i=0到i=2处理后分别是1,2,5。

排序:

排序这个东西,其实不需要学习冒泡啊、快排啊之类的算法,应对机试,C++中自带的sort 函数就可以很好的解决,请看下面一段代码

[cpp] view plaincopyprint

1.

#include

2. #include using namespace std;

4. int arr[100],n;

5. int cmp(int x,int y) {

7. int importance1,importance2;

8. return importance1

11. int main()

12. {

13. cin>>n;

14. for (int i=0;i>arr[i];

15. sort(arr,arr+n,cmp);

16. return 0;

17. }

这一段代码的作用是读入n个数字,然后按优先级进行排序,排序的比较方法在cmp函数中

实现,排序的具体过程不需要考虑。

可以看到,其实只需要记住sort函数的用法,要通过机试,排序算法是根本不需要学习的,so easy!

总结:机试中,掌握好int,double,string,char[],还有数组,就足够用了,但考察的内容不仅仅是上述这些,想要通过机试,还是应该多多练习,多多学习,不局限于上面所说的内容

宝典三:擂台实战

首先推荐一个网站:,上面的很多题目,难度很适合机试,如:

很简单:1031,1120,1122,1121,1103,1104,1281,

简单:1049,1181,1182,1279,1280,

中等:1106,1108,1183,1288.

难:1105,1282,1283,

大家可以根据自己的水平去训练,其实里面的难题也是很简单的,归类到题库中的话都属于简单题,只要好好看书学习都是可以做出来的,下面放几道例题,这些题都是机试很有可能考的题目,或者是非常类似的题目,已经有了仔细的注释,代码写的仓促

1. 简单题

2. 题目描述

3. 输入一个字符串,删除其中所有的数字,所有大写字母改成小写,其他不变,并输出

4.

5. 输入描述

6. 一个字符串,保证没有空格,以回车符结束,字符串长度<=20

7. 输出描述

8. 一个字符串,为题目要求的结果

9.

10. 输入样例

11. aAbB13A

12. 输出样例

13. aabba

14.

15. 解题思路:模拟题目要求即可,遇到数字就跳过不输出,遇到大写字母就改成小写。

16.

17. */

18. #include

19. #include<>

20. using namespace std;

21. int main()

22. {

23. string s;

24. cin>>s;

25. for (int i=0;i<();i++) {

27. if (s[i]>='0' && s[i]<='9') continue; if (s[i]>='A' && s[i]<='Z') s[i]=s[i]-'A'+'a'; cout<

30. }

31. cout<

32. }

33.

34. 简单题

35. 题目描述

36. 输入一个字符串,统计其出现频率最高的字符,并输出。若存在两个字符出现频率相同,则输出字典序较小的那一个

37.

38. 输入描述

39. 一个字符串,保证没有空格,以回车符结束,字符串长度<=20

40. 输出描述

41. 一个字符

42.

43. 输入样例

44. aabbaabb

45. 输出样例

46. a

47.

48. 解题思路:做一个频率数组来统计所有字符的出现频率,机试时候不会有汉字输入,因

此只考虑输入是ASCII编码的情况。

49.

50. */

51. #include

52. #include<>

53. using namespace std;

54. int f[200]; int biggest=0; int main()

57. {

58. memset(f,0,sizeof(f)); string s;

60. cin>>s;

61. for (int i=0;i<();i++) {

63. int num=s[i]; f[num]++; biggest=max(biggest,f[s[i]]); }

67. for (int i=0;i<=129;i++) if (f[i]==biggest) {

70. cout<<(char)(i)<

71. break; }

73. }

74. /*

75. 简单题

76. 题目描述

77. 输入一个数字,将其倒序输出,并输出其各个位上的乘积

78.

79. 输入描述

80. 一个正整数,保证在int范围内

81. 输出描述

82. 两个数字,用空格隔开,第一个数字为其倒序的值,第二个数字是各个位上的乘积

83.

84. 输入样例

85. 134

86. 输出样例

87. 431 12

88.

89.

90. 解题思路:删繁就简,直接当字符串读入,处理就简单多了。

91. PS:此处不用纠结于题意,没有特别强调是按照一个数的格式输出,因此可以有前导0

92.

93. */

94. #include

95. #include<>

96. using namespace std;

97. int main()

98. {

99. string s;

100. int ans=1;

101. cin>>s;

102. for (int i=()-1;i>=0;i--)

103. {

104. cout<

107. cout<<' '<

108. }

109. 中级题

110. 题目描述

111. 输入10个数字,按各个位上的和从小到大排序,如果相同,则按数字从小到大排序。

112.

113. 输入描述

114. 10个正整数,保证都在int范围内,用空格隔开

115. 输出描述

116. 10个数字,其从大到小的值,用空格隔开,最后一个数字后不加空格

117.

118. 输入样例

119. 11 3 2 4 5 9 8 7 10 6

120. 输出样例

121. 10 2 11 3 4 5 6 7 8 9

122.

123. 解题思路:调用C++自带的sort函数,重新改写compare函数即可。

124. */

125. #include

126. #include<>

127. #include using namespace std;

129. int arr[10];

130. int cal(int x) {

132. int ans=0;

133. while (x!=0)

134. {

135. ans+=x%10;

136. x/=10;

137. }

138. return ans;1

139. }

140. int cmp(int i,int j)

141. {

142. if (cal(i)!=cal(j)) {

144. return cal(i)

145. }

146. else {

148. return i

149. }

150. }

151. int main()

152. {

153. for (int i=0;i<=9;i++) cin>>arr[i]; 154. sort(arr,arr+10,cmp);

155. for (int i=0;i<=9;i++)

156. {

157. cout<

158. if (i!=9) cout<<' '; }

160. cout<

161. }

163. 中级题

164. 题目描述

165. 你有一个容量为100的箩筐,给你30个物品,每个物品的体积已知问:最多能装多少个物品进箩筐

166. 输入描述

167. 一行30个正整数,用空格隔开,表示每个物品的体积

168. 输出描述

169. 一个数字,为最多能装下的物品数

170.

171. 输入样例(此处用3个物品作为样例,实际读入为30个)

172. 5 59 100

173. 输出样例

174. 2

175.

176. 解题思路:利用性价比对所有物品进行排序,优先装性价比高的,在此题中,性价比就是物品的体积

177. */

178. #include

179. #include<>

180. #include using namespace std;

182. int arr[31];

183. int main()

184. {

185. for (int i=0;i<=29;i++) cin>>arr[i];

186. sort(arr,arr+30); int sum=0;

189. for (int i=0;i<=29;i++)

190. {

191. if (sum+arr[i]>100) break; sum=sum+arr[i]; } 194. cout<

196. }

197. 初级题:(此题是我曾经做的机试题)

198. 描述:10个学生考完期末考试评卷完成后,A老师需要划出及格线,要求如下:199. (1) 及格线是10的倍数;

200. (2) 保证至少有60%的学生及格;

201. (3) 如果所有的学生都高于60分,则及格线为60分

202. (4) 及格线越高越好,但最高不能超过60

203. 输入:输入10个整数,取值0~100

204. 输出:输出及格线,10的倍数

205. 输入样例:61 51 49 30 20 10 70 80 90 99

206. 输出样例:50

207.

208. 解题思路:从高到低枚举及格线,输出第一个满足要求的及格线就是答案

209. */

210. #include

211. using namespace std;

212. int arr[10];

213. int main()

214. {

215. for (int i=0;i<=9;i++) cin>>arr[i];

216. int line;

217. for (line=60;line>=0;line-=10) {

219. int num=0; for (int i=0;i<=9;i++)

221. if (arr[i]>=line) num++;

223. if (num>=6) break; }

226. cout<

227. }

228. 中级题:100分(此题是我曾经做的机试题)

229. 描述:一条长廊里依次装有n(1 ≤ n ≤ 65535)盏电灯,从头到尾编号1、2、3、…n-1、n。每盏电灯由一个拉线开关控制。开始,电灯全部关着。

230. 有n个学生从长廊穿过。第一个学生把号码凡是1的倍数的电灯的开关拉一下;接着第二个学生把号码凡是2的倍数的电灯的开关拉一下;接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下。n个学生按此规定走完后,长廊里电灯有几盏亮着。注:电灯数和学生数一致。231.

232. 输入:电灯的数量

233. 输出:亮着的电灯数量

234. 样例输入:3

235. 样例输出:1

236.

237. 解题思路1:这道题,如果要模拟的话,当然是可以的,但对于代码基础较差的同学写起来就比较吃力了,在这里写模拟的做法

238. 解题思路2:在这道题上面多思考思考,可以看出,对于任何一个灯来说,比如12,其因数有1,2,3,4,6,12。说明,编号为1,2,3,4,6,12的学生分别要拉它一下,在这里发现,1*12=12,2*6=12,3*4=12,所以其因数都是一一对应的,也就是,1拉的那一下被12抵消了,2拉的那一下被6抵消了,那么谁不会被抵消呢答案是平方数,比如9的因数是1,3,9,那么3*3=9,而3只拉一次,所以不会被抵消。因此,这道题的答案就是,输入的n以内的平方数个数,等于(int)sqrt(n)。

239. 从这道题可以看出,编程的很多时候,多思考比多动笔要有用的多。

240.

241. */

242. #include

243. #include<>

244. using namespace std;

245. int vis[65536],n;

246. int main()

247. {

248. cin>>n;

249. memset(vis,0,sizeof(vis)); for (int i=1;i<=n;i++) for (int j=i;j<=n;j+=i) .,这些灯全部都被拉一次开关

252. vis[j]=1-vis[j]; int ans=0; for (int i=1;i<=n;i++) 255. if (vis[i]==1) ans++;

257. cout<

}

上面的所有代码能够看懂,并且自己实现一遍,再练上几个类似的题,过机试肯定没问题,能够轻松写出上面的代码,那么机试优秀肯定没问题。想拿满分,请去学习搜索(dfs,bfs),树(先中后序遍历,及已知遍历对树的构造等),栈(怎么用数组模拟栈,栈的特性等),图论(最短路算法,连通性判断等),动态规划(这个就太多了,入门请看背包九讲)等等等等。虽然写了这么多,但高级题其实并没有这么难,高级题主要考搜索比较多一些,偶尔会有树、栈、图、动态规划的题目,不过,要想当个好码农,算法和数据结构基础是必须的

机试葵花宝典就写到这里了,大师兄在大华为等你们哪,来了我们一起在练独孤九剑,六脉神剑。

附好网上另一师兄机试心得,共小弟妹们参考:

华为机试成功归来,与小伙伴们分享下经验

前段时间参加华为机试,机试通过的可以优先录取,优先选择岗位和工作地,关键是面的好,

还可以谈更高的工资,最多在西安可以拿到18W。好处还是蛮多的,抱着试试看的态度就去了。哈哈,华为机试记录正是开始。

提前在网上交了简历,周围同学只要报了软件研发类的相关岗位都收到短信通知,需要用到编程的同学基本上都受到短信了。一天三波,在西工大毅字楼三楼机房,南门进去直走左拐就到了,我是第二天早上的机试,前一天已经听机试过的同学考的内容涉及数组、链表、指针、字符串、循环、枚举、排序等吧,这个估计要看人品,平时出门多扶老奶奶过马路吧。其实考过后发现这个机试跟平时做项目不一样,项目可能更多的注重实现研究所需要的某个功能不会去注意这么多细节,但是机试考的更多的是基本功。下面重点跟大家分享下上机题吧,我只列举了我抽到的三个,其他同学抽到的跟这个大同小异吧。大家自己编写下,对即将开始的面试都会有帮助的。

考试内容:数组、链表、指针、字符串、循环、枚举、排序等(从考过的同学那儿总结的可能不全)

试题结构:考试总共三道题,说是难中易,初级题(60分)、中级题(100分)、高级题(160分),最难的接近一百行,说多不多,但自己敲出来还是费了点劲,

考试时间:两个小时。平时练得少可能稍微捉鸡点。

最简单的一个

描述:10个学生考完期末考试评卷完成后,A老师需要划出及格线,要求如下:

(1) 及格线是10的倍数;

(2) 保证至少有60%的学生及格;

(3) 如果所有的学生都高于60分,则及格线为60分

输入:输入10个整数,取值0~100

输出:输出及格线,10的倍数

输入样例:61 51 49 30 20 10 70 80 90 99

输出样例:50

自己编写代码简单如下:

1. #include <>

2.

3.

4. void bubbleSort(int arr[])

5. {

6. int i = 0;

7. int j = 0;

8. int t = 0;

9.

10. for(i = 0;i < 10; i++)

11. {

12. for(j = 0; j < (9 - i); j++)

13. {

14. if(arr[j + 1] < arr[j])

15. {

16. t = arr[j + 1];

17. arr[j + 1] = arr[j];

18. arr[j] = t;

19. }

20. }

21. }

22. }

23.

24. int getPassLine(int a[])

25. {

26. int i = 0;

27.

28. bubbleSort(a);

29.

30. if (a[0] >= 60)

31. {

32. return 60;

33. }

34. else

35. {

36. return ((a[4] / 10) * 10);

37. }

38.

39. }

40.

41.

42.

43. int main()

44. {

45. int a[10] = {0};

46.

47. scanf("%d %d %d %d %d %d %d %d %d %d", &a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7], &a[8], &a[9]);

48.

49. printf("%d", getPassLine(a));

50.

51. return 0;

52. }

描述:一条长廊里依次装有n(1 ≤ n ≤ 65535)盏电灯,从头到尾编号1、2、3、…n-1、n。每盏电灯由一个拉线开关控制。开始,电灯全部关着。

有n个学生从长廊穿过。第一个学生把号码凡是1的倍数的电灯的开关拉一下;接着第二个

学生把号码凡是2的倍数的电灯的开关拉一下;接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下。n个学生按此规定走完后,长廊里电灯有几盏亮着。注:电灯数和学生数一致。

输入:电灯的数量

输出:亮着的电灯数量

样例输入:3

样例输出:1

答案参考:

1. #include <>

2.

3. #define MAX_BULB_NUM 65535

4. /*

5. 功能: n个学生按规定走完后,长廊里电灯有几盏亮着。

6. 原型:

7. int GetLightLampNum(int n);

8.

9. 输入参数:

10. int n: 电灯/学生的数量。

11.

12. 返回值:

13. int: 亮着的电灯数量。

14.

15. */

16.

17. int GetLightLampNum(int n)

我来说说华为机试讲解

受乔哥的启发,决定写一个关于华为机试的简介,首先声明本人并非大牛,也无权拿到华为的内部资料,以下内容大部分源自网络,还有一部分是自己的感悟,本文以整理和疏导为主。 由于我不会JAVA,在这也就不写JAVA的东西了吧,下面的内容以C/C++为主。 分为几个部分:第一部分是华为机试流程、题型等相关介绍,第二部分是一些经典题目的剖些,第三部分是一些提示和建议。 一、华为机试介绍 1.大致介绍 时间:120分钟 环境:Visual Studio(去年是vs2005)、Visual C++、Eclipse(Java) 题量:共3题 初级题——60分——3组测试数据 中级题——100分——5组测试数据 高级题——160分——8组测试数据 注:初级题和中级题为必答题,高级题为附加题。 提交次数:每题最多5次 评判方式:按通过测试数据组数给分,每通过一组得20分 2.考试说明 这里有一个老版的机试考试说明,供大家参考: C/C++,JAVA机试流程: ①打开IE浏览器,输入机试系统IP地址(以当天告知的地址为准); ②输入姓名、手机,选择“C/C++”或“JAVA”,登录; ③登录后显示题目,阅读题目并点击页面最下方“下载框架文件”,将文件解压到D盘; ④用VC6.0或Eclipse打开工程工程; ⑤补充函数体、调试; ⑥将工程压缩打包; ⑦返回IE浏览器中的试题页面,点击最下方的“提交”按钮,完成提交。 3.注意事项 华为的机试阅卷为电脑自动阅卷,大致流程是输入测试数据,判断结果是否正确,所以,在编写好程序后,一定要多测试几组数据,至少要保证题目中测试数据输入后,结果符合题目要求。 二、经典题目剖析 1.在分析具体题目之前,有几个注意事项说一下: 1)同学们平时写代码的编译环境不太一样,大致有GCC/G++,VC,VS,在这几种之中又细分了好多个版本,但是既然是准备华为机试,那么就装个最简单的VS2005吧,只要代码在这个版本上通过,相信机试的时候也不会出问题。 2)现在很多新旧编程标准交织,这几年还有很实用的C++11,但是为了机试,这些还是先别秀吧,你问为什么有这么好的东西却不让用?因为VS2005不支持呗,类似的还有atoi(), itoa() 这些局限于编译环境的函数也最好别用。 2.机试的时候分为3类题: 3)初级题——多为简单字符串处理或数字操作 4)中级题——在考察编程语言能力的基础上加入一定简单的算法和数据结构。 5)高级题——更多的算法和数据结构要求,代码量明显增大,栈、图、树、查找、搜索都在考察范围内。

2016华为硬件机试题库

华为硬件机试题目(2016版本) 1.(判断题)DRAM上电时存储单元的内容是全0,而Flash上电时存储单元的内容是全1。(4分)? A.正确? B.错误 2.(判断题)眼图可以用来分析高速信号的码间干扰、抖动、噪声和衰减。(4分)? A.正确? B.错误 3.(判断题)以太网交换机将冲突域限制在每个端口,提高了网络性能。(4分)? A.正确? B.错误 4.(判断题)放大电路的输出信号产生非线性失真是由于电路中晶体管的非线性引起的。(4分)? A.正确? B.错误 5.(判断题)1的8位二进制补码是0000_0001,-1的8位二进制补码是 1111_1111。(4分)?

B.错误 6.(判断题)洗衣机,电冰箱等家用电器都使用三孔插座,是因为如果不接地,家用电器是不能工作的。(4分)? A.正确? B.错误 7.(判断题)十进制数据0x5a与0xa5的同或运算结果为:0x00。(4分)? A.正确? B.错误 8.(判断题)硅二极管的正向导通压降比锗二极管的大(4分)? A.正确? B.错误 9.(单选题)一空气平行板电容器,两级间距为d,充电后板间电压为u。然后将电源断开,在平板间平行插入一厚度为d/3的金属板。此时电容器原板间电压变为(4分)? A.U/3? B.2U/3? C.3U/4?

10.(单选题)8086CPU内部包括哪些单元(4分)? A.ALU,EU? B.ALU,BIU? C.EU,BIU? D.ALU,EU,BIU 11.(单选题)为了避免50Hz的电网电压干扰放大器,应该用那种滤波器:(4分)? A.带阻滤波器? B.带通滤波器? C.低通滤波器? D.高通滤波器 12.(单选题)关于SRAM和DRAM,下面说话正确的是:(4分)? A.SRAM需要定时刷新,否则数据会丢失? B.DRAM使用内部电容来保存信息? C.SRAM的集成度高于DRAM? D.只要不掉点,DRAM内的数据不会丢失 13.(单选题)在RS232串口中,采用哪一种校验方式:(4分)?

华为校招·硬件技术工程师机考试题及答案

精品文档 1.(判断题)DRAM上电时存储单元的内容是全0,而Flash上电时存储单元的内容是全1。(4分) A.正确 B.错误 FLASH可保存 2.(判断题)眼图可以用来分析高速信号的码间干扰、抖动、噪声和衰减。(4分) A.正确 B.错误 3.(判断题)以太网交换机将冲突域限制在每个端口,提高了网络性能。(4分) A.正确 B.错误 4.(判断题)放大电路的输出信号产生非线性失真是由于电路中晶体管的非线性引起的。(4分) A.正确 B.错误 5.(判断题)1的8位二进制补码是0000_0001,-1的8位二进制补码是1111_1111。(4分) A.正确 B.错误 6.(判断题)洗衣机,电冰箱等家用电器都使用三孔插座,是因为如果不接地,家用电器是不能工作的。(4分) A.正确 B.错误 7.(判断题)十进制数据0x5a与0xa5的同或运算结果为:0x00。(4分) A.正确 B.错误 8.(判断题)硅二极管的正向导通压降比锗二极管的大(4分) A.正确 B.错误 9.(单选题)一空气平行板电容器,两级间距为d,充电后板间电压为u。然后将电源断开,在平板间平行插入一厚度为d/3的金属板。此时电容器原板间电压变为(4分) A.U/3 B.2U/3 C.3U/4 D.不变但电容的大小不是由 Q(带电量)或U(电压)决定的,即: C=εS/4πkd。其中,ε是一个常数, S为电容极板的正对面积, d为电容极板的距离, k则是静电力常量。而常见的平行板电容器 电容为C=εS/d.(ε为极板间介质的介电常数, S 为极板面积, d为极板间的距离。) 3电容器的电势能计算公式: E=CU^2/2=QU/2 10.(单选题)8086CPU内部包括哪些单元(4分) A.ALU,EU B.ALU,BIU C.EU,BIU D.ALU,EU,BIU 80x86从功能上分执行单元EU(Execution Unit),和总线接口单元BIU(Bus Interface Unit),执行单元由8个16位通用寄存器,1个16位标志寄存器,1个16位暂存寄存器,1个16位算术逻辑单元ALU及EU控制电路组成。 总线接口单元由4个16位段寄存器(CS,DS,SS,ES),1个16位的指令指针寄存器,1个与EU通信的内部暂存器,1个指令队列,1个计算20位物理地址的加法器∑及总线控制电路构成。 11.(单选题)为了避免50Hz的电网电压干扰放大器,应该用那种滤波器:(4分) A.带阻滤波器 B.带通滤波器 C.低通滤波器 D.高通滤波器 12.(单选题)关于SRAM和DRAM,下面说话正确的是:(4分) A.SRAM需要定时刷新,否则数据会丢失 B.DRAM使用内部电容来保存信息 C.SRAM的集成度高于DRAM D.只要不掉点,DRAM内的数据不会丢失 【解析】SRAM和DRAM都是随机存储器,机器掉电后,两者的信息都将丢失。它们的最大区别就是:DRAM是用电容有无电荷来表示信息0和1,为防止电容漏电而导致读取信息出错,需要周期性地给电容充电,即刷新;而SRAM是利用触发器的两个稳态来表示信息0和1,所以不需要刷新。另外,SRAM 的存取速度比DRAM更高,常用作高速缓冲存储器Cache。

华为机试试题汇总解析

1.第一题的题目大概是输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2;另外数组的长度不超过50 #include main() { intnum[50]={0}; inti,n; printf("请输入整型数组的长度(1~50):"); scanf("%d",&n); printf("请输入整型数组的元素:"); for(i=0;inum[j]) min_num=num[j]; } intsum=min_num+max_num; printf("数组中最大与最小值之和:%d\n",sum); return0; } 2.求两个长长整型的数据的和并输出,例如输入1233333333333333。。。3111111111111111111111111.。。。,则输出。。。。

#include #include #include main() { char*num1,*num2; //两个长长整型数据 char*sum; // inttemp; int len_num1,len_num2; // 两个长长整型数据的长度 intlen_max,len_min; num1=(char*)malloc(sizeof(char)); num2=(char*)malloc(sizeof(char)); printf("输入两个长长整型数据:"); scanf("%s",num1); printf("输入两个长长整型数据:"); scanf("%s",num2); len_num1=strlen(num1); len_num2=strlen(num2); len_max=(len_num1>=len_num2)?len_num1:len_num2; len_min=(len_num1<=len_num2)?len_num1:len_num2; int len_max1=len_max; sum=(char*)malloc(sizeof(char)*len_max); memset(sum,0x00,len_max+1);//切忌初始化 for(;len_num1>0&&len_num2>0;len_num1--,len_num2--) { sum[len_max--]=((num1[len_num1-1]-'0')+(num2[len_num2-1]-'0')); } if(len_num1>0) { sum[len_max--]=num1[len_num1- 1 ]-'0'; len_num1--; } if(len_num2>0) {

华为机试以及注意事项

华为机试以及注意事项 机试题目所考察的都是较为基础的编程能力,希望大家做好准备,在机试现场调整好心态、认真审题、细心答题。现将系统的使用情况及注意事项简单说一下。 机试前准备:进入机试考场前会给每位同学发一张《考试说明》,请大家务必仔细研读。 C/C++机试流程: ①打开IE浏览器,输入机试系统IP地址(以当天告知的地址为准); ②输入姓名、手机,选择“C/C++”或“JAVA”,登录; ③登录后显示题目,阅读题目并点击页面最下方的“下载框架文件”,将文件解压到D盘; ④用VC6.0打开工程test.dsw; ⑤补充函数体、调试; ⑥新建test文件夹(如在桌面上新建),将func.cpp和test.exe文件复制到该文件夹中,压缩该test文件夹; ⑦返回IE浏览器中的试题页面,点击最下方的“提交”按钮,完成提交。 JAVA机试流程: ①打开IE浏览器,输入机试系统IP地址(以当天告知的地址为准); ②输入姓名、手机,选择“C/C++”或“JAVA”,登录; ③登录后显示题目,阅读题目并点击页面最下方的“下载框架文件”,将文件解压到D盘; ④用Eclipse打开工程 ⑤补充函数体、调试; ⑥将工程压缩打包; ⑦返回IE浏览器中的试题页面,点击最下方的“提交”按钮,完成提交。 机试注意事项: (1)机试时间:7月3日-4日,具体请以自己手机收到的时间为准,通知短信会在7月3日前发给大家。 (2)机试地点:西工大老校区软件学院机房(从南门进入,往北走,在第1个路口左拐)。(3)机试数量:3道,1小时多,不能带书。 (4)携带东西:身份证(凭身份证进入考场),建议大家带上笔和草稿纸,方便分析题目。切记事项: (1)收到具体机试时间短信的同学才能参加机试,没有收到的不得参加。 (2)只报名机试的同学,务必于今晚12点前注册华为官方简历,没有注册简历的同学将不能参加机试。PS:华为官方简历注册将于今晚12点截止! (3)严谨替考!一经发现,再无机会进入华为公司。 机试成绩好的同学,将优先参加专偏人才的岗位选择及可能的特殊起薪,其他同学可参加9月的华为大型招聘。希望大家做好机试准备,取得好的成绩!招聘之路,有你有我,让我们一起加油! 机试用了去年的一个模拟题,是关于数的筛选问题,用到了编程中最为基本的循环结构,重点考察大家的逻辑思维,难度并不大。所以,大家一定要把握和巩固好基础,多动手练习,在考场上沉着冷静、细致思考,相信大家一定能够取得不错的成绩。

华为机试(南京)-面试题

求一串字符串中出现次数最多的单词 南京 同学都陆续到华为参加了机试,题目整体难度不大,基本上都是考字符串相关的题目。这里就分享一套2012年华为南京机试C++或者C 的编程题目。 2012年华为南京机试第一题整数化成字符串 给定一个整数(有可能是负数),将整数变成字符串。函数已经声明好类似void change(int number, char s[])的形式。可以自己写用例测试。 2012年华为南京机试第二题单链表逆序 给定一个已经定义好的单链表,将单链表中的数字逆序。输入为head 指针,返回的也是一个head 指针。函数声明为void sor(Node **head)的形式。 2012年华为南京机试第三题字符串最大回文子串 给定一个字符串,寻找它的一个最大子串,该子串是回文。例如给定用例字符 串”gabcdcbaef”,那么最大回文字串是”abcdcba”。函数声明为void huiwen(char input[], int len, char output[])。 一天几个考场的题目有相同的也有不同的,基本上难度都不大。要求做前两题就可以了,有能力的可以做第三题并且计入总分。有同学做完当场就看到是100分,也有0分的,至于怎么计分的不太清楚。希望七叶草提供的2012年华为南京机试编程题对你有帮助! 武汉 题目:有一个数组a[N]如a[10]={0,1,2,3,4,5,6,7,8,9}每隔两个数删除一个数,如0,1,2(删除),3,4,5(删除),6,7,8(删除),9,到数组尾部回到数组头部继续删除,要求编写一个函数实现实现上述操作,返回最后一个数的数组下标。 函数接口:int getLast(int iLen) 参数:数组初始元素个数iLen 01 #include 02 #include 03 04 typedef struct node *List; 05 typedef struct node *PNode; 06 07 typedef struct no

华为笔试题目很全

[笔试]华为笔试集合,很全面 [此帖已被设为推荐]本人收集的一些华为笔试 华为软件工程笔试题 写一个程序,要求功能:求出用1,2,5这三个数不同个数组合的和为100的组合个数。如:100个1是一个组合,5个1加19个5是一个组合。。。。请用C++语言写。答案:最容易想到的算法是:设x是1的个数,y是2的个数,z是5的个数,number是组合数注意到0=x=100,0=y=50,0=z=20,所以可以编程为:number=0;for(x=0;x=100;x++)for(y=0;y=50;y++)for (z=0;z=20;z++)if((x+2*y+5*z)==100)number++;coutnumberendl;上面这个程序一共要循环100*50*20次,效率实在是太低了事实上,这个题目是一道明显的数学问题,而不是单纯的编程问题。我的解法如下:因为x+2y+5z=100所以x+2y=100-5z,且z=20x=100y=50所以(x+2y)=100,且(x+5z)是偶数对z作循环,求x的可能值如下:z=0,x=100,98,96,...0z=1,x=95, 93,...,1z=2,x=90,88,...,0z=3,x=85,83,...,1z=4,x=80,78,...,0......z=19,x=5,3,1z=20,x=0因此,组合总数为100以内的偶数+95以内的奇数+90以内的偶数+...+5以内的奇数+1,即为:(51+48)+(46+43)+(41+38)+(36+33)+(31+28)+(26+23)+(21+18)+(16+13)+(11+8)+(6+3)+1某个偶数m以内的偶数个数(包括0)可以表示为m/2+1=(m+2)/2某个奇数m以内的奇数个数也可以表示为(m+2)/2所以,求总的组合次数可以编程为:number=0;for(int m=0;m=100;m+=5){number+=(m+2)/2;}coutnumberendl;这个程序,只需要循环21次,两个变量,就可以得到答案,比上面的那个程序高效了许多倍----只是因为作了一些简单的数学分析这再一次证明了:计算机程序=数据结构+算法,而且算法是程序的灵魂,对任何工程问题,当用软件来实现时,必须选取满足当前的资源限制,用户需求限制,开发时间限制等种种限制条件下的最优算法。而绝不能一拿到手,就立刻用最容易想到的算法编出一个程序了事 【华为硬件笔试题1】 一选择13个题目,没有全部抄下来,涉及的课程有电路,模拟电路,数字电路,信号与系统,微机原理,网络,数字信号处理 1.微分电路 2.CISC,RISC 3.数据链路层二填空10个题目,没有全部抄下来,涉及的课程有电路,模拟电路,数字电路,信号与系统,微机原理,网络,数字信号处理有关于 1.TIC6000DSP 2.二极管 3.RISC 4.IIR三简答 1.x(t)的傅立叶变换为X(jw)=$(w)+$(w-PI)+$(w-5) h(t)=u(t)-u(t-2)问:(1),x(t)是周期的吗?(2),x(t)*h(t)是周期的吗?(3),两个非周期的信号卷积后可周期吗?2.简述分组交换的特点和不足四分析设计 1.波形变换题目从正弦波->方波->锯齿波->方波,设计电路2.74161计数器组成计数电路,分析几进制的3.用D触发器构成2分频电路 4.判断MCS-51单片机的指令正确还是错误,并指出错误原因(1)MUL R0,R1(2) MOV A,@R7(3)MOV A,#3000H(4)MOVC@A+DPTR,A(5)LJMP#1000H() 5.MCS-51单片机中,采用12Mhz时钟,定时器T0采用模式1(16位计数器),请问在下面程序中,p1.0的输出频率MOV TMOD,#01H SETB TR0LOOP:MOV TH0,#0B1H MOV TL0,#0E0H LOOP1:JNB TF0,LOOP1CLR TR0CPL P1.0SJMP LOOP 【华为硬件笔试题2】 全都是几本模电数电信号单片机题目 1.用与非门等设计全加法器 2.给出两个门电路让你分析异同 3.名词:sram,ssram,sdram 4.信号与系统:在时域与频域关系 5.信号与系统:和4题差不多 6.晶体振荡器,好像是给出振荡频率让你求周期(应该是单片机的,12分之一周期....) 7.串行通信与同步通信异同,特点,比较8.RS232c高电平脉冲对应的TTL逻辑是?(负逻辑?)9.延时问题,判错10.史密斯特电路,求回差电压11.VCO是什么,什么参数

华为机试试题汇总

1 ?第一题的题目大概是输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2;另外数组的长度不超过50 #i nclude mai n() { intn um[50]={0}; in ti, n; printf("请输入整型数组的长度(1~50):"); scan f("%d",&n); printf("请输入整型数组的元素:"); for(i=0;i nu m[j]) min_num=nu m[j]; } in tsum=min_nu m+max_ num; printf("数组中最大与最小值之和:%d\n",sum); return。; } 2. 求两个长长整型的数据的和并输出,例如输入123333333333333 3.OO

3111111111111111111111111。。O,则输出。OOO #i nclude #i ncludevstri ng.h> #i nclude mai n() { char* nu ml,* num2; //两个长长整型数据 char*sum; // in ttemp; int Ien_num1,len_num2; //两个长长整型数据的长度 in tle n_ max,le n_min; nu m1=(char*)malloc(sizeof(char)); nu m2=(char*)malloc(sizeof(char)); printf("输入两个长长整型数据:"); scan f("%s", nu m1); printf("输入两个长长整型数据:"); scan f("%s", nu m2); len_nu m仁strle n(nu m1); len_nu m2=strle n(nu m2); len_ max=(le n_nu m1>=le n_nu m2)?le n_nu m1:le n_nu m2; len_ mi n=(le n_nu m1<=le n_nu m2)?le n_nu m1:le n_nu m2; int len _max1=le n_max; sum=(char*)malloc(sizeof(char)*le n_max); memset(sum,OxOO,len_max+1);〃切忌初始化 for(;le n_nu m1> 0&&le n_nu m2>0;le n_nu m1--,le n_nu m2--) { sum[len_max--]=(( nu m1[len_num1-1]-'0')+( nu m2[len_num2-1]-'0')); } if(len_num1>0) { sum[le n_max--]=nu m1[le n_nu m1- 1 ]-'0'; len_nu m1--; } if(len_num2>0) {

硬件测试华为校招·硬件技术工程师机考试题及答案

1.(判断题)DRAM上电时存储单元的内容是全0,而Flash上电时存储单元的内容是全1。(4分) A.正确 B.错误 FLASH可保存 2.(判断题)眼图可以用来分析高速信号的码间干扰、抖动、噪声和衰减。(4分) A.正确 B.错误 3.(判断题)以太网交换机将冲突域限制在每个端口,提高了网络性能。(4分) A.正确 B.错误 4.(判断题)放大电路的输出信号产生非线性失真是由于电路中晶体管的非线性引起的。(4分) A.正确 B.错误 5.(判断题)1的8位二进制补码是0000_0001,-1的8位二进制补码是1111_1111。(4分) A.正确 B.错误 6.(判断题)洗衣机,电冰箱等家用电器都使用三孔插座,是因为如果不接地,家用电器是不能工作的。(4分) A.正确 B.错误 7.(判断题)十进制数据0x5a与0xa5的同或运算结果为:0x00。(4分) A.正确 B.错误 8.(判断题)硅二极管的正向导通压降比锗二极管的大(4分) A.正确 B.错误 9.(单选题)一空气平行板电容器,两级间距为d,充电后板间电压为u。然后将电源断开,在平板间平行插入一厚度为d/3的金属板。此时电容器原板间电压变为(4分) 3 3 4 D.不变 但电容的大小不是由 Q(带电量)或U(电压)决定的,即: C=εS/4πkd。其中,ε是一个常数, S为电容极板的正对面积, d为电容极板的距离, k则是静电力常量。而常见的平行板电容器 电容为C=εS/d.(ε为极板间介质的介电常数, S 为极板面积, d为极板间的距离。) 3电容器的电势能计算公式: E=CU^2/2=QU/2

10.(单选题)8086CPU内部包括哪些单元(4分) ,EU ,BIU ,BIU ,EU,BIU 80x86从功能上分执行单元EU(Execution Unit),和总线接口单元BIU(Bus Interface Unit),执行单元由8个16位通用寄存器,1个16位标志寄存器,1个16位暂存寄存器,1个16位算术逻辑单元ALU及EU控制电路组成。 总线接口单元由4个16位段寄存器(CS,DS,SS,ES),1个16位的指令指针寄存器,1个与EU通信的内部暂存器,1个指令队列,1个计算20位物理地址的加法器∑及总线控制电路构成。 11.(单选题)为了避免50Hz的电网电压干扰放大器,应该用那种滤波器:(4分) A.带阻滤波器 B.带通滤波器 C.低通滤波器 D.高通滤波器 12.(单选题)关于SRAM和DRAM,下面说话正确的是:(4分) 需要定时刷新,否则数据会丢失 使用内部电容来保存信息 的集成度高于DRAM D.只要不掉点,DRAM内的数据不会丢失 【解析】SRAM和DRAM都是随机存储器,机器掉电后,两者的信息都将丢失。它们的最大区别就是:DRAM是用电容有无电荷来表示信息0和1,为防止电容漏电而导致读取信息出错,需要周期性地给电容充电,即刷新;而SRAM是利用触发器的两个稳态来表示信息0和1,所以不需要刷新。另外,SRAM 的存取速度比DRAM更高,常用作高速缓冲存储器Cache。 13.(单选题)在RS232串口中,采用哪一种校验方式:(4分) 校验 B.海明码校验 C.多种校验方式的组合 D.奇偶校验 14.(单选题)对于D触发器来说,为了保证可靠的采样,数据必须在时钟信号的上升沿到来之前继续稳定一段时间,这个时间称为:(4分) A.保持时间 B.恢复时间 C.稳定时间 D.建立时间 setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求.建立时间是指触发器的时钟信号上升沿到来以前数据稳定不变的时间输入信号应提前时钟上升沿 (如上升沿有效)T时间到

华为成都上机笔试题

2010年华为软件校园招聘编程测 类别:软件C语言 编程题(共2题,第一题40分,第二题60分,共100分。请上机编写程序,按题目要求提交文件。[详见考试说明] 本试题采用自动测试用例进行评分,测试用例不对考生公开,凡不满足提交要求导致不能运行或用例不通过,不予评分)。 1. 删除字符串中所有给定的子串(40分) 问题描述:在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。 要求实现函数: int delete_sub_str(const char *str, const char *sub_str, char *result_str) 【输入】str:输入的被操作字符串 sub_str:需要查找并删除的特定子字符串 【输出】result_str:在str字符串中删除所有sub_str子字符串后的结果 【返回】删除的子字符串的个数 注: I、子串匹配只考虑最左匹配情况,即只需要从左到右进行字串匹配的情况。比如:在字符串"abababab"中,采用最左匹配子串"aba",可以匹配2个"aba"字串。如果 匹配出从左到右位置2开始的"aba",则不是最左匹配,且只能匹配出1个"aba"字串。II、输入字符串不会超过100 Bytes,请不用考虑超长字符串的情况。 示例

输入:str = "abcde123abcd123" sub_str = "123" 输出:result_str = "abcdeabcd" 返回:2 输入:str = "abcde123abcd123" sub_str = "1234" 输出:result_str = "abcde123abcd123" 返回:0 2. 高精度整数加法(60分) 问题描述: 在计算机中,由于处理器位宽限制,只能处理有限精度的十进制整数加减法,比如在32位宽处理器计算机中,参与运算的操作数和结果必须在-231~231-1之间。如果需要进行更大范围的十进制整数加法,需要使用特殊的方式实现,比如使用字符串保存操作数和结果,采取逐位运算的方式。如下: 9876543210 + 1234567890 = ? 让字符串num1="9876543210",字符串num2="1234567890",结果保存在字符串result = "11111111100"。 -9876543210 + (-1234567890) = ? 让字符串num1="-9876543210",字符串num2="-1234567890",结果保存在字符串result = "-11111111100"。 要求编程实现上述高精度的十进制加法。

大师兄教你如何过华为机试

大师兄教你如何过华为机试 宝典1—内功心法 大华为这个大数据时代土豪金海量式的招聘又要开始了!!! 近期听说大华为的校招机试马上就要开始了,由于华为软件岗位的招聘只有技术面跟机试是与技术有关的内容,所以机试的地位非常重要。对于机试,除了长期积累的软件基本功以外,还有很多可以短期训练的东西,类似于考试之前的突击,可以迅速提高机试成绩,就像在我西电大杨老师考前最后一堂课一定要去,那个重点就是考点阿。 这篇机试葵花宝典的内容是针对华为软件类上机准备的,如果你认真看了本宝典,如果你是真正通过自己能力考上西电的话,想不过都难。同样想拿高级题的同学,请移步 https://www.360docs.net/doc/e71361666.html,/land/或者https://www.360docs.net/doc/e71361666.html,,刷上200道题,机试不想拿满分都难。 对于机试,首先应该调整好自己的心态,不要觉得写程序很难,机试题很难,也不要去考虑,万一机试考到自己不会的内容怎么办,要相信,机试题永远是考察每个人的基础,基础是不会考的很偏的,会有人恰好做过某个题而做出来那个题,但不会有人恰好没做过一个题而做不出来那个题。 机试之前,应该做的准备有: 1、买一本《算法竞赛入门经典》,这本书不同于普通的算法或者编程语言的书籍,这 本书既讲语言,又讲算法,由浅入深,讲的很好,能看完前几章并且把例题都做 会,想通过机试就很简单了 2、调整好心态,时刻告诉自己,哪些小错误是自己以前经常犯的,最好用笔记本记录 下来,写每道题前再看一遍,如果遇到代码调不出来了,先想想自己是否犯过以 前那些错误。还有就是,看了题目以后,先仔细想清楚细节,在纸上写清楚自己 需要用到的变量,以及代码的基本框架,不要急于动手去写代码 3、不要惧怕任何一道看起来很难的题目,有不会的就去问身边会的人,让别人给自己 讲清楚 4、心中默念10遍C++跟C除了多了两个加号其实没有区别,会C就能上手C++ 5、大量的练习是必要且有效的 6、看完这篇宝典,预过机试、必练此功。 在这里推荐一个帖子,是机试归来的学长写的,写的很不错,里面的例题在后面的攻略

华为机试题及答案

华为机试题及答案 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

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

华为试题答案

华为试题答案 1)在计算机局域网中,常用通信设备有(abd),A、集线器(HUB)B、交换机(Switch) C、调制解调器(Modem)D、路器(Router) 2)线缆标准化工作主要哪一个协会制定? (c) A、OSI B、ITU-T C、EIA D、IEEE 3)802协议族是下面的哪——个组织定义? (c) A、OSI B、EIA C、IEEE D、ANSI )衡量网络性能的两个主要指标为A、带宽B、可信度C、延迟D、距离)局域网区别与其他网络主要体现在以下方面A、网络所覆盖的物理范围B、网络所使用的传输技术C、网络的拓扑结构D、带宽)不会产生单点故障的是下列拓扑结构。A、总线型B、环型C、网状结构D、星形4)数据交换技术包括A、电路交换

B、报文交换 C、分组交换 D、文件交换5)拓扑结构会受到网络中信号反射的影响?A、网型B、总线型C、环型D、星型6)OSI参考模型按顺序有哪些? A、应用层、传输层、数据链路层、网络层、物理层 B、应用层、表示层、会话层、传输层、数据链路层、网络层、物理层 C、应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 D、应用层、表示层、传输层、网络层、数据链路层、物理层7)在OSI七层模型中,网络层的功能有A、确保数据的传输正确无误B、确定数据包如何转发与路 1 C、在信道上传送比特流D、纠错与流控8)在OSI七层模型中,哪一层的实现对数据的加密。A、传输层B、表示层C、应用层D、网络层9)网络层传输的数据叫做A、比特B、包C、段D、帧10)TCP/IP协议栈中传输层的协议有

A、TCP B、ICMP C、 D、IP 11)数据从上到下封装的格式为A、比特包帧段数据B、数据段包帧比特C、比特帧包段数据D、数据包段帧比特12)物理层定义了物理接口的哪些特性?A、机械特性B、电器特性C、功能特性D、接口特性13)细铜轴电缆传输距离达,粗铜轴电缆的传输距离为A、185米B、200米C、500米D、485米)通常在网吧里,LAN 采用的拓扑结构和网线类型为A、总线型和STP B、总线型和UTP C、星形和UTP D、环型和STP )双绞线为什么能代替网络中的细同轴电缆? A、双绞线电缆可靠性高 B、双绞线电缆抗噪性更好 C、细同轴电缆更廉价 D、双绞线电缆更便于安装)在布线时,细缆和粗缆通常应用在拓扑结构中。A、星形B、环形C、树形D、总线)在局域网中,类型的光

华为机试答案

1. 1、输入两个数字(如2,8)其中第一个表示将要接受的字符串行数,第二个表示将每一个行字符串按每规定的个数分别输出在不同的行上,不足的个用0补齐。 输入: 2,8 abc abcdefghijk 输出: abc00000 abcdefgh ihk00000#include #include #include using namespace std; void print_str() { unsigned int line,line0=0; unsigned int number,number0=0; string str; vector str0; cin>>line; cin>>number; cout<>str; str0.push_back(str); cout<::iterator iter=str0.begin();iter!=str0.end();iter++) { str=*iter; int cnt=0; int strlenth=str.size(); if (strlenth==number) { cout<

{ cnt=number-strlenth; while(cnt!=0) { str+="0"; cnt--; } cout<number) { string str1; int cnt0=strlenth/number; for (int i=0;i!=cnt0;i++) { str1=str.substr(i*number,number); cout<

华为机试题 面试题

昨天下午机试三道题目: 1.字符去重,例如输入字符串:“aabbccdd”,输出字符串“abcd,要求,不改变字符的顺序。 2.求解类似于2+22+222+2222的和。 3.判断一个邮件地址是否有效。例如:huawei@https://www.360docs.net/doc/e71361666.html, 判断条件:只有一个@符号,最后四个字符是.com ;不含空格;字符只能是‘a-z’,‘A-Z’,‘1-9’,‘_’,‘.’,'@' 1.字符串首字母转换成大写 举例: 输入:this is a book 返回:This Is A Book 2.统计不同字符串的个数 举例: 输入:addfsdfasa 输出:4 3.统计数字出现的次数,最大次数的统计出来 举例: 输入:323324423343 输出:3,6 华为面向2013年招聘笔试题 笔试题目(机试,共两题) 题目一:子串分离 题目描述: 通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。请编写一个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’并将子串存储。 如果输入“abc def gh i d”,结果将是abc,def,gh,i,d, 要求实现函数: void DivideString(const char *pInputStr, long lInputLen, char *pOutputStr); 【输入】pInputStr:输入字符串 lInputLen:输入字符串长度 【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长; 【注意】只需要完成该函数功能算法,中间不需要有任何IO 的输入输出 示例 输入:“abc def gh i d”

华为机考题

销售网络问题 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte 问题描述 华为公司积极开拓北美市场,首先在北美建立销售总部,总部在附近地区发展一些销售点,这些销售点可以发展建立下一级销售点,依此类推,最终形成一个新型分级销售网络。假设在销售网络中,有N个销售点(包括总部),将它们分别编号为1至N。考虑到金融危机,销售总部决定撤销一些销售点,保留其他销售点。需要注意是: (1)如果撤销一个销售点,那么该销售点发展的所有下级销售点均要撤销,依此类推; (2)销售总部不能撤销自己; (3)销售总部可以不撤销任何销售点。 请你帮忙告诉华为公司:共存在多少个销售点撤销方案。 问题输入 输入包括多个行,首先给出一个整数N,接着N-1行给出销售网络的建立过程,在这N-1行中,第j行(1≤j≤N-1)给出一个整数k(i

语言识别问题 时间限制(普通/Java):10000MS/30000MS 运行内存限制:65536KByte 问题描述 给你一段英文或德文文字,你能编程识别它可能是哪种语言吗?研究发现,统计文字中字母“t”(或“T”)与“s”(或“S”)出现的次数,如果给定文字中“t”(或“T”)的出现次数比“s”(或“S”)多,则可能为英文,否则可能为德文。 问题输入 输入包括多个行数,首先给出整数N(1

相关文档
最新文档