腾讯T3C++开发工程师面试总结,这些问题你能答上几个?含答案
腾讯C++第一轮面试题目:
不会做别着急 ,文末有答案
1、自我介绍(自由发挥)
2、301和302的区别?
3、红黑树是什么样的数据结构?红黑树和B数的区别?
4、堆和栈的区别?
5、谈一下对乐观锁和悲观锁的认识
6、结构体struct和联合体union的区别
7、三次握手的具体实现,time_wait原理?
8、C和C++的特点与区别
9、计算机网络中不同层有用到哪些协议?
如果这上面这些问题你只会一半,你第一轮就要被淘汰,接下来你就要继续死磕C++啦!
腾讯T3C++开发工程师面试总结
c/c++ 面试题库 v1.0
1. 基础部分
1.1. 语言
一、 C 和 C++的特点与区别?
二、 阐述 C++的多态
三、 阐释 c++虚函数的实现
四、 C 和 C++内存分配问题
2. 高级部分
2.1. 网络
五、 画出三次握手和四次挥手流程图
六、 请阐释 https 建立连接过程
七、 画出 OSI 和 TCP/IP 协议栈的对应关系
八、 请阐释 ARQ 协议的原理和过程
九、 请阐释滑动窗口协议原理和过程
操作系统.
十、 进程通信方式有哪些?哪种效率最高?
十一、 线程间的通信方式
十二、 请分别阐释进程和线程的概念,并分析异同?
数据库
十三、 MySQL 中 myisam 与 innodb 的区别
十四、 innodb 引擎的 4 大特性
十五、 MyISAM 和 InnoDB selectcount(*)哪个更快,为什么
十六、 Redis 支持的数据类型?
十七、 什么是 Redis 持久化?Redis 有哪几种持久化方式?优缺点是什么?
十八、 redis 通讯协议(RESP ),能解释下什么是 RESP?有什么特点?....
十九、 Redis 有哪些架构模式?讲讲各自的特点
数据结构
二十、 线性表
二十一、 二叉树 .
二十二、 红黑树
二十三、 平衡树
二十四、 Radix 树
二十五、 八叉树
二十六、 梅克尔树
算法
二十七、 排序算法
选择/冒泡/快速/堆排等
二十八、 一致性哈希算法
二十九、 paxos 算法
三十、 raft 算法
答案部分
1. 基础部分
1.1.语言
一、 C 和 C++的特点与区别?
参考答案:
答:(1)C 语言特点:
1) 作为一种面向过程的结构化语言,易于调试和维护;
2) 表现能力和处理能力极强,可以直接访问内存的物理地址;
3) C 语言实现了对硬件的编程操作,也适合于应用软件的开发;
4) C 语言还具有效率高,可移植性强等特点。
(2)C++语言特点:
1) 在 C 语言的基础上进行扩充和完善,使 C++兼容了 C 语言的面向过程特点,又成为了
一种面向对象的程序设计语言;
2) 可以使用抽象数据类型进行基于对象的编程;
3) 可以使用多继承、多态进行面向对象的编程;
4) 可以担负起以模版为特征的泛型化编程。
二、 阐述 C++的多态
参考答案:
编译时多态:主要指泛型编程
运行时多态:
C++的多态性用一句话概括:在基类的函数前加上 virtual 关键字,在派生类中重写该函数,
运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生
类的函数;如果对象类型是基类,就调用基类的函数。
1) 用 virtual 关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数;
2) 存在虚函数的类都有一个一维的虚函数表叫做虚表,类的对象有一个指向虚表开始的
虚指针。虚表是和类对应的,虚表指针是和对象对应的;
3) 多态性是一个接口多种实现,是面向对象的核心,分为类的多态性和函数的多态性。;
4) 多态用虚函数来实现,结合动态绑定.;
5) 纯虚函数是虚函数再加上 = 0;
6) 抽象类是指包括至少一个纯虚函数的类;
纯虚函数:virtual void fun()=0;即抽象类,必须在子类实现这个函数,即先有名称,没
有内容,在派生类实现内容。
三、 阐释 c++虚函数的实现
参考答案:
简单地说,每一个含有虚函数(无论是其本身的,还是继承而来的)的类都至少有一个与
之对应的虚函数表,其中存放着该类所有的虚函数对应的函数指针。
例:
其中:
B 的虚函数表中存放着 B::foo 和 B::bar 两个函数指针。
D 的虚函数表中存放的既有继承自 B 的虚函数 B::foo,又有重写(override)了基类虚函
数 B::bar 的 D::bar,还有新增的虚函数 D::quz。
虚函数表构造过程:
从编译器的角度来说,B 的虚函数表很好构造,D 的虚函数表构造过程相对复杂。下面给出
了构造 D 的虚函数表的一种方式(仅供参考):
虚函数调用过程
以下面的程序为例:
由于答案部分太多了,就不一一表现出来了,大家如果想要获取此份腾讯T3级面经的PDF答案,可以私信我“面试”即可获取,首先要关注我之后才能私信哦
已整理到PDF文档,面试题+答案
资料获取方式:
最后,想学习编程的小伙伴们可以+群,9643,83639就可以拿到一 份我为大家准备的编程学习资料!