網易2013校園招聘筆試題

2021-06-11 23:55:01 字數 4590 閱讀 5632

第一部分(必做):計算機基礎類(25分)

(所有選擇題都是多項選擇)

1.(2分)假設進棧次序是e1,e2, e3, e4,那可能的出棧次序是()a、

e2, e4, e3, e1b、

e2, e3, e4, e1c、

e3, e2, e4, e1   d

、e1, e2, e4, e3 2.

(2分)表示式x=a+b*(c-d)/e的字尾表示形式可以是()a、

xab+cde/-*=   b

、xa+bc-de/*=  c、xabcd-*e/+=  d

、xabcde+*/= 3.

(2分)以下排序演算法是非穩定排序的是()

a、氣泡排序   b、歸併排序   c

、快速排序

d、堆排序

e、希爾排序 4.

(2分)乙個包含n個結點的四叉樹,每乙個節點都有4個指向孩子節點的指標,這4n個指標有()個空指標。

5.(2分)int func(unsigned int i)

unsigned int temp = i;

temp = (temp & 0x55555555) + ((temp & 0xaaaaaaaa)>>1);

temp = (temp & 0x33333333) + ((temp & 0xcccccccc)>>2);

temp = (temp & 0x0f0f0f0f) + ((temp & 0xf0f0f0f0)>>4);

temp = (temp & 0xff00ff) + ((temp & 0xff00ff00)>>8);

temp = (temp & 0xffff) + ((temp & 0xffff0000)>>16);

return temp;

}請問func(0x7f530829)的返回值是()

a、15   b

、16   c

、17   d、18

6.(2

分)程序和執行緒的差別有()

a、作業系統只排程程序,不排程執行緒

b、執行緒共享記憶體位址空間,程序不共享

c、執行緒可以共享記憶體資料,但程序不可以

d、程序間可以通過ipc通訊,但執行緒不可以

7.(2分)關於段頁式管理中,位址映像表是()

a、每個程序一張段表,一張頁表       b、程序的每個段一張段表,一張頁表

c、每個程序一張段表,每段一張頁表   d、每個程序一張頁表,每段一張段表8.(

2分)關於

tcp協議,下面哪種說法是錯誤的()

a、tcp關閉連線過程中,兩端的socket都會經過time_wait狀態

b、對乙個established狀態的tcp連線,呼叫shutdown函式可以讓主動呼叫的一方進入半關閉狀態

c、tcp協議預設保證了當tcp的一端發生意外崩潰(當機、網線斷開或路由器故障),另一端能自動檢測到連線失效

d、在成功建立連線的

tcp上,只有在

established

狀態才能收發資料,其他狀態都不可以。9.(

2分)關於主鍵

primarykey

和索引index

的說法哪些是錯誤的?()

a、唯一索引的列允許為

null

值b、乙個關係表中的外來鍵必定是另一表中的主鍵

c、乙個表中只能有乙個唯一性索引

d、索引主要影響查詢過程,對資料的插入影響不大

10.(

2分)資料庫的事務隔離級別一般分為

4個級別,其中可能發生

「不可重複讀

」的事物級別有()

a、serializable

b、read committed

c、read uncommittedd、

repeatable read

11.(

5分)如果

f(n)

為該數列的第

n項,那麼這句話可以寫成如下形式:

f(1)=1

,f(2)=1

,f(n)=f(n-1)+f(n-2)(n>=3)

請實現該函式

f(n)

的求解,並給出演算法複雜度,要求演算法複雜度小於

o(n^2)。

第二部分(必做):程式設計(25分)

1.(2分)下面的程式的輸出是什麼?

#include

int main()

intn;

chary[10] = 「ntse」;

char*x = y;

n= strlen(x);

*x= x[n];

x++;

printf(「x=%s\n」,x);

printf(「y=%s\n」,y);

2.(2分)請給出下面程式的輸出結果,並說明原因。

#include

#include

using namespace std;

template

class array

size_t getsize()

public:

vector_data;

size_t  _size;

template

array::array(intsize):size(size),_data(_size)

int main()

array*arr= new array(3);

cout3.(2分)cas(compareandswap),是用來實現lock-free程式設計的重要手段之一,多數處理器都支援這一原子操作,其用偽**描述如下:

template bool cas(t* addr, t expected, tvalue)

if(*addr== expected)untilcas(,,)

4.(2分)下面的程式會輸出幾個「-」?

#include

#include

#include

int main(void)

inti;

for(i=0;i<2;i++){

fork();

printf(「-」);

fflush(stdout);

return 0;

5.(4分)寫程式判斷當前cpu是大端cpu還是小端cpu,並做簡要說明。

6.(5分)利用位運算實現兩個整數的假髮運算,請**實現,並做簡要說明。

7.(8分)圖深度遍歷問題

a) 寫出上述圖的深度優先遍歷的順序(遍歷起點是節點1)

b) 若用鄰接矩陣matrix儲存該矩陣,寫出該矩陣

c) 若用非遞迴方式實現深度優先遍歷,請敘述大致的實現思想

d) 用你熟悉的任何語言實現非遞迴深度優先遍歷

第三部分(選做):c++開發工程師必做,其他選做(15分)

1.(6分)給定乙個巨大的文字檔案,寫乙個程式隨機輸出檔案任意k行(k不大,k行能放入記憶體),要求每一行出現概率相等,請給出核心演算法,演算法複雜度以及簡要的演算法原理說明。

2.(9分)spin lock是一種較為常見與使用的互斥方法,下面是一種其實現方式:

typedef int lock_t

void initlock(void volatile lock_t*lock_status){

*lock_status= 0;

void lock(void volatile lock_t* lock_status){

while(test_and_set(lock_status)== 1);

void unlock(void volatile lock_t*lock_status){

*lock_status= 0;

a) volatile關鍵字的作用

c) 上述**可能存在的問題(記憶體模型考慮)

第四部分(選做):客戶端安全工程師必做,其他選做

1. 請簡述使用互斥量(mutex)和臨界區(criticalsection)作為同步方法的區別及應用場景。

2. 如何讓乙個迴圈執行的執行緒安全退出,請用c++**實現相應執行緒函式及退出機制。

3. 請列舉可以用來唯一標識一台機器特徵的屬性有哪些;在某些機器特徵可能被更換的情況下,請設計一套方案用來唯一標識這台機器。

4. 請描述利用creatprocess注入乙個dll到新建立程序的過程,必要部分可以寫偽**。

5. 請列舉32位系統下,驅動隱藏程序的常用方法。

6. 如何檢測當前程式執行在虛擬機器環境下。

說明:虛擬機器主要是指目前常見的vmware,virtual pc,virtual box等;可以對一種虛擬機器檢測,也可以對多種虛擬機器檢測進行說明。

第五部分(選做):客戶端開發工程師必做,其他選做

1. wm_quit訊息的用途是什麼?乙個普通的windows視窗能收到的最後一條訊息是什麼?

2. 什麼是dll的延遲載入(delayload)?用延遲載入有什麼好處?

3. 平行計算(parallelcomputing)與併發計算(concurrent computing)的聯絡與區別是什麼?

4. 堆記憶體(heap)和棧記憶體(stack)的聯絡和區別是什麼?在編碼過程中,何時優先使用堆記憶體,何時優先使用棧記憶體?

5. 為什麼windows下有些檔案被刪除後還能通過一些資料恢復軟體將其資料恢復?

2013網易校園招聘筆試題

1 假設進棧次序是e1,e2,e3,e4,那可能的出棧次序是 a e2,e4,e3,e1 b e2,e3,e4,e1 c e3,e2,e4,e1 d e1,e2,e4,e3 給定入棧順序,求出可能的出棧順序。點評 老得掉渣得題目了,只要小心點都沒有問題 2 表示式x a b c d e的字尾表示形式...

谷歌2013校園招聘筆試題

1.4 小組賽,每個小組有5支隊伍,互相之間打單迴圈賽,勝一場3分,平一場1分,輸一場不得分,小組前三名出線。平分抽籤。問乙個隊最少拿幾分就有理論上的出線希望 a.1 b.2 c.3 d.4 分析 設有a b c d e 5支球隊,假設abc晉級了。如果球隊c積1分可以出現,由於是單迴圈賽,說明他4...

2013谷歌校園招聘筆試題

1.1 使用c語言將乙個1g位元組的字元陣列從頭到尾全部設定為字元 a 在一台典型的當代pc上,需要花費的cpu時間的數量級最接近 a.0.001秒 b.1秒 c.100秒 d.2小時 解答 現在機器cpu都是ghz,每次需要若干個指令,大約在1秒。1.2 在某些極端要求效能的場合,我們需要對程式進...