C/C++面试精华:语法、系统特性和网络协议详解

5星 · 超过95%的资源 需积分: 9 8 下载量 162 浏览量 更新于2024-08-02 收藏 310KB DOC 举报
C/C++ 笔试题集涵盖了广泛的面试知识点,包括但不限于以下几个方面: 1. 静态变量的作用: - 限制作用域:static 变量在其所在的作用域范围内有效,当离开该作用域后,其值不会消失,但不会自动重新初始化。 - 存储域设置:静态局部变量存在于整个程序的内存中,直到程序结束。 2. 引用与指针的区别: - 初始化与空值:引用必须在声明时初始化,而指针可以不初始化;引用一旦绑定到对象后,不能再改变指向,而指针可以改变所指的对象,且存在 null 指针。 3. 实时系统特性: - 实时性:确保任务在预设时间完成,对响应速度和可靠性有严格要求。 - 内存管理:涉及高效资源管理和避免堆栈溢出,如及时回收不再使用的内存。 4. 全局变量与局部变量: - 存储位置:全局变量存储在静态数据区,具有生命周期;局部变量在栈内存,仅在函数调用期间存在。 5. 平衡二叉树定义: - 定义平衡:左右子树高度差不超过1,保持搜索性能高效。 6. 堆栈溢出原因: - 内存管理不当:如递归调用过深或循环中的局部变量未释放。 7. 虚函数与构造函数: - 虚函数可以在基类中声明,派生类重写,但构造函数不能声明为虚函数。 8. 冒泡排序算法复杂度: - 时间复杂度为 O(n^2),效率较低,主要用于小规模数据排序。 9. 浮点数比较: - 使用条件语句检查浮点数的非常接近于零的边界值,如 `if(x > 0.000001 && x < -0.000001)`。 10. 网络协议与地址转换: - Internet 采用 TCP/IP 协议,主要层次结构包括应用层、传输层、网络层、数据链路层和物理层;物理地址到 IP 地址的转换通过 ARP 协议实现。 11. 编程练习: - 用户输入 M 和 N,利用取余操作实现循环计数,每数到 M 就输出,并编写 C 语言程序实现。 12. switch 语法限制: - switch 的参数不能是实型(如 float),这在华为的面试中可能会被考察。 13. 命名规则: - 局部变量和全局变量可以同名,但局部变量会覆盖全局,通过 `::` 表示全局。 14. 引用全局变量: - 使用 `extern` 关键字或包含头文件的方式引用已定义的全局变量,避免编译错误。 这些知识点充分展示了 C/C++ 编程的基础理论和实践应用,是面试过程中常见的考察点。准备此类笔试时,不仅要扎实掌握语法,还要理解数据结构、算法、内存管理以及网络通信等核心概念。