posts - 34,comments - 2,trackbacks - 0
1、static有什么用途?(请至少说明两种)
(1).限制变量的作用域(变量、函数只能在该文件中使用)
(2).设置变量的存储域 (在全局区分配内存)

2、引用与指针有什么区别?
1) 引用必须被初始化,指针不必。 (引用是给变量起一个别名,所以要指明是那么变量,使用int a;int &rc=a)
2) 引用初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引用,但是存在指向空值的指针。 int &rc=NULL ; //ERROR
4)不能建立引用的引用,不能建立指向引用的指针。因为引用不是一种数据类型,所以没有引用的引用,没有引用的指针。 但是可以建立指向指针的指针、
注意:可以建立指针的引用,相当于给指针起一个别名。
5)不能建立数组的引用。因为数组是一个由若干个元素所组成的集合,所以无法建立一个数组的别名,但是可以建立指向数组的指针

3、描述实时系统的基本特性
在特定时间内完成特定的任务,实时性与可靠性(时钟信号能够准确的定时) 

(所谓“实时操作系统”,实际上是指操作系统工作时,其各种资源可以根据需要随时进行动态分配。由于各种资源可以进行动态分配,因此其处理事务的能力较强、速度较快。  早期的操作系统的各种资源都是事先已经分配好的,工作期间这些资源不能再重新进行分配。因此其处理事务的能力较差、速度较慢,现在则称之为“非实时操作系统”。但“非实时操作系统”诞生时,其功能、性能等在当时也是非常强的,人们在未认识到更好的操作系统之前并不将其这样称呼。将来如果新的、功能更强的、实时性能更高的操作系统出现,也许现在称之为“实时”的操作系统则可能将让位于新的“实时操作系统”了。从这方面讲“实时操作系统”是一个相对的概念的)

4、 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?
全局变量储存在静态数据库,局部变量在堆栈
那么有那些是全局变量呢?
(1)、外部变量 ,定义在函数(或者主函数)前。但其使用只能在定义后。加上在别的文件中使用要加上extent声明。
(2)、static表明的全局的静态变量。只在定义文件有效。、
局部变量包括三种类型:自动型(auto)、静态型(static)和寄存器型(register)
auto型就是我们平时定义的类型,默认为auto
static表明为局部静态变量,主要性能是只被初始化一次,下次进入该函数时该变量是上次运行结束后的值。
register作用是定义寄存器变量,为了让变量计算速度更快。

5、什么是平衡二叉树?
左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于1
掌握4种旋转。
单向向右旋型:在结点左子树插入左子树。
单向向左旋型:在结点右子树插入右子树。
先左后右:在结点左子树插入右子树。
先右后左:在结点右子树插入左子树。
算法参考http://www.cppblog.com/Cass/archive/2011/10/04/157454.html

6、堆栈溢出一般是由什么原因导致的? 举例说明。
(堆栈溢出就是不顾堆栈中分配的局部数据块大小,向该数据块写入了过多的数据,导致数据越界,结果覆盖了老的堆栈数据。)
没有回收垃圾资源
层次太深的递归调用

7、什么函数不能声明为虚函数?
constructor   //构造函数与析构函数 
那么什么是虚函数、为什么说虚函数是实现面向对象的多态性参考http://www.cppblog.com/Cass/archive/2011/09/30/157249.html

8、冒泡排序算法的时间复杂度是什么?
O(n^2)
那么,各种排序的复杂度分析如下:
(1)、冒泡排序:两数比较,小的往前放大的往后。复杂度O(n^2) ,是一种稳定的排序算法、。
(2)、选择排序:序列中选出最小(大)值,摆在前面。复杂度O(n^2) ,是一种不稳定的排序算法。
(3)、插入排序:O(n^2)。稳定
①、简单直接插入:把序列分成两断。有序和无序。循环把无序段插入有序段。复杂度为O(n^2) ,是一种稳定的排序。需要后移元素。
②、折半排序:是直接排序与折半查找的结合。时间复杂度为O(n^2)。是稳定的排序
(4)、快速排序:设key=e[0].作为关键数据。两个游标 K=1;J=N-1; J往前找第一个比Key小的元素,交换。K往后找第一个比key大的元素,交换
(5)、归并排序:待排序序列分为若干个子序列,每个子序列是有序的,时间复杂度为O(nlogn),稳定
参考:http://www.cppblog.com/Cass/archive/2011/10/13/158249.html

(6)、堆排序:O(nlogn)。 不稳定的排序算法
参考http://www.cppblog.com/Cass/archive/2011/10/01/157298.html
(7)、基数排序:
(8)、希尔排序:


注意:判断算法稳定排序的依据。
假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。


///////////////////////////待续、

posted on 2011-10-12 00:21 Yu_ 阅读(560) 评论(0)  编辑 收藏 引用 所属分类: The Interview

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理