1、static有什么用途?(請(qǐng)至少說明兩種)
(1).限制變量的作用域(變量、函數(shù)只能在該文件中使用)
(2).設(shè)置變量的存儲(chǔ)域 (在全局區(qū)分配內(nèi)存)
2、引用與指針有什么區(qū)別?
1) 引用必須被初始化,指針不必。 (引用是給變量起一個(gè)別名,所以要指明是那么變量,使用int a;int &rc=a)
2) 引用初始化以后不能被改變,指針可以改變所指的對(duì)象。
3) 不存在指向空值的引用,但是存在指向空值的指針。 int &rc=NULL ; //ERROR
4)不能建立引用的引用,不能建立指向引用的
指針。因?yàn)橐貌皇且环N數(shù)據(jù)類型,所以沒有引用的引用,沒有引用的指針。 但是可以建立指向指針的指針、
注意:可以建立指針的引用,相當(dāng)于給指針起一個(gè)別名。
5)不能建立
數(shù)組的引用。因?yàn)閿?shù)組是一個(gè)由若干個(gè)元素所組成的集合,所以無法建立一個(gè)數(shù)組的別名,但是可以建立指向數(shù)組的指針
3、描述實(shí)時(shí)系統(tǒng)的基本特性
在特定時(shí)間內(nèi)完成特定的任務(wù),實(shí)時(shí)性與可靠性(
時(shí)鐘信號(hào)能夠準(zhǔn)確的定時(shí)) (所謂“實(shí)時(shí)操作系統(tǒng)”,實(shí)際上是指操作系統(tǒng)工作時(shí),其各種資源可以根據(jù)需要隨時(shí)進(jìn)行動(dòng)態(tài)分配。由于各種資源可以進(jìn)行動(dòng)態(tài)分配,因此其處理事務(wù)的能力較強(qiáng)、速度較快。 早期的操作系統(tǒng)的各種資源都是事先已經(jīng)分配好的,工作期間這些資源不能再重新進(jìn)行分配。因此其處理事務(wù)的能力較差、速度較慢,現(xiàn)在則稱之為“非實(shí)時(shí)操作系統(tǒng)”。但“非實(shí)時(shí)操作系統(tǒng)”誕生時(shí),其功能、性能等在當(dāng)時(shí)也是非常強(qiáng)的,人們?cè)谖凑J(rèn)識(shí)到更好的操作系統(tǒng)之前并不將其這樣稱呼。將來如果新的、功能更強(qiáng)的、實(shí)時(shí)性能更高的操作系統(tǒng)出現(xiàn),也許現(xiàn)在稱之為“實(shí)時(shí)”的操作系統(tǒng)則可能將讓位于新的“實(shí)時(shí)操作系統(tǒng)”了。從這方面講“實(shí)時(shí)操作系統(tǒng)”是一個(gè)相對(duì)的概念的)
4、 全局變量和局部變量在內(nèi)存中是否有區(qū)別?如果有,是什么區(qū)別?
全局變量儲(chǔ)存在靜態(tài)數(shù)據(jù)庫,局部變量在堆棧
那么有那些是全局變量呢?
(1)、外部變量 ,定義在函數(shù)(或者主函數(shù))前。但其使用只能在定義后。加上在別的文件中使用要加上extent聲明。
(2)、static表明的全局的靜態(tài)變量。只在定義文件有效。、
局部變量包括三種類型:自動(dòng)型(auto)、靜態(tài)型(static)和寄存器型(register)
auto型就是我們平時(shí)定義的類型,默認(rèn)為auto
static表明為局部靜態(tài)變量,主要性能是只被初始化一次,下次進(jìn)入該函數(shù)時(shí)該變量是上次運(yùn)行結(jié)束后的值。
register作用是定義寄存器變量,為了讓變量計(jì)算速度更快。
5、什么是平衡二叉樹?
左右子樹都是平衡二叉樹 且左右子樹的深度差值的絕對(duì)值不大于1
掌握4種旋轉(zhuǎn)。
單向向右旋型:在結(jié)點(diǎn)左子樹插入左子樹。
單向向左旋型:在結(jié)點(diǎn)右子樹插入右子樹。
先左后右:在結(jié)點(diǎn)左子樹插入右子樹。
先右后左:在結(jié)點(diǎn)右子樹插入左子樹。
算法參考http://www.shnenglu.com/Cass/archive/2011/10/04/157454.html
6、堆棧溢出一般是由什么原因?qū)е碌模?舉例說明。
(堆棧溢出就是不顧堆棧中分配的局部數(shù)據(jù)塊大小,向該數(shù)據(jù)塊寫入了過多的數(shù)據(jù),導(dǎo)致數(shù)據(jù)越界,結(jié)果覆蓋了老的堆棧數(shù)據(jù)。)
沒有回收垃圾資源
層次太深的遞歸調(diào)用
7、什么函數(shù)不能聲明為虛函數(shù)?
constructor //構(gòu)造函數(shù)與析構(gòu)函數(shù)
那么什么是虛函數(shù)、為什么說虛函數(shù)是實(shí)現(xiàn)面向?qū)ο蟮亩鄳B(tài)性參考http://www.shnenglu.com/Cass/archive/2011/09/30/157249.html
8、冒泡排序算法的時(shí)間復(fù)雜度是什么?
O(n^2)
那么,各種排序的復(fù)雜度分析如下:
(1)、冒泡排序:兩數(shù)比較,小的往前放大的往后。復(fù)雜度O(n^2) ,是一種穩(wěn)定的排序算法、。
(2)、選擇排序:序列中選出最?。ù螅┲?,擺在前面。復(fù)雜度O(n^2) ,是一種不穩(wěn)定的排序算法。
(3)、插入排序:O(n^2)。穩(wěn)定
①、簡單直接插入:把序列分成兩斷。有序和無序。循環(huán)把無序段插入有序段。復(fù)雜度為O(n^2) ,是一種穩(wěn)定的排序。需要后移元素。
②、折半排序:是直接排序與折半查找的結(jié)合。時(shí)間復(fù)雜度為O(n^2)。是穩(wěn)定的排序
(4)、快速排序:設(shè)key=e[0].作為關(guān)鍵數(shù)據(jù)。兩個(gè)游標(biāo) K=1;J=N-1; J往前找第一個(gè)比Key小的元素,交換。K往后找第一個(gè)比key大的元素,交換
(5)、歸并排序:待排序序列分為若干個(gè)子序列,每個(gè)子序列是有序的,時(shí)間復(fù)雜度為O(nlogn),穩(wěn)定
參考:http://www.shnenglu.com/Cass/archive/2011/10/13/158249.html
(6)、堆排序:O(nlogn)。 不穩(wěn)定的排序算法
參考http://www.shnenglu.com/Cass/archive/2011/10/01/157298.html
(7)、基數(shù)排序:
(8)、希爾排序:
:
注意:判斷算法穩(wěn)定排序的依據(jù)。
假定在待排序的記錄序列中,存在多個(gè)具有相同的關(guān)鍵字的記錄,若經(jīng)過排序,這些記錄的相對(duì)次序保持不變,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,則稱這種排序算法是穩(wěn)定的;否則稱為不穩(wěn)定的。
///////////////////////////待續(xù)、
posted on 2011-10-12 00:21
Yu_ 閱讀(721)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
The Interview