2014春季华为实习生机试试题及经验

时间:2014-04-28 18:36:48   收藏:0   阅读:564

前两天参加了华为的机试,由于这两天有点其他事情,就没来的及总结,趁着晚上空闲小小的总结下,希望能能为准备在华为工作的人提供点经验。。。。。。。

华为机试分为三道题,均是编程题,题的难度依次增加,由于当时做题的时候因为机器的缘故题并没有全部完成,第二道题也没认真看,就记得不是太清,为了不误人子弟,在这里就给大家总结第一道和第三道吧,如有总结的不到处,还希望谅解。。。。。

第一道题:大概意思是:输入含有7个字符的字符串,或者输入7个字符,在第一个和最后一个字符保持不变的情况下,对中间5个字符按ASCII值从大到小排序....

要求:不准有任何提信息,直接输入;

例如:输入:aBDEbve

        输出:avbEDBe

ok 题目叙述完毕。。。。。。。。

 这道题很简单,有很多种完成的方法,就是简单的对中间五个字符的排序,可用任何一种排序算法完成,大家尽可各种尝试。这篇文章的重点在与第三道,请看题目叙述:

第三道题:题目大概意思是:输入一系列由单词组成的字符串,字符串的输入格式和写文章的输入格式一样,但该字符串在此仅有空格,逗号,句号和相应的英文单词组成,并且区分大小写(如What 和what是不同的单词)。程序的输出要求除去其中的逗号,句号以及重复的单词,并输出;

要求:不准有任何提示信息,直接输入,同时换行直接输出。。。。

例如:输入:We must take more exercises, and we must insist on it.

输出:We must take more exercises and we inisit on it

下面附上相应的代码:

bubuko.com,布布扣
#include<iostream>
#include<string>
#include<vector>
using namespace std;
void main()
{
   vector<string> words;
   string str;
   char result[20];
   char flag=0;
   bool is_equal=false;
  while(flag!=10)
  {
      cin>>str;
      flag=getchar();//接收Enter返回的ASCII值,用作结束循环
      string::size_type index;
      for(index=0;index!=str.size();++index)
      {
          if(str[index]!=,&&str[index]!=.)
          {
              result[index]=str[index];
          }
          else
          {
              break;
          }
      }//去除逗号,句号
      result[index]=\0;
      string word(result);
      for(size_t i=0;i!=words.size();++i)
      {
          if(word==words[i])
          {
              is_equal=true;
          }
      }
      if(is_equal)
      {
          is_equal=false;
          continue;
      }
      else{
          words.push_back(word);
      }//判断是否重复
  }
  for(size_t k=0;k!=words.size();++k)
      cout<<words[k]<<" ";
    return;
}
bubuko.com,布布扣

程序写的有点乱,大家就将就看下。。。。。。

下面我就写点在机试的时候应该注意的事项以及一部分经验。。。

在机试的时候,你可能遇到任何的编程环境,比如这次本人就遇到苦逼的VC 6.0,当人本人并不是鄙视6.0,仅仅是因为你在VC6.0运行成功的程序可能因为各种原因在在线编译环境提交你的最后结果时很可能就是错的,当然你的成绩就是一个大大的0了。。。。。所以你在机试之前一定要多熟悉熟悉低版本的编程环境,特别是提前熟悉下华为的在线编程环境,最好是自己写写程序试验试验。。

下面我就对照VC6.0和华为的在线编程环境 在用C++语言的情况下应该注意哪些事项做简要的阐述。。

第一个注意事项就是头文件:

在VC6.0情况下:编程序的头文件是要加.h的

如#include<iostream.h>

#include<string.h>

但是,有时候你的string是不能用的,所以有时候你不得不用char类型作为你的输入存储,最重要的是你在华为的在线编程环境下一定要把.h给去掉

即头文件写成:#include<iostream>

                    #include<string>

同时,用不到的头文件尽量不要乱写,说不定就因为这你的成绩就是鹅蛋了。

第二个注意事项时:

命名空间,常态情况下,C++编程是要加这样一条语句的:using namespace std;但是这在VC6.0下是不需要的,但是当你在华为在线编程环境下那是一定要加的,不然你的结果就是错的,所以不要忘记加!

第三个点就是,每道题只能提交5次,所以在提交之前一定要考虑周全,不要白白的浪费提交机会。。。。。。

经验就这么多了,大家就将就着看吧,如有不到之处欢迎指正!

2014春季华为实习生机试试题及经验,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!