十月下旬騰訊,網易遊戲,百度最新校園招聘筆試題集錦(第271-330題)
此文十月百度,阿里巴巴,迅雷搜狗最新面試十一題已經整理了最新的面試題70道,本文依次整理騰訊,網易遊戲,百度等各大公司最新校園招聘的筆試題,後續將繼續整理十月下旬的筆/面試題。ios
一、下面的排序算法中,初始數據集的排列順序對算法的性能無影響的是(B)面試
A、插入排序 B、堆排序 C、冒泡排序 D、快速排序算法
二、如下關於Cache的敘述中,正確的是(B)編程
A、CPU中的Cache容量應大於CPU以外的Cache容量windows
B、Cache的設計思想是在合理成本下提升命中率設計模式
C、Cache的設計目標是容量儘量與主存容量相等數組
D、在容量肯定的狀況下,替換算法的時間複雜度是影響Cache命中率的關鍵因素服務器
三、數據存儲在磁盤上的排列方式會影響I/O服務的性能,一個圓環的磁道上有10個物理塊,10個數據記錄R1------R10存放在這個磁道上,記錄的安排順序以下表所示:網絡
物理塊數據結構 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
邏輯記錄 |
R1 |
R2 |
R3 |
R4 |
R5 |
R6 |
R7 |
R8 |
R9 |
R10 |
假設磁盤的旋轉速度爲20ms/周,磁盤當前處在R1的開頭處,若系統順序掃描後將數據放入單緩衝區內,處理數據的時間爲4ms(而後再讀取下個記錄),則處理這10個記錄的最長時間爲(C)
A、180ms B、200ms C、204ms D、220ms
4、隨着IP網絡的發展,爲了節省可分配的註冊IP地址,有一些地址被拿出來用於私有IP地址,如下不屬於私有IP地址範圍的是(C)(私網IP地址:10.0.0.0- 10.255.255.255;172.16.0.0 - 172.31.255.255;192.168.0.0-192.168.255.255。故選C)
A、10.6.207.84 B、172.23.30.28 C、172.32.50.80 D、192.168.1.100
五、下列關於一個類的靜態成員的描述中,不正確的是(D)
A、該類的對象共享其靜態成員變量的值 B、靜態成員變量可被該類的全部方法訪問
C、該類的靜態方法只能訪問該類的靜態成員變量 D、該類的靜態數據成員變量的值不可修改
六、已知一個線性表(38,25,74,63,52,48),假定採用散列函數h(key) = key%7計算散列地址,並散列存儲在散列表A【0....6】中,若採用線性探測方法解決衝突,則在該散列表上進行等機率成功查找的平均查找長度爲(C)
A、1.5 B、1.7 C、2.0 D、2.3
依次進行取模運算求出哈希地址:
A |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
記錄 |
63 |
48 |
|
38 |
25 |
74 |
52 |
查找次數 |
1 |
3 |
|
1 |
1 |
2 |
4 |
74應該放在下標爲4的位置,因爲25已經放在這個地方,因此74日後移動,放在了下標爲5的位置上了。
因爲是等機率查找,因此結果爲:1/6*(1+3+1+1+2+4)= 2.0
七、表達式「X=A+B*(C--D)/E」的後綴表示形式能夠爲(C)
A、XAB+CDE/-*= B、XA+BC-DE/*= C、XABCD-*E/+= D、XABCDE+*/=
八、(B)設計模式將抽象部分與它的實現部分相分離。
A、Singleton(單例) B、 Bridge(橋接)
C、 Composite(組合) D、 Facade(外觀)
九、下面程序的輸出結果爲多少?
輸出結果爲:6 5 4 4
對字符串進行sizeof操做的時候,會把字符串的結束符「\0」計算進去的,進行strlen操做求字符串的長度的時候,不計算\0的。
數組做爲函數參數傳遞的時候,已經退化爲指針了,Func函數的參數str_arg只是表示一個指針,那個100不起任何做用的。
十、下面程序的輸出結果爲多少?
輸出結果爲: 4 5
strlen只是對傳遞給Func函數的那個字符串求長度,跟str_arg中的那個2是沒有任何關係的,即便把2改成200也是不影響輸出結果的。。
十一、到商店裏買200的商品返還100優惠券(能夠在本商店代替現金)。請問實際上折扣是多少?
算法編程題:
一、給定一個字符串,求出其最長的重複子串。
思路:使用後綴數組,對一個字符串生成相應的後綴數組後,而後再排序,排完序依次檢測相鄰的兩個字符串的開頭公共部分。
這樣的時間複雜度爲:
生成後綴數組 O(N)
排序 O(NlogN*N) 最後面的 N 是由於字符串比較也是 O(N)
依次檢測相鄰的兩個字符串 O(N * N)
總的時間複雜度是 O(N^2*logN),
一、對於一個內存地址是32位、內存頁是8KB的系統。0X0005F123這個地址的頁號與頁內偏移分別是多少。
二、若是X大於0並小於65536,用移位法計算X乘以255的值爲:-X+X<<8
X<<8-X是不對的,X<<8,已經把X的值改變了(訂正:X<<8是個臨時變量,不會改變X的值,就像a+1不會改變a同樣)。
三、一個包含n個節點的四叉樹,每一個節點都有四個指向孩子節點的指針,這4n個指針中有 3n+1 個空指針。
四、如下兩個語句的區別是:
五、計算機在內存中存儲數據時使用了大、小端模式,請分別寫出A=0X123456在不一樣狀況下的首字節是,大端模式:0X12 小端模式:0X56 X86結構的計算機使用 小端 模式。
通常來講,大部分用戶的操做系統(如windows, FreeBsd,Linux)是小端模式的。少部分,如MAC OS,是大端模式 的。
六、在遊戲設計中,常常會根據不一樣的遊戲狀態調用不一樣的函數,咱們能夠經過函數指針來實現這一功能,請聲明一個參數爲int *,返回值爲int的函數指針:
int (*fun)(int *)
七、在一冒險遊戲裏,你見到一個寶箱,身上有N把鑰匙,其中一把能夠打開寶箱,假如沒有任何提示,隨機嘗試,問:
(1)剛好第K次(1=<K<=N)打開寶箱的機率是多少。
(2)平均須要嘗試多少次。
1、算法設計
一、設rand(s,t)返回[s,t]之間的隨機小數,利用該函數在一個半徑爲R的圓內找隨機n個點,並給出時間複雜度分析。
二、爲分析用戶行爲,系統常需存儲用戶的一些query,但因query很是多,故系統不能全存,設系統天天只存m個query,現設計一個算法,對用戶請求的query進行隨機選擇m個,請給一個方案,使得每一個query被抽中的機率相等,並分析之,注意:不到最後一刻,並不知用戶的總請求量。
三、C++ STL中vector的相關問題:
(1)、調用push_back時,其內部的內存分配是如何進行的?
(2)、調用clear時,內部是如何具體實現的?若想將其內存釋放,該如何操做?
2、系統設計
正經常使用戶端每分鐘最多發一個請求至服務端,服務端需作一個異常客戶端行爲的過濾系統,設服務器在某一刻收到客戶端A的一個請求,則1分鐘內的客戶端任何其它請求都須要被過濾,現知每一客戶端都有一個IPv6地址可做爲其ID,客戶端個數太多,以致於沒法所有放到單臺服務器的內存hash表中,現需簡單設計一個系統,使用支持高效的過濾,可以使用多臺機器,但要求使用的機器越少越好,請將關鍵的設計和思想用圖表和代碼表現出來。
knuth(int n, int m)
{
srand((unsigned int)time(0));
for (int i=0; i<n; i++)
{
if ( )
{
cout<<i<<endl;
;
}
}
}
分別爲:rand()%(n-i)<m 和 m--;
二、如下prim函數的功能是分解質因數。請填空
void prim(int m, int n)
{
if (m>n)
{
while ( ) n++;
;
prim(m,n);
cout<<n<<endl;
}
}
分別爲:m%n 和 m/=n
三、下面程序的功能是輸出數組的全排列。請填空
void perm(int list[], int k, int m)
{
if ( )
{
copy(list,list+m,ostream_iterator<int>(cout," "));
cout<<endl;
return;
}
for (int i=k; i<=m; i++)
{
swap(&list[k],&list[i]);
;
swap(&list[k],&list[i]);
}
}
分別爲:k==m 和 perm(list,k+1,m)
2、主觀題:
一、(40分)用戶啓動迅雷時,服務器會以uid,login_time,logout_time的形式記錄用戶的在線時間;用戶在使用迅雷下載時,服務器會以taskid,start_time,finish_time的形式記錄任務的開始時間和結束時間。有效下載時間是指用戶在開始時間和結束時間之間的在線時間,因爲用戶可能在下載的時候退出迅雷,所以有效下載時間並不是finish_time 和 start_time之差。假設登陸記錄保存在login.txt中,每一行表明用戶的上下線記錄;下載記錄保存在task.txt中,每一行表明一個任務記錄,記錄的字段之間以空格分開。計算每一個用戶的有效下載時間和總在線時間的比例。注意:請儘可能使用STL的數據結構和算法
二、(60分)在8X8的棋盤上分佈着n個騎士,他們想約在某一個格中聚會。騎士天天能夠像國際象棋中的馬那樣移動一次,能夠從中間像8個方向移動(固然不能走出棋盤),請計算n個騎士的最先聚會地點和要走多少天。要求儘早聚會,且n我的走的總步數最少,先到聚會地點的騎士能夠再也不移動等待其餘的騎士。
從鍵盤輸入n(0<n<=64),而後一次輸入n個騎士的初始位置xi,yi(0<=xi,yi<=7)。屏幕輸出以空格分隔的三個數,分別爲聚會點(x,y)以及走的天數。
盛大遊戲2011.10.22校園招聘會筆試題
一、下列代碼的輸出爲:
A、100 300 300 500 B、100 300 500 C、100 500 D、程序錯誤
vector在erase以後,指向下一個元素的位置,其實進行erase操做時將後面全部元素都向前移動,迭代器位置沒有移動。itor=array.erase(itor) erase返回下一個元素的地址,至關於給itor一個新值。
二、下列代碼的輸出爲:
A、I'm a Child,I like football! B、I'm a Child,I like basketball!
C、I'm a Parent,I like football! D、I'm a Parent,I like basketball!
三、在win32平臺下,如下哪一種方式沒法實現進程同步?
A、Critical Section B、Event C、Mutex D、Semaphore
四、如下哪句的說法是正確的
A、在頁式存儲管理中,用戶應將本身的程序劃分爲若干個相等的頁
B、全部的進程都掛起時,系統將陷入死鎖
C、執行系統調用能夠被中斷
D、進程優先數是進程調度的重要依據,必須根據進程運行狀況動態改變
五、如下描述正確的是
A、虛函數是能夠內聯的,能夠減小函數調用的開銷提升效率
B、類裏面能夠同時存在函數名和參數都同樣的虛函數和靜態函數
C、父類的析構函數是非虛的,可是子類的析構函數是虛的,delete子類對象指針會調用父類的析構函數
D、以上都不對
簡答題:快速排序的思想是遞歸的,可是它的平均效率倒是衆多排序算法中最快的,爲何?請結合本例說明你對遞歸程序的理解。
算法題:用你熟悉的編程語言,設計以下功能的函數:輸入一個字符串,輸出該字符串中全部字母的全排列。程序請適當添加註釋。
C++函數原型: void Print(const char *str)
輸入樣例: abc
輸出結果: abc、acb、bca、bac、cab、cba
hash衝突時候的解決方法?