华为笔试题集:涵盖静态变量、指针与引用等知识点

4星 · 超过85%的资源 需积分: 9 3 下载量 46 浏览量 更新于2024-07-31 收藏 298KB DOC 举报
"华为笔试题大全,涵盖了C++语言、数据结构、操作系统、网络协议等多个IT领域的基础知识点,包括static的用途、引用与指针的区别、实时系统特性、内存管理、排序算法、网络协议等。" 1. `static`关键字的用途: - 在函数内部声明的静态变量(局部静态变量):每次函数调用时,该变量的值会保留,不会重新初始化。 - 在函数外部声明的静态变量(全局静态变量):只对当前源文件可见,限制了外部访问,起到了一定的封装作用。 - 在模块内声明的静态函数:仅限于该模块内的其他函数调用,不允许外部函数访问。 2. 引用与指针的区别: - 引用必须在声明时初始化,一旦绑定到某个对象后,不能再改变引用的对象。 - 指针则可以在生命周期内改变所指向的对象。 - 不存在空引用,而指针可以为空,表示不指向任何对象。 3. 实时系统的基本特性: - 实时性:系统必须在规定的时间内完成任务。 - 可靠性:系统应能持续稳定地执行任务,确保任务的正确执行。 4. 全局变量和局部变量在内存中的区别: - 全局变量存储在静态存储区,程序运行期间一直存在,直到程序结束。 - 局部变量存储在栈空间,函数调用结束时自动释放。 5. 平衡二叉树的定义: - 平衡二叉树是一种特殊的二叉树,其左右子树高度差不超过1,并且左右子树都是平衡二叉树。 6. 堆栈溢出的原因: - 当程序分配的栈空间不足以存放新的局部变量或者递归调用时,可能导致堆栈溢出。 7. 不能声明为虚函数的函数: - 构造函数不能声明为虚函数,因为虚函数是在对象实例化后才生效,而构造过程是在对象创建时进行。 8. 冒泡排序的时间复杂度: - 最坏情况下,冒泡排序的时间复杂度是O(n^2)。 9. 浮点数与零值比较的if语句: - 使用一个足够小的正数ε作为阈值,比较浮点数x与零的绝对差是否大于ε,例如:`if (std::abs(x) > 0.000001)`。 10. Internet采用的网络协议及层次结构: - TCP/IP协议栈是Internet的基础,主要层次结构为:应用层、传输层、网络层、数据链路层和物理层。 11. IP地址与物理地址转换协议: - ARP(地址解析协议)用于将IP地址转换成物理地址(MAC地址)。 12. IP地址的组成部分: - IP地址由网络号和主机号两部分构成,通过子网掩码来确定网络部分和主机部分。 13. 循环数数的C程序设计: - 使用循环和取余操作,可以实现从1到N的数数,每数到M时输出该数值。 14. switch语句不能接受的参数类型: - switch语句的表达式不能是浮点数类型。 以上是华为笔试题中涉及的部分知识点,涵盖了编程语言特性、数据结构、操作系统、网络等多个方面,这些都是IT从业者应具备的基础知识。