腾讯一面

3.7/2019

牛客网投简历很速度,当天投简历,当天晚上就有面试了,,,

emama,tecent

--------------------------------------------------------------------------------------------------------------------------------

哎,答题答得不好!

-----

------------------------------

记录问题:

1.c/c++?

学过吗?我们主要用c/c++/go!

结构体对齐规则了解吗?(内存)实际结构体对齐规则其实就是类型转换,类似于表达式类型的自动提升,就是小转大。。。

发现鹅厂是真的喜欢考内存的问题,北京面的时候也是考了我java内存的问题,申请内存。。。

1:数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,每个数据成员存储的起始位置要从该成员(每个成员本身)大小的整数倍开始(比如int在32位机为4字节,则要从4的整数倍地址开始存储)。

例子:

struct node
{
     char a;
     int b

};
sizeof(node)=8
0是任何数的整倍数,char的大小为1,int大小为4;

a存放在0offset为位置,b存储的起始位置为1,但不满足对其原则,因为int大小为4,其存储位置应为4的整倍数,因此要在a后补齐,使b存储的起始位置为4

因此node大小为8

2:结构体作为成员:如果一个结构里有某些结构体成员,则结构体成员要从其内部最大元素大小的整数倍地址开始存储.(struct a里存有struct b,b里有char,int ,double等元素,那b应该从8的整数倍开始存储.)

例子:

struct pa
{
   char a;
   node b;
}
sizeof(pa)=12
b的起始位置要是4的整倍数,因此要在a后补位,
b占8字节

3:收尾工作:结构体的总大小,也就是sizeof的结果,.必须是其内部最大成员的整数倍(结构体成员以最大成员为代表).不足的要补齐.

例子:

struct node
{
    double a;
    char b;
}
sizeof(node)=16
按1,2原则可计算出结果应为9;
但结构体大小应为最大成员的整倍数,因此结果应为16
如果编译器中提供了#pragma pack(n),上述对其模式就不适用了,例如设定变量以n字节对齐方式,则上述成员类型对齐宽度(应当也包括收尾对齐)应该选择成员类型宽度和n中较小者;

2.linux了解?

网络状态的命令?netstat,ip 大端,小端?(考察点---内存)

鹅厂真的是到哪都离不开 内存,,,,,就连linux都能和内存扯上,

3.网络了解?比较常规。。

分层?osi   tcp/ip几层?   ip哪个层? tcp/udp?

1可靠性

2是否需要建立连接----很大的一个区别啊,直接影响数据传输速度啊

3速度

腾讯一面_第1张图片

腾讯一面_第2张图片

腾讯一面_第3张图片

4.抓包会吗?---网络

和前端怎么联调的?

下一个抓包工具呗,抓去呗

5算法说下?

一亿数据,挑出前100个最大的数据?

排序,topk问题。。。。。。

http://www.cnblogs.com/itxiaok/archive/2019/02/15/10385676.html

6说下排序?时间复杂度?快排实现?

http://www.sohu.com/a/246785807_684445

同冒泡排序一样,快速排序也属于交换排序,通过元素之间的比较和交换位置来达到排序的目的。

不同的是,冒泡排序在每一轮只把一个元素冒泡到数列的一端,而快速排序在每一轮挑选一个基准元素,并让其他比它大的元素移动到数列一边,比它小的元素移动到数列的另一边,从而把数列拆解成了两个部分。

这种思路就叫做分治法

腾讯一面_第4张图片

 

你可能感兴趣的:(校招面经)