BIGO C++传输工程面经

一面

1.什么是多态以及多态的实现机制

2.宏函数和inline函数的异同点

3.求链表的倒数第k个节点(手写程序)

4.两个有序等长的序列,求出其中位数(中位数是[L/2]的位置)

5.判断一个程序的输出结果,count最终值为多少

int count = 0;

int x = 981;

while(x)

{

    count++;

    x = x & (x-1);

}

6.快速排序和堆排序的基本思想

7.map的底层数据结构

8.什么是大端和小端

9.C语言static变量存放在堆区还是栈区

10.进程和线程有什么区别,进程间通信有哪几种方式

11.是否了解多路IO复用,讲讲select和epoll的区别

12.指针和引用的区别

(一面总体上基本都答出来了,面完面试官让我继续在这里等一下,就是有戏,虽然一面面试官看上去比较严肃,但是最后走的时候脸上还是挺开心的,还跟我说了一下第5题其实就是求x的二进制包含了多少个1)

二面

1.先问我实习做的东西

2.有父类,组合类对象时类的构造函数调用顺序

3.判断一个机器是大端还是小端,实现一个将大端字节序的32位数转换为本机字节序函数(类似于ntohl功能)

4.vector和list的区别

5.是否使用过dll,如果在生成dll的导出函数使用了std::list会有什么问题

6.如果一个自定义对象要存放在容器中,比如vector,list这种,那么这个自定义对象需要具备什么样的条件(答了需要自定义正确的拷贝构造,不能是引用,他问我还有吗。。。不知道了)

7.单例设计模式有哪几种写法,双锁机制的单例设计模式存在什么问题

8.有没有用过线程函数,Windows下创建线程有哪些函数,为什么使用_beginthreadex而不用CreateThread

9.是否了解二叉树的遍历,先序遍历,中序遍历,后序遍历,还有层序遍历,说出先序遍历和层序遍历的思路

10.知不知道什么是右值,说说C++11中std::move函数的功能

11.判断一个long型的数是否是 2^n(n从0-31),要求时间复杂度为O(1)

12.知道什么是哈希吗,解决哈希冲突有哪些方式

(二面面完慌得一批,没有一面那么稳,有些问题也答不出来,但是他让我再等一下,待会三面)

三面

1.浅谈一下C和C++的区别

2.C语言中如果是一个static的局部变量是什么功能,如果一个全局变量修饰了static是什么功能,C++类里的static成员变量是什么功能,static成员函数是什么功能

3.进程和线程的区别,多线程除了普通的mutex还了解过哪些锁

4.信号量和互斥锁的区别,设计一个类实现信号量的功能,可以使用锁或者条件变量

5.谈谈设计模式六大原则,除了单例设计模式和工厂设计模式,谈谈你对其他设计模式的理解

6.怎么找出链表的倒数第k个节点,怎么找出链表的中间节点,如何判断链表有没有环

7.问我项目的东西,怎么把我的多媒体播放器做成可以边下边播的播放器

8.问我对ffmpeg的基本理解还有解码时音视频不同步的问题

9.什么是多态,多态的实现机制

10.TCP建立连接为什么是三次握手,五次行不行,两次行不行,TCP断开连接是几次挥手

11.TCP如何保证可靠传输

(三面面完感觉还行,跟面试官聊得挺畅快的,觉得这次稳了,他让我再等等,我以为接下来是HR面了,没想到来了个四面技术面。。。网上只看到过三面啊)

四面

1.聊聊人生,问我想做什么

2.写一个memcpy的函数,需要注意地址重叠的问题

3.判断两棵二叉树是否相似,相似就是指可以通过左右旋转得到

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

椛茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值