昨天晚上去蹭了一下Google的招聘筆試。其實(shí)是去打醬油的,主要是為了感受一下Google的出題風(fēng)格和考試氛圍,可以對(duì)將來找工作提供些參考。
回來之后本來想回憶一下題目的,結(jié)果發(fā)現(xiàn)braveheart89大大已經(jīng)貼出了所有的題而且連選項(xiàng)都一字不差,記憶力真心佩服……以下就根據(jù)他寫的題目稍微修正一下[1],然后隨便說說好了。(說的也不一定對(duì),歡迎更正。)
考試是第一頁(yè)需要填寫個(gè)人信息,包括實(shí)習(xí)經(jīng)歷、獲獎(jiǎng)情況、工作地點(diǎn)意向(國(guó)內(nèi)、國(guó)外還是兩者皆可之類,反正對(duì)我無(wú)用啦-.-)然后就是一個(gè)半小時(shí)的答題,全部手寫。
1、單項(xiàng)選擇題
1.1 如果把傳輸速率定義為單位時(shí)間內(nèi)傳送的信息量(以字節(jié)計(jì)算)多少。關(guān)于一下幾種典型的數(shù)據(jù)傳輸速率:
1.使用USB2.0閃存盤,往USB閃存盤上拷貝文件的數(shù)據(jù)傳輸速率
2.使用100M以太網(wǎng),在局域網(wǎng)內(nèi)拷貝大文件時(shí)網(wǎng)絡(luò)上的數(shù)據(jù)傳輸速率
3.使用一輛卡車?yán)?000塊單塊1TB裝滿數(shù)據(jù)的硬盤,以100km/h的速度從上海到天津(100km)一趟所等價(jià)的數(shù)據(jù)傳輸帶寬
4.使用電腦播放MP3,電腦的PCI總線到聲卡的數(shù)據(jù)傳輸速率
在通常情況下,關(guān)于這幾個(gè)傳輸速率的排序正確的是:
A.4<1<2<3 B.1<4<2<3 C.4<1<3<2 D.1<4<3<2
1.2 對(duì)以下程序,正確的輸出結(jié)果是
#define SUB(x,y) x-y
#define ACCESS_BEFORE(element,offset,value) *SUB(&element, offset) =value
int main()
{
int array[10]= {1,2,3,4,5,6,7,8,9,10};
int i;
ACCESS_BEFORE(array[5], 4, 6);
printf("array: ");
for (i=0; i<10; ++i){
printf("%d", array[i]);
}
printf("\n");
return (0);
}A.array: 1 6 3 4 5 6 7 8 9 10
B.array: 6 2 3 4 5 6 7 8 9 10
C.程序可以正確編譯連接,但是運(yùn)行時(shí)會(huì)崩潰
D.程序語(yǔ)法錯(cuò)誤,編譯不成功
1.3 在區(qū)間[-2, 2]里任取兩個(gè)實(shí)數(shù),它們的和>1的概率是:
A.3/8 B.3/16 C.9/32 D.9/64
1.4 小組賽,每個(gè)小組有5支隊(duì)伍,互相之間打單循環(huán)賽,勝一場(chǎng)3分,平一場(chǎng)1分,輸一場(chǎng)不得分,小組前三名出線。平分抽簽。問一個(gè)隊(duì)最少拿幾分就有理論上的出線希望:
A.1 B.2 C.3 D.4
1.5 用二進(jìn)制來編碼字符串“abcdabaa”,需要能夠根據(jù)編碼,解碼回原來的字符串,最少需要多長(zhǎng)的二進(jìn)制字符串?
A.12 B.14 C.18 D.24
1.6 10個(gè)相同的糖果,分給三個(gè)人,每個(gè)人至少要得一個(gè)。有多少種不同分法
A.33 B.34 C.35 D.36
1.7 下列程序段,循環(huán)體執(zhí)行次數(shù)是:
y=2
while(y<=8)
y=y+y;
A.2 B.16 C.4 D.3
1.8 下面哪種機(jī)制可以用來進(jìn)行進(jìn)程間通信?
A.Socket B.PIPE C.SHARED MEMORY D.以上皆可
1.9 下列關(guān)于編程優(yōu)化的說法正確的是:
A.使用編譯器的優(yōu)化選項(xiàng)(如-O3)后程序性能一定會(huì)獲得提高
B.循環(huán)展開得越多越徹底,程序的性能越好
C.寄存器分配能夠解決程序中的數(shù)據(jù)依賴問題
D.現(xiàn)代主流C/C++編譯器可以對(duì)簡(jiǎn)單的小函數(shù)進(jìn)行自動(dòng)Iinline
1.10 一下程序是用來計(jì)算兩個(gè)非負(fù)數(shù)之間的最大公約數(shù):
long long gcd(long long x, long long y) {
if( y==0) return 0;
else return gcd (y, x%y);
}我們假設(shè)x,y中最大的那個(gè)數(shù)的長(zhǎng)度為n,基本運(yùn)算時(shí)間復(fù)雜度為O(1),那么該程序的時(shí)間復(fù)雜度為:
A.O(1) B.O(logn) C.O(n) D.O(n^2)
2、程序設(shè)計(jì)與算法(2.1,2.2為編程題,2.3為算法設(shè)計(jì)題,只需設(shè)計(jì)思路和關(guān)鍵步驟偽代碼)
2.1 寫函數(shù),輸出前N個(gè)素?cái)?shù)。不需要考慮整數(shù)溢出問題,也不需要使用大數(shù)處理算法。
2.2 長(zhǎng)度為n的數(shù)組亂序存放著0至n-1. 現(xiàn)在只能進(jìn)行0與其他數(shù)的swap,請(qǐng)?jiān)O(shè)計(jì)并實(shí)現(xiàn)排序。
2.3 給定一個(gè)原串和目標(biāo)串,能對(duì)源串進(jìn)行如下操作:
1.在給定位置插入一個(gè)字符
2.替換任意字符
3.刪除任意字符
要求寫一個(gè)程序,返回最少的操作數(shù),使得源串進(jìn)行這些操作后等于目標(biāo)串。源串和目標(biāo)串長(zhǎng)度都小于2000。
——
以下是我根據(jù)各種來源總結(jié)的參考答案:
1.1 A
USB 2.0的理論傳輸極限是480Mbps[2],但是按照這個(gè)速率就沒有選項(xiàng)可選了-.-,所以猜測(cè)應(yīng)該認(rèn)為是普通U盤寫數(shù)據(jù)的6MB/s,即48Mbps;
100M以太網(wǎng)的速率就是100Mbps;
卡車?yán)脖P,1000x1000x8/3600=2222Mbps,這個(gè)應(yīng)該是最快的;
MP3在256kbps碼率下也平均只有1分鐘2MB,所以不會(huì)超過0.3Mbps,所以一定是最慢的。
1.2 D
相關(guān)文章推薦: