系統工程師 北京 筆試卷
第一部分 單選題(前10題,每題2分;后10題,每題3分;共50分。選對得滿分,選錯倒扣一分,不選得0分。)
1.字符串“alibaba”有 個不同的排列。
A.5040
B.840
C.14
D.420
2.下列一段C++代碼的輸出是 。
class Base
{
public:
int Bar(char x) {return (int)(x);}
virtual int Bar(int x) {return(2*x);}
};
class Derived :public Base
{
public:
int Bar(char x) {return(int)(-x);}
int Bar(int x) {return (x/2);}
};
void main(void)
{
Derived Obj;
Base*pObj=&Obj;
printf("%d,",pObj->Bar((char)(100)));
printf("%d,",pObj->Bar(100));
}
A.100,50
B.-100,200
C.-100,50
D.100,200
3.有一個二維數組A[10][5],每個數據元素占1個字節,且A[0][0]的存儲地址是1000,則A[i][j]的地址是 。
A.1000+10i+j B.1000+i+j C.1000+5i+j D.1000+10i+5j
4.下列 不是線性表?
A.隊列
B.棧
C.關聯數組
D.鏈表
5.下列有關在一個處理器(processor)上跑兩個線程(thread)的說法中,正確的是 。
A.一個線程可以改變另一個線程的程序計數器(program counter)
B.一個線程既不能讀也不能寫另一個線程的棧(stack)
C.一個線程可以讀寫另一個線程的寄存器(register)
D.以上都不對
6.關于雙鏈表的搜索給定元素操作的說法正確的是 。
A.從兩個方向搜索雙鏈表,比從一個方向搜索雙鏈表的速度慢
B.從兩個方向搜索雙鏈表,比從一個方向搜索雙鏈表的方差要小
C.從兩個方向搜索雙鏈表,比從一個方向搜索雙鏈表速度要快
D.以上說法都不正確
7.對n個數字進行排序,期中兩兩不同的數字的個數為k,n遠遠大于k,而n的取值區間長度超過了內存的大小,時間復雜度最小可以是 。
A.O(nlogk)
B.O(nk)
C.O(n)
D.O(nlogn)
8.一臺指針式鐘表的時鐘和分鐘的指向重合的時間間隔是 B 。
A.720/13分鐘
B.720/11分鐘
C.60分鐘
D.以上都不正確
9.兩個大小不同的杯子R和S,R中裝著一定量的小米,S中裝著一定量的沙子。一名兒童用勺子從S中取出一勺沙子放入R,與小米混合之后,再從R中取出等體積的一勺混合物放入S。假定兩勺物品的體積相等,且R和S都沒有發生溢出。則以下說法中正確的是 。
A.R中的沙子和S中的小米一樣多
B.R中的沙子比S中的小米少
C.R中的沙子比S中的小米多
D.無法判斷
10.假定拋出的硬幣落地之后正反兩面出現的概率分別是1/2。那么拋10次和100次硬幣(分別稱為T10和T100)相比,以下說法正確的是 。
A.T100出現一半的正面比T10出現一半正面的概率更大
B.T100前3次都是正面的概率比T10前3次都是正面的可能性大
C.T100正面次數的方差小于T10出現正面次數的方差
D.T100出現正面的比例比T10出現正面的比例在(0.45,0.55)區間中的可能性更大。
11.某福彩機構推出了一款簡單的猜謎游戲:游戲玩家只需交納n元,賭紅或者黑。如果開獎結果與游戲玩家所賭的顏色相同,則玩家除得到交納的n元賭資外,還可以獲得n元作為獎勵;否則該玩家失去交納的n元賭資。為了游戲公平,開獎是紅或者黑的概率均為1/2。某游戲玩家想出了一個玩法:開始出100元參與賭博,然后按照如下規則進行游戲,如果輸掉,并且賭資充足,就把已經輸了的總錢數翻倍作為賭資進行賭博;否則,就停止該游戲。假定該機構賭資無限,而玩家的賭資比較有限,以下關于該玩家退出游戲時的情形的評論中合理的是: 。
A.該玩家的策略可以保證游戲結束時贏錢數的期望為正數
B.該福彩機構長期會賠錢
C.該玩家會有一定概率在游戲結束時輸錢,但輸得不多
D.該玩家贏的可能性比輸的可能性大
12.有16瓶水,其中只有一瓶水有毒,小白鼠喝一滴之后一小時會死。請問最少用 只小白鼠,在1小時內一定可以找出至少14瓶無毒的水?
A.1只
B.3只
C.4只
D.16只
13.有一臺4核CPU的服務器,上面運行著1種在線服務。如果該在線服務處理一個請求在非獨占IO上的等待時間和CPU計算上消耗的時間比為2:1,假定IO帶寬充足,那么至少開 個線程能最大化性能地使用該服務器?
A.4
B.8
C.12
D.線程越多越好
14.有一種語言稱為lua,里面的數字只有一種類型(number),實際上是雙精度浮點數。沒有各種位數的整數,如32位、64位整數等。那么關于該語言的說法錯誤的是 。
A.該語言可以用number類型的變量作為數組下標
B.該語言可以表示任意32位數字整數的數字ID
C.該語言無法實現32位數字整數的按位與、或、異或運算
D.該語言可以正常進行雙精度浮點數運算
15.一個在線服務通常需要讀取存儲著海量數據的數據庫。為了提高服務的處理速度,通常需要加cache(緩存)。以下場景中不合適使用cache的是 。
A.數據庫中每條數據被訪問到的概率近似相等,且獨立
B.使用了多線程機制的服務
C.單條數據尺寸大小的數據
D.有著大量訪問的服務
16.如下一段神奇的代碼實現的功能是 。
int miracle(unsigned int n)
{
int m=n==0 ? 0:1;
while (n=(n&(n-1)))
{
m++;
}
return m;
}
A.n的二進制表示中“0”的個數
B.n的二進制表示的倒序值
C.n的二進制表示中“1”的個數
D.一個均勻的哈希函數
17.有1023個兩兩不同的整數,取值范圍是1到1024,其按位異或的結果的取值范圍是 。
A.0到1024
B.0,1025到2047
C.1到1024
D.2到2048之前的全部偶數
18.七夕節n戀人(n>=2)圍成一圈舉行篝火晚會。晚會的規則是:男女相同,且每對戀人處在相鄰的位置上。請問有多少種不同的圈子?
A.(2n-1)!/2
B.2(n-1)!
C.2n(n-1)!
D.(2n)!
19.星期天有10個朋友約好一起郊游,在車站的集合時間是早晨9:50:00到10:00:00。已知每個人到達車站的時間是9:50:00到10:00:00內的均勻分布,且彼此獨立。那么最后一人最可能到達的時間是 (精確到分鐘,向下取整)。
A.各個分鐘概率相等
B.9:57
C.9:58
D.9:59
20.已知某國家每年出生人口數每年遞增3%,且男女比例為1:1。如果每個男性都希望找比自己小0.5到 3歲的女性結婚,且每個女性都希望找比自己大0.5到3歲的男性結婚,適婚年齡為20到30歲,那么對該國適婚男女婚配方面的說法正確的是 。
A.男女會比較均衡
B.會產生較多剩女
C.會產生較多剩男
D.信息不足,無法判斷
第二部分 不定向選項(4題,每題5分。每題有1-5個正確選項,完全正確計5分,漏選計2分,不選計0分,多選、錯選計-2分)
21.要提高多線程程序的效率,對鎖的控制策略非常重要。一種策略是在鎖的個數不太多、控制結構不太復雜的情況下,盡可能降低加鎖的粒度;另一種策略是在合適的條件下取消用鎖。以下情況中不可能取消鎖的是 。
A.多線程寫一個共同的數據結構,且寫操作是原子操作
B.多線程寫一個共同的數據結構,且寫操作不是原子操作
C.多線程讀一個共同的數據結構,且讀操作不是原子操作
D.一個線程寫,多個線程讀一個共同的數據結構,寫操作是原子操作,讀操作不是原子操作
E.一個線程寫、多個線程讀一個共同的數據結構,寫操作不是原子操作,讀操作是原子操作