TOP

蘇州信描軟件公司 筆試題(軟件方面)-答案
2014-11-23 22:07:26 】 瀏覽:10317
Tags:

1. 對數組元素進行排序的思路是什么?你還知道哪些排序方法


答:起泡法


(1):從數組末端開始,不斷比較相鄰記錄,不滿足排序要求就交換,這樣比較完一輪后,就會發現最小的元素已被推到數組的最左端R0的位置上,就好象一個氣泡從湖底慢慢的冒上來,最后浮出水面。


(2):然后開始第二輪冒泡過程,由于R0已經是最小的記錄了,所以第二輪只要對


Rn-1到 R1進行比較就可以了。第二次冒泡結束后,第二小的記錄就被推到R1位置上了。如此類推,直到數組中所以記錄都排好序為止。


除了冒泡算法,還有:插入排序、直接選擇排序、快速排序、歸并排序、堆排序、Shell排序 等。


2. 在編寫程序之前,你是否是先畫出程序的流程圖了?談談流程圖對你在編程時的幫助。試寫出對一列數用選擇排序法進行升序排序的程序流程圖。


答:是的,流程圖能形象的表示程序的流程,能給人清晰直觀的感覺。流程圖能把我建立清晰的程序結構,有利于程序編寫時的參考。


程序流程圖略.


3. 在c/c++中,談談對continue 與break 的區別。


答:continue是終止當前次的循環并轉入下次循環的入口,break則是終止它所在的整個循環體,轉到循環結構的下面指令進行執行。


4. 在處理動態鏈表時常常需要哪些函數?它們各自的功用是什么?可以用其它方式替代嗎?


答:一般要用到:FindIndex(const int i),//查找單鏈表中第i個結點;


Insert(value,i),//插入數據內容為value的新結點,使之成為第i個結點;


RmoveAfter(In),//刪除由參數In指定的結點的下一個結點;


New Type,//新申請一塊由Type指定類型數據的內存空間。


這些函數可以由已知頭結點的指針,通過編寫代碼來實現其功能。


5. 在數組的存儲中,對于稀疏矩陣是怎么樣存儲的?常采用什么樣的結構?


答:用數組存儲稀疏矩陣時,一般使用三元組(i,j,V)來順序存儲稀疏矩陣,其中i表示該元素的行號,j表示該元素的列號,V表示該元素的值。


用三元組存儲稀疏矩陣時進行矩陣的查找、添加、刪除等運算時十分不方便,所以經常使用十字鏈表法來存儲稀疏矩陣。


6. 編程時,內存的分配方式有哪幾種?分別有什么特點?


答:一、從靜態存儲區域分配。內存在程序編譯的時候就已經分配好优乐棋牌app下载,這塊內存在程序的整個運行期間都存在。例如全局變量。
二、在棧上創建。在執行函數時,函數內局部變量的存儲單元都可以在棧上創建,函數執行結束時這些存儲單元自動被釋放。棧內存分配運算內置于處理器的指令集中,效率很高,但是分配的內存容量有限。
三、從堆上分配,亦稱動態內存分配。程序在運行的時候用malloc(C)或new(C++)申請任意多少的內存,程序員自己負責在何時用free(C)或delete(C++)釋放內存。動態內存的生存期由我們決定,使用非常靈活,但問題也最多。


7. 請你談談指針除了在數組方面的優點外,還有什么其他的優點?也請你談談如何將指針與數組結合使用,以便最大限度地利用它們各自的長處。


答:指針是一種特別的變量优乐棋牌app下载,它所存放的是其他的變量的地址,就是說它所存的數據實際上的其他變量的地址而不是一般的數據。指針的特點就是動態性比較好,可以隨時申請內存空間优乐棋牌app下载,對指針的操作也很靈活。 可以將數組的首地址申明成一個指針,這樣對數組元素的操作就可以化為用指針進行操作,從集合了數組對元素讀取的速度快,而刪除或者添加的則又有指針的快捷。


請關注公眾號獲取更多資料



】【打印繁體】【】【】 【】【】【】 【關閉】 【返回頂部
上一篇騰訊 [ 筆試 一面 二面] 下一篇北京一家公司的Oracle面試題