腾展科技 - C++实习 - 一面 面经
1. 自我介绍
(开放性问题,候选人应包含教育背景、技术栈、项目经验,控制在2分钟以内)
2. Linux系统的目录结构是怎样的?常用目录分别存放什么内容?
参考答案:Linux采用树形目录结构,根目录为/,常见目录含义:
- /bin:存放基本命令,如ls、cp、mv等
- /etc:存放系统配置文件
- /home:普通用户的主目录
- /var:存放日志、缓存等动态数据
- /tmp:临时文件,重启后清空
- /usr:用户程序和库文件
- /dev:设备文件,如磁盘、终端
- /proc:虚拟文件系统,反映系统运行状态
- /root:root用户的主目录
- 与Windows区别:Linux一切皆文件,没有盘符概念,路径用/分隔,Windows用\分隔
3. 版本控制系统的作用是什么?Git和SVN有什么区别?
参考答案:版本控制系统用于管理代码变更历史,支持多人协作开发:
- 核心作用:记录每次代码修改、支持回退到历史版本、多人并行开发不冲突、追踪谁在什么时候改了什么
- Git是分布式版本控制:每个开发者本地都有完整的仓库,可以离线提交,速度快
- SVN是集中式版本控制:只有一个中央服务器,必须联网才能提交,服务器宕机则无法工作
- Git优势:分支创建和合并成本极低、离线工作、速度快、社区生态好
- 常用平台:GitHub(全球最大代码托管平台)、Gitee(国内)、GitLab(企业自建)
4. 如何使用Git从远程仓库获取代码?克隆和拉取有什么区别?
参考答案:获取远程代码有两种场景:
- git clone:第一次获取项目,将远程仓库完整复制到本地,包含所有历史记录和分支 使用方式:git clone 仓库地址,会在当前目录创建同名文件夹支持HTTPS和SSH两种协议
- git pull:已有本地仓库,获取远程最新更新并合并到当前分支 本质是git fetch + git merge的组合使用前需要先clone过仓库
- 从GitHub下载代码还可以直接点击Download ZIP,但这种方式不包含Git历史记录,无法进行版本管理
- SSH方式需要提前配置公钥到GitHub账户,HTTPS方式需要输入账号密码或Token
5. Linux和Windows在使用场景上有什么本质区别?
参考答案:两者定位和设计理念不同:
- 开源与闭源:Linux开源免费,任何人可以查看修改源码;Windows是商业软件,需要付费授权
- 稳定性:Linux服务器可以运行数年不重启,Windows需要定期更新重启
- 使用场景:Linux主要用于服务器、嵌入式设备、开发环境;Windows主要用于桌面办公和游戏
- 命令行:Linux以命令行为核心,操作高效;Windows以图形界面为主
- 权限管理:Linux权限体系更严格,普通用户权限受限;Windows权限管理相对宽松
- 文件系统:Linux常用ext4,Windows常用NTFS;Linux文件名大小写敏感,Windows不敏感
- 软件生态:Windows软件生态更丰富,Linux开发工具链更完善
- C++开发:Linux下GCC工具链更成熟,服务器端C++开发基本都在Linux环境
6. Linux下有哪些常用的文件操作命令?
参考答案:Linux文件操作命令是开发必备:
- 查看文件:ls(列出目录)、ls -la(详细信息含隐藏文件)、cat(查看文件内容)、less/more(分页查看)
- 目录操作:cd(切换目录)、pwd(显示当前路径)、mkdir(创建目录)、rmdir(删除空目录)
- 文件操作:cp(复制)、mv(移动/重命名)、rm(删除)、rm -rf(强制递归删除)、touch(创建空文件)
- 查找搜索:find(按条件查找文件)、grep(在文件中搜索内容)、which(查找命令位置)
- 权限管理:chmod(修改权限)、chown(修改所有者)
- 进程管理:ps aux(查看进程)、kill(终止进程)、top(实时监控)
- 网络相关:ping(测试连通性)、netstat(查看网络连接)、curl(
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
C++八股文全集 文章被收录于专栏
本专栏系统梳理C++技术面试核心考点,涵盖语言基础、面向对象、内存管理、STL容器、模板编程及经典算法。从引用指针、虚函数表、智能指针等底层原理,到继承多态、运算符重载等OOP特性从const、static、inline等关键字辨析,到动态规划、KMP算法、并查集等手写实现。每个知识点以面试答题形式呈现,注重原理阐述而非冗长代码,帮助你快速构建完整知识体系,从容应对面试官提问,顺利拿下offer。