day23

1:最小代價生成樹是唯一的。(B)
A:正確
B:錯誤
解析:最小生成樹的權重唯一但是樹不唯一
2:對於一維整形數組 a ,以下描述正確的是(D)
A:int a(10)
B:int n=10,a[n]
C:
int n
scanf(”%d”,&n)
int a[n]
D:
#define size 20
int s[size]
解析:定義數組時[]中爲確定值,define定義爲常量,可以使用
3:char s1[10], s2[10] = {“books”};則能將字符串 books 存放到數組 s1 的正確語句是(A)
A:strcpy(s1, s2);
B:s1 = {“books”};
C:s1 = s2;
D:strcpy(s2, s1);
解析:將s2數組裏面的內容複製到s1中
4:設有n個元素的集合,採用帶頭結點有序鏈表來實現,設集合的元素佔8個字節,鏈接指針佔2個字節,該集合的存儲密度爲(C)
A:0.8
B:n/(n+1)
C:0.8n/(n+1)
D:0.8(n+1)/n
解析:存儲密度即存儲元素的密度即元素所佔內存/內存總佔用,內存總佔用=元素佔用+指針佔用+頭結點,即C
5:KMP算法下,長爲n的字符串中匹配長度爲m的子串的複雜度爲(B)
A:O(N)
B:O(M+N)
C:O(N+LOGM)
D:O(M+LOGN)
解析:簡單匹配算法的時間複雜度爲O(mn),KMP匹配算法時間複雜度爲O(m+n).。KMP算法:根據計算出的next數組,若當前不匹配,直接找到下一個匹配的位置,無需整體遍歷一遍,時間複雜度爲o(M+N)
6:有字符數組 a[80] 和 b[80],則正確的輸出語句是(A)
A:puts(a); puts(b);
B:printf("%s,%s", a[], b[]);
C:putchar(a, b);
D:puts(a, b);
解析:puts()輸出一個字符串,遇到’\0’結束,putchar()輸出單個字符,B:printf("%s,%s", a, b)則正確
7:把一棵樹轉換爲二叉樹後,這棵二叉樹的形態是(A)
A:唯一的
B:有多種
C:有多種,根結點沒有左孩子
D:有多種,根結點沒有右孩子
解析:一棵樹轉換爲二叉樹是確定的,因爲給出這個樹之後樹確定,規則一定所以二叉樹確定
8:集合中任何兩個元素都可以比較大小,但比較不滿足傳遞性,則以下說法正確的有(D)
A:可以通過建立二叉搜索樹索引使得在集合中查找元素的時間複雜度降到O(logN)
B:可以進行快排,排序後使用二分查找可以使得在集合中查找元素的時間複雜度降到O(logN)
C:可以通過B樹索引使得在集合中查找元素的時間複雜度降到O(logN)
D:可以通過hash索引使得在集合中查找元素的時間複雜度降到O(1)
解析:ABC需要傳遞性,D中不需要建立索引,需要製作成哈希表 一次比對完成
9:用常規的非遞歸方法遍歷一個平衡二叉樹,所需的時間複雜度和空間複雜度是?(A)
A:O(n),O(n)
B:O(n),O(1)
C:O(n
n),O(nn)
D:O(n),O(n
n)
解析:遍歷二叉樹的算法中的基本操作是訪問結點,則不論按哪一種次序進行遍歷,對n個結點的二叉樹,其時間複雜度均爲O(n)。需輔助空間爲遍歷過程中棧的最大容量,即樹的深度,最壞情況下爲n,則空間複雜度也爲O(n)。
10:下列說法正確的是(A、B、D)
A:二維以上的數組其實是一種特殊的廣義表
B:數組一旦建立,結構的元素個數和元素間的物理存儲關係就不再變化
C:數組是一種線性結構,因此只能用來存儲線性表
D:數組採用順序存儲方式表示

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章