一、單選(10×2'+10× 3' ,選錯倒扣1分)
1.假設一個主機ip為192.168.5.121,子網路遮罩為255.255.255.248,則該主機的網路號部分(包括子網號部分)為——
A.192.168.5.12 B 192.168.5.121C 192.168.5.120D 192.168.5.32
參考答案 C
說明:ip和掩碼位與
2.64位系統上,定義的變數int *a[2][3]佔據的——位元組
A 4 B 12 C 24 D 48
參考答案 D
說明:數組記憶體放的都是指標,64為系統,一個指標佔64位,即8個位元組,8*2*3 = 48.
如果這個題目問64位機器中,int a[2][3]佔多少位元組,則答案應該為24,因為不管是32位還是64位,int總是4位元組。
3.Linux中使用df -h/home 和du -sh/home所查看到的已使用的磁碟容量不同,可能的原因是——
A、命令不同,所以結果肯定不同 B、兩個命令參數有問題
C、運行中的進程開啟的檔案被刪除導致 D、Linux的特性導致的
參考答案 C
說明:Linux的東西我也不清楚,別人討論的說是C
4.一個C語言程式在一台32位機器上運行。程式中定義了三個變數xyz,其中x和z是int,y是short。當x = 127,y = -9時,執行賦值語句 z = x + y後 xyz的值分別是——
A、x = 0000007FH,y = FFF9H,z = 00000076H
B、x = 0000007FH,y = FFF9H,z = FFFF0076H
C、x = 0000007FH,y = FFF7H,z = FFFF0076H
D、x = 0000007FH,y = FFF7H,z = 00000076H
參考答案 D
5.有如下數組定義,int [ ][ ] myArray = new int[3][ ] = { new int [3]{5,6,2},
new int [5]{6,9,7,8,3},
new int [2]{3,2}};
則,myArray[2][2]的值是——
A、9 B、2 C、6 D、越界
參考答案 D
6.快速排序的期望已耗用時間複雜度是——
A、O(n^2) B、O(nlogn)C、O(n)D、O(2^n)
參考答案 B
7.在一個長度為n的順序表中刪除第i個元素,要移動——個,如果在第i前插入一個元素,則後移——個
A、n-i,n-i+1 B、n-i+1,n-i,C、n-i,n-i,D、n-i+1,n-i+1
參考答案 A
8.下面C++程式的輸出是 ——
void f(char *x)
{
x++;
*x = 'a';
}
int main()
{
char str[sizeof("hello")];
strcpy(str, "hello");
f(str);
cout << str;
return 0;
}
A、hello B、halloC、alloD、以上都不是
參考答案 B
9.有以下程式,其執行結果是___
char fun(char x, char y)
{
if(x) return y;
}
int main()
{
int a = '0', b = '1', c = '2';
printf("%c\n", fun(fun(a,b), fun(b,c)));
}
A、函數調用出錯 B、2C、0D、1
參考答案 B
說明:a = ‘0’不是0
10.當n = 6時,下列函數的返回值是——
int foo(int n)
{
if(n <= 2)
return n;
return foo(n-1) +foo(n-2);
}
A、1 B、8 C、13、 D、21
參考答案 C
說明:斐波那契
11.在一台主流配置的PC機上,調用f(35)所需要的時間大概是——
int f(int x)
{
int s = 0;
while(x-->0) s+=f(x);
return max(s, 1);
}
A、幾毫秒 B、幾秒 C、幾分鐘 D、幾小時
參考答案 D
說明:計算結果是2^35,程式跑了很多次遞迴。具體執行過程一時說不清楚。。。
12.在一棵度為4的樹T中,若有20個度為4的結點,10個度為3的結點,1個度為2的結點,10個度為1的結點,則樹T的葉子結點個數是——
A、41 B、82 C、113 D、122
參考答案 B
說明:總度數即為總邊數,總度數 + 1 = 總結點數,設有n個葉子結點,則有 20 * 4 + 10 * 3 + 1 * 2 + 10 * 1 + 1 = 20 + 10 + 1 + 10 + n
得到n = 82
13.有堆棧S,按順序ABCD進棧,則出棧順序不可能存在的是——
A、DCBA B、BACDC、BADCD、CABD
參考答案 D
說明:水題,沒什麼解釋的。
14.使用二分尋找在有序數組a[n]中尋找一個元素x的時間複雜度——
A、O(n) B、O(n^2)C、O(logn)D、O(nlogn)
參考答案 C
15.中標出了每條公路上最大的流量,請問,從S到T最大的流量是——
A、46 B、 47 C、54 D、77
參考答案 A
說明:考的是最大流演算法,我類比了下,找不到比46大的了。
16.一天,有位年輕人來到張老闆店花80元買了件原價160元的紀念品。這件礼物成本65元。結賬時,年輕人掏出100元,張老闆當時沒有零錢,就用那100元向隔壁店家換了零錢,找給年輕人20.但是隔壁店家後來發現那100是假錢,張老闆無奈還了100元。那麼張老闆在這次交易中損失了多少錢——
A、65 B、85 C、100 D、185
參考答案 B
說明:以年輕人的角度想,給了一張假錢,價值為0,得到了65元的衣服,和找回的20元,總共獲利85元;以隔壁店家角度想,自己雖然得到一張假錢,但是後來張老闆又補回來了,不進不出;以張老闆的角度想,衣服給出去了,又把零錢找給別人了,共虧了85.
17.2^100 mod 7 = _
A、2 B、3 C、4 D、5
參考答案 A
說明:原式 = (2^10mod 7)^10 mod 7
18.某公司在華東和華南兩大地區開展業務,年底匯總業績的時候發現,兩大地區的月度客戶轉化率(=成為會員的客戶數/ 訪問店鋪的客戶數)分別提高了10%和5%。以下描述中正確的是——
A、儘管個子的月度轉化率都有提高,但公司的整體月度轉化率仍可能降低
B、市場對業務認可程度提高,越來越多訪問店鋪的客戶成為會員
C、華東區的客戶更容易被轉化,該公司應該把業務重點放在這個地區
D、華南區的客戶更需要提高轉化,該公司應該把業務重點放在這個地區
說明:這個題目我也不會做,瞎蒙了個B。。。等待其他更準確的答案。。。
19.一次又8個人蔘加的網球比賽,根據選手實力。分別編號1——8,1號實力最強,而實力差距小於等於2才有可能爆冷。8人進行1/4決賽,勝出的4人繼續半決賽,直到產生冠軍。問有可能獲得冠軍的編號最大的選手是——
A、4 B、6 C、7 D、8
參考答案 B
說明:想給7找機會的,實在找不到。
20.某國家非常重男輕女,若一戶人家生了一個女孩,便再要一個,直到生下男孩為止。假設生男生女機率相等,問平均每戶有幾個女孩
A、 0.5 B、2/3C、1D、4/3
參考答案 C
說明:兩種思路,直接根據機率公式計算求期望,不過算起來可能比較麻煩。第二種思路是,在這裡是沒有人工幹預的,生男生女的機率又是相等的,說明每家都會有一個男孩,則平均每家也可以有一個女孩。
二、不定向選擇題(完全正確5分,漏選2分,不選0分,多選錯選-2分)
21.以下有關C語言的說法中,錯誤的是——
A、記憶體泄露一般是指程式申請了一塊記憶體,使用完後,沒有及時將這塊記憶體釋放,從而導致程式佔用大量記憶體。
B、無法通過malloc(size_t)函數調用申請超過該機器實體記憶體大小的記憶體塊。
C、無法通過記憶體釋放函數free(void*)直接將某塊已經使用完的實體記憶體直接還給作業系統
D、可以通過記憶體配置函數malloc(size_t)直接申請實體記憶體
我的答案 BCD
說明:這個題目我還真拿不準。。。如果你有更好的答案和解釋,請指教。
22.下面關於二叉搜尋樹的正確說法包括——
A、待刪除結點左子樹和右子樹時,只能使用左子樹的最大值結點替換待刪除結點。
B、給定一棵二叉搜尋樹的前序和後序結果,無法確定這棵二叉樹
C、給定一棵二叉搜尋樹,根據節點值大小排序所需時間複雜度是線性
D、給定一棵二叉搜尋樹,可以線上性時間複雜度內轉化為平衡二叉搜尋樹
我的答案 CD
說明:同樣拿不準。。。⊙﹏⊙b汗同請指教
23.被稱為中國雨人的周瑋,僅僅使用1分鐘的時間就可以對16位元字開14次方。那麼,以下數字鐘,不可能成為其候選答案的是——
A、11.0 B、12.0C、13.0D、14.0E、15.0
參考答案 ADE
說明:我沒什麼好方法。。。AE是蒙的,D可以試探以下。。。不過後來我根據電腦算,答案也是ADE
24.有3個包,每個包裡各放了兩個球。包A裡的球都是白色的,包B裡的球都是黑色的,包C裡的球一黑一白。現隨機取一個包,並從中隨機取一個球。發現該球是白色的。那麼這個包裡剩下的球也是白色的機率是——
A、0 B、0.33 C、0.5 D、0.66 E、1
參考答案 D
說明:首先包B排除了,A裡的白球編號為1白和2白。現在類比取球過程,有3種情況,A包1白2白,A包2白1白,C包先白後黑。可知剩下的球也是白色的機率為2/3.
三、填空與問答
25.某電子眼睛解析度640*360;(省略一段廢話)。藍芽4.0最大頻寬24Mbps,請問能否通過該技術將每秒50幀真彩(24bit)畫面傳輸至它的螢幕。如果是,請說明原因,如果否,說明理論上大約多久才能傳送一幀。
參考答案:不能,大約0.23秒傳一幀。
26.將N條長度為M的有序鏈表進行合并,合并以後的鏈表也保持有序,時間複雜度為——
我寫的答案是O(m*n*logn),室友寫的答案是O(m*n)。室友說服不了我,我也說服不了他。。。搞暈了。。。
27.ABCD四人要在夜裡過橋,分別耗時1、2、5、10分鐘,只有一個手電筒,並且同時最多兩人一起過。請安排方案讓四人都過,用時最短,給出方案。
參考答案:17
說明:1、2先過,2留下1回來,5、10再過,2回來,1、2再過。
28.下列代碼是實現有序整數數組的二分尋找,請指出其中的bug。
int binary_search(int *array, int length, int key)
{
int start = 0, end = length - 1;
while (end > start)
{
int middle = (start + end) / 2;
int tmp = array[middle];
if (tmp < key)
start = middle;
else if (tmp > key)
end = middle;
else
return middle;
}
return -1;
}
說明:這種題目bug好找,不好描述啊。。。
29.跳躍鏈表,略啦~