中兴通讯面试笔试题含答案详解

发布时间:2018-06-27 20:31:38   来源:文档文库   
字号:

以下是几个同学今天面完后回顾的题目,希望对大家有所帮助

1.dll什么意思,

DLL 是一个包含可由多个程序同时使用的代码和数据的库。例如,在 Windows 操作系统中,Comdlg32 DLL 执行与对话框有关的常见函数。因此,每个程序都可以使用该 DLL 中包含的功能来实现打开对话框。这有助于促进代码重用和内存的有效使用。

通过使用 DLL,程序可以实现模块化,由相对独立的组件组成。例如,一个计帐程序可以按模块来销售。可以在运行时将各个模块加载到主程序中(如果安装了相应模块)。因为模块是彼此独立的,所以程序的加载速度更快,而且模块只在相应的功能被请求时才加载。

此外,可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。例如,您可能具有一个工资计算程序,而税率每年都会更改。当这些更改被隔离到 DLL 中以后,您无需重新生成或安装整个程序就可以应用更新。


2。动态链接库与静态链接库的区别

静态连接库就是把(lib)文件中用到的函数代码直接链接进目标程序,程序运行的时候不再需要其它的库文件;动态链接就是把调用的函数所在文件模块(DLL)和调用函数在文件中的位置等信息链接进目标程序,程序运行的时候再从DLL中寻找相应函数代码,因此需要相应DLL文件的支持。  

静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以动态地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。


3。死锁

所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象:死锁。
3。队列和栈的区别

这个事做编译环境时人工与编程好了的
内存中不存在这样的结构,内存是一张空白纸,停电就啥也没有了……
--------
在内存中有个系统分配的堆和栈,前者用来存放程序中的全局变量静态变量,后者用来存放程序中的局部变量
DS中的栈和队列是一种自定义的存储数据的类型,他们都是根据实际应用的需要而创建的,
简单的说,堆栈是由系统管理、分配、回收的,而DS中的栈、队列则有用户定义、使用。

栈和队列是在程序设计中被广泛使用的两种线性数据结构,它们的特点在于基本操作的特殊性,栈必须按"后进先出"的规则进行操作,而队列必须按"先进先出"的规则进行操作。和线性表相比,它们的插入和删除操作受更多的约束和限定,故又称为限定性的线性表结构。可将线性表和栈及队列的插入和删除操作对比如下:

4。对栈操作要注意什么,上溢和下溢的区别

缓冲区溢出是指当计算机程序缓冲区内填充的数据位数超过了缓冲区本身的容量。溢出的数据覆盖在合法数据上。理想情况是,程序检查数据长度并且不允许输入超过缓冲区长度的字符串。但是绝大多数程序都会假设数据长度总是与所分配的存储空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区又被称为堆栈,在各个操作进程之间,指令被临时存储在堆栈当中,堆栈也会出现缓冲区溢出

上溢是当一个超长的数据进入到缓冲区时,超出部分被写入上级缓冲区,上级缓冲区存放的可能是数据、上一条指令的指针,或者是其他程序的输出内容,这些内容都被覆盖或者破坏掉。可见一小部分数据或者一套指令的溢出就可能导致一个程序或者操作系统崩溃。

下溢是当一个超长的数据进入到缓冲区时,超出部分被写入下级缓冲区,下级缓冲区存放的是下一条指令的指针,或者是其他程序的输出内容。


5tcp/ip分层结构,osi分层结构

TCP/IP分层结构自顶至底依次为:应用层、传输层、网际层、网络接口层。其和OSI七层模型对应的关系大致为:TCP/IP的应用层对应OSI的应用层、表示层和会话层;TCP/IP传输层对应OSI传输层TCP/IP的网际层对应OSI的网络层;TCP/IP网络接口层(实际上几乎没真正定义)对应OSI的数据链路层和物理层。


6。传输层协议。

典型的传输层协议
   SPX:顺序包交换协议,是Novell NetWare网络的传输层协议。
   TCP:传输控制协议,是TCP/IP参考模型的传输层协议。
  传输层的协议标准有以下几种.
  ISO8072:称为"面向连接的传输服务定义".
  ISO8072:称为"面向连接的传输协议规范

传输层Internet 传输层有两种主要的协议:一种是面向连接的协议 TCP ,一种是无连接的协议 UDP,在TCP/IP 协议簇中, IP 提供在主机之间传送数据报的能力,每个数据报根据其目的主机的 IP 地址进行在 Internet 中的路由选择。传输层协议为应用层提供的是进程之间的通信服务。为了在给定的主机上能识别多个目的地址,同时允许多个应用程序在同一台主机上工作并能独立地进行数据报的发送和接收, TCP/UDP 提供了应用程序之间传送数据报的基本机制,它们提供的协议端口能够区分一台机器上运行的多个程序。

也就是说, TCP/UDP 使用 IP 地址标识网上主机,使用端口号来标识应用进程,即 TCP/UDP 用主机 IP 地址和为应用进程分配的端口号来标识应用进程。端口号 16 位的无符号整数 TCP 的端口号和 UDP 的端口号是两个独立的序列。尽管相互独立,如果 TCP UDP 同时提供某种知名服务,两个协议通常选择相同的端口号。这纯粹是为了使用方便,而不是协议本身的要求。利用端口号,一台主机上多个进程可以同时使用 TCP/UDP 提供的传输服务,并且这种通信是端到端的,它的数据由 IP 传递,但与 IP 数据报的传递路径无关。


7。物理层解释

物理层位于OSI参考模型的最底层,它直接面向实际承担数据传输物理媒体(即通信通道),物理层的传输单位为比特(bit),即一个二进制位(“0”“1”)。实际的比特传输必须依赖于传输设备和物理媒体,但是,物理层不是指具体的物理设备,也不是指信号传输的物理媒体,而是指在物理媒体之上为上一层(数据链路层)提供一个传输原始比特流的物理连接。

物理层OSI的第一层,它虽然处于最底层,却是整个开放系统的基础。物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境。如果您想要用尽量少的词来记住这个第一层,那就是信号介质
8。应用层解释
7。覆盖
在面向对象的编程中,一般出现在继承(Inheritance)
  当子类声明了与基类相同名字的方法,而且使用了相同的签名时,就称派生类的成员覆盖(hide)了基类的成员。面向对象编程(OOP)的三大特性:封装,继承,多态!重载overload)和覆盖都能实现多态,但是真正和多态相关的是覆盖!
  在C#语言中,遇到子类覆盖掉基类中的方法(名称和签名相同),编译器会报错!所以在C#中规定:如果的确是要定义一个新的方法,那么建议使用new关键字;如果是需要覆盖基类中的方法,那么必须使用override关键字。
  覆盖是代数几何中的基本概念之一。
  两个同维数的代数簇之间的满态射 f:XY 称为XY的覆盖。 Y上每个点在f下的原像是一些点, 这些点的个数是一个常数, 记为deg f, 称为覆盖次数。
  覆盖的技巧是研究代数几何的重要工具。 比如在研究基变换、典范映射,奇点等等问题时都会涉及到覆盖。 肖刚等人曾经用二次覆盖的技巧解决了很多重要的的代数曲面分类问题
1.堆和栈的区别,栈的后进先出;

栈是限定插入和删除操作都在表的同一端进行的线性表。允许插入和删除元素的一端称为栈顶,另一端为栈底;栈底固定,栈顶浮动。由于栈按照后进先出的原则存储数据,故也称为后进先出表。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。 栈可以用来在函数调用的时候存储断点,做递归时要用到栈。 队列 队列是限定在表的一端插入、另一端删除的线性表。允许插入元素的一端称为队尾,允许删除元素的一端称为队头。由于队列按照先进先出的原则存储数据,故也称为先进先出表。 克服队列假溢出的方法:采用循环队列。 堆是一棵经过排序的完全二叉树。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。根节点值最小的堆叫最小堆,根结点值最大的叫最大堆。由于堆的这个特性,常用来实现优先权队列;堆也用于排序算法,如堆排序。
2.虚函数的作用;

虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。
3.SQL创建表;
4.数据库主键和外键,ID是什么

主键是表格里的(一个或多个)字段,只用来定义表格里的行;主键里的值总是唯一的。外键是一个用来建立两个表格之间关系的约束。 

建立外键后,在插入数据时候会检测数据在主键表中是否存在,如果不存在则无法插入,通过这可以提高维护数据库的完整性和一致性
5.char a[] = "hello"; sizeof(a)等于多少?

char str[]="hello";int a=sizeof(str);
a的值是a=sizeof(str)
str是字符串,每个字符是1个字节,共5+1‘\0’,那a=6


6.char *p; p指向内存地址0001,问p++指向哪?(32位机)
7.#define FUN(a,b) a+b    问有问题么?

因为是宏,所以和类型没有关系,关键是代换后的运算优先级问题。

本文来源:https://www.2haoxitong.net/k/doc/c0dda4b8f705cc1755270956.html

《中兴通讯面试笔试题含答案详解.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式