华为面试题

Q1:请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图?
OSI:应用层 表示层 会话层 传输层 网络层 数据链路层 物理层
TCP/IP:应用层、传输层、网络层、数据链路层,物理层


Q2:请你详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用? TCP与UDP呢?
IP协议(Internet Protocol)又称互联网协议,是支持网间互连的数据报协议,
它与TCP协议(传输控制协议)一起构成了TCP/IP协议族的核心。它提供网间连接的完
善功能, 包括IP数据报规定互连网络范围内的IP地址格式。

TCP/UDP协议
TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。TCP支持的应用协议主要有:Telnet、FTP、SMTP等;UDP支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(通用文件传输协议)等。


Q3:请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?
交换机是工作在数据链路层。现在有了三层交换机,三层交换机已经扩展到了网络层。也就是说:它等于“数据链路层 + 部分网络层”。交换机中传的是帧。通过存储转发来实现的。

路由器是工作在网络层。路由器中传的是IP数据报。主要是选址和路由。


Q4:请问C++的类和C里面的struct有什么区别?

c中的struct是没有权限设置的.
C++中的struct等同与class只是class默认成员权限是private而struct默认成员权限是public.

Q5:请讲一讲析构函数和虚函数的用法和作用?
置于“~”是析构函数;析构函数因使用"~"符号(逻辑非运算符),表示它为腻构造函数,加上类名称来定义。
;析构函数也是特殊的类成员函数,它没有返回类型,没有参数,不能随意调用,也没有重载,只有在类对象的生命期结束的时候,由系统自动调用。
有适放内存空间的做用!

虚函数是C++多态的一种表现
例如:子类继承了父类的一个函数(方法),而我们把父类的指针指向子类,则必须把父类的该函数(方法)设为virturl(虚函数)。
使用虚函数,我们可以灵活的进行动态绑定,当然是以一定的开销为代价。

如果父类的函数(方法)根本没有必要或者无法实现,完全要依赖子类去实现的话,可以把此函数(方法)设为virturl 函数名=0
我们把这样的函数(方法)称为纯虚函数。
如果一个类包含了纯虚函数,称此类为抽象类


Q6:全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的?
类里定义一个全局变量,在这个类里和其他类里都可以调用这个变量
而局部变量,比如在一个函数内定义一个变量,就只能在该函数内使用

Q7:一些寄存器的题目,主要是寻址和内存管理等一些知识。

Q8:8086是多少尉的系统?在数据总线上是怎么实现的?
8086是16位的系统

补充一点

1、解释下什么是时间复杂性,什么是空间复杂性?

2、栈和队列的区别

3、局部变量和静态变量的区别

4、递归方法和循环方法哪种执行的效率高些?递归一般用在什么地方,有什么优缺点?

原文地址:https://www.cnblogs.com/buffer/p/1486261.html