字节跳动凉面(抖音C++)(问题+解答)

2019-04-18 16:00:11 浏览数 (1)

作者:料青山见我应如是

本科大四。 在字节官网投了简历,过了一天突然收到hr电话,问我工作倾向于北京还是上海,我说上海,然后hr说把我简历转给抖音上海hr....又过了一天(清明节前一天),再次突然收到hr电话,说我简历还行,可以免笔试直接安排面试,于是就安排了在了清明假期后的第一天下午视频面试(也就是今天4月8....)

一面(问题前后顺序记不太清,但大致有序,以下是问题和我当时的大概回答):

1、自我介绍

2、你面的是C 岗是吧,现在拿了几个offer,是哪几家

3、问问题环节:选一个你熟悉的语言,程序从源代码文件到运行,全过程是怎么样的,比如分哪些步骤,每步具体做什么,说详细。(说了C/C 预处理、编译、静态动态链接、运行几个阶段及各阶段的事情)

4、你提到了动态链接和静态链接,再说具体一些。  (略,网上可搜)

5、const A* const fun() const  各个const的作用  (略)

6、const int* const p  各个const作用 (略)

7、C 的多态是指什么  (函数重载的编译多态、虚函数的运行多态、参数模板 泛型编程、类型转化都可视作多态)

8、通过虚函数可以实现运行时多态,具体是怎么实现的,什么时候动态绑定的,说说底层原理   (回答虚函数表结构及原理  vptr指针)

9、父类的析构函数为什么最好声明为虚函数     (防止析构时内存泄漏)

10、接上个问题,什么情况会发生内存泄漏,举例  (当子类有比父类多的数据成员,特别是子类有创建于堆上的数据时,若用父类指针指向子类对象,父类析构函数如果不是虚函数,运行时父类析构函数执行而子类析构函数不执行,子类多的内存无法释放)

11、构造函数里面可以调用虚函数吗?(可以调用,编译能通过。在基类构造函数调用虚函数、子类构造函数里调用虚函数分别分析,无法实现动态绑定)

12、new和malloc的区别,new的底层过程是怎样的

13、C和C 里static各有什么作用 (static修饰局部变量、修饰全局变量、修饰函数、修饰类的数据成员和成员函数 作用各不一样,分别说)

14、外部怎么访问类的保护成员,如 定义一个类A:

class A{

public:

A(int x=0){ data = x;}

~A(){ }

protected:

int data;

};

现在有 一个外部函数   void  fun(A *  p){ },该函数的接口已这样写死了。 我们想在函数fun()里使用data这个数据,该怎么做。

答了两种方法,方法1:如果允许修改类A的定义,可以把fun声明为A的友元,就可以用data。

方法2:如果A不可修改,考虑继承的方式,定义一个类B继承于A,则B可以访问A的保护数据,在B中写一个公有方法对外返回该保护成员。例如代码:

class A{

public:

A(int x=0){ data = x;}

protected:

int data;

};

void fun(A* p){

//函数里定义一个类B,继承于A ,则B可以访问A的保护成员

class B:public A{  //这里公有、保护、私有继承都可以

public:

B(){ }

int getData(){

return data;

}

};

B* b = (B*)p;  //把A类型指针强制转化为B类型

cout<getData()<

}

15、STL熟悉吗

16、C 四个关键字用来强制类型转化,哪几个 各自作用,有什么区别。

15、怎么在main函数之前执行一段代码,例如在控制台输出一句话。

16、编程算法题:手写代码,输入整数n,输出n个结点可以构造出多少棵不同的二叉树?(说了两种思路,都发现不可信,会有重复。。。最后也没想出来,还是太辣鸡。。)

17、那换个题吧:不公平游戏的公平玩法。假设有一枚硬币,质地不均匀,抛掷一次 出现正面的概率是p (p不为1/2),但p是多少我们是不知道的。 假设A B两个人玩游戏,我们规定这样一个规则:抛掷这枚硬币1次,正面向上则A获胜,反面则B胜,显然这个规则是不公平的,因为p不是1/2。 要求设计一种新的胜负规则:使得A B获胜的概率相等,即公平游戏。编程模拟实现。(开始没理解好题意,前后搞了好久,最后终于想出来了==)

============GG

字节的难度果然不是吹的,之前也面了两家C 的岗位,对比起来,字节问的东西确实要深入得多,大多数问题个人感觉都不是那么基础,像引用和指针得区别这种概念性得问题基本不问,提的问题 很偏重对底层机制的比较详细的分析。一面问题环节 基本都答上来了,有一两个不会,在面试官引导下也说了一些东西。问题没见过不要紧,可以根据已有的知识推测分析,面试官好像也挺满意这种“推测”的方式。

可惜第一道算法题磨了很多,差不多20分钟。。愣是没想出来,巨尴尬。。第二道也不是很流利。。    字节很看重算法编程能力,我应该是死在了第一题,一面后面试官问有什么要问的,说如果还有二面会在今天一天内进行。。。结果一下午还是没有通知,确定是凉了。。。准备不足,刷题太少,浪费了面试机会.........

牛客上看到了很多头条的面经,但抖音的面经十分稀少,前两天准备都没有太多可以参考的面经,尤其是C 岗位更少,所以写下这篇面经,希望对牛客上的后来者有所帮助吧。

作者:料青山见我应如是

来源:牛客网

0 人点赞