首页 > 【回馈牛客】大厂C/C++ 22届实习面经 详细的(1)
头像
若风cc
编辑于 2021-04-05 21:02
+ 关注

【回馈牛客】大厂C/C++ 22届实习面经 详细的(1)


2月

百度一面

自我介绍
项目是否有实际上线、是否进行过测试
QPS压到了多少,MYSQL是否是性能瓶颈
介绍一下项目中的任务队列和线程池
线程池的实现逻辑
怎么对task封装和抽象的?
线程的状态模型,如何转换
讲一下vector和list的区别
vector和list迭代器的区别
迭代器失效问题
unordered_map的底层结构
C++11了解哪些 讲一讲
二叉树的几种遍历方式 递归非递归 前中后序层序 口述思路
代码实现:镜像翻转二叉树 分别递归和递归实现
是否了解大数据处理相关的知识
刚才代码 分析时间复杂度和空间复杂度
讲一下进程和线程的区别
进程和线程通信
死锁产生的原因
你有什么想问我的

百度二面

自我介绍
手写单例模式(几个点:线程安全 、构造函数私有,拷贝构造私有)
使用mutex加锁的话new失败抛异常 unlock怎么办(lock_guard)
是否实际使用过单例模式
讲下项目中线程池的实现原理
讲下项目中的对象池
代码(检验迭代器失效的理解):vector遍历过程中插入和删除
1.删所有奇数元素
2.在每个奇数元素后面插入n个奇数元素二倍的元素
删除vector中元素会导致整体前移,效率低,怎么办(不更换容器 原地)
分布式:两个大文件存url 每个url大小64字节 内存大小4G 不足以全量读入两个文件 怎样找文件1在文件2中出现过的url
又问项目的QPS、测试问题
做项目时遇到了什么难题

深信服一面

自我介绍
项目是一个人做的吗
项目测试并发量
为什么使用epoll和select区别
epoll比select优化了哪些
epoll细节,是否有用户态到内核态的拷贝
虚函数的实现原理
C++的内存分区
栈区和堆区的地址(低地址到高地址还是高到低)
C++为什么要结构体对齐
大端序和小端序 怎么判断
memcpy有什么问题需要注意
(答了越界问题和目标可写 不是面试官要的答案 应该是要答非连续空间数据拷贝)
STL map multimap底层
浏览器输入网址访问的过程
HTTP报文的构成
IP头结构
虚拟内存
为什么要有虚拟内存
页面置换算法知道哪些 伙伴算法了解吗
两个栈实现队列
找链表倒数第k个节点
查找算法知道哪些
大数据查找 百万条 1G内存
反问

深信服二面

反转链表
什么是虚拟内存
野指针的情况(没初始化 释放没置空 超过生命周期)
内存对齐
多态 虚函数讲一下
继承和重写
如何保证线程安全
TCP保证可靠传输
反问

3月

腾讯一面

C++内存分区讲一讲
static关键字的作用 static变量存在哪个分区
Linux ELF可执行文件听过吗
构造函数可以是虚函数吗 为什么
unordered_map容器和map容器的底层区别
Hash冲突的解决方法
假如让你设计LRU,如何设计
为什么要有虚拟内存 说说你的理解
TLB是什么
线程间通信方式有哪些
自旋锁和乐观锁悲观锁的关系
MySQL InnoDB索引为什么用B+树而不是B-Tree或者AVL
MySQL怎么操作导出 (让我答自带的工具 mysqldump 没听过)
有优化过SQL语句吗  谈谈经验
HTTPS为什么使用混合加密
对称加密和非对称加密的性能差多少?
为什么对称加密性能高 从加密原理讲
Linux下命令: IO占用高如何排查
CPU占用高 如何排查
怎么看一个进程打开了哪些文件
TCP拥塞控制和流量控制
accept发生在三次握手的哪个阶段
抓包过吗 tcpdump用过吗
代码:
1.写一个函数:返回一个数组各个元素除这个数组第一个元素的结果 -- 考严谨性 除零判断
2.有重复数据的二分查找 找第一次出现位置
逻辑题:
1000个苹果 10个箱子 ,怎么放才能让箱子组合出任意个数的苹果
反问环节

快手一面 居然都是笔试题

1.  环境为32位机 (int 占4Bytes)下,运行如下代码。请问输出什么,为什么?
int a = 0x1234;
char * p = (char *) &a;
printf("0x%x ", (int)*p);
printf("0x%x ", (int)*(p+1));
printf("0x%x ", (int)*(p+2));
2. 请找出下面代码中的所有错误 说明:以下代码是把一个字符串倒序,如"abcd"倒序后变为"dcba"
#include"string.h"
int main() {
char*src="hello,world";
char* dest=NULL;
int len=strlen(src);
dest=(char*)malloc(len);
char* d=dest;
char* s=src[len];
while(len--!=0)
d++=s--;
printf("%s",dest);
return 0;
}
3. 请找出下面代码中的所有错误
void GetIntA(int *p)
{
p = malloc(sizeof(int));
return;
}
int * GetIntB()
{
int kk;
return &kk;
}
void main(void)
{
int *p;
p = NULL; GetIntA(p); *p = 0x22;
p = NULL; p = GetIntB(); *p = 0x33;
}
4. 环境为32位机 (int 占4Bytes)下
int a = (int)(((int *)0)+4); a等于多少?为什么?
//64位机,linux环境,物理内存16G
void foo()
{
int n = 0;
while(true){
void * p = malloc(1*1024*1024);
if(NULL == p) break;
n += 1;
}
}
5. 编程题:用c语言写一个函数,把字符串里面的空格全部去掉,并返回删除的空格的个数,不允许新开辟空间,只能申请简单类型的自动变量。时间复杂度O(n)
int del_blanks(char * str);
"I am a student";
6. 完全随机的抽取50人, 求这50人发生生日冲突的可能性有多大?
说明: 1. 只要同月同日生,就算生日冲突 (岁数可不同)
2. 不考虑闰年,每年都按365天算。

百度 后台实习 一面

自我介绍
C++对象模型 怎么理解 讲一下
编译的过程讲一下
include双引号和尖括号什么区别
怎么样指定系统库的目录
Path环境变量知道吗  和之前说的includ头文件有关系吗
vector容器知道多少 讲一下
vector是线程安全的吗
resize 和 reserve的区别
resize时,如果容器中是类的对象,STL怎么做
I/O指什么
Linux下I/O多路复用解决什么问题
select和epoll的区别(延申讲原理 性能比较 使用场景)
深拷贝和浅拷贝的区别
new和malloc有什么区别
讲一下new、动态内存分配
什么是内存泄漏
怎样判断有没有内存泄漏
分析题:考内存对齐
这个类占用多少空间
如果加上一个成员函数呢  ; 如果加入虚函数呢
算法题:
反转链表
在上面基础上,判断回文链表


百度 二面

自我介绍
写项目中遇到过什么问题 讲一下(延申讲一下改进想法)
TCP如何保证可靠性讲一下
常见的IPC通信方式有哪些 选一个了解的仔细讲一下(mmap 延申讲了原理 为什么mmap效率高)
怎么判断某段代码是不是线程安全的
写一段线程同步的代码  不限内容
对于一个慢查询 如何考虑优化
十亿个数据 如何提高查询效率
线程和进程的区别
代码题:
熟悉哪种排序,写一下吧


百度 三面

(排队一小时 面试七分钟)
自我介绍
项目详细说一下
MD5是加密算法吗?为什么使用MD5?
传输层使用什么?应用层如何设计 协议方面
客户端使用什么做的
客户端有多少个线程,收发是同一线程吗
项目是学习的还是有实际应用?
能实习多久 实习多长时间
对业务方向有什么倾向
你有什么想问的?



更多模拟面试

全部评论

(4) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐