华为od笔试|华为的笔试经验
【jianli.jxxyjl.com--笔试题目】
一、准备阶段:在华为面试之前,我把《软件设计师教程》大概的复习了一遍,时间实在太紧迫了,有些概念我也只是很粗糙地掠过去。10号下午还到图书馆借了一本《程序员面试攻略》,11号下午就差不多把那本书大概地啃完。
二、笔试:
11号,收到短信通知当晚7:00在e栋笔试(只要是注册了电子简历的同学都有资格),考试种类分两种:硬件和软件,共四类题:填空,选择,改错,程序设计。基本上都是一些c/c++语言题,数据结构的树的前序、中序及后序排列,计算机网络里的ip报文中的ttl(time to live),数据库的操作等等;程序题有两道,一道题是关于数据结构的,另外有一道是“字符串a插入字符串b中”。虽然都基础,但题量太大,考试时间太短。大家都在喊没信心。
三、面试:
第二天就有人接到通知去面试了,我们班一位同学去了,他很牛b,从第一轮到第四轮一
直很顺利。我是第三天才和我们寝室另外的一位同学才接到面试通知的(不过我听说我们这一批接到通知的笔试分数普遍都很高),当然在前三天的等待时间里,我心情很郁闷,我还以为我没有慧通的面试资格了,所以一直在玩,希望有时真的是期而不遇,遇而不期阿。(其实笔试这一轮刷的人不多,大家以后没必要像我这样子提前就爆弃了)
我下午4:00准时到凯莱大酒店,一进去就感觉一股热气,大厅里也许是因为太热或者太紧张的缘故,每个人的脸都很红,很红。大概等了半个小时,我的心也跳得好厉害,我就到门口舒缓下情绪,很快一位帅哥就领我去第一轮面试了,他问我会什么,**,这问题该怎么答阿,然后我说我是电子科学与技术专业的,计算机基本上是靠自学的,大概他体会到自学的不易,他给我出了5道编程题,虽然很多,但基本上都不很难。(我一同专业的哥们虽然只有一道题,但却是用c语言编桌球的运动轨迹,妈啊,对于c语言的图像功能我都没接触到过阿),我的题目是:
1、1到100之间的所有素数之和;
2、队列的实现;
3、选首领(有一群人围在一圈,从第一个人开始数1、2、3,数到3者退出,用循环链表实现)
4、字符串匹配问题(int countabc(* s) 输入任何一串字符串,计算机其中有连续abc子字符串的个数 )
5、用数组存储超大数的问题。
6、询问我操作系统的进程和线程的区别
幸好这些题目在笔试前我就都已经见过了,虽然第四个题目,面试老师说我执行效率不高,但可以过得去了。哈哈,他直接通知我去进行第二轮面试了。
第二轮是资格面试,没多大问题,就聊聊家乡,聊聊自己的情况,这一关只要说话有分寸,一般都可以通过。第二轮面试完,就快到了晚饭的时间了,晚饭当然是慧通免费提供的,晚饭一过后,我就被一被称作是部长的面试官叫了进去,这一关一进去他直接拿了我《软件设计书》提问我:
1、ping命令使用的是哪种报文?
2、osi分哪几个层,ip是在哪个层?
3、哈希表的问题
4、为什么要采取二叉树这种数据结构?(折半查找)
5、两台计算机中的进程怎么互相通信,我说通过ip呗,他说除了ip呢?我卡住了,他说你听说过五元组吗?我只好老老实实的回答说不知道,然后他在那里给我解释一通,但我还是没搞明白,回来翻潘爱民老师的《计算机网络书》
也没有。这一轮虽然第5个问题我有点卡壳,但老师说我毕竟是自学,还表扬了我,说我已经很不错了。面试完已经好晚了,华为的mm通知我第二天继续去进行第四轮的面试。
第二天,我按时到了考试地点,这一天,明显感觉气氛没有第一天的好,垂头丧气的好多。很快就通知我去面试了,这一轮面试的老师明显态度比前几轮差多了,问的问题都有点让我透不过气来,但终于挺了过去,最后他直接点到桌子上
的一个题目:
void main()
{
char *p;
*p=-130;
printf("%d",*p);
}
正确的答案是126,原因:-130在计算机里面存储形式是11111111-01111110(取反码的形式),因为c里面的char是8位的,所以,最高位1去掉,剩下01111110。
四、些许体会
面试,就是面试,不是学习,考试。你现在会多少东西固然重要,但更重要的是你得
让面试官知道,所以面试时把你的知识表达出来是最重要的。切记!面试表达是关键,你
可以先把自己熟悉的整理一下,不至于面试的时候磕磕碰碰的。面试,好比下棋。把握局
面,掌握主动权是关键。一旦你把面试官成功引入你的领地,让他把注意力关注在你熟悉
的领域,无暇自顾,那就尽情发挥吧,已经成功了一大半。所以从面试官拿到你的简历起
,就主动出击,别给他机会.
另外,在大肆开学初,一定要把各位的专业课翻出来看看,考软件的特别要多多看看基础的c语言,想找到好工作一定要从骨子里面重视起来。
篇中提及的问题的解答:
1、1到100之间的所有素数之和;
int i = 1;
int j = 0;
bool change= 1;
int sum = 0;
for (i=1; i<100; i++)
{
for (j=2; j<i; j++)
{
if(i%j==0)
{
change = 0;
break;
}
}
if(change==1)
sum +=i;
change = 1;
}
printf("%d\n",sum);
2、队列的实现;(用数组或者链表,定义好输入和输出即可)
3、选首领(有一群人围在一圈,从第一个人开始数1、2、3,数到3者退出,用循环链表实现)
n个人围成一圈,从第一个人开始依次从1到m循环报数,当报到m的时候此人出圈,直到圈 中只剩一人为止.求最后一个人的原始编号。
int yuesefu(int n,int m)
{
int i,r=0;
for (i=2;i<=n;i++) r=(r+m)%i;
return r+1;
}
4、字符串匹配问题(int countabc(* s) 输入任何一串字符串,计算机其中有连续abc子字符 串的个数)
int countabc(* s)
{
int i = 0;
int j = 0;
int num = 0;
scanf("%s",s);
int len = strlen(s);
for (i=0; i<len-3; i++)
{
j = strcmp(s+i,"abc");
if(j==0)
num++;
}
}
5、用数组存储超大数的问题。
这是数组得一个应用,思想是我们定义一个数组,让每一个元素得值都是从后到前以十 进制得方式存贮得,如过到了9下一位就要让前一个元素进位为1,9变为0同时。
下面这个例子是要求一个40位的 n!的值
int data[40];//存储40位书的整数数组
int digit;//数据位数变量
int i,j,r,k;
int n;//用户输入值
for(i=1; i<40+1; i++)
data[i]=0;
data[0]=data[1]=1;
digit=1;
printf("enter a number :");
scanf("%d",&n);
for(i=1; i<n+1; i++)
{
for(j=1; j<digit+1; j++)
data[j]*=i;
for(j=1; j<digit+1; j++)
{
if(data[j]>10)
{
for(r=1; r<digit+1; r++)
{
if(data[digit]>10)//大于10时候位数加1
digit++;
data[r+1]+=data[r]/10;//进位增加
data[r]=data[r]%10;//去掉进位后得值
}
}
}
printf("%d! = ",i);
for(k =digit; k>0; k--)
printf("%d",data[k]);
printf("\n");
}
6、询问我操作系统的进程和线程的区别
进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元 实现系统对应用的并发性。进程和线程的区别,简而言之:
一个程序至少有一个进程,一个进程至少有一个线程.
线程的划分尺度小于进程,使得多线程程序的并发性高。
另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大 地提高了程序的运行效率。
=========================================
1、ping命令使用的是哪种报文?
ping命令使用icmp的哪种code类型:echo reply(回显请求报文)
2、osi分哪几个层,ip是在哪个层?
osi:物理层、链路层、网络层、传输层、会话层、管理层、应用层。
tcp/ip:主机网络层、互联层、传输层、应用层。ip是在互联层
3、哈希表的问题
主要用于快速查找检索方面
4、为什么要采取二叉树这种数据结构?
他折半查找,可以减少查找比较次数
5、五元组
二元组的定义:<k,r>
三元组的定义:<d,f,a>
五元组的定义:<v,o,g,m,s>
v是值的集合,o是操作的集合,g是构成名字的文法,m是存储的集合,s是从g能构成的名字 几个到m的映射.
ip报文中的五元组(即源ip地址,源端口号,目的ip地址,目的端口,协议)。
半相关
综上所述,网络中用一个三元组可以在全局唯一标志一个进程:
(协议,本地地址,本地端口号)
这样一个三元组,叫做一个半相关(half-association),它指定连接的每半部分。
-
【c语言经典笔试题】c经典笔试题详细阅读
C是高级语言:它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。下面就由小编为大家介绍一下c经典笔试题的文章,欢迎阅读。 c经典笔试题篇1 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信...
-
【编程猫笔试题】C编程笔试题详细阅读
编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到相应结果的过程。下面就由小编为大家介绍一下C++编程笔试题的文章,欢迎阅读。 C++编程笔试题篇1 一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分)...
-
excel笔试题及答案_关于EXCEL的笔试题目详细阅读
Excel中大量的公式函数可以应用选择,是现代很多工作岗位都要用到的。 下面由小编为你提供的关于EXCEL的笔试题目,希望能帮到你。 关于EXCEL的笔试题目(一) 1、在Excel中,下列输入数据属于字符型的是( )。 +A1+3 =SUM(A1:A2) =A1+3 SUM(A1,A2)...
-
东北大学自主招生试题|2021年东北大学自主招生笔试题详细阅读
东北大学始建于1920xx年4月。1920xx年8月至1937年1月,著名爱国将领张学良将军任校长。“九·一八”事变后,东北大学被迫迁徙北平、开封、西安、四川三台等地。下面是小编为你整理的20xx年东北大学自主招生笔试题,希望对你有所帮助! 6月10日,东...
-
[2021年山东省公务员遴选公告最新消息]2021年山东省公务员遴选笔试真题及参考答案详细阅读
虽然20xx年山东省公务员遴选笔试已经过去,但对于即将参加20xx年山东省公务员遴选笔试的小伙伴来说,去年的真题具有很大的参考价值。今天小编要与大家分享的是20xx年山东省公务员遴选笔试真题,希望对大家的学习有帮助!20xx年山东省公务员遴选笔试真题 一、简答(30分每题10分) 1、20x...
-
【c语言指针笔试题】c指针笔试题详细阅读
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。下面就由小编为大家介绍一下c指针笔试题的文章,欢迎阅读。 c指针笔试题篇1 1 变量的指针,其含义是指该变量的_________ a)值 b)地址 c)名 d)一个标志 2 若有语句int *point,a=4;和p...
-
西安交通大学自主招生测试指南|西安交通大学2021年自主招生测试题汇总详细阅读
西安交通大学为中国最早兴办的高等学府之一,肇始于1896年创建于上海的南洋公学,1920xx年改称交通大学(Chiao Tung University),1956年国务院决定交通大学内迁西安,为交通大学西安部分,1959年定名西安交通大学。下面是小编为你整理的西安交通大学20xx年自主招生测试题...
-
西南财经大学自主招生条件|2021年西南财经大学自主招生笔试题详细阅读
西南财经大学是教育部直属的国家“211工程”和“985工程”优势学科创新平台建设的全国重点大学,也是国家教育体制改革试点高校。下面是小编为你整理的20xx年西南财经大学自主招生笔试题,希望对你有所帮助! 20xx年西南财经大学自主招生笔试题 财经...
-
excel考试题目_EXCEL笔试题目详细阅读
Excel中大量的公式函数可以应用选择,使用Microsoft Excel可以执行计算,分析信息并管理电子表格或网页中的数据信息列表与数据资料图表制作,可以实现许多方便的功能,带给使用者方便。下面就由小编为大家介绍一下EXCEL笔试题目的文章,欢迎阅读。 EXCEL笔试题目篇1 1 Exc...
-
【java开发笔试题】关于JAVA的笔试题有哪些详细阅读
Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。下面是小编为你整理的JAVA笔试题150例,希望对你有所帮助! JAVA笔试题150例 一、Java基础方面 1、作用域public,private,protected,以及不写...