西电学长教你如何过华为机试 下载本文

内容发布更新时间 : 2024/5/24 0:53:20星期一 下面是文章的全部内容请认真阅读。

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

宝典1—内功心法

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

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

这篇机试葵花宝典的内容是针对华为软件类上机准备的,如果你认真看了本宝典,如果你是真正通过自己能力考上西电的话,想不过都难。同样想拿高级题的同学,请移步acm.xidian.edu.cn/land/或者poj.org,刷上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+0.0)/b;

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

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

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

#include //这一句是c++的头文件,c语言代码一样可以把它包含进来,只要将程序后缀名改成.cpp即可,其他都是一样的。

#include using namespace std;

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

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

读入和输出string也只需要使用 cin>>s; cout<

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

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

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

[cpp] view plaincopyprint?

1. s[i]; //这么写,返回的就是字符串s第i+1位的字符,返回的类型是char型,其中,s[0]是它的第一位,与字符串

相同。

2. s.size(); //返回字符串的长度,返回的长度是l,则s从s[0]到s[l-1]表示的是其每一位的字符。

3. if (s1

比较,每一位按照字典序来比较。如”aaaa”<”abc”<”bcd”,但值得注意的一点是,比较的时候应用变量进行比较,即s1