东方财富研发岗位笔试题

来源:互联网 发布:js定时器重复执行 编辑:程序博客网 时间:2024/04/29 11:29

我投的前端岗,但这家公司研发岗都是一套卷子。

1TCP协议和UDP协议的区别?

TCP面向连接,UDP面向非连接;

TCP传输速度慢,UDP传输速度快;

TCP保证数据顺序,UDP不保证;

TCP保证数据正确性,UDP可能丢包;

TCP对紫铜资源要求多,UDO要求少。

1、堆和栈的区别?

栈:栈顶的地址和栈的最大容量是系统预先规定好的能从栈获得的空间较小由系统自动分配,速度较快,但程序员是无法控制的

堆:用户申请,并指明大小堆获得的空间比较灵活,也比较大是由new分配的内存,一般速度比较慢,而且容易产生内存碎片

2、引用和指针的区别?

a、指针是一个变量,这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已

b、可以有const指针,但是没有const引用;

c、指针可以有多级,但是引用只能是一级

d、指针的值可以为空,但是引用的值不能为NULL,并且引用在定义的时候必须初始化;

e、指针的值在初始化后可以改变,即指向其它的存储单元,而引用在进行初始化后就不会再改变了。

f、"sizeof引用"得到的是所指向的变量(对象)的大小,而"sizeof指针"得到的是指针本身的大小;

3、轮询任务调度和可抢占任务调度有什么区别?

轮询调度的原理是每一次把来自用户的请求轮流分配给内部中的服务器,从1开始,直到N(内部服务器个数),然后重新开始循环。只有在当前任务主动放弃CPU控制权的情况下(比如任务挂起),才允许其他任务(包括高优先级的任务)控制CPU。开始循环。

抢占式调度允许高优先级的任务打断当前执行的任务,抢占CPU的控制权。这有利于后面的高优先级的任务也能及时得到响应。但实现相对较复杂且可能出现低优先级的任务长期得不到调度。

4、一棵完全二叉树中有65个节点,则该二叉树的深度为7

5、给定两个排好序的数组,怎样高效得判断这两个数组中存在相同的数字?

首先设两个下标,分别初始化为两个数组的起始地址,依次向前推进 。推进的规则是比较两个数组中的数字,小的那个数组的下标向前推进一步,直到任何一个数组的下标到达数组末尾时,如果这时还没碰到相同的数字,说明数组中没有相同的数字。

6、不同子进程共享同一个父进程的

子进程将获得父进程数据空间、堆、栈等资源的副本。

7、C++标识符命名规则

8、快速排序的思想是递归,但是它的平均速率确实众多排序算法中最快的,为什么?

递归能解决的问题通常能将问题不断缩小为性质相同但规模更小的问题,直到问题足够小能够直接解决,而且递归程序看起来非常简洁,是一种非常好的手段,但一般情况下会产出很多无用的东西,衡量好再用递归

9、写一个函数实现对已从小到大排序的数组执行二分法查找

 

10、一个像素为1024*768的图片在没有压缩的情况下,占用多少存储空间?1024X768=786432像素
786432X2=1572864字节
1572864除以1024=1536K
1536除以1024=1.5M

11、根据以上表格,以学号为主键,在数据库中创建表student

12、五个猴子分桃子

至少3121个桃子