C/C++面试精华:涵盖基础到进阶知识点

4星 · 超过85%的资源 需积分: 0 45 下载量 118 浏览量 更新于2024-08-02 收藏 177KB DOC 举报
本文档汇总了C与C++语言面试题,涵盖多个关键知识点,旨在帮助求职者准备面试。以下是其中详细的内容概要: 1. **static的用途**: - 限制变量的作用域:static变量的作用范围仅限于声明它的函数或文件,超出范围后无法访问。 - 设置存储域:静态局部变量在程序运行期间一直存在,不随函数调用结束而销毁。 2. **引用与指针的区别**: - 引用必须在创建时初始化,并且一旦初始化就不能改变引用的对象;而指针可以为空,也可以随时改变所指的对象。 - 没有空引用的概念,但存在空指针。 3. **实时系统特性**: - 实时系统强调在预设时间内完成任务,对响应时间和可靠性有极高的要求。 4. **全局变量与局部变量的内存位置**: - 全局变量存储在静态数据区,而局部变量存储在栈空间,生命周期与函数调用相关。 5. **平衡二叉树**: - 它是一种特殊的二叉搜索树,确保左右子树的高度差不超过1,保持较好的查找性能。 6. **堆栈溢出原因**: - 主要由于递归调用过深或分配的内存未及时释放,导致栈空间不足。 7. **虚函数与构造函数**: - 构造函数不能声明为虚函数,因为它们在编译时确定实例化,与继承和多态性不符。 8. **冒泡排序算法**: - 时间复杂度为O(n^2),不适用于大规模数据,但简单易实现。 9. **浮点数比较**: - 使用if语句检查浮点数x是否接近零:`if(fabs(x) < 0.000001)`。 10. **Internet协议与层次结构**: - Internet主要采用TCP/IP协议,其层次结构包括应用层、传输层、网络层、数据链路层和物理层。 11. **物理地址与IP地址转换**: - 地址解析协议(ARP)用于将IP地址映射到物理地址。 12. **C程序示例**: - 要求编写一个循环链表程序,使用取余操作实现特定条件下的计数输出。 13. **switch语句限制**: - switch的参数不能是实型,只能是整型或枚举类型。 14. **局部变量与全局变量重名**: - 可以重名,但局部变量会遮蔽全局变量。若要使用全局变量,需明确指定。 15. **引用全局变量的方法**: - 通过`extern`关键字或者包含头文件的方式引用已定义的全局变量。 这些知识点展示了C和C++语言的基础理论、数据结构、算法和网络通信等核心概念,是面试中常被考察的主题。熟悉这些内容对提高面试成功率至关重要。