"这篇资源包含了华为C/C++笔试题的精选集合,适合准备C++程序员笔试的人员复习。题目涵盖范围广泛,包括了C++语言的基础概念、内存管理、数据结构、程序设计等方面的知识。"
1. 静态变量(static)的作用:
- 在函数内部,静态变量在函数多次调用时保持其值不变,实现数据持久化。
- 在模块(文件)级别,静态变量限制了其作用域,只能在定义该变量的模块内部访问,提供了一种隐藏数据的方式。
- 静态函数只能在声明它的模块内部被调用,增强了封装性。
2. 引用与指针的区别:
- 引用在声明时必须初始化,而指针可以不初始化。
- 引用一旦绑定到一个对象后,不能改变引用的目标,而指针可以改变所指的对象。
- 没有空引用的概念,所有引用总是引用某个具体的对象;而指针可以是NULL,表示不指向任何对象。
3. 实时系统的基本特性:
- 实时性:系统必须在规定的时间内完成任务,否则可能导致严重后果。
- 可靠性:确保在规定时间内完成任务的同时,系统运行稳定,错误率低。
4. 全局变量与局部变量的内存区别:
- 全局变量存储在静态存储区,生命周期贯穿整个程序执行过程。
- 局部变量存储在栈区,随着函数调用的结束,其内存会被自动释放。
5. 平衡二叉树(AVL树):
- 左右两个子树的高度差最多为1,并且左右两个子树都是一棵平衡二叉树,保证了查找效率。
6. 堆栈溢出的原因:
- 主要由于程序中动态分配的栈空间过大,超过了栈的容量,导致栈顶指针超出栈的范围。
7. 不能声明为虚函数的函数:
- 构造函数不能声明为虚函数,因为虚函数是在对象实例化后通过指针或引用调用的,而构造函数在对象创建时执行,此时尚未有指针或引用指向新对象。
8. 冒泡排序的时间复杂度:
- 最好情况(已排序):O(n),最坏情况(逆序):O(n^2),平均情况也是O(n^2)。
9. float x 与零值比较的if语句:
- 示例中的if语句尝试避免浮点比较的陷阱,使用了一个很小的误差范围来判断接近于零的值。
10. Internet使用的网络协议:
- TCP/IP协议,包括应用层、传输层、网络层、数据链路层和物理层。
11. IP地址与物理地址转换的协议:
- ARP(地址解析协议)用于将IP地址转换成物理地址(MAC地址)。
12. IP地址的组成部分:
- IP地址由网络号和主机号两部分组成,通过子网掩码确定网络位和主机位。
13. C程序示例:用户输入M和N,顺序循环输出1至N中每数到M的数值。
- 可以使用循环和取余运算实现,具体代码未给出。
14. switch()语句不能接受的参数类型:
- switch语句的表达式不能是浮点型(实型)。
此外,题目还提到了一些表达式求解的问题,例如关于a的值的计算,但未给出完整的表达式。完整的解答需基于完整的表达式进行分析。