C/C++面试题库:这些问题你回答得出来吗

基础部分

1.1. 语言

一、 C和C++的特点与区别?

二、 阐述C++的多态

三、 阐释c++虚函数的实现

四、 C和C++内存分配问题

 

C/C++面试题库:这些问题你回答得出来吗

 

 

高级部分

2.1. 网络

五、 画出三次握手和四次挥手流程图

六、 请阐释https建立连接过程

七、 画出OSI和TCP/IP协议栈的对应关系

八、 请阐释ARQ协议的原理和过程

九、 请阐释滑动窗口协议原理和过程

2.2. 操作系统

十、 进程通信方式有哪些?哪种效率最高?

十一、 线程间的通信方式

十二、 请分别阐释进程和线程的概念,并分析异同?

2.3. 数据库

十三、 MySQL中myisam与innodb的区别

十四、 innodb引擎的4大特性

十五、 MyISAM和InnoDB selectcount(*)哪个更快,为什么

十六、 Redis支持的数据类型?

十七、 什么是Redis持久化?Redis有哪几种持久化方式?优缺点是什么? 20

十八、 redis通讯协议(RESP ),能解释下什么是RESP?有什么特点?

十九、 Redis 有哪些架构模式?讲讲各自的特点

2.4. 数据结构

二十、 线性表

二十一、 二叉树

二十二、 红黑树

二十三、 平衡树

二十四、 Radix树

二十五、 八叉树

二十六、 梅克尔树

 

C/C++面试题库:这些问题你回答得出来吗

 

2.5. 算法

二十七、 排序算法

选择/冒泡/快速/堆排等

二十八、 一致性哈希算法

二十九、 paxos算法

三十、 raft算法

一、 C和C++的特点与区别?

参考答案:

答:(1)C语言特点:

1) 作为一种面向过程的结构化语言,易于调试和维护;

2) 表现能力和处理能力极强,可以直接访问内存的物理地址;

3) C语言实现了对硬件的编程操作,也适合于应用软件的开发;

4) C语言还具有效率高,可移植性强等特点。

 

(2)C++语言特点:

1) 在C语言的基础上进行扩充和完善,使C++兼容了C语言的面向过程特点,又成为了一种面向对象的程序设计语言;

2) 可以使用抽象数据类型进行基于对象的编程;

3) 可以使用多继承、多态进行面向对象的编程;

4) 可以担负起以模版为特征的泛型化编程。

 

参考答案:

一、 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;即抽象类,必须在子类实现这个函数,即先有名称,没有内容,在派生类实现内容。

。。。。。。。。

我整理了一份PDF版的面试题库,里面解答了所有的问题

想要免费领取PDF文档请评论+关注我后 私信我或查看我主页个人简介领取资料

 

C/C++面试题库:这些问题你回答得出来吗

 

 

C/C++面试题库:这些问题你回答得出来吗

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
【为什么还需要学习C++?】 你是否接触很多语言,但从来没有了解过编程语言的本质?你是否想成为一名资深开发人员,想开发别人做不了的高性能程序?你是否经常想要窥探大型企业级开发工程的思路,但苦于没有基础只能望洋兴叹? 那么C++就是你个人能力提升,职业之路进阶的不二之选。【课程特色】 1.课程共19大章节,239课时内容,涵盖数据结构、函数、类、指针、标准全部知识体系。2.带你从知识与思想的层面从0构建C++知识框架,分析大型项目实践思路,为你打下坚实的基础。3.李宁老师结合4大国外顶级C++著作的精华为大家推出的《征服C++11》课程。【学完后我将达到什么水平?】 1.对C++的各个知识能够熟练配置、开发、部署;2.吊打一切关于C++的笔试面试题;3.面向物联网的“嵌入式”和面向大型化的“分布式”开发,掌握职业钥匙,把握行业先机。【面向人群】 1.希望一站式快速入门的C++初学者; 2.希望快速学习 C++、掌握编程要义、修炼内功的开发者; 3.有志于挑战更高级的开发项目,成为资深开发的工程师。 【课程设计】 本课程包含3大模块基础篇本篇主要讲解c++的基础概念,包含数据类型、运算符等基本语法,数组、指针、字符串等基本词法,循环、函数、类等基本句法等。进阶篇本篇主要讲解编程中常用的一些技能,包含类的高级技术、类的继承、编译链接和命名空间等。提升篇:本篇可以帮助学员更加高效的进行c++开发,其中包含类型转换、文件操作、异常处理、代码重用等内容。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值