盛大遊戲2011 10 22校招筆試題 答案解析

2022-03-01 15:22:23 字數 3036 閱讀 1739

1、下列**的輸出為:

#include "iostream" 

#include "vector" 

using namespace std; 

int main(void)  } 

for(itor=array.begin();itor!=array.end();itor++) 

return 0; 

} a、100   300   300   500    b、100    300     500    c、100    500    d、程式錯誤

2、下列**的輸出為:

class cparent 

virtual void hobby() 

}; class cchild:public cparent 

virtual void hobby() 

}; int main(void) 

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!

3、在win32平台下,以下哪種方式無法實現程序同步?

a、critical section      b、event      c、mutex         d、semaphore

4、按照公升序排列的一組資料123456798,下面哪種排序法在空間和時間上最優?

a、快速排序             b、氣泡排序             c、插入排序             d、堆排序

5、以下哪句的說法是正確的

a、在頁式儲存管理中,使用者應將自己的程式劃分為若干個相等的頁

b、所有的程序都掛起時,系統將陷入死鎖

c、執行系統呼叫可以被中斷

d、程序優先數是程序排程的重要依據,必須根據程序運**況動態改變

6、以下描述正確的是

a、虛函式是可以內聯的,可以減少函式呼叫的開銷提高效率

b、類裡面可以同時存在函式名和引數都一樣的虛函式和靜態函式

c、父類的析構函式是非虛的,但是子類的析構函式是虛的,delete子類物件指標會呼叫父類的析構函式

d、以上都不對

7、5+55+555+...+555..5(55個5)所得之和的末四位數是多少

a、9435             b、9445            c、9475               d、9485

8、5+55+555+...+555..5(12個5)所得之和的末三位數是多少

9、7+77+777+...+777..7(2005個7)所得之和的末四位數是多少

簡答題:快速排序的思想是遞迴的,但是它的平均效率卻是眾多排序演算法中最快的,為什麼?請結合本例說明你對遞迴程式的理解。

演算法題:用你熟悉的程式語言,設計如下功能的函式:輸入乙個字串,輸出該字串中所有字母的全排列。程式請適當新增注釋。

c++函式原型:

void print(const

char *str)

輸入樣例:

abc輸出結果:

abc、acb、bca、bac、cab、cba

b。erase刪除迭代器後,會返回指向下乙個元素的迭代器(本質是刪除後,後面的元素左移了),但注意for迴圈中又更新了迭代器itor++,所以第二個300被跳掉了,結果是b而不是c。

b。多型,呼叫的是子類的虛函式。

a。a不能跨程序使用,c一次允許乙個程序訪問共享記憶體,d一次允許多個程序訪問共享記憶體。

c。已經基本有序,快排很容易遇到主元選擇不當的問題,堆排序也沒有必要了(堆排序的優點在於對輸入次序不敏感,因此不能有效利用數列的基本有序性質)。b和c之間選擇其實還要三思,插入排序和氣泡排序都是原地排序,所以空間複雜度一樣。時間複雜度兩者都是兩層迴圈,插入排序在遍歷第二個元素至最後乙個元素時,比較次數為n-1+1,+1是因為訪問8的時候,前面的9和7都要比較;氣泡排序從遍歷第乙個元素至第endindex的元素,endindex是變化的,第一次外迴圈的時候endindex為倒數第二個元素,第二次外迴圈的時候endindex為倒數第三個元素。第一次外迴圈時,比較次數為n-1次,第二次外迴圈時,比較次數是n-2次,第二次無元素變化,所以可以結束排序,總的比較次數是2n-3。這樣看來,還是插入排序為優。

c。只要開啟使能位,是可以中斷系統呼叫的。

c。虛函式不能是內聯函式(編譯時展開,必須有實體),不能是靜態函式(屬於自身類,不屬於物件,而虛函式要求有實體),不能是建構函式(尚未建立虛函式表)。虛函式只在繼承的概念下有意義。

c。54*5+(55*5)的進製=297,所以倒數第二位是7,進製為29。

610。演算法同7。

0415。演算法同7。

簡答題:

原因:(1)內迴圈是與固定值進行比較的,不會對資料進行連續的搬移。

(2)比較次數少,而且對於隨機數組而言,很少出現主元選擇不當而降低效率的問題。

遞迴程式的理解:

理想情況下複雜度為t(n)=o(n)+t(n/2)=o(nlogn),遞迴就是將原先複雜度為n的演算法,逐步減少運算元量(由t(n)降至t(n/2)),運用分治思想將複雜問題一次一次折半地簡化,達到最終以對數複雜度解決問題的目的。

注意快排只是平均和最好情況下的複雜度為o(nlogn),它最壞的複雜度是o(n^2),當然,只要輸入陣列是隨機的,出現o(n^2)複雜度的概率好比「你家的電腦被閃電擊中了」。

演算法題:

全排列

1 #include 2

using

namespace

std;34

static

int count = 0;5

6void permut(char* a, int start, int

end)713

else

1421}22

}232425

void print(const

char*str)

2634

35int

main()

36

2017盛大遊戲2017前端工程師校招筆試題總結

1.js的陣列方法中,哪些方法不改變陣列自身?改變陣列自身 pop push shift unshift reverse splice sort 不改變陣列,返回相應值 join slice concat map filter some every reduce reduceright 不改變陣列自...

盛大遊戲2011 10 22校園招聘會筆試題

1 下列 的輸出為 view plain copy to clipboard print include iostream include vector using namespace std int main void for itor array.begin itor array.end ito...

盛大遊戲2011 10 22校園招聘會筆試題

1 下列 的輸出為 cpp view plain copy include iostream include vector using namespace std intmain void for itor array.begin itor array.end itor return 0 a 100...