C/C++笔试面试题集:华为、联想、摩托罗拉等公司考题解析

4星 · 超过85%的资源 需积分: 10 44 下载量 153 浏览量 更新于2024-08-02 收藏 171KB DOC 举报
"这篇资料汇集了C和C++的相关笔试题目,主要来自华为、联想、摩托罗拉等公司的面试和笔试,涵盖了网络协议、数据结构、面向对象编程等多个方面。内容包括OSI七层模型与TCP/IP五层模型的对比、IP协议、交换机与路由器的工作原理、C++类与C结构体的区别、析构函数和虚函数的用法、全局变量与局部变量的差异,以及8086系统的特点等。此外,还涉及到了进程和线程的区别、静态成员变量和静态成员函数的作用,以及malloc和new在内存分配上的不同。" 这篇文章提供了丰富的C和C++编程及计算机网络基础的笔试题目,适合准备面试或提升技术能力的人士参考。首先,OSI七层模型与TCP/IP五层模型的对比是网络基础知识,OSI模型包括应用层、表示层、会话层、传输层、网络层、数据链路层和物理层,而TCP/IP模型省略了会话层和表示层。IP协议在网络层,主要负责数据包的传输,TCP和UDP都是传输层协议,但TCP提供可靠的连接,而UDP则侧重于效率。 接着,交换机工作在数据链路层,通过MAC地址进行数据转发,而路由器在网络层,基于IP地址进行路由选择。C++的类和C中的struct主要区别在于默认访问权限和成员函数支持,类的成员默认为private,而struct为public,且C++类支持封装、继承和多态等特性。 析构函数在对象生命周期结束时自动调用,用于清理工作,而虚函数是实现多态的关键,允许子类重写父类的方法。全局变量在整个程序范围内有效,局部变量仅在其声明的代码块内有效,两者的存储位置和生命周期不同。 8086处理器是16位系统,数据总线的设计使得它可以处理16位数据。关于进程和线程,进程是系统资源分配的基本单位,线程是执行单元,一个进程可以包含多个共享资源的线程。静态成员变量和函数属于类本身而非对象,所有类实例共享同一份静态成员。 malloc和new都是动态内存分配方式,但malloc是C库函数,new是C++的运算符,new可以自动调用构造函数初始化对象,而malloc不支持此功能,需要程序员手动管理内存初始化和释放。