第一部分:基本概念及其它问答题 1、关键字static 的作用是什么? 这个简单的问题很少有人能回答完全。在C 语言中,关键字static 有三个明显的作用: 1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。 大多数应试者能正确回答第一部分,一部分能正确回答第二部分,同是很少的人能懂得第三部分。这是一个应试者的严重的缺点,因为他显然不懂得本地化数据和代码范围的好处和重要性。 2、“引用”与指针的区别是什么? 答 、1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。 指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。 流操作符<<和>>、赋值操作符=的返回值、拷贝构造函数的参数、赋值操作符=的参数、其它情况都推荐使用引用。 3、.h 头文 件 中的ifndef/define/endif 的作用? 答:防 止 该 头文 件 被重复 引用。 4、#include 与 #include “file.h”的区别? 答:前 者是从 Standard Library 的路 径 寻 找 和引用file.h,而后者是从 当 前 工作路 径 搜 寻 并 引用file.h。 5、描 述 实 时 系 统 的基本特 性 答 :在特 定 时 间内完成 特 定 的任 务 ,实 时 性与可靠 性。 6、全局变量和局部变量在内存中是否 有区别?如 果 有,是什么区别? 答 :全局变量储 存在静态数据区,局部变量在堆 栈 中。 7、什么是平 衡 二叉 树 ? 答 :左 右 子 树 都是平 衡 二叉 树 且 左 右 子 树 的深 度 差值的绝 对值不大于 1。 8、堆 栈 溢 出 一般 是由 什么原 因导 致 的? 答 :1.没 有回收 垃 圾 资 源 2.层 次 太 深 的递 归 调用 9、冒泡排序算法的时间复杂度是什么? 答 :O(n^2) 10、什么函数不能声明为虚函数? 答:constructor 11、队列和栈有什么区别? 答:队列先进先出...