1.寫出循環隊列的定義,以及創建隊列,刪除一個節點,增加一個節點以及計算隊列長度的算法
2.在c語言中,內存分配時棧和堆的區別,各自的優缺點
malloc函數是堆分配函數,是從堆中分配到空間
3.某帶頭結點的.單鏈表的結點結構如下:
typedef struct nodel{
int data
struct nodel*next;
}node;
試設計一個算法,void copy(node *head1, node *head2),用c語言設計,將以head1
爲頭指針的單鏈表複製到一個不帶頭結點且以head2爲頭指針的單鏈表中。
4.寫出函數指針的定義
int (*p)()
ic變量和全局變量的區別
靜態變量只能在它的訪問範圍內訪問
全局變量全局可訪問
全局或靜態變量,就在全局數據段中分配空間,也就是靜態分配
6.有一個12個元素的有序表,關鍵字是數據元素的值,
{4,7,10,12,15,17,20,24,26,29,30,32}
試寫出用二分法查找k=12的查找過程,共用幾次比較完成?
7.給了一個數組,讓你從小到大排序,記得幾種排序算法寫上,再問你你寫的這幾種算法那種效率最高,
8.a和b通信,a需要知道b的身份,通常的辦法是a要獲得b的用戶代碼和固定的
口令進行比較,但是爲提高系統的安全性,希望用戶b的口令不固定,每次驗證都不相同,給定下列條件,請設計一個認證過程進行描述。
條件:a和b已經協商好雙方通信的加密算法和密鑰。
9.c語言定義雙向鏈表結構,並編程實現2個結點的交換(不是內容交換,是結點的交換)