網(wǎng)易研發(fā)類(lèi)筆試題和面試題答案(一)

思而思學(xué)網(wǎng)

第一部分(必做):

計(jì)算機(jī)科學(xué)基礎(chǔ)l

(單選)軟件設(shè)計(jì)中模塊劃分應(yīng)該遵循的準(zhǔn)則是:

低內(nèi)聚低耦合 B。高內(nèi)聚低耦合 C。低內(nèi)聚高耦合 D。高內(nèi)聚高耦合

(單選)最壞情況下時(shí)間復(fù)雜度不是n(n-1)/2的排序算法是:

快速排序 B。冒泡排序 C。直接插入排序 D。堆排序

3。 哈希表中解決沖突的方法通常可以分為open addressing和chaining兩類(lèi),請(qǐng)分別解釋這兩類(lèi)沖突解決方法的大致實(shí)現(xiàn)原理

4。 簡(jiǎn)單的鏈表結(jié)構(gòu)擁有很好的插入 刪除節(jié)點(diǎn)性能,但隨機(jī)定位(獲取鏈表第n個(gè)節(jié)點(diǎn))操作性能不佳,請(qǐng)你設(shè)計(jì)一種改進(jìn)型的鏈表結(jié)構(gòu)優(yōu)化隨機(jī)定位操作的性能,給出設(shè)計(jì)思路及其改進(jìn)后隨機(jī)定位操作的時(shí)間復(fù)雜度

5。 什么是NP問(wèn)題?列舉典型的NP問(wèn)題(至少兩個(gè))?對(duì)于一個(gè)給定的問(wèn)題你通常如何判斷它是否為NP問(wèn)題?

6。 以下是一個(gè)tree的遍歷算法,queue是FIFO隊(duì)列,請(qǐng)參考下面的tree,選擇正確的輸出。

1

/ \

2 3

/ \ / \

4 5 6 7

queue。push(tree。root)

while(true){

node=queue。pop();

output(node。value);//輸出節(jié)點(diǎn)對(duì)應(yīng)數(shù)字

if(null==node)

break;

for(child_node in node。children){

queue。push(child_node);

}

}

1234567

1245367

1376254

1327654

第二部分(選作): C/C++程序設(shè)計(jì)l

有三個(gè)類(lèi)A B C定義如下,請(qǐng)確定sizeof(A) sizeof(B) sizeof(C)的大小順序,并給出理由

struct A{

A() {}

~A() {}

int m1;

int m2;

};

struct B{

B() {}

~B() {}

int m1;

char m2;

static char m3;

};

struct C{

C() {}

virtual~C() {}

int m1;

hort m2;

};

請(qǐng)用C++實(shí)現(xiàn)以下print函數(shù),打印鏈表I中的所有元素,每個(gè)元素單獨(dú)成一行

void print(const std::list &I){

}

假設(shè)某C工程包含a。c和b。c兩個(gè)文件,在a。c中定義了一個(gè)全局變量foo,在b。c中想訪(fǎng)問(wèn)這一變量時(shí)該怎么做?

C++中的new操作符通常完成兩個(gè)工作,分配內(nèi)存及其調(diào)用相應(yīng)的構(gòu)造函數(shù)初始化

請(qǐng)問(wèn):

如何讓new操作符不分配內(nèi)存,只調(diào)用構(gòu)造函數(shù)?

這樣的用法有什么用?

下面這段程序的輸出是什么?為什么?

class A{

public:

A(){p();}

virtual void p(){print("A")}

virtual ~A(){p();}

};

class B{

public:

B(){p();}

void p(){print("B")}

~B(){p();}

};

int main(int,char){

A a=new B();

delete a;

}

6。 什么是C++ Traits? 并舉例說(shuō)明

第四部分(選作): Linux應(yīng)用與開(kāi)發(fā)

寫(xiě)出完成以下功能的Linux命令:

在當(dāng)前目錄及其子目錄所有的。cpp文件中查找字符串"example",不區(qū)分大小寫(xiě);

使用sed命令,將文件xyz中的單詞AAA全部替換為BBB;

用一條命令創(chuàng)建aa bb cc三個(gè)子目錄

mount cdrom。iso至/dev/cdrom目錄

5) 設(shè)置ulimit使得程序在Segment fault等嚴(yán)重錯(cuò)誤時(shí)可以產(chǎn)生coredump;

2。 設(shè)umask為002,則新建立的文件的權(quán)限是什么?664

A。 -rw-rwr—

B。 rwxrwx-w-

C。 -------w-

D。 rwxrwxr-x

上面第三題,aa bb cc 目錄是嵌套的子目錄么,要是同一級(jí)的話(huà)應(yīng)該下面這樣

1 #grep -i -r example 。/。cpp

2 #sed 's/AAA/BBB/g ' xyz

3 #mkdir aa bb cc

4 #mount -o loop 。/cdrom。iso /mnt/cdrom

5 C

3。 用戶(hù)HOME目錄下的。bashrc和。bash_profile文件的功能有什么區(qū)別?

4。 寫(xiě)出完成以下功能的gdb命令(可以使用命令簡(jiǎn)寫(xiě)形式):

1) 使用gdb調(diào)試程序foo,使用coredump文件core。12023;

2) 查看線(xiàn)程信息

3) 查看調(diào)用堆棧

4) 在類(lèi)ClassFoo的函數(shù)foo上設(shè)置一個(gè)斷點(diǎn)

5) 設(shè)置一個(gè)斷點(diǎn),當(dāng)表達(dá)式expr的值被改變時(shí)觸發(fā)

熱門(mén)推薦

最新文章