华为C++笔试重点:静态变量、引用与指针、实时系统特性
下载需积分: 9 | DOC格式 | 90KB |
更新于2024-09-18
| 38 浏览量 | 举报
"本文涵盖了华为C++笔试题中的关键知识点,包括static的作用、引用与指针的区别、实时系统特性、内存中的变量存储、平衡二叉树概念、堆栈溢出原因、虚函数的限制、冒泡排序时间复杂度、浮点数比较、网络协议TCP/IP及其层次结构、IP地址与物理地址转换协议ARP、IP地址结构、循环计数程序设计以及switch语句的参数限制。"
1. `static`关键字的用途:
- 在函数内部,static变量使得变量的值在函数多次调用间保持不变,即具有持久性。
- 在模块级别,static修饰的变量仅对本模块可见,提供了一种封装机制。
- 对于函数,static可以限制其作用域,使其成为内部函数,只在声明它的模块内可用。
2. 引用与指针的区别:
- 引用必须在声明时初始化,而指针可以在任何时候被赋值。
- 引用一旦初始化后,不能改变引用的对象,而指针可以改变所指向的地址。
- 不存在空引用,但指针可以为NULL,表示不指向任何对象。
3. 实时系统的基本特性:
- 实时性:系统必须在规定的时间内完成任务,否则可能导致错误或失败。
- 可靠性:系统应能持续稳定地执行任务,确保关键操作的正确完成。
4. 全局变量和局部变量的内存区别:
- 全局变量存储在静态存储区,生命周期贯穿整个程序运行期间。
- 局部变量存储在栈上,随着所在函数的调用和结束,其生命周期随之变化。
5. 平衡二叉树的定义:
- 平衡二叉树是一种特殊的二叉树,其左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
6. 堆栈溢出的原因:
- 主要是由于分配给栈的内存空间不足,当分配的局部变量过多或递归过深时,可能导致堆栈溢出。
7. 不能声明为虚函数的函数:
- 构造函数不能声明为虚函数,因为虚函数是在对象实例化后确定行为的,而构造过程在对象创建时进行。
8. 冒泡排序的时间复杂度:
- 最坏情况下,冒泡排序的时间复杂度为O(n^2),其中n是待排序元素的数量。
9. 浮点数x与零值比较的if语句:
- if(x > 0.000001 && x < -0.000001) 这样的条件用于判断x是否接近于零,但不等于零。
10. Internet采用的网络协议及层次结构:
- TCP/IP协议是Internet的基础协议。
- 主要层次结构为:应用层、传输层、网络层、数据链路层和物理层。
11. IP地址与物理地址转换协议:
- ARP (Address Resolution Protocol) 负责将IP地址转换为物理地址(MAC地址)。
12. IP地址编码的两部分:
- IP地址由网络号和主机号组成,通过子网掩码确定这两部分。
13. 循环计数程序设计:
- 使用循环链表和取余运算,可以实现从1到N的顺序计数,每数到M就输出该数值。
14. switch()的参数限制:
- switch语句的参数不能是浮点型,只能是整型、字符型或者枚举类型。
相关推荐
sj0519
- 粉丝: 3
- 资源: 11
最新资源
- Quickstart Apache Axis2
- Aspect-Oriented_Java_Development
- Visual Basic6.0中文版程序员指南(PDF)
- IIC总线规范——中文版
- Vc6.0++MFC编程实例2讲解详细(宝贵资源)
- maemo开发手册,使用方法
- Kdevelop入门教程(中文版)
- VxWorks操作系统指南(ALL)
- gdb-refcard pdf gdb指令大全
- C#完全手册中文版电子书PDF
- SOA.Using.JavPrentice.Hall.a.Web.Services.May.2007
- Tinking in java4
- Eclipse中文教程
- "A Heavily Commented Linux kernel Source Code (Kernel 0.11)"
- MyEclipse6 安装FLEX
- 链表C语言实现 功能齐全