C/C++笔试题集锦:涵盖静态变量、内存管理等核心知识点

需积分: 4 1 下载量 16 浏览量 更新于2024-11-13 收藏 63KB TXT 举报
"c/c++ 笔试题 主要是c的" 这部分内容主要涵盖了一些C/C++编程语言的基础知识点,包括静态变量、作用域、内存管理、构造函数、算法效率、网络协议等方面。以下是对这些知识点的详细解释: 1. 静态变量 (static) - 在函数内部声明的静态变量在每次调用时不会被重新初始化,保留了上次调用的值。 - 如果在全局作用域或类中声明静态变量,它只有一份存储空间,所有对象共享。 - 静态变量可以用extern关键字在其他地方声明,以便在其他文件中引用。 2. 作用域 (Scope) - 作用域决定了变量在何处可见和可访问。局部变量只在其定义的代码块内有效,而全局变量在整个文件或声明它们的范围内都有效。 - C++中,类的成员变量默认为私有(private),除非声明为公有(public)或受保护(protected)。 3. 构造函数 (Constructor) - 构造函数是在创建对象时自动调用的特殊成员函数,用于初始化对象的成员变量。 - 构造函数的名字必须与类名相同,并且没有返回类型。 4. 动态内存管理 (Dynamic Memory Management) - 使用`new`运算符动态分配内存,使用`delete`释放内存。未正确释放内存可能导致内存泄漏。 - `new[]`用于动态分配数组,`delete[]`用于释放数组。 5. 算法效率 (Algorithm Efficiency) - 问题提到的`O(n^2)`表示平方时间复杂度,意味着算法执行时间与输入大小n的平方成正比。 6. 浮点数比较 (Floating-point Comparison) - 比较浮点数时,不能直接使用`==`或`!=`,因为浮点数的精度问题可能导致预期外的结果。通常使用一个小的阈值来判断是否接近零。 7. Internet协议栈 - TCP/IP协议栈是Internet通信的基础,包括网络接口层、网络层、传输层和应用层。 - IP地址转换为物理地址通过ARP(Address Resolution Protocol)协议完成。 8. IP地址的分类 - IP地址分为A、B、C、D、E五类,其中A、B、C类用于常规主机,D类用于多播,E类预留。 9. 位操作 (Bitwise Operations) - 位操作用于处理二进制数据,例如位移(左移`<<`,右移`>>`)、按位与(`&`)、按位或(`|`)、按位异或(`^`)和按位非(`~`)。 10. 循环结构 (Loop Structures) - `for`、`while`和`do...while`循环各有特点,`for`适合已知循环次数,`while`和`do...while`适合条件控制循环。 11. 复杂度分析 - 问题中的`O(1)`表示常数时间复杂度,意味着算法执行时间不随输入大小变化。 12. 析构函数 (Destructor) - 析构函数是对象生命周期结束时自动调用的特殊函数,用于清理对象占用的资源。 13. 函数重载 (Function Overloading) - C++允许在同一作用域内声明多个同名但参数列表不同的函数。 14. 数值比较的陷阱 - 比较浮点数时使用`if(x>0.000001&&x<-0.000001)`来避免由于浮点数精度问题导致的误判。 15. C和C++中的命名空间 (Namespaces) - 命名空间用于解决标识符冲突,通过`namespace`关键字定义。 16. switch语句 - `switch`语句根据表达式结果选择执行相应的代码块,可以包含多个`case`标签。 以上是C/C++编程中的一些基本概念和知识点,掌握这些对于理解C/C++编程至关重要。