网站首页 > 教程文章 正文
腾讯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 的虚函数表的一种方式(仅供参考):
虚函数调用过程
以下面的程序为例:
由于答案部分太多了,就不一一表现出来了,大家如果想要获取此份腾讯T2.3级面经的PDF答案,可以私信我“面试”即可获取,首先要关注我之后才能私信哦
已整理到PDF文档,面试题+答案
资料获取方式:私信关键词“资料”即可免费获得
猜你喜欢
- 2025-03-29 深入探索 C++ 虚拟函数逆向工程:从基础到实践
- 2025-03-29 C/C++面试题(一)(c++面试题目100及最佳答案)
- 2025-03-29 C++关键字介绍(c++ abstract关键字)
- 2025-03-29 一文在手,"类间关系"不再困惑
- 2025-03-29 内部疯传,22个必考C++面试知识点总结(附答案解析)
- 2025-03-29 C++面试题总结(二)(c++面试题目100及最佳答案)
- 2025-03-29 25道C++经典面试题详解,附全套学习资料免费领!
- 2025-03-29 python 多态 协议详解(python的多态还有意义吗)
- 2025-03-29 C++语言中的“虚函数”就像C语言中的指针,必须要弄懂的
- 2025-03-29 从C++到Rust学习指南(下篇)(rust 调用c++类)
- 05-11阿里开源MySQL中间件Canal快速入门
- 05-11MyBatis插件开发实战:手写一个分页插件
- 05-11Flask数据库——SQLAlchemy
- 05-11MySQL 到 Hazelcast Cloud 实时数据同步实操分享
- 05-11sqlmap 详解
- 05-11一篇文章让你学会Elasticsearch中的查询
- 05-11Mysql性能优化这5点你知道吗?简单却容易被初学者忽略!
- 05-11Spring Boot 实现 MySQL 读写分离技术
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- md5 sha1 (32)
- mybatis plus page (35)
- semaphore 使用详解 (32)
- update from 语句 (32)
- vue @scroll (38)
- 堆栈区别 (33)
- 在线子域名爆破 (32)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)