1.陣列元素的下標值越大,訪問時間越長,這樣的說法正確嗎?
正確答案: b
正確不正確
解析:訪問,指讀出,寫入,時間複雜度都是o(1),不是插入和刪除操作
2.有兩個nn的矩陣a和b,想要在pc上按矩陣乘法基本演算法程式設計實現計算ab。假設n較大,本機記憶體也很大,可以存下a、b和結果矩陣。那麼,為了計算速度,a和b在記憶體中應該如何儲存(按行存指先儲存第一行,再第二行,直到最後一行;按列存指先儲存第一列,再第二列,直到最後一列)?
正確答案: b
a按行存,b按行存。
a按行存,b按列存。
a按列存,b按行存。
a按列存,b按列存。
解析:3.有n個數存放在一維陣列a[1…n]中,在進行順序查詢時,這n個數的排列有序或無序其平均查詢長度不同。()
正確答案: b
正確錯誤
解析:在等概率下,查詢成功時的平均查詢長度相同,查詢失敗時的平均查詢長度不相同。如果查詢失敗,有序表可以盡早退出,而無序表必須全部遍歷完,所以平均查詢長度不同。例如對於有序表12345,查詢-1時,在遍歷第乙個元素即可退出,而無序表需要將整個表遍歷完。
4.將乙個a[1…100,1…100]的三對角矩陣,按行優先存入一維陣列b[1…298]中,a中元素a6665 (即該元素下標i=66,j=65),在b陣列中的位置k為()供選擇的答案:
正確答案: b
198195
197解析:
這是三角矩陣
****5.下列選項中,能正確定義陣列的語句是( )。
正確答案: b
int num[0..2008];
int num=;
int n = 2008;
int num[n];
#define n 2008;
int num[n];****
解析:d項不對,覺得不是陣列定義有問題,應該是巨集定義後面不需要分號
6.廣義表的取表尾運算,其結果通常是個表,但有時也可是個單元素值()
正確答案: b對錯
解析:表尾是指除去表頭後剩下的元素組成的表,表頭可以為表或單元素值
7.在乙個長為33厘公尺的光滑凹軌上,在第3厘公尺、第6厘公尺、第19厘公尺、第22 厘公尺、第26厘公尺處各有乙個鋼珠,凹軌很細,不能同時通過兩個鋼珠,開始時,鋼珠運動方向是任意的。兩個鋼珠相撞後,以相同速度反向運動。假設所有鋼珠初 始速度為每秒運動1厘公尺,那麼所有鋼珠離開凹軌的最長可能時間是()
正確答案: a
3026
3833
解析:
首先要理解為穿越問題。然後如下分析:
所有球離開的最長時間,就可以等效為最後離開的那個球的時間,也就變成找哪個球離左邊或右邊出口的距離最遠,顯然5個球中,第乙個球離右端出口(33-3)30是距離最遠的,故最後答案是30;
若求最短時間,同上,找每個球離左右出口最小的值中的最大值即可。最後是(33-19)14
8.下面哪幾個語句正確的宣告乙個整型的二維陣列()
正確答案: c d
int a=new int
int b[10][10]=new int
int c=new int[10][10]
int d=new int[10][10]
解析:
定義一維陣列時,必須顯式指明陣列的長度;
定義多維陣列時,其一維陣列的長度必須首先指明,其他維陣列長度可以稍後指定;
採用給定值初始化陣列時,不必指明長度;
「」 是陣列運算子的意思,在宣告乙個陣列時,陣列運算子可以放在資料型別與變數之間,也可以放在變數後。
演算法與資料結構專項練習1
1.32系統,函式 void func char str 100 中sizeof str 正確答案 a45 67 解析 陣列作為引數時,裡的數不起作用,傳遞的是首元素的位址,32位os下是4個位元組,陣列具體有多少個元素,要自己指出,比如void func char str,int n 2.對於長度...
資料結構與演算法 3
非遞迴 o n logn 示例 mergesort 求陣列最小和問題 求陣列中 每個數左側所有比它小的數的和 的和 求降序對問題 陣列中每個數與其右側比它小的數組成的二元組 上題反過來即可 partition過程 給定乙個陣列arr,和乙個整數num,請把小於num的數放在陣列的左邊,大於num的數...
資料結構與演算法練習18
首先判斷字串如果長度為0或1就直接返回它的長度。然後用head指向每次子串的首位置,rear指向末位置的下乙個位置,子串的長度就是rear head。雙層for迴圈,外迴圈 i 遍歷1到s.length,內迴圈 j 判斷當前位置 i 是否等於head到rear間的乙個字元,如果相等,就令head j...