华为机试—介绍、剖析、建议

一、华为机试介绍

1.大致介绍

时间:120分钟

环境:Visual Studio(去年是vs2005)、Visual C++、VC 6.0、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)高级题——更多的算法和数据结构要求,代码量明显增大,栈、图、树、查找、搜索都在考察范围内。

三、提示和建议

提示:

华为机试的考点,有17个部分,包含:排序,求最大最小数,链表,大数、高精度数运算,字符串常见操作,数组常见操作,四则运算,求数的各种附属数,匹配问题,进制转换,二叉树,规划问题,最短路径问题,图联通问题,对数字进行特殊判断。

华为的机试题目有的会给出函数的声明,如果是这种情况,请按照题目给出的函数名、形参来完成自己的程序。

建议:

如何准备华为的机试,就是多刷题,给出两个刷题的地方:

a.华为在线软件训练和测试平台(learning.hwclouds.com),贡献我的账号:XALX150,密码9F1781345C。

b.华为OJ系列By静水流深(http://www.geekboy.org/category/coding/),这个人的博客整理了很多华为OJ的题目,解答也很清楚,推荐。

c.自己整理的华为上机题,希望有帮助。华为机试大集合

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-24 22:16:24

华为机试—介绍、剖析、建议的相关文章

2014深圳华为机试剖析

题一: (1)给出一个整数(负数使用其绝对值),输出这个整数中的两种递减数(1.最大递减数:2.递减数中各位数之和最大的数)之和. 递减数:一个数字的递减数是指相邻的数位从大到小排列的数字,不包含相邻的数位大小相同的情况.最大递减数:所输入整数的所有递减数中值最大的一个. 如: 75345323,递减数有:75,753,53,53,532,32.那么最大的递减数为753. 各位数字之和最大的递减数: 如75345323中的各递减数:75各位数之和=12(7+5=12),753各位数之和=15(7

[华为机试真题][2014]64.实现两个合法时间相加

题目 描述: 给定两个合法的时间(格式固定:hh:mm:ss,时间合法,不用考虑其它情况),输入两个时间相加后的结果:注意,相加后的结果也必需是一个合法的时间: 附合法时间定义:小时在[00-23]之间,分钟和秒分别是在[00-59]之间: 运行时间限制: 无限制 内存限制: 无限制 输入: 时分秒格式的时间字符串,如00:00:00 输出: 时分秒格式的时间字符串,如00:00:00 样例输入: 00:00:00 00:00:01 样例输出: 00:00:01 答案提示: 建议将时间转换为秒数

[华为机试真题]66.单词搜索

题目 代码 /*--------------------------------------- * 日期:2015-07-06 * 作者:SJF0115 * 题目:WordSearch * 来源:华为机试真题 -----------------------------------------*/ #include <iostream> #include <string> #include <vector> #include <stack> #include

华为机试正式版(西安c/c++/java),今天下午去机试的题目,新鲜出炉了!

以下题目都是回忆的,题目都很简单, 大家有些基础就可以参加!(语言可以是c/c++,也可以是java的) 题目一(60分): 字符串操作, 将小写转换成大写, 将大写转化为小写, 数字的不做转换 例如, 输入:aBcD12 输出:AbCd12 题目二(100分): 将输入的字符串按照规定重新排序,如果字符串长度为奇数, 则中间的字符保持不变, 中间字符左侧降序排列, 右侧字符按照升序排列, 如果字符串长度为偶数,则左半侧字符降序排列,右半侧字符则按照升序排列 例如, 输入:ab5de 输出:ba

华为机试 --- 求最大三位数

题目:输入10位0-9数字,取其中三位不同数字组合,求组合出来的最大三位数. 如输入 1 2 3 4 5 6 7 8 9 0,组合出来987最大. 测试代码如下: #include <stdio.h> #include <stdlib.h> int IsSame(int *a, int num); int main() { int i=0; int j=0; int a[10]={0}; int input =0; int length =0; int temp=0; for (i

[华为机试真题][2015]65.和尚挑水

题目 某寺庙里7个和尚:轮流挑水,为了和其他任务不能冲突,各人将有空天数列出如下表: 和尚1: 星期二,四; 和尚2: 星期一,六; 和尚3: 星期三,日; 和尚4: 星期五; 和尚5: 星期一,四,六; 和尚6: 星期二,五; 和尚7: 星期三,六,日; 请将所有合理的挑水时间安排表 思路 回朔法求解 回朔法即每进行一步,都试图在当前部分解的基础上扩大该部分解.扩大时,首先检查扩大后是否违反了约束条件,若不违反,则扩大之,然后继续在此基础上按照类似的方法进行,直至成为完整解:若违反,则放弃该步

2014华为机试西安地区B组试题

2014华为机试西安地区B组试题 题目一.亮着点灯的盏数 一条长廊里依次装有n(1≤n≤65535)盏电灯,从头到尾编号1.2.3.-n-1.n.每盏电灯由一个拉线开关控制.开始,电灯全部关着. 有n个学生从长廊穿过.第一个学生把号码凡是1的倍数的电灯的开关拉一下:接着第二个学生把号码凡是2的倍数的电灯的开关拉一下:接着第三个学生把号码凡是3的倍数的电灯的开关拉一下:如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下.n个学生按此规定走完后,长廊里电灯有几盏亮着. 注:电灯数和学生

[华为机试]输入数字的汉语拼音,每个拼音的首字母大写。输出该数字的阿拉伯数字。

//输入数字的汉语拼音,每个拼音的首字母大写.输出该数字的阿拉伯数字. //JiuBaiJiuShiJiu -> 999 #include<stdio.h> #include<string.h> int result = 0; void add(int n,char wei[]) { if(strcmp(wei,"Wan") == 0) result = result + n * 10000; else if(strcmp(wei,"Qian&q

华为机试(2)

简单题   题目描述  输入一个字符串,统计其出现频率最高的字符,并输出.若存在两个字符出现频率相同,则输出字典序较小的那一个   输入描述  :一个字符串,保证没有空格,以回车符结束,字符串长度<=20   输出描述  :一个字符   输入样例 :aabbaabb  输出样例  :a  解题思路:做一个频率数组来统计所有字符的出现频率,机试时候不会有汉字输入,因此只考虑输入是ASCII编码的情况. #include<string> #include<iostream> us