C/C++面试必备知识点:题目与解析

需积分: 23 0 下载量 86 浏览量 更新于2024-10-03 收藏 117KB PDF 举报
"C语言/C++面试题大全包含了大量的面试题目和答案,适合学习和面试准备,涵盖了C/C++的基础知识、数据结构、算法、内存管理等多个方面。" 1. **static的用途**: - 限制作用域:在C/C++中,`static`关键字用于限制变量的作用域,使得变量只在定义它的文件或代码块中可见,不会在其他文件中被外部引用。 - 设置存储域:`static`修饰的变量会被存储在静态存储区,生命周期贯穿整个程序运行期间。 2. **引用与指针的区别**: - 引用必须在声明时初始化,并且一旦初始化后,不能再改变引用的对象。 - 指针可以在任何时候改变所指向的对象,且可以为NULL,即指向空值。 3. **实时系统的基本特性**: - 实时性:系统能在规定的时间内完成特定任务。 - 可靠性:保证在规定时间内完成任务的同时,还要确保系统的稳定性与正确性。 4. **全局变量与局部变量的内存区别**: - 全局变量存储在静态存储区,其生命周期始于程序开始,终于程序结束。 - 局部变量存储在栈区,随着函数调用的结束,其内存会被自动释放。 5. **平衡二叉树**: - 平衡二叉树是一种特殊的二叉树,每个节点的两个子树的高度差不超过1,并且都尽可能平衡,以达到快速查找的目的。 6. **堆栈溢出**: - 堆栈溢出通常是由于分配的栈内存不足以存放所有局部变量,或者递归调用过深,导致栈空间耗尽。 7. **虚函数**: - 构造函数不能声明为虚函数,因为虚函数机制是在对象实例化后才生效,而构造函数在对象创建过程中执行。 8. **冒泡排序的时间复杂度**: - 冒泡排序的时间复杂度是O(n^2),对于大规模数据排序效率较低。 9. **浮点数与零值比较**: - 比较浮点数是否等于零时,通常会设定一个较小的阈值来判断,如示例中的`if(x>0.000001&&x<-0.000001)`。 10. **Internet网络协议**: - Internet主要采用TCP/IP协议,包括应用层、传输层、网络层、数据链路层和物理层。 11. **IP地址与物理地址转换**: - ARP(Address Resolution Protocol)协议用于将IP地址转换为物理(MAC)地址。 12. **IP地址的组成部分**: - IP地址由网络号和主机号两部分组成,通过子网掩码确定网络部分和主机部分。 13. **循环链表实现特定数列输出**: - 给定M和N,从1到N顺序计数,每数到M输出该数值,可以使用循环链表配合取余操作实现。 14. **switch语句参数限制**: - switch语句的参数不能是浮点型,只能是整型、枚举类型或指针类型。 15. **局部变量与全局变量重名**: - 在函数内部,局部变量可以与全局变量同名,此时局部变量会屏蔽全局变量,如果要访问全局变量,需要使用作用域解析运算符`::`。 以上是C语言/C++面试题中涉及的一些重要知识点,这些内容有助于理解和提升C/C++编程技能,同时对于面试和项目开发也有很好的指导作用。