腾讯2011.10.15校园招聘会笔试题
轉(zhuǎn)載請(qǐng)標(biāo)明出處,原文地址:http://blog.csdn.net/hackbuteer1/article/details/6878287
1、下面的排序算法中,初始數(shù)據(jù)集的排列順序?qū)λ惴ǖ男阅軣o(wú)影響的是(B)
A、插入排序????????????????????? B、堆排序??????????????????? C、冒泡排序???????????????????? D、快速排序
2、以下關(guān)于Cache的敘述中,正確的是(B)
A、CPU中的Cache容量應(yīng)大于CPU之外的Cache容量
B、Cache的設(shè)計(jì)思想是在合理成本下提高命中率
C、Cache的設(shè)計(jì)目標(biāo)是容量盡可能與主存容量相等
D、在容量確定的情況下,替換算法的時(shí)間復(fù)雜度是影響Cache命中率的關(guān)鍵因素
3、數(shù)據(jù)存儲(chǔ)在磁盤上的排列方式會(huì)影響I/O服務(wù)的性能,一個(gè)圓環(huán)的磁道上有10個(gè)物理塊,10個(gè)數(shù)據(jù)記錄R1------R10存放在這個(gè)磁道上,記錄的安排順序如下表所示:
| 物理塊 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 邏輯記錄 | R1 | R2 | R3 | R4 | R5 | R6 | R7 | R8 | R9 | R10 |
假設(shè)磁盤的旋轉(zhuǎn)速度為20ms/周,磁盤當(dāng)前處在R1的開(kāi)頭處,若系統(tǒng)順序掃描后將數(shù)據(jù)放入單緩沖區(qū)內(nèi),處理數(shù)據(jù)的時(shí)間為4ms(然后再讀取下個(gè)記錄),則處理這10個(gè)記錄的最長(zhǎng)時(shí)間為(C)
A、180ms?????????????????????????? B、200ms????????????????????????? C、204ms???????????????????????????? D、220ms
2+4+((2+4)+2*8)*9=204
4、隨著IP網(wǎng)絡(luò)的發(fā)展,為了節(jié)省可分配的注冊(cè)IP地址,有一些地址被拿出來(lái)用于私有IP地址,以下不屬于私有IP地址范圍的是(C)
A、10.6.207.84????????????????????????????? B、172.23.30.28?????????????????????C、172.32.50.80?????????????? D、192.168.1.100
私有IP地址共有三個(gè)范圍段:
A:???? 10.0.0.0~10.255.255.255 /8 B:????? 172.16.0.0~172.31.255.255 /12 C:?? 192.168.0.0~192.168.255.255 /16
5、下列關(guān)于一個(gè)類的靜態(tài)成員的描述中,不正確的是(D)
A、該類的對(duì)象共享其靜態(tài)成員變量的值????????????????????????????? B、靜態(tài)成員變量可被該類的所有方法訪問(wèn)?????????????????
C、該類的靜態(tài)方法只能訪問(wèn)該類的靜態(tài)成員變量???????????????? D、該類的靜態(tài)數(shù)據(jù)成員變量的值不可修改
6、已知一個(gè)線性表(38,25,74,63,52,48),假定采用散列函數(shù)h(key) = key%7計(jì)算散列地址,并散列存儲(chǔ)在散列表A【0....6】中,若采用線性探測(cè)方法解決沖突,則在該散列表上進(jìn)行等概率成功查找的平均查找長(zhǎng)度為(C)
A、1.5????????????????? B、1.7???????????????????????????C、2.0?????????????????????? D、2.3
依次進(jìn)行取模運(yùn)算求出哈希地址:
| A | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| 記錄 | 63 | 48 | ? | 38 | 25 | 74 | 52 |
| 查找次數(shù) | 1 | 3 | ? | 1 | 1 | 2 | 4 |
74應(yīng)該放在下標(biāo)為4的位置,由于25已經(jīng)放在這個(gè)地方,所以74往后移動(dòng),放在了下標(biāo)為5的位置上了。
由于是等概率查找,所以結(jié)果為:1/6*(1+3+1+1+2+4)= 2.0
7、表達(dá)式“X=A+B*(C--D)/E”的后綴表示形式可以為(C)
A、XAB+CDE/-*=???????????????????? B、XA+BC-DE/*=??????????????????????C、XABCD-*E/+=???????????????????????? D、XABCDE+*/=
8、(B)設(shè)計(jì)模式將抽象部分與它的實(shí)現(xiàn)部分相分離。
A、Singleton(單例)???????????????????????????????????? ?B、?Bridge(橋接)?????????????????????
C、?Composite(組合)???????????????????????????????????D、 Facade(外觀)
9、下面程序的輸出結(jié)果為多少?
void Func(char str_arg[100]) {printf("%d\n",sizeof(str_arg)); }int main(void) {char str[]="Hello";printf("%d\n",sizeof(str));printf("%d\n",strlen(str));char *p = str;printf("%d\n",sizeof(p));Func(str); }輸出結(jié)果為:6?? 5???? 4????? 4
對(duì)字符串進(jìn)行sizeof操作的時(shí)候,會(huì)把字符串的結(jié)束符“\0”計(jì)算進(jìn)去的,進(jìn)行strlen操作求字符串的長(zhǎng)度的時(shí)候,不計(jì)算\0的。
數(shù)組作為函數(shù)參數(shù)傳遞的時(shí)候,已經(jīng)退化為指針了,Func函數(shù)的參數(shù)str_arg只是表示一個(gè)指針,那個(gè)100不起任何作用的。
10、C++將父類的析構(gòu)函數(shù)定義為虛函數(shù),下列正確的是哪個(gè)?
A、釋放父類指針時(shí)能正確釋放子類對(duì)象
B、釋放子類指針時(shí)能正確釋放父類對(duì)象
C、這樣做是錯(cuò)誤的
D、以上全錯(cuò)
C++的多態(tài)肯定是使用父類的指針指向子類的對(duì)象,所以肯定是釋放子類的對(duì)象,如果不使用虛函數(shù)的話,父類的指針就只能夠釋放父類的對(duì)象。
11、下列哪一個(gè)不屬于關(guān)系數(shù)據(jù)庫(kù)的特點(diǎn)?
A、數(shù)據(jù)冗余度小
B、數(shù)據(jù)獨(dú)立性高
C、數(shù)據(jù)共享性好
D、多用戶訪問(wèn)
12、下面程序的輸出結(jié)果為多少?
void Func(char str_arg[2]) {int m = sizeof(str_arg); //指針的大小為4int n = strlen(str_arg); //對(duì)數(shù)組求長(zhǎng)度,str_arg后面的那個(gè)2沒(méi)有任何意義,數(shù)組已經(jīng)退化為指針了printf("%d\n",m);printf("%d\n",n); } int main(void) {char str[]="Hello";Func(str); }輸出結(jié)果為:????? 4???????? 5
strlen只是對(duì)傳遞給Func函數(shù)的那個(gè)字符串求長(zhǎng)度,跟str_arg中的那個(gè)2是沒(méi)有任何關(guān)系的,即使把2改為200也是不影響輸出結(jié)果的。。
13、typedef char *String_t; 和 #define String_d char * 這兩句在使用上有什么區(qū)別?
答:typedef char *String_t 定義了一個(gè)新的類型別名,有類型檢查。而#define String_d char * 只是做了個(gè)簡(jiǎn)單的替換,無(wú)類型檢查,前者在編譯的時(shí)候處理,后者在預(yù)編譯的時(shí)候處理。
同時(shí)定義多個(gè)變量的時(shí)候有區(qū)別,主要區(qū)別在于這種使用方式String_t? a,b;? String_d? c,d;??? a,b ,c都是char*類型,而d為char類型
由于typedef還要做類型檢查。。#define沒(méi)有。。所以typedef比#define安全。。
14、到商店里買200的商品返還100優(yōu)惠券(可以在本商店代替現(xiàn)金)。請(qǐng)問(wèn)實(shí)際上折扣是多少?
15、題目:已知rand7() 可以產(chǎn)生 1~7 的7個(gè)數(shù)(均勻概率),利用rand7()? 產(chǎn)生rand10()?? 1~10(均勻概率)
記住這道題重點(diǎn)是:均勻概率
//rand7 產(chǎn)生的數(shù)概率是一樣的,即1~7出現(xiàn)概率一樣,由于我們對(duì)結(jié)果做了一定的篩選只能通過(guò) 1~5,而1~5出現(xiàn)的概率也是一樣的,又由于范圍為1~5 所以 temp1 出現(xiàn) 1~5的概率 為1/5 ,同理 后面的 出現(xiàn) temp2 的概率為 1/2 //首先temp1出現(xiàn)在1~5的概率為1/5,而temp2出現(xiàn) 1~2 的概率為1/2,也就是說(shuō) 5*(temp2-1) 出現(xiàn)5或0的概率為1/2,所以假如你要得到1~5的數(shù)的話 那么 5*(temp2-1) 必須0,所以因?yàn)槟阋WC 5*(temp2-1)=0,這個(gè)概率只有1/2,再加上 你前面指定1~5 的概率 為1/5 ,所以結(jié)果為 1/5*1/2=1/10 int rand10() {int temp1;int temp2;do{temp1 = rand7();}while(temp1>5);do{temp2 = rand7();}while(temp2>2);return temp1+5*(temp2-1); }16、給定能隨機(jī)生成整數(shù)1到5的函數(shù),寫出能隨機(jī)生成整數(shù)1到7的函數(shù)。
17、對(duì)一個(gè)正整數(shù)作如下操作:如果是偶數(shù)則除以2,如果是奇數(shù)則加1,如此進(jìn)行直到1時(shí)操作停止,求經(jīng)過(guò)9次操作變?yōu)?的數(shù)有多少個(gè)?
第9次操作:結(jié)果1由2產(chǎn)生。1個(gè)被操作數(shù)
8:結(jié)果2只能由4產(chǎn)生。1個(gè)被操作數(shù)
7:結(jié)果4由8、3產(chǎn)生。2個(gè)
6:結(jié)果8由16、7產(chǎn)生;結(jié)果3由6產(chǎn)生。共3個(gè)
5:結(jié)果16由32、15產(chǎn)生;結(jié)果7由14產(chǎn)生;結(jié)果6由12、5產(chǎn)生。共5個(gè)…
每次操作,偶數(shù)(2除外)都由該數(shù)減1和該數(shù)的2倍得來(lái),奇數(shù)只由該數(shù)的2倍得來(lái)
各次操作的操作對(duì)象個(gè)數(shù)為:1,1,2,3,5,8,13,21,34,…
本題可以通過(guò)所給的變換規(guī)律,由易到難,確定操作可變?yōu)?的數(shù)組成斐波拉契數(shù)列,再根據(jù)所發(fā)現(xiàn)的規(guī)律求出經(jīng)過(guò)9次操作變?yōu)?的數(shù)的個(gè)數(shù)。
18、OFFSETOF(s, m)的宏定義,s是結(jié)構(gòu)類型,m是s的成員,求m在s中的偏移量。
算法編程題:
1、給定一個(gè)字符串,求出其最長(zhǎng)的重復(fù)子串。
思路:使用后綴數(shù)組,對(duì)一個(gè)字符串生成相應(yīng)的后綴數(shù)組后,然后再排序,排完序依次檢測(cè)相鄰的兩個(gè)字符串的開(kāi)頭公共部分。
這樣的時(shí)間復(fù)雜度為:
生成后綴數(shù)組 O(N)
排序 O(NlogN*N) 最后面的 N 是因?yàn)樽址容^也是 O(N)
依次檢測(cè)相鄰的兩個(gè)字符串 O(N * N)
總的時(shí)間復(fù)雜度是 O(N^2*logN),?
轉(zhuǎn)載請(qǐng)標(biāo)明出處,原文地址:http://blog.csdn.net/hackbuteer1/article/details/6878287
總結(jié)
以上是生活随笔為你收集整理的腾讯2011.10.15校园招聘会笔试题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C++函数中那些不可以被声明为虚函数的函
- 下一篇: 2011.10.17百度面试题