搜狐2012.9.15校园招聘会笔试题
生活随笔
收集整理的這篇文章主要介紹了
搜狐2012.9.15校园招聘会笔试题
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、不定項(xiàng)選擇題
1、以下程序的打印結(jié)果是()
#include<iostream> using namespace std;void swap_int(int a , int b) {int temp = a;a = b;b = temp; }void swap_str(char* a , char* b) {char* temp = a;a = b;b = temp; }int main(void) {int a = 10;int b = 5;char* str_a = "hello world";char* str_b = "world hello";swap_int(a , b);swap_str(str_a , str_b);printf("%d %d %s %s\n", a , b , str_a , str_b);return 0; } A、10 5 hello world world hello? ??? B、10 5 world hello hello world
C、5 10 hello world world hello???? D、5 10 hello world world hello
2、以下程序打印的兩個(gè)字符分別是(A)
typedef struct object object; struct object {char data[3]; };int main(void) {object obj_array[3] = { {'a','b','c'},{'d','e','f'},{'g','h','i'} };object* cur = obj_array;printf("%c %c\n", *(char*)((char *)(cur)+2) , *(char*)(cur+2));return 0; } A、c g?????????? B、b d????????? C、g g????????? D、g c
3、C/C++語言:請問在64位平臺機(jī)器下 sizeof(string_a) , sizeof(string_b)大小分別是(A)
char *string_a = (char *)malloc(100*sizeof(char)); char string_b[100]; A、8 100????? B、100 8????? C、100 100????? D、8 8
4、假設(shè)二叉排序樹的定義是:1、若它的左子樹不為空,則左子樹所有節(jié)點(diǎn)均小于它的根節(jié)點(diǎn)的值;2、若右子樹不為空,則右子樹所有節(jié)點(diǎn)的值均大于根節(jié)點(diǎn)的值;3、它的左右子樹也分別為二叉排序樹。下列哪種遍歷之后得到一個(gè)遞增有序數(shù)列(B)
A、前序遍歷??? B、中序遍歷???? C、后序遍歷????? D、廣度遍歷
5、往一個(gè)棧順序push下列元素:ABCDE,其pop可能的順序,下列不正確的是(C)
A、BACDE??? B、ACDBE???? C、AEBCD?? D、AEDCB
6、1100|1010 , 1001^1001 , 1001&1100分別為(A)
A、1110? 0000?? 1000?? B、1000? 1001? 1000
C、1110? 1001?? 0101?? D、1000? 1001? 1000
7、二叉樹是一種樹形結(jié)構(gòu),每個(gè)節(jié)點(diǎn)至多有兩顆子樹,下列一定是二叉樹的是(AC)
A、紅黑樹???? B、B樹????? C、AVL樹????? D、B+樹
8、int A[2][3] = {1,2,3,4,5,6}; , 則A[1][0]和*(*(A+1)+1)的值分別是(A)
A、4 5???? B、4 3??????? C、3 5?????? D、3 4
9、序列16 14 10 8 7 9 3 2 4 1的說法下面哪一個(gè)正確(A)
A、大頂堆?? B、小頂堆? C、不是堆?? D、二叉排序樹
10、輸入若已經(jīng)是排好序的,下列排序算法最快的是(A)
A、插入排序?? B、Shell排序?? C、合并排序?? D、快速排序
11、一種既有利于短作業(yè)又兼顧長期作業(yè)的調(diào)度方式是(D)
A、先來先服務(wù)???? B、均衡調(diào)度????? C、最短作業(yè)優(yōu)先????? D、最高響應(yīng)比優(yōu)先
12、同一進(jìn)程下的線程可以共享(B)
A、stack??????? B、data section??????? C、register set????? D、thread ID
13、系統(tǒng)中的“顛簸”是由(B)引起的。
A、內(nèi)存容量不足????? B、缺頁率高????? C、交換信息量大?????? D、缺頁率反饋模型不正確
14、8瓶酒一瓶有毒,用人測試。每次測試結(jié)果8小時(shí)后才會(huì)得出,而你只有8個(gè)小時(shí)的時(shí)間。問最少需要(B)人測試?
A、2???????? B、3???????? C、4??????????? D、6
是3個(gè)人,如果你學(xué)過數(shù)的2進(jìn)制編碼,就容易說了:
8瓶酒的編碼如下:
0: 000
1: 001
2: 010
3: 011
4: 100
5: 101
6: 110
7: 111
3個(gè)人分別喝3個(gè)位上為1的編碼,所以:
第一個(gè):1,3,5,7
第二個(gè):2,3,6,7
第三個(gè):4,5,6,7
把中毒的人的位填1的二進(jìn)制數(shù),就是毒酒的編號。
15、下列關(guān)于網(wǎng)絡(luò)編程錯(cuò)誤的是(AB)
A、TCP建立和關(guān)閉連接都只需要三次握手
B、UDP是可靠服務(wù)
C、主動(dòng)關(guān)閉的一端會(huì)出現(xiàn)TIME_WAIT狀態(tài)
D、服務(wù)端編程會(huì)調(diào)用listen(),客戶端也可以調(diào)用bind()
16、進(jìn)程間通訊有哪幾種形式(ABCD)
A、Socket
B、Pipe
C、Shared memory
D、Signal
17、TCP/UDP下面正確的是(AC)
A、TCP provide connection-oriented,byte-stream service;
B、Both TCP and UDP provide reliability service;
C、TCP also provides flow control;
D、Both TCP and UDP provide retransmission mechanism;
18、分布式系統(tǒng)設(shè)計(jì)包括(ABCDE)
A、容錯(cuò),design for fault
B、多數(shù)據(jù)中心的數(shù)據(jù)一致性
C、數(shù)據(jù)/服務(wù)可靠性
D、可擴(kuò)展性
E、要滿足ACID特性
19、10個(gè)不同的球,放入3個(gè)不同的桶內(nèi),共有(C)種方法。? 3^10
A、1000????? B、720???? C、59049???? D、360
20、87的100次冪除以7的余數(shù)是多少(D)
A、1???? B、2???? C、3???? D、4
二、簡答題:
1、
(1)請描述進(jìn)程和線程的區(qū)別?
(2)多線程程序有什么優(yōu)點(diǎn)、缺點(diǎn)?
(2)多進(jìn)程程序有什么優(yōu)點(diǎn)、缺點(diǎn)?與多線程相比,有何區(qū)別?
2、編程題:
寫代碼,反轉(zhuǎn)一個(gè)單鏈表,分別以迭代和遞歸的形式來實(shí)現(xiàn)
typedef struct node LinkNode; struct node {int data;LinkNode* next; }; // 返回新鏈表頭節(jié)點(diǎn)
LinkNode *reverse_link(LinkNode *head)
LinkNode *reverse_link_recursive(LinkNode *head)
// 返回新鏈表頭節(jié)點(diǎn) LinkNode *reverse_link(LinkNode *head) {if(head == NULL)return NULL;LinkNode *prev , *curr , *reverse_head , *temp;prev = NULL , curr = head;while(curr->next){temp = curr->next;curr->next = prev;prev = curr;curr = temp;}curr->next = prev;reverse_head = curr;return reverse_head; }LinkNode *reverse_link_recursive(LinkNode *head) {if(head == NULL)return NULL;LinkNode *curr , *reverse_head , *temp;if(head->next == NULL) // 鏈表中只有一個(gè)節(jié)點(diǎn),逆轉(zhuǎn)后的頭指針不變r(jià)eturn head;else{curr = head;temp = head->next; // temp為(a2,...an)的頭指針reverse_head = reverse_link_recursive(temp); // 逆轉(zhuǎn)鏈表(a2,...an),并返回逆轉(zhuǎn)后的頭指針temp->next = curr; // 將a1鏈接在a2之后curr->next = NULL;}return reverse_head; // (a2,...an)逆轉(zhuǎn)鏈表的頭指針即為(a1,a2,...an)逆轉(zhuǎn)鏈表的頭指針 } 3、給一個(gè)數(shù)組,元素都是整數(shù)(有正數(shù)也有負(fù)數(shù)),尋找連續(xù)的元素相加之和為最大的序列。
如:1、-2、3、5、-4、6 連續(xù)序列3、5、-4、6的和最大。
如元素全為負(fù)數(shù),則最大的和為0,即一個(gè)也沒有選。
/*
array[]???? 輸入數(shù)組
n?????????? 數(shù)組元素個(gè)數(shù)
??????????? 返回最大序列和
*/
int find_max_sum(int array[] , int n)
int find_max_sum(int array[] , int n) {int i , max , sum;sum = max = array[0];for(i = 1 ; i < n ; ++i){if(sum < 0)sum = array[i];elsesum += array[i];if(sum > max)max = sum;}if(max < 0)max = 0;return max; } 三、設(shè)計(jì)題
1、設(shè)計(jì)一個(gè)圖片存儲(chǔ)系統(tǒng):假設(shè)有一個(gè)相冊系統(tǒng),每個(gè)用戶不限制上傳的圖片數(shù)目,每張相片壓縮后都在1M以內(nèi),需求如下:
(1)文件數(shù)量太大,采用傳統(tǒng)的文件系統(tǒng)存儲(chǔ)導(dǎo)致目錄系統(tǒng)非常臃腫,訪問速度變得緩慢;
(2)單機(jī)存儲(chǔ)容量已經(jīng)遠(yuǎn)遠(yuǎn)不能承載所有的文件;
(3)上傳之后,用戶只有讀取操作和刪除操作,不支持修改,整個(gè)系統(tǒng)讀寫比例10:1
思路:可以使用分布式的文件系統(tǒng),覺得hadoop的HDFS很符合要求,這是hadoop對googleGDFS的實(shí)現(xiàn)。
1、以下程序的打印結(jié)果是()
#include<iostream> using namespace std;void swap_int(int a , int b) {int temp = a;a = b;b = temp; }void swap_str(char* a , char* b) {char* temp = a;a = b;b = temp; }int main(void) {int a = 10;int b = 5;char* str_a = "hello world";char* str_b = "world hello";swap_int(a , b);swap_str(str_a , str_b);printf("%d %d %s %s\n", a , b , str_a , str_b);return 0; } A、10 5 hello world world hello? ??? B、10 5 world hello hello world
C、5 10 hello world world hello???? D、5 10 hello world world hello
2、以下程序打印的兩個(gè)字符分別是(A)
typedef struct object object; struct object {char data[3]; };int main(void) {object obj_array[3] = { {'a','b','c'},{'d','e','f'},{'g','h','i'} };object* cur = obj_array;printf("%c %c\n", *(char*)((char *)(cur)+2) , *(char*)(cur+2));return 0; } A、c g?????????? B、b d????????? C、g g????????? D、g c
3、C/C++語言:請問在64位平臺機(jī)器下 sizeof(string_a) , sizeof(string_b)大小分別是(A)
char *string_a = (char *)malloc(100*sizeof(char)); char string_b[100]; A、8 100????? B、100 8????? C、100 100????? D、8 8
4、假設(shè)二叉排序樹的定義是:1、若它的左子樹不為空,則左子樹所有節(jié)點(diǎn)均小于它的根節(jié)點(diǎn)的值;2、若右子樹不為空,則右子樹所有節(jié)點(diǎn)的值均大于根節(jié)點(diǎn)的值;3、它的左右子樹也分別為二叉排序樹。下列哪種遍歷之后得到一個(gè)遞增有序數(shù)列(B)
A、前序遍歷??? B、中序遍歷???? C、后序遍歷????? D、廣度遍歷
5、往一個(gè)棧順序push下列元素:ABCDE,其pop可能的順序,下列不正確的是(C)
A、BACDE??? B、ACDBE???? C、AEBCD?? D、AEDCB
6、1100|1010 , 1001^1001 , 1001&1100分別為(A)
A、1110? 0000?? 1000?? B、1000? 1001? 1000
C、1110? 1001?? 0101?? D、1000? 1001? 1000
7、二叉樹是一種樹形結(jié)構(gòu),每個(gè)節(jié)點(diǎn)至多有兩顆子樹,下列一定是二叉樹的是(AC)
A、紅黑樹???? B、B樹????? C、AVL樹????? D、B+樹
8、int A[2][3] = {1,2,3,4,5,6}; , 則A[1][0]和*(*(A+1)+1)的值分別是(A)
A、4 5???? B、4 3??????? C、3 5?????? D、3 4
9、序列16 14 10 8 7 9 3 2 4 1的說法下面哪一個(gè)正確(A)
A、大頂堆?? B、小頂堆? C、不是堆?? D、二叉排序樹
10、輸入若已經(jīng)是排好序的,下列排序算法最快的是(A)
A、插入排序?? B、Shell排序?? C、合并排序?? D、快速排序
11、一種既有利于短作業(yè)又兼顧長期作業(yè)的調(diào)度方式是(D)
A、先來先服務(wù)???? B、均衡調(diào)度????? C、最短作業(yè)優(yōu)先????? D、最高響應(yīng)比優(yōu)先
12、同一進(jìn)程下的線程可以共享(B)
A、stack??????? B、data section??????? C、register set????? D、thread ID
13、系統(tǒng)中的“顛簸”是由(B)引起的。
A、內(nèi)存容量不足????? B、缺頁率高????? C、交換信息量大?????? D、缺頁率反饋模型不正確
14、8瓶酒一瓶有毒,用人測試。每次測試結(jié)果8小時(shí)后才會(huì)得出,而你只有8個(gè)小時(shí)的時(shí)間。問最少需要(B)人測試?
A、2???????? B、3???????? C、4??????????? D、6
是3個(gè)人,如果你學(xué)過數(shù)的2進(jìn)制編碼,就容易說了:
8瓶酒的編碼如下:
0: 000
1: 001
2: 010
3: 011
4: 100
5: 101
6: 110
7: 111
3個(gè)人分別喝3個(gè)位上為1的編碼,所以:
第一個(gè):1,3,5,7
第二個(gè):2,3,6,7
第三個(gè):4,5,6,7
把中毒的人的位填1的二進(jìn)制數(shù),就是毒酒的編號。
15、下列關(guān)于網(wǎng)絡(luò)編程錯(cuò)誤的是(AB)
A、TCP建立和關(guān)閉連接都只需要三次握手
B、UDP是可靠服務(wù)
C、主動(dòng)關(guān)閉的一端會(huì)出現(xiàn)TIME_WAIT狀態(tài)
D、服務(wù)端編程會(huì)調(diào)用listen(),客戶端也可以調(diào)用bind()
16、進(jìn)程間通訊有哪幾種形式(ABCD)
A、Socket
B、Pipe
C、Shared memory
D、Signal
17、TCP/UDP下面正確的是(AC)
A、TCP provide connection-oriented,byte-stream service;
B、Both TCP and UDP provide reliability service;
C、TCP also provides flow control;
D、Both TCP and UDP provide retransmission mechanism;
18、分布式系統(tǒng)設(shè)計(jì)包括(ABCDE)
A、容錯(cuò),design for fault
B、多數(shù)據(jù)中心的數(shù)據(jù)一致性
C、數(shù)據(jù)/服務(wù)可靠性
D、可擴(kuò)展性
E、要滿足ACID特性
19、10個(gè)不同的球,放入3個(gè)不同的桶內(nèi),共有(C)種方法。? 3^10
A、1000????? B、720???? C、59049???? D、360
20、87的100次冪除以7的余數(shù)是多少(D)
A、1???? B、2???? C、3???? D、4
二、簡答題:
1、
(1)請描述進(jìn)程和線程的區(qū)別?
(2)多線程程序有什么優(yōu)點(diǎn)、缺點(diǎn)?
(2)多進(jìn)程程序有什么優(yōu)點(diǎn)、缺點(diǎn)?與多線程相比,有何區(qū)別?
2、編程題:
寫代碼,反轉(zhuǎn)一個(gè)單鏈表,分別以迭代和遞歸的形式來實(shí)現(xiàn)
typedef struct node LinkNode; struct node {int data;LinkNode* next; }; // 返回新鏈表頭節(jié)點(diǎn)
LinkNode *reverse_link(LinkNode *head)
LinkNode *reverse_link_recursive(LinkNode *head)
// 返回新鏈表頭節(jié)點(diǎn) LinkNode *reverse_link(LinkNode *head) {if(head == NULL)return NULL;LinkNode *prev , *curr , *reverse_head , *temp;prev = NULL , curr = head;while(curr->next){temp = curr->next;curr->next = prev;prev = curr;curr = temp;}curr->next = prev;reverse_head = curr;return reverse_head; }LinkNode *reverse_link_recursive(LinkNode *head) {if(head == NULL)return NULL;LinkNode *curr , *reverse_head , *temp;if(head->next == NULL) // 鏈表中只有一個(gè)節(jié)點(diǎn),逆轉(zhuǎn)后的頭指針不變r(jià)eturn head;else{curr = head;temp = head->next; // temp為(a2,...an)的頭指針reverse_head = reverse_link_recursive(temp); // 逆轉(zhuǎn)鏈表(a2,...an),并返回逆轉(zhuǎn)后的頭指針temp->next = curr; // 將a1鏈接在a2之后curr->next = NULL;}return reverse_head; // (a2,...an)逆轉(zhuǎn)鏈表的頭指針即為(a1,a2,...an)逆轉(zhuǎn)鏈表的頭指針 } 3、給一個(gè)數(shù)組,元素都是整數(shù)(有正數(shù)也有負(fù)數(shù)),尋找連續(xù)的元素相加之和為最大的序列。
如:1、-2、3、5、-4、6 連續(xù)序列3、5、-4、6的和最大。
如元素全為負(fù)數(shù),則最大的和為0,即一個(gè)也沒有選。
/*
array[]???? 輸入數(shù)組
n?????????? 數(shù)組元素個(gè)數(shù)
??????????? 返回最大序列和
*/
int find_max_sum(int array[] , int n)
int find_max_sum(int array[] , int n) {int i , max , sum;sum = max = array[0];for(i = 1 ; i < n ; ++i){if(sum < 0)sum = array[i];elsesum += array[i];if(sum > max)max = sum;}if(max < 0)max = 0;return max; } 三、設(shè)計(jì)題
1、設(shè)計(jì)一個(gè)圖片存儲(chǔ)系統(tǒng):假設(shè)有一個(gè)相冊系統(tǒng),每個(gè)用戶不限制上傳的圖片數(shù)目,每張相片壓縮后都在1M以內(nèi),需求如下:
(1)文件數(shù)量太大,采用傳統(tǒng)的文件系統(tǒng)存儲(chǔ)導(dǎo)致目錄系統(tǒng)非常臃腫,訪問速度變得緩慢;
(2)單機(jī)存儲(chǔ)容量已經(jīng)遠(yuǎn)遠(yuǎn)不能承載所有的文件;
(3)上傳之后,用戶只有讀取操作和刪除操作,不支持修改,整個(gè)系統(tǒng)讀寫比例10:1
思路:可以使用分布式的文件系統(tǒng),覺得hadoop的HDFS很符合要求,這是hadoop對googleGDFS的實(shí)現(xiàn)。
總結(jié)
以上是生活随笔為你收集整理的搜狐2012.9.15校园招聘会笔试题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 海量数据随机抽样问题(蓄水池问题)
- 下一篇: 搜狗2012.9.23校园招聘会笔试题