华为面试题及答案
- 格式:pdf
- 大小:225.79 KB
- 文档页数:2
华为⾯试题及答案
华为⾯试题及答案
这是第三次接到华为的⾯试电话了,第⼀交是⾃⼰投的简历,第⼆次及这次都是华为公司通过⽹络搜索到打的电话给我,前⾯两次我都
是刚刚找到⼯作,然后就接到电话了,哎,真的是有点背运。这次千万不能够错过,这是搞IT的⼈梦的都进的企业,我也是⼀样,希望能够
去⼀个更好的地⽅,以便更好的发挥⾃⼰。为了不使⾃⼰⼀点准备就去赴考场,还是先找点东西看看。我从⽹上找到问题,然后再根据问题
到⽹络寻找问题的,谢谢问题的提供者。
Q1:请你分别划划OSI的七层⽹络结构图,和TCP/IP的五层结构图?
OSI词条,参见
Q2:请你详细的解释⼀下IP协议的定义,在哪个层上⾯,主要有什么作⽤? TCP与UDP呢?
UDP,TCP在传输层,IP在⽹络层, TCP/IP是英⽂Transmission Control Protocol/Internet Protocol的缩写,意思是"传输控制协议/⽹际协议"。TCP/IP协议组之所以流⾏,部分原因
是因为它可以⽤在各种各样的信道和底层协议(例如T1和X.25、以太⽹以及RS-232串⾏接⼝)之上。确切地说,TCP/IP协议是⼀组包括TCP协议和IP协议,UDP(User DatagramProtocol)协议、ICMP(Internet Control Message Protocol)协议和其他⼀些协议的协议组。TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是⼀种通
信协议的7层抽象的参考模型,其中每⼀层执⾏某⼀特定任务。该模型的⽬的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、⽹路层、传输层、话路层、表⽰层和应
⽤层。⽽TCP/IP通讯协议采⽤了4层的层级结构,每⼀层都呼叫它的下⼀层所提供的⽹络来完成⾃⼰的需求。这4层分别为:
应⽤层:应⽤程序间沟通的层,如简单电⼦邮件传输(SMTP)、⽂件传输协议(FTP)、⽹络远程访问协议(Telnet)等。
传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、⽤户数据报协议(UDP)等,TCP和UDP给数据包加⼊传输数据并把它传输到下⼀层中,这⼀层负责传
送数据,并且确定数据已被送达并接收。
互连⽹络层:负责提供基本的数据封包传送功能,让每⼀块数据包都能够到达⽬的主机(但不检查是否被正确接收),如⽹际协议(IP)。
⽹络接⼝层:对实际的⽹络媒体的管理,定义如何使⽤实际⽹络(如Ethernet、Serial Line等)来传送数据。
Q3:请问交换机和路由器分别的实现原理是什么?分别在哪个层次上⾯实现的?
⼀般意义上说交换机是⼯作在数据链路层。但随着科技的发展,现在有了三层交换机,三层交换机已经扩展到了⽹络层。也就是说:它等于“数据链路层 + 部分⽹络层”。交换机中传
的是帧。通过存储转发来实现的。路由器是⼯作在⽹络层。路由器中传的是IP数据报。主要是选址和路由。Q4:请问C++的类和C⾥⾯的struct有什么区别?
结构是⼀种将数据集合成组的⽅法,类是⼀种同时将函数和数据都集合成组的⽅法。结构和类在表⾯上的唯⼀区别是:类中的成员在默认情况下是私有的,⽽结构中的成员在默认情
况下是公⽤的。 class foo
{
private:
int data1;
public:
void func();
};
可以写成:
class foo
{
int data1;
public:
void func();
};
因为在类中默认的是私有的,所以关键字private就可以不写了。
如果想⽤结构完成这个类所作的相同的事,就可以免去关键字public,并将公有成员放置在私有成员之前:
struct foo
{
void func();
private:
int data1;
};
Q5:请讲⼀讲析构函数和虚函数的⽤法和作⽤?
在JAVA⾥没有象C++中的,所谓的析构函数 ,因为当⼀个对象不在使⽤的时候,它会⾃动被垃圾回收器回收,所以也就⽤不着析构函数了, 那个finalize 也只有在被垃圾回收器回收,才会被
执⾏,⽽且很多时候,垃圾回收器并不⼀定执⾏,所以它不能当做C++中的,所谓的析构函数使⽤, 虚函数在JAVA⾥也是没有的,⽐较象近的应该算是abstract。
Q6:全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的?
1)、全局变量的作⽤⽤这个程序块,⽽局部变量作⽤于当前函数
2)、前者在内存中分配在全局数据区,后者分配在栈区
3)、⽣命周期不同:全局变量随主程序创建和创建,随主程序销毁⽽销毁,局部变量在局部函数内部,甚⾄局部循环体等内部存在,退出就不存在
4)、使⽤⽅式不同:通过声明后全局变量程序的各个部分都可以⽤到,局部变量只能在局部使⽤
Q7:⼀些寄存器的题⽬,主要是寻址和内存管理等⼀些知识。
Q8:8086是多少位的系统?在数据总线上是怎么实现的?
8086微处理器初次发布时,这块16位芯⽚仅包含29000个晶体管,运⾏速度为5MHz。⽽当今基于x86架构的奔腾4处理器,已经包含5500万个晶体管,运⾏速度提⾼了600倍以上,
⾼达3.06GHz。8086是⾼性能的第三代微处理器,是Intel系列的16位微处理器,它是采⽤HMOS⼯艺制造的,内部包含约29,000个晶体管。
8086有16根数据线和20根地址线,因为可⽤20位地址,所以可寻址的地址空间达220即1M字节。8086⼯作时,只要⼀个5V电源和⼀相时钟,时钟频率为5MHz。后来,Intel公司推出
的8086-1型微处理器时钟频率⾼达10MHz,8086-2型微处理器时钟频率达8MHz。