这篇文章是写给2007届的毕业生的,我想我这些日子的经历应该能给2007届的师弟和师妹们将来的校园招聘提供点帮助。
一、准备阶段:
在华为面试之前,我把《软件设计师教程》大概的复习了一遍,时间实在太紧迫了,有些概念我也只是很粗糙地掠过去。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),它指定连接的每半部分。
全相关
一个完整的网间进程通信需要由两个进程组成,并且只能使用同一种高层协议。也就是 说,不可能通信的一端用TCP协议,而另一端用UDP协议。因此一个完整的网间通信需要 一个五元组来标识:
(协议,本地地址,本地端口号,远地地址,远地端口号)
这样一个五元组,叫做一个相关(association),即两个协议相同的半相关才能组合 成一个合适的相关,或完全指定组成一连接。
技 术支持笔试面试题集锦】 ############################################################################## ## 以下是。 笔试内容包括: 1。技术试题:操作系统windows/linux,网络基础,通信基础,数据库
2。能力试题:根据两故事发表看法
3。英语作文 筛选后进入面试。
共有四轮面试: 问题一:两笔记本电脑连起来后拼不通,你觉得可能有哪些问题?
问题二:我们在南京,和深圳的网络是通的,但和北京的网络不通,你以怎样的顺序 检查问题?
问题三:解释什么叫“透明”?什么叫“网格”?
问题四:交换和路由的区别?VLAN的特点?
问题五:画一个积分电路和一个微分电路。
问题六:知道现在的路由器是第几代了吗?
############################################################################## ##
技术问题则集中在TCP/IP,还记得的主要题目有:
1.把http,tcp.udp.ip,icmp.igmp按网络的分层画出来
2.说说tcp和udp的区别
3.画出tcp,udp的栈
4.ip地址有多少类?多少位?
5.应用层的常用协议,以及对应的端口号 ##############################################################################
笔试的题目分两个部分.
前面是技术基础题分四个部分:网络,操作系统,数据库和数据通信(最后一个好像是这个)
.后面是素质测试,具体给取了两篇文章,看了以后呢提出自己的想 法
. 最后写一片英语作文,反应自己所从事的社会工作.个人感觉考试的覆盖还是很广的,基 本上都考到了,侧面反应华为在招聘上还是很认真,严谨的。 前面两轮面试对技术方面的问题提的比较多,比若DNS,DHCP,子网屏蔽,三层路由交换机 的原理,交换机的三个模块等等吧.应该说不是很深,第三轮开始就会问到HR方面的问题了. 去参加的最后一轮就没有问到技术方面的问题了,完全是把一些案例摆出来问我怎么解决. 考的大概就是一个反应,沟通和表达能力. ############################################################################## # 题目应该属于基本提型吧。
Q1:请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图?
A1:OSI/ISO 根据整个计算机网络功能将网络分为物理层、数据链路层、网络层、传输层、 会话层、表示层、应用层七层。也称"七层模型" TCP/IP"四层模型" 网络接口层,IP层(网络层) tcp/udp层(传输层),应用层,(如果说五层 ,那么另外一层应该是"物理层")
Q2:请你详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用? TCP与UDP呢?
2 IP协议是网络层的协议,它实现了Internet中自动路由的功能,即寻径的功能,TCP协议 是一个传输层的协议它向下屏蔽了IP协议不可靠传输的特性,向上提供一个可靠的点到点 的传输,UDP提供的是一种无连接的服务,主要考虑到很多应用不需要可靠的连接,但需要 快速的传输
Q3:请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?
交 换机用在局域网中,交换机通过纪录局域网内各节点机器的MAC地址就可以实现传递报文 ,无需看报文中的IP地质。路由器识别不同网络的方法是通过识别不同网络的网络ID号(IP 地址的高端部分)进行的,所以为了保证路由成功,每个网络都必须有一个 唯一的网络编号。路由器通过察看报文中IP地址,来决定路径,向那个子网(下一跳)路由 ,也就是说交换机工作在数据链路层看MAC地址,路由器工作在网际层看IP地质 但是由于现在网络设备的发展,很多设备既有交换机的功能有由路由器的功能(交换试路由 器)使得两者界限越来越模糊。
Q4:请问C++的类和C里面的struct有什么区别?
A4:C++ 的类具有数据封装,其包含属性访问级别可以为Private,public 和protect,还具有 实现类接口功能和辅助功能的操作函数,而struct属性访问全县只有public,没有数据封 装功能,也就没有实现信息隐藏着一面向对象的思想的机制,struct本身不含有操作函数, 只有数据
Q5:请 讲一讲析构函数和虚函数的用法和作用? A5:析构函数是在类对象死亡时由系统自动调用,其作用是用来释放对象的指针数据成员所 指的动态空间,如果在构造函数中你申请了动态空间,那么为了避免引起程序错误,你必须 在西沟函数中释放这部分内存空间 如果基类的函数用 virtual修饰,成为虚函数,则其派生类相应的重载函数仍能继承该虚 函数的性质,虚函数进行动态联编,也即具有多态性,也就是派生类可以改变基类同名函数 的行为,在面向对象世界中,多太是最强大的机制,须函数就是这一机制的c++的实现方式
Q6:全局变量和局部变 量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的? 全局变量是整个程序都可访问的变量,谁都可以访问,生存期在整个程序从运行到结束(在 程序结束时所占内存释放),而局部变量存在于模块(子程序,函数)中,只有所在模块可以 访问,其他模块不可直接访问,模块结束(函数调用完毕),局部变量消失,所占据的内存 释放。 操作系统和编译器是怎么知道的? 操作系统和编译器,可能是通过内存分配的位置来知道的,全局变量分配在全局数据段并 且在程序开始运行的时候被加载. 局部变量则分配在堆栈里面
Q7:一些寄存器的题目,主要是寻址和内存管理等一些知识。
Q8:8086 是多少尉的系统?在数据总线上是怎么实现的? A8:是16位,数据总线实现??大家来答吧 ########################################################################## 问俺对中兴产品了解多少(当时有点蒙,只说了交换机和路由器,到后来才又补 上了小灵通和手机) ,又让俺讲一下移动通信和程控交换网(ft!都是好大的题目),由于准备的不是很好 ,没专门去看书,回答不 是很理想,一个考官就说看来你来应聘中兴比较盲目,对中兴不是太了解. ########################################################################## ISDN,DNS,NO.7,NO.1信令。
嗯,回答勉强。。。
问我擅长什么方面,我说网络 简单说一下TCP/IP 什么是ATM,ATM的特点是什么?
A,T,M 这三个字代表什么意思,easy. atm的信元多长,easy. atm的报头多长,wrong. atm的信息位多长,wrong. 又问了经典的TCP连接三次握手问题等,也问了与他们产品相关的,如路由器如何工作 ##########################################################################
NAT是什么意思。
,为什么要 用NAT服务。我说为了弥补ip资源的不足。
对程控交换和移动通信了解吗?我说不,
NO.7号信 令了?我说NO.7是以前的CCITT现在ITUT制定的唯一一个采用数字传输信号的。。。。
路由器的向上接口是什么
说一下你接触过的交换机路由器。 我回答了一些。。。。
描述一下华为的3526系列交换机的优缺点。 我又说了一些。。。
你学过tcp/ip,描述一下OSI的七层模型。 这么简单的问题,我先叙述了各层名称后,又开始描述各层的功能。
描述一下从这里打电话到家的过程。从服务商的操作方面讲。 ############################################################################
中兴面试题 网络工程师方向 1、DWDM 是什么?
2、802.1b 是什么协议?
3、802.1q 是什么协议?
4、10兆端口还是100兆端口划分VLAN?
5、ATM的信元有多少字节?
6、cisco路由器如何保存设置?
7、什么是IP OVER SDH IP OVER DWDM?
8、ADSL使用什么网络协议?
9、ATM网与IP网的优缺点?
10、ATM网如何传送IP数据包?
11、172.16.100.5/255.255.255.252 的网络地址和主机号是多少?
12、ping 命令在同一网段中数据包的什么变什么不变?
13、城域网使用的主要有那些技术?如何实现QOS保证?
14、MPLS VPN 与 传统 VPN有何区别?
15、cisco的路由器和交换机有那些型号? ############################################################################
1。什么是进程
2。数据库的模型有哪些?
3。什么是触发器?
4。UDP和TCP的区别
5。MAC----IP的解析协议
6。 找出其中的错处 class _student { public: int a; char b; protected: int c; } _student st: st.a='a'; st.b="a"; st.c=1; 还有一些关于实时操作系统的概念 ############################################################################
C 语言: 一. int a[2][3]={1,2,3,4,5}; 问:a[1][2]=? 二。char *p="hello"; printf("%s",p); p++; printf("%s",p); printf("%c",*p); 数据库: 一.SQL语句:从成绩表中删除学号在学生表中不存在的记录。 二.数据库有哪向种检索方法? 另: 现场向一位老总推销一块手表 ##############################################################################
中 兴面世题目 网络方面的,操作系统,c,数据库,j2ee 应聘java,他首先要求画进程之间的状态变迁图 后有出了一个程序题,要求些答案,关于string和hashtable 还有jms Udp,tcpip,socket,snmp,交换机的三层结构和四层结构 陆由协议, oracle 和sybase数据库的区别 一些关于internet接入,VPN,Modom/XDSL/DDN之类的问题 ############################################################################## ## 中兴面试题目 1.对数据库的一张表进行操作,同时要对另一张表进行操作,如何实现??
2.TCP/IP 建立连接的过程?(3-way shake)
3.ICMP是什么协议,处于哪一层?
4.触发器怎么工作的?
5.winsock建立连接的主要实现步骤?
6.动态连接库的两种方式?
7.IP 组播有那些好处? ############################################################################## # 一些关于internet接入,VPN,Modom/XDSL/DDN之类的问题 广域网处理广播风暴的算法,拥塞控制,七层结构,x.25在哪一层,传输层协议举例 ############################################################################## ###