騰訊2013實習(xí)生招聘筆試題目(附答案)_第1頁
騰訊2013實習(xí)生招聘筆試題目(附答案)_第2頁
騰訊2013實習(xí)生招聘筆試題目(附答案)_第3頁
騰訊2013實習(xí)生招聘筆試題目(附答案)_第4頁
騰訊2013實習(xí)生招聘筆試題目(附答案)_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

32位機上根據(jù)下面的代碼,問哪些說法是正確的?signedchara=0xe0;unsignedintb=a;unsignedcharc=a;A.a>0&&c>0為真B.a==c為真C.b的十六進制表示是:0xffffffe0D.上面都不對分析:坑爹丫,有木有!10個人9個這個恐怕都不敢確定!(敢肯定的要么是高手,要么就是錯的!)Bme認(rèn)為是錯的,一個uchar和一個schar比較,真的就是一個字節(jié)在比較嗎?C認(rèn)為是對的,將一個schar賦值給一個uint,要不要符號擴展呢?是絕對會還是可能會呢?細節(jié)到底是神馬?O__O"…A貌似比較確定,肯定是錯的,肯定?揭露真相:A確實是錯的,B也是錯的,C是對的,所以D也是錯的。理由?A錯是因為,a是負數(shù),c是正數(shù),即使跟0比較要轉(zhuǎn)換到int(后面暫不區(qū)分轉(zhuǎn)換和類型提升,總之就是類型變了),也是一負一正,所以A錯。B呢?是說一正一負不會相等,難道是因為這嗎?難道不是嗎?首先說a和c的二進制表示一模一樣,都是0xe0,那么比較就不相等?!是的,比較的時候全部轉(zhuǎn)換為int,所以呢,a還是作為一個負數(shù)存在,c作為一個正數(shù)存在,于是就不相等了,所以B錯。C腫么就對了?a是一個schar,賦值給uint的b,前若干個字節(jié)不是補0嗎?首先schar轉(zhuǎn)換為int,然后int轉(zhuǎn)換成uint,所以最初是符號擴展,然后一個int賦值給了uintCcorrect!me曾經(jīng)要寫一篇關(guān)于c的類型以及指針的blog,不過最后沒有完成,不過還是可以參考一下的。下面哪些選項能編譯通過?inti;chara[10;stringf();stringg(string&str);A.if(!!i){f();}B.g(f());C.a=a+1;D.g("abc");分析:再次坑爹有木有!(其實me比較確信這道題,是坑別人的爹,O__O"…)A絕對是正確的,C絕對是錯的,D基本肯定是錯的,那B呢?要么error,要嚒warning!如果是warning但是沒有error,這算神馬情況呢?B確實不應(yīng)該選,至少語義上不該選!f()返回一個臨時量,然后傳給g1函數(shù),而g的參數(shù)是非const引用,是不能引用臨時量的!為嘛,如果g中修改了傳進來的string,那么會是怎么一回事呢?修改了一個臨時量的值?那這意義何在呢?但是如果將g的原型修改為stringg(conststring&);就是可以的,為么可以?訪問(只讀)臨時量就是正確的?那必須的,比如u可能想知道a+b的結(jié)果是多少,然后輸出!a+b的結(jié)果就是一個臨時量。如果說修改a+b的結(jié)果,這是神馬個邏輯?!真相:C錯是以為a是一個地址常量,不可能再被賦值。D為嘛錯呢?"abc"的類型可是constchar*呢,是個常量指針呢!可以用來初始化string)inta[10];問下面哪些不可以表示a[1]的地址?A.a+sizeof(int)B.&a[0]+1C.(int*)&a+1D.(int*)((char*)&a+sizeof(int))分析:奇葩丫!其實并不奇葩!)騰訊的題目有時候出的的確有水平丫,雖然出的太有水平了分就考不高了。me想哭丫,想來想去還是在A和B中選錯了,%>_<%,當(dāng)時還特意提醒自己來著的,O__O"…c++中的sort如何用來排序a數(shù)組呢?sort(a,a+N);或是sort(a,a+sizeof(a)/sizeof(a[0]));當(dāng)時懵了,實際上a+1,就是a[1]的地址呢!a的類型是int[10]a+1和一個int*類型的+1效果一樣,都表示偏移1個元素,所以A不能表示。(選錯誤的!)C能表示是因為取了首地址作為一個int*然后+1,就是偏移一個元素,所以不選。B腫么說呢,me一直一位&a[0]是一個普普通通的地址,+1就是+1個字節(jié),實際上是+1個元素!D也能表示?將a的首地址轉(zhuǎn)換為一個char*指針,這個時候+1是偏移一個char,也就是一個字節(jié),實際上應(yīng)該偏移sizeof(int)個字節(jié)才能到達a[1],所以D可以表示(不選)。不多說了。如果是二維數(shù)組是不是會更懵呢,O__O"…)問下面的數(shù)據(jù)都存放在哪些存儲區(qū)?intmain(){char*p="hello,world";return0;}A....B....C.棧和常量區(qū)D.棧和堆分析:"hello,world"是常量,趕腳應(yīng)該就是C吧,應(yīng)該大家感覺都一樣。這里不涉及什么堆的事。2假設(shè)在一個32位littleendian的機器上運行下面的程序,結(jié)果是多少?#include<stdio.h>intmain(){longlonga=1,b=2,c=3;printf("%d%d%d\n",a,b,c);return0;}A....B....C....D....分析:貌似問題沒有想的那么簡單。如果說運行結(jié)果,很簡單,有人是102(VC6.0和VC2008);有人是12。涉及到little/bigendian和參數(shù)入棧的問題,me表示現(xiàn)在有點無能為力,O__O"…在和上面,8字節(jié),printf("%d%d\n",c);會依次從a的地址開始輸出3個整型數(shù)據(jù)(4B)一共是12B,調(diào)用時,函數(shù)參數(shù)的壓棧順序是,ba且地址是連續(xù)存放的,小端情況下從a開始的棧去內(nèi)存內(nèi)容如下:所以連續(xù)輸出個字節(jié)的結(jié)果就是:1023【分析】:傳入?yún)?shù),由右往左,??臻g內(nèi)存從高往低,littleendian,??臻g如下:內(nèi)存高位->000000000000001100000000[00000010](c)[00000000](b)[00000001](a)<-內(nèi)存低位會按照4bytes取參數(shù).【答案】輸出:2下面哪些函數(shù)調(diào)用必須進入內(nèi)核才能完成?A.fopenB.exitC.memcpyD.strlen分析:有些無能為力。A是要打開文件的,貌似設(shè)計很多內(nèi)核操作丫;exit是退出進程,結(jié)束進程,應(yīng)該也要深入內(nèi)核。memcpyme一直猶豫用戶區(qū)的數(shù)據(jù)拷貝要不要通過內(nèi)核。strlen感覺關(guān)系不大。內(nèi)存管理中的LRU方法是用來管理神馬的?A.虛擬內(nèi)存的分配B.虛擬內(nèi)存的釋放C.物理內(nèi)存的分配D.物理內(nèi)存的釋放分析:貌似是用來關(guān)系物理塊的,后面的填空題正好有說,O__O"…關(guān)于DMA的說法,哪些是錯誤的?A.DMADirectMemoryAcess直接存儲器訪問,使得不同的速度的硬件設(shè)備可以直接通信,不通過CPU干預(yù);B.DMA訪問的時候需要從CPU那里奪得總線控制權(quán),然后...C.DMA速度快;D.DMA不需要中斷控制,CPU管理不要它;死鎖發(fā)生的必要條件?A.互斥條件B.請求和保持C.不可剝奪D.循環(huán)等待分析:ABCD就是死鎖的四個必要條件,操作系統(tǒng)書上貌似說的很明確。有兩個線程,最初n=0,一個線程執(zhí)行n++;n++;另一個執(zhí)行n+=2;問,最后可能的n值?4A.1B.2C.34分析:D順序執(zhí)行以下,就可以。B的話,讓后面一個執(zhí)行到+2,但不要寫結(jié)果,然后前一個執(zhí)行完,然后寫結(jié)果,為2C3的話,也好分析。A不可能!腫么可能呢?腫么可能結(jié)果只為1呢?兩個線程都會+2+1何從談起?先+1,然后讓后面的加法錯了,然后結(jié)果寫進去?前一個++n都沒執(zhí)行的話,后一個又腫么會執(zhí)行呢?總之不可能是1!不可能!O__O"(堅決不相信它可以。)下面哪些說法正確?A.數(shù)組和鏈表都可以隨機訪問B.數(shù)組的插入和刪除可以O(shè)(1)C.哈希表么法范圍檢查D....分析:總之ABD給人的感覺是顯而易見的錯丫,有木有,所以排除法還是能用的!至于hash結(jié)構(gòu),確實也不可以范圍檢查,因為key映射為value,完全將根據(jù)的hash函數(shù),而這個函數(shù)一般不滿足原來的單調(diào)性,實際上就應(yīng)該滿足!因為hash函數(shù)的設(shè)計是要value的映射隨機、均勻!基于比較的排序的時間復(fù)雜度下限是多少?A.O(n)B.O(n^2)C.O(nlogn)D....分析:貌似是數(shù)據(jù)結(jié)構(gòu)上面的一個結(jié)論,基于比較的排序的時間復(fù)雜度不能比O(nlogn)地。下面圖的拓撲排序可能是?A...分析:對于知道拓撲排序的,應(yīng)該很容易作答(me有時候在懷疑自己理解的是否正確?!)。求n個數(shù)中的最大值和最小值,最少的比較次數(shù)是?A.4n/3B.2n-2C.n-1D.3n/2分析:雖然不知道很高深的算法,但是me想丫,如果是213456這樣的序列,u認(rèn)為最少是多少次呢?me感覺是n-1。但是,題目也許是另外一個意思,也就是對于普通的序列,求最大值和最小值,能將比較次數(shù)降到多少?(me貌似見到過一些方法,但是忘了,O__O"…)一棵二叉樹的先序遍歷是fbacdegh,中序遍歷是abdcefgh,問后序遍歷是神馬?A....B....C....D....5分析:構(gòu)建二叉樹,然后看看后序遍歷是神馬?adecbhgfO__O"…,突然感覺一不小心gf和fg就寫反了,me應(yīng)該沒有吧?!網(wǎng)卡、交換機、路由器和UDP分別工作網(wǎng)絡(luò)的哪些層?A....B....C....D.....分析:值根據(jù)UDP在傳輸層,me就選出答案了:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和傳輸層。子網(wǎng)掩碼25..255.255.224可以將網(wǎng)絡(luò)x.x.x.x分成多少個子網(wǎng)?A....B....C.8D.32分析:224=128+64+32=11100000B,一看,后面5個0,就是2^5=32吧?TCP協(xié)議棧的定時器有哪些?A....B....C....D....分析:不會的路過。高內(nèi)聚和低耦合,下面哪個耦合度最高?A.通過函數(shù)參數(shù)傳遞...B.一個函數(shù)修改另外一個函數(shù)中的數(shù)據(jù);C.通過全局變量...D.通過指示器...分析:一看全局變量,就是它無疑了。O__O"…關(guān)于訪問,下面哪些是后臺絕對不會執(zhí)行的?A.本地查查DNS,是否有的ip;B.通過cn.查找ip;C.通過com.查找ip;D.瀏覽器發(fā)送httpget請求;6D.服務(wù)器回送xxx.jpg;分析:蒙也是蒙B,O__O"…在一個bigendian的32位的計算機上,b的結(jié)果是?(該處1個空)unsignedinta=0x1234;charb=*((char*)&a);分析:想不到又一個big/littleendian的問題。這個結(jié)果,me還比較確定寫,就是0uint是4個字節(jié),0x1234的完整表示是0x00001234,因為是bigendian,所以,所以&(取地址)的話,如果當(dāng)字節(jié)看的話,取到了最左邊00字節(jié)的地址,一定要轉(zhuǎn)換成char看的話,值就是0。一個有800個結(jié)點的完全二叉樹,問有多少個葉子結(jié)點?(該處1個空)雖然忘記是神馬公式計算了,只感覺和n/2有關(guān)系。然后隨便畫幾個試試,就可以找出來(n+1)/2的規(guī)律來,所以400。下面get是求一個二維數(shù)組元素的函數(shù),請補全。(1個空)#include<stdio.h>#include<stdlib.h>#defineM3#defineN4intget(int*a,inti,intj){intv;if(a==NULLi<0i>=Mj<0j>=N)exit(1);//v=*(a+i*N+j);//這里有一個空7returnv;}intmain(){inta[M[N={{1,2,3,4},{5,6,7,8},{9,10,11,12}};intv;v=get(a,2,1);printf("a[2][1]==%d\n",v);return0;}分析:差點寫錯了,還好迷途知返了,O__O"…補全插入排序:有2個空)#include<stdio.h>#include<stdlib.h>intinsert_sort(int*p,intcount){inti,j,tmp;if(p==NULLcount<0)return0;//for(i=1;i<count;i++){tmp=p[i;j=i-1;while(j>=0&&p[j>tmp){//此處判斷條件一個空8p[j+1=p[j;--j;}p[j+1=tmp;//此處一個空}return1;}intmain(){inti,a[10={3,2,1,7,8,10,4,5,6,9};insert_sort(a,10);for(i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論