阿里巴巴2017實習生筆試題含答案_第1頁
阿里巴巴2017實習生筆試題含答案_第2頁
阿里巴巴2017實習生筆試題含答案_第3頁
阿里巴巴2017實習生筆試題含答案_第4頁
阿里巴巴2017實習生筆試題含答案_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、關于C的iniineS字以下說法正觀的呈()傍用:咲址字的谿鱷譯器在詢用處展開舷件中可包魚2“曲彩的聲明可以匹同一個項目的不同舷件商宦義因數名祝同1旦共現不同的15屈逬定義在I注聲明內的成員困數黙認是亠工迪謝優(yōu)先使用去實現的內詐1弟亟姻牘現答案:D聯(lián)函數:Tip:只有當函數只有10行甚至更少時才將其定義為聯(lián)函數.定義:當函數被聲明為聯(lián)函數之后,編譯器會將其聯(lián)展開,而不是按通常的函數調用機制 進行調用.優(yōu)點:當函數體比較小的時候,聯(lián)該函數可以令目標代碼更加高效.對于存取函數以及其 它函數體比較短,性能關鍵的函數,鼓勵使用聯(lián).缺點:濫用聯(lián)將導致程序變慢.聯(lián)可能使目標代碼量或增或減,這取決于聯(lián)函數的

2、大小. 聯(lián)非常短小的存取函數通常會減少代碼大小,但聯(lián)一個相當大的函數將戲劇性的增加代碼 大小.現代處理器由于更好的利用了指令緩存,小巧的代碼往往執(zhí)行更快。結論:一個較為合理的經驗準則是,不要聯(lián)超過10行的函數謹慎對待析構函數,析構 函數往往比其表面看起來要更長,因為有隱含的成員和基類析構函數被調用!另一個實用的經驗準則:聯(lián)那些包含循環(huán)或switch語句的函數常常是得不償失(除非在 大多數情況下,這些循環(huán)或switch語句從不被執(zhí)行).注意:有些函數即使聲明為聯(lián)的也不一定會被編譯器聯(lián),這點很重要;比如虛函數和遞歸 函數就不會被正常聯(lián).通常,遞歸函數不應該聲明成聯(lián)函數(遞歸調用堆棧的展開并不像 循

3、環(huán)那么簡單,比如遞歸層數在編譯時可能是未知的,大多數編譯器都不支持聯(lián)遞歸函 數).虛函數聯(lián)的主要原因則是想把它的函數體放在類定義,為了圖個方便,抑或是當作文 檔描述其行為,比如精短的存取函數.-ini. h 文件:Tip:復雜的聯(lián)函數的定義,應敖在后綴名為-inl.h的頭文件中.聯(lián)函數的定義必須放在頭文件中,編譯器才能在調用點聯(lián)展開定義.然而,實現代碼理論 上應該放在.cc文件中,我們不希望.h文件中有太多實現代碼,除非在可讀性和性能上 有明顯優(yōu)勢.如果聯(lián)函數的定義比較短小,邏輯比較簡單,實現代碼放在.h文件里沒有任何問題.比 如.存取函數的實現理所當然都應該放在類定義.出于編寫者和調用者的方

4、便,較復雜的頁腳 聯(lián)函數也可以放到.h文件中,如果你覺得這樣會使頭文件顯得笨重.也可以把它萃取到 單獨的-inl.h中.這樣把實現和類定義分離開來,當需要時包含對應的-inl.h即可。A項錯誤,因為使用inline關鍵字的函數只是用戶希望它成為聯(lián)函數,但編譯器有權 忽略這個請求,比如:若此函數體太大,則不會把它作為聯(lián)函數展開的。B項錯誤,頭文件中不僅要包含inline函數的聲明,而且必須包含定義,且在定義時 必須加上inline ?!娟P鍵字inline必須與函數定義體放在一起才能使函數成 為聯(lián),僅將inline放在函數聲明前面不起任何作用】C項錯誤,inline函數可以定義在源文件中,但多個源

5、文件中的同名inline函數 的實現必須相同。一般把inline函數的定義放在頭文件中更加合適。D項正確,類的成員函數,默認都是inline的。【定義在類聲明之中的成員函數將自 動地成為聯(lián)函數】EF項無意思,不管是class聲明中定義的inline函數,還是class實現中定 義的inline函數,不存在優(yōu)先不優(yōu)先的問題,因為class的成員函數都 是inline的,加了關鍵字inline也沒什么特殊的Q【單選圏對N個欽迸行排序.在各目址優(yōu)鳥件下以下丹去9雜購星0答案:D插入排序改良的冒泡最優(yōu)也是n頁腳數組排序算法算法時間復雜度空間復雜度長佳平均罠差層差Quicksort0(n log(n)0

6、n log(n)0(nA2)O(log(n)Mergesort0(n log(n)OS log(n)0(n log(n)0(n)Timsort0(n)O(n log(n)O(n log(n)O(n)HeaosortO(n log(n)O(n log(n)O(n log(n)oBubble Sort0(n)0(rr2)0n2)0(1)Insertion Sort0(n)0(rr2)0(nA2)0(1)Selection Sort0(22)O(nA2)0(22)0(1)Shell Sort0(n)O(nlogn)A2)O(nlog(n)A2)0(1)Bucket SortO(n+k)O(n + k

7、)0(22)0(n)Radix SortO(nk)O(nk)O(nk)O(n + k)邑乙兩個一祥大小的杯子其向分別裝釜小于一半?S積的比年縊誦現胳申杯子蟲的一分水側入乙杯子NE挎乙怎子沖合液6!入一些到日杯子上:時 里杯子33液體仔爰到堀初殆狀戀假走ZK和爾S衆(zhòng)呂之旨泊曲齊于局臺之荊約體機之紅 那么以下說法正牡笳是0甲杯于里的劉引焙子于乙杯子里的水的體積田杯子里的唇Hi的住積茅于Z仟子里的酉楷的B決田杯于里的水的傳積爭干乙杯子里航酉陌的壞枳甲杯于里的京的仿段爭干乙祎子里的水的it積甲杯于里的滿仿有干乙杯于里的敝臥上都不對答案:A頁腳Q 單選粗1 rdin()2 (af讓 sb;char,Bp

8、a=a;W;prT(W; a-a*alibahaoxkorkotaliboba運行淞workalibaba答案:AO聞嗣-4-=*7SRS干紅珠閉羽fiMT蠻匕一個球殳紅0的驗足d觀在從空宣子中土出夥囲I裁和曲潔8MS出一個球呈紅球的IE舉mq如臬 pg 2 乂必不遊法正3的:0長衩虹球的個小于齧曲的1 呦氓梶1球的個數大于昭坊怖、數是嚨球的個t姪扇殊的的2佶 是祖球的個數是黒球的*(疋驢撕品初紅球和少答案:B頁腳0 單彌(ABCOEcI() (FCEBA)(DEBFCA)(FBDCBA)(EBFZA)答案:D先序遍歷中左右 中序遍歷左中右 后序遍歷左右中頁腳Q 單選屈在TCRIP建立連接過程

9、??蛻糗Q:編務為菇約決戀轉移協(xié)去第喫的泵?經歷SYKEC瞅態(tài) 經歷SW_S曲瀕態(tài)BESZA5LISHEDtt經彷FIKE_XM誹去關務器在收到8g包8寸倚加人半連接弘列腿貓檢受爭焙戶溜山電百將從半連靠隊列H!除答案:DTCP建立連接時首先客戶端和服務器處于close狀態(tài)。然后客戶端發(fā)送SYN同步位,此時客戶端處于SYN-SEND狀態(tài),服務器處于1ISTEN狀態(tài), 當服務器收到SYN以后,向客戶端發(fā)送同步位SYN和確認碼ACK,然后服務器變?yōu)镾YN-RCVD,客戶端收到服務器發(fā)來的S YN和ACK后,客戶端的狀態(tài)變成ESTABLI SHED (已建立連接), 客戶端再向服務器發(fā)送ACK確認碼,服

10、務器接收到以后也變成ESTABLISHED然后服務器客戶端開始數據傳輸Q 單選圏假設在n進制下.T 如弍成立n怕星:)240 2=23801918答案:F假設為 n 進值則2*(n*2) +4*(n* 1) +0 * l*n+2=2* (n3) +8*(n*2) +8*(nl)頁腳化簡后居然為很等式,n為任意值Q 單選羈下面關于系統(tǒng)鬧用的FS述牛IS誤的足)系統(tǒng)調用把應刊站的iS耒陽讎系統(tǒng)內核執(zhí)行系統(tǒng)誠用中祓訥用的過程運f亍在”用戶態(tài)呻羽聞系蛻說用能夠E到掾作系 軽也的夢種股芬罡操0E系統(tǒng)提倶給編俚人易的糕口系統(tǒng)調用給用戶煤萌了設備訪問的細節(jié)系姒9用尿護了一些只能在內核複式拉行能臉作捋令答案:

11、B用戶空間與系統(tǒng)空間所在的存區(qū)間不一樣,同樣,對于這兩種區(qū)間,CPU的運行狀態(tài)也不一 樣。在用戶空間中,CPU處于用戶態(tài);在系統(tǒng)空間中,CPU處于系統(tǒng)態(tài)”。(單晦關于linux的2宴用渣dselect和epDll T列說法?Si艮的宗0select用時會進行線t遷歷?!?采用刖鮒機制必;5妾線flil歷乂 k的呆大連按矽為Q-SETSIZE處。冷適合于有犬曼并發(fā)連按,且活戲璉接轉多的場杲昨O較適用于有丈蚤并冷銭,但活觀連接不冬的場黒epoll的妓率不陰F鴻目塔如而緘性下黴辱“逋過共享存赧現內垓和用戶的遜搏交互答案:Cselectselect能監(jiān)控的描述符個數由核中的FD_SETSIZE限制,僅

12、為1024,這也是select最大 的缺點,因為現在的服務器并發(fā)量遠遠不止1024。即使能重新編譯核改變FD SETSIZE的值, 但這并不能提高select的性能。頁腳每次調用select都會線性掃描所有描述符的狀態(tài),在select結束后,用戶也要線性掃描 fd set數組才知道哪些描述符準備就緒,等于說每次調用復雜度都是0 (n)的,在并發(fā)量大 的情況下,每次掃描都是相當耗時的,很有可能有未處理的連接等待超時。每次調用select都要在用戶空間和核空間里進行存復制fd描述符等信息。pollpoll使用pollfd結構來存儲fd,突破了 select中描述符數目的限制。與select的后兩點

13、類似,pol 1仍然需要將pollfd數組拷貝到核空間,之后依次掃描fd 的狀態(tài),整體復雜度依然是0(n)的,在并發(fā)量大的情況下服務器性能會快速下降。epollepoll維護的描述符數目不受到限制,而且性能不會隨著描述符數目的增加而下降。服務器的特點是經常維護著大量連接,但其中某一時刻讀寫的操作符數量卻不多。epoll 先通過epoll_ctl注冊一個描述符到核中,并一直維護著而不像poll每次操作都將所有要監(jiān) 控的描述符傳遞給核;在描述符讀寫就緒時,通過回掉函數將自己加入就緒隊列中,之后 epoll wait返回該就緒隊列。也就是說,epoll基本不做無用的操作,時間復雜度僅與活躍的 客戶端

14、數有關,而不會隨著描述符數目的增加而下降。epoll在傳遞核與用戶空間的消息時使用了存共享,而不是存拷貝,這也使得epoll的效 率比poll和select更高。O 單畫有無遷泊水源_個51_無刃度糊0個?L無刻反補殳熾利用這兩個無刻良桶將不8法得:)0答案:F頁腳答案:4單選題91121142答案:165在100-999這900個自然數中.若將組成這個數的三個數字認為是三條線段的長度.那么是三 條線段組成一個等腰三角形(包括等邊)的共有()個.Jiinelude using namespace std;int main()inta = 0;intb = 0;intc = 0;inttime

15、= 0;for(int i = 100; i c)丨(b = c & (c + ba) i | (c = a & (a + cb)time+;cout time endl;return 0;Q imsajTSW個不盛循環(huán)謹宏服列(1)單循環(huán)鏈表在單鏈表中,將終端結點的指針域NULL改為指向表頭結點或開始結 點即可。(2)多重鏈的循環(huán)鏈表將表中結點鏈在多個環(huán)上。2隊列(Queue)是只允許在一端進行插入,而在另一端進行刪除的運算受限的線性表;3. 棧(stack)在計算機科學中是限定僅在棧頂進行插入或刪除操作的線性表。4. 關聯(lián)數組”是一種具有特殊索引方式的數組。不僅可以通過整數來索引它,還可以

16、使用字符串或者其他類型的值(除了 NULL )來索引它。 關聯(lián)數組和數組類似,由以名稱作 為鍵的字段和方法組成。它包含標量數據,可用索引值來單獨選擇這些數據,和數組不同的是,關聯(lián)數組的索引值不是非負的整數而是任意的標量。這些標量稱為Keys,頁腳 可以在以后用于檢索數組中的數值。關聯(lián)數組的元素沒有特定的順序,你可以把它們想 象為一組卡片。每卡片上半部分是索引而下半部分是數值。5. 鏈表(Linked list)是一種常見的基礎數據結構,是一種線性表,是一種物理存儲單元 上非連續(xù)、非順序的存儲結構。雙向鏈表也叫雙鏈表,是鏈表的一種,它的每個數據結 點中都有兩個指針,分別指向直接后繼和直接前驅。所

17、以,從雙向鏈表中的任意一個 結點開始,都可以很方便地訪問它的前驅結點和后繼結點。一般我們都構造雙向循環(huán)鏈 表。單下面的斃種排牙空壬在手均不昱O(nlogn)的乍二臾初川抑樣序閔非序答案:B法 方 序 排性 定 穩(wěn)入序|7(n20(一o(n)n2)0()0(1定 穩(wěn)9o(n)n2)51/0(1定 穩(wěn) 不o(n) n2 0(0(1定 穩(wěn) 不序 ff 堆XV nlo 0(0(1換序n2)0(o(rl)n2)50(1II2)5J# ng (nl o一一cx)zrd) 如5桶排序的平均時間復雜度為線性的0(7+C),其中C=N*(logN-logM)o如果相對于同樣的N, 桶數量M越大,其效率就高,最好

18、的時間復雜度達到0)。當然桶排序的空間復雜度為 0(N+M),如果輸入數據非常龐大,而桶的數量也非常多,則空間代價無疑是昂貴的。此外, 桶排序是穩(wěn)定的。頁腳里創(chuàng)業(yè)團隊的一個很大的辦公卻蛙躋(:;8檔可以倉IS更有TSJV1F驚 祁個工位白于臣和3FI磁遠而程收不1H5號為了歸5工位的聯(lián)網15E . 隹備在工位和WIFIfS號溜之聞安叢一左SAP(柜當于中室的.可以中結諄工位上松;I機和別FI之間的信號.只老忌從V1FI友出劃3號,紅里AP姦 W1FI霸丈近.超不到中絕笛作用列昨兩工垃太遠則可PES不上訓IFI因此APW個眼佳的妄會位吉那么關亍AP嚴住妄御2M的說罰E娩的品:)坤鬧皿海功率越大,

19、那么A陶住安裝位刃4竝近豳F胡淅功率越丸那4農佳白期位蠱&6逅工位XI港力蘋価麻住熬位呂無關.盟走住安裝位3!在工位和肛韻5號源連2竝處APftti安裝位蠱證工位和WIFT佶號源連披中點 以上說法和不對O (單選題宵100個免不.力給:0個人第一個空吊罅IS率地分給10個丿、之一之后的每一個仝甬分確策K個人的槪率正M;于這個人已經15有的仝甬SJW在這樣 的分6幀制下,關于毎個人碗的全冷個數的分桁的i兌注無逞的(毎個人得到的金幣的個逍哋是緒的甸個人的金幣個矽按近場勻弁布第Y金幣絡朋、人朋個人的最絡金幣彳勸的朋里頼會更大玄中間的篥個階畠金幣彳対越的人,未來翊金市的可紇性越大答案:B頁腳0 里遜左

20、目田奩蹄恬;兄下只君成悄肝小張用目己的小兀袒了小壬屯蘇 關于這個交繪人下諾去TS謨殆是小張鈕5橡皮比小刀更好小王詡汕刀比橡皮更好小錐和小王總的I佃里沒育發(fā)生孌化小張和小王的汐用值動了:m把小王炭成小目那么這個交換可瀕不會發(fā)生小刀和拔齢佰答案:F選項AB是對稱的,所以肯定正確,由AB可以看出題目的意圖是,這次交換靠的是物品的相 對價值相當(小覺得橡皮比小刀更好, 小王覺得小刀比橡皮更好),但明顯最后一個選 項等值指的長他們的絕對價值structintintcharirt sized struct旳下c&?在64垃處刮a上運亍站泌fli逗什么乍2420U141312答案:161. struct的對

21、齊原則,注意不同的編譯器有不同的效果。 2不同的數據類型在32位和64位下所占字節(jié)的區(qū)別32位編譯器:頁腳char : 1個字節(jié)char* (即指針變t) : 4個字節(jié)(32位的尋址空間是2,32即32個 bit,也就是4個字節(jié)。同理64位編譯器)short int : 2 個字節(jié)int:4個字節(jié)unsigned int : 4 個字節(jié) float: 4個字節(jié) double: 8個字節(jié) long: 4個字節(jié) long long: 8 個字節(jié) unsigned long: 4 個字節(jié)64位編譯器:char : 1個字節(jié)char*(即指針變量):8個字節(jié)short int : 2 個字節(jié)int:

22、4個字節(jié)unsigned int : 4 個字節(jié)float: 4個字節(jié)double: 8個字節(jié)long: 8個字節(jié)long long: 8 個字節(jié)unsigned long: 8 個字節(jié)此處指針先占用8字節(jié)。int占用4字節(jié),滿足要求不用補齊,char占用一個字節(jié), 同時總的字節(jié)數必須滿足8的倍數即16Q 單泌1A10Include #include uing nanespcc &td; int ftain(vold) vectorarray; rray.push_back(100); array.push_back(390); jrray.puth_back(3G); array.pu5h_

23、back(30e);11rray.puih_back(390); array.push_back(50e);131415vector:iterator itor;for( i?or-a*Tay. begin(); iter!*ray. end (); itc-t-t) (iffitor390)17IB19292122232425( itor-ar-ay.erasefitcr); for( itor-array. begin (); ltor 1 -array .end(); Itxx ccutBitor: return 0;頁腳下面這個代瑪域出的超)100 300 3OD 330 300 50

24、0100 3OC 300 300 500100 300 300 500100 200 50010G 500答案:100 300 300 500vector:erase():從指定容器刪除指定位置的元素或某段圍的元素vector:: erase ()方法有兩種重載形式如下:iterator erase( iterator Where):iterator erase( iterator First, iterator Last);如果是刪除指定位置的元素時:返回值是一個迭代器,指向刪除元素下一個元素;如果是刪除某圍的元素時:返回值也表示一個迭代器,指向最后一個刪除元素的下一 個元素;本題中,當*itor=300成立時,刪除第一個值為300的元素,同時itor指向下一個 元素(即是第二個值為300的元素)在for(; ; i tor+)執(zhí)行ilor, ilor指向第三個值為300的元素,進入下一個循環(huán) 進入循環(huán)滿足*itor=300,重復上面的過程,執(zhí)行完循環(huán),itor執(zhí)行值為500的元 素。所有整個過程中,只刪除了 2個值為300的元素。單翻下面關寧一歡吉成貝損述中不正號的是仆妊成員竝可襪i亥類的所言方注訪問該冥的靜態(tài)方注只能訪冋該賓的邙態(tài)幀陽該類的漿渤 據腿芟蛋的信不可修左答案:c可以修改類的靜態(tài)成員屬于整個類而不是某個對象,可以被類的所有方法訪問,子類當

溫馨提示

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

最新文檔

評論

0/150

提交評論