C/C++面试必看:经典题目解析

需积分: 0 4 下载量 182 浏览量 更新于2024-10-24 收藏 176KB DOC 举报
"C与C++面试题目汇总,包含多种知识点,包括C和C++的基础概念、数据结构、程序设计、内存管理以及网络协议等。" 1. `static`的用途: - 限制变量的作用域:`static`修饰的变量在函数内部定义时,其作用域仅限于该函数,但生命周期贯穿整个程序执行,不会随函数结束而销毁。 - 设置变量的存储域:`static`修饰的全局变量仅在本文件作用,不对外暴露,且存储在静态存储区。 2. 引用与指针的区别: - 引用必须在声明时初始化,而指针可以在任何时候被赋值。 - 引用一旦初始化后,就不能改变引用对象,而指针可以改变所指向的对象。 - 不存在空引用,但指针可以为NULL。 3. 实时系统的基本特性: - 实时性:系统必须在规定的时间内完成任务,否则可能导致系统失效。 - 可靠性:系统应具有高可靠性,确保在规定的时间内正确执行。 4. 全局变量和局部变量的内存区别: - 全局变量存储在静态存储区,程序开始时分配,程序结束时释放。 - 局部变量存储在栈区,函数调用时分配,函数返回时释放。 5. 平衡二叉树: - 平衡二叉树是一种特殊的二叉树,每个节点的左子树和右子树的高度差不超过1,并且左子树和右子树都是平衡二叉树。 6. 堆栈溢出的原因: - 主要是由于动态分配的内存未被及时释放,导致栈空间持续增长,直至超过其预设的最大容量。 7. 不能声明为虚函数的函数: - 构造函数不能声明为虚函数,因为虚函数机制是在对象实例化后确定的,而构造函数在对象创建过程中执行。 8. 冒泡排序的时间复杂度: - 最佳情况(已排序)O(n),最坏情况(逆序)O(n^2),平均情况也是O(n^2)。 9. float x与“零值”比较的if语句: - 使用浮点数比较时,通常会设定一个较小的阈值,如`if(x > 0.000001 && x < -0.000001)`,以避免浮点计算误差。 10. Internet采用的网络协议及层次结构: - TCP/IP协议,主要层次结构为:应用层、传输层、网络层、数据链路层和物理层。 11. ARP协议的作用: - ARP协议用于将IP地址解析为物理(MAC)地址,以便在局域网中进行数据包的正确发送。 12. IP地址的编码结构: - IP地址由网络号和主机号两部分组成,通过子网掩码区分这两部分。 13. C程序实现用户输入M、N值,顺序循环数数并输出: - 可以使用循环链表,通过取模运算实现M的周期性输出。 14. switch()不能接受的参数类型: - switch语句的表达式不能是浮点型,只能是整型、字符型或枚举类型。 15. 局部变量与全局变量重名: - 在函数内部,局部变量会遮蔽同名全局变量,若要访问全局变量,需使用作用域解析运算符`::`。 16. 引用全局变量: - 使用`extern`关键字在需要的地方声明全局变量,指示编译器在外部查找变量定义。 这些面试题目涵盖了C和C++的基础语法、数据结构、内存管理、算法、操作系统和网络协议等多个方面,理解和掌握这些知识点对于准备C/C++面试至关重要。