C/C++笔试面试经典问题集锦

需积分: 0 4 下载量 46 浏览量 更新于2024-08-02 收藏 271KB DOC 举报
“C/c++笔试面试必看” 这篇资料主要涵盖了C/C++编程语言的基础知识和面试常见问题,包括变量的作用域、数据结构、内存管理、程序设计等方面。以下是其中涉及的关键知识点: 1. `static` 关键字的用途: - 在函数内部,`static` 变量在函数的多次调用中保持其值,不会在每次调用时重置。 - 在文件作用域内,`static` 变量只对当前源文件可见,起到限制作用域的作用,即局部全局变量。 - 在函数外部定义的`static`函数只能在定义它的文件内部被调用,提供了一种封装机制。 2. 引用与指针的区别: - 引用在声明时必须初始化,而指针可以在任何时候被赋值。 - 引用一旦绑定到一个对象后,就不能改变引用的对象,而指针可以改变所指的对象。 - 没有空引用的概念,但可以有空指针。 3. 实时系统的基本特性: - 实时性:系统必须在规定的时间内完成任务,否则可能导致严重后果。 - 可靠性:系统必须具有高度的稳定性和故障恢复能力。 4. 全局变量和局部变量的内存分配: - 全局变量存储在静态存储区,生命周期始于程序开始,终于程序结束。 - 局部变量在栈上分配,随着函数调用的开始和结束而创建和销毁。 5. 平衡二叉树: - 平衡二叉树是一种特殊的二叉树,其左右子树都是平衡的,且左右子树的高度差不超过1。 6. 堆栈溢出的原因: - 堆栈溢出通常由于递归过深、局部变量过大或过多导致栈空间耗尽。 7. 虚函数与构造函数: - 构造函数不能声明为虚函数,因为虚函数是在对象实例化后调用的,而构造函数在对象创建时执行。 8. 冒泡排序的时间复杂度: - 冒泡排序的时间复杂度为O(n^2),效率较低。 9. 浮点数与零值比较的条件: - 比较浮点数x与零值时,通常使用一个很小的阈值来判断,如示例中的if(x>0.000001&&x<-0.000001)。 10. Internet使用的网络协议及层次结构: - TCP/IP协议是Internet的基础,其主要层次包括:应用层、传输层、网络层和数据链路层/物理层。 11. IP地址与物理地址的转换协议: - ARP(地址解析协议)用于将IP地址解析为物理地址。 12. IP地址的组成: - IP地址由网络号和主机号组成,通过与子网掩码进行按位与运算确定网络部分和主机部分。 13. C程序实现循环计数: - 这个问题要求编写一个程序,从1到N顺序计数,每数到M时输出该数值,可以用循环和取余运算实现。 14. switch语句的限制: - switch语句的表达式不能是浮点型,只能是整型或枚举类型。 这些知识点是C/C++程序员在面试或笔试中常见的考察点,深入理解和掌握它们对于提升编程技能和求职竞争力至关重要。