乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      最新九月百度人搜,阿里巴巴,騰訊華為京東360筆試面試二十題

       richsky 2012-09-14

      引言

          自發(fā)表上一篇文章至今(事實(shí)上,上篇文章更新了近3個(gè)月之久),blog已經(jīng)停了3個(gè)多月,而在那之前,每月都不曾斷過。正如上一篇文章支持向量機(jī)通俗導(dǎo)論(理解SVM的三層境界)末尾所述:”額,blog許久未有更新了,因?yàn)樽罱鼘?shí)在忙,無暇顧及blog。“與此同時(shí),工作之余,也在一直閑心研究學(xué)習(xí)數(shù)據(jù)挖掘:"神經(jīng)網(wǎng)絡(luò)將可能作為Top 10 Algorithms in Data Mining之番外篇第1篇,同時(shí),k-最近鄰法(k-nearest neighbor,kNN)算法談到kd樹將可能作為本系列第三篇。這是此系列接下來要寫的兩個(gè)算法,剛好項(xiàng)目中也要用到KD樹“。

          但很顯然,若要等到下一篇數(shù)據(jù)挖掘系列的文章時(shí),說不定要到年底去了,而最近的這段時(shí)間,9月,正是各種校招/筆試/面試火熱的時(shí)節(jié),自己則希望能幫助到這些找工作的朋友,故此,怎能無動(dòng)于衷,所以,3個(gè)多月后,blog今天更新了。

          再者,雖然如我的這條微博:http://weibo.com/1580904460/yzs72mmFZ所述,blog自10年10月開通至11年10月,一年的時(shí)間內(nèi)整理了300多道面試題(這300道題全部集錦在此文中第一部分:http://blog.csdn.net/v_july_v/article/details/6543438)。但畢竟那些題已經(jīng)是前年或去年的了,筆試面試題雖然每年類型變化不大,但畢竟它年年推陳出新,存著就有其合理性。

          OK,以下是整理自8月下旬至9月中旬各大公司的筆試面試二十題,相信一定能給正在參加各種校招的諸多朋友多少幫助,學(xué)習(xí)參考或借鑒當(dāng)然,你手頭上若有好的筆試/面試題,歡迎通過微博私信:http://weibo.com/julyweibo,或郵箱:zhoulei0907@yahoo.cn發(fā)給我,或者干脆直接評論在本文下,再者,如果你對以下任何一題有任何看法.想法.思路或建議,歡迎留言評論,大家一起討論,享受思考的樂趣)。

      九月百度人搜,阿里巴巴,騰訊華為京東筆/面試二十題

      1. 9月11日, 京東:

        談?wù)勀銓γ嫦驅(qū)ο缶幊痰恼J(rèn)識

      2. 8月20日,金山面試,題目如下:
            數(shù)據(jù)庫1中存放著a類數(shù)據(jù),數(shù)據(jù)庫2中存放著以天為單位劃分的表30張(比如table_20110909,table_20110910,table_20110911),總共是一個(gè)月的數(shù)據(jù)。表1中的a類數(shù)據(jù)中有一個(gè)字段userid來唯一判別用戶身份,表2中的30張表(每張表結(jié)構(gòu)相同)也有一個(gè)字段userid來唯一識別用戶身份。如何判定a類數(shù)據(jù)庫的多少用戶在數(shù)據(jù)庫2中出現(xiàn)過?
        來源:http://topic.csdn.net/u/20120820/23/C6B16CCF-EE15-47C0-9B15-77497291F2B9.html。
      3. 百度實(shí)習(xí)筆試題(2012.5.6)
          簡答題1
        一個(gè)單詞單詞字母交換,可得另一個(gè)單詞,如army->mary,成為兄弟單詞。提供一個(gè)單詞,在字典中找到它的兄弟。描述數(shù)據(jù)結(jié)構(gòu)和查詢過程。
          簡答題2
        線程和進(jìn)程區(qū)別和聯(lián)系。什么是“線程安全”
        簡答題3
        C和C++怎樣分配和釋放內(nèi)存,區(qū)別是什么
          算法題1
        一個(gè)url指向的頁面里面有另一個(gè)url,最終有一個(gè)url指向之前出現(xiàn)過的url或空,這兩種情形都定義為null。這樣構(gòu)成一個(gè)單鏈表。給兩條這樣單鏈表,判斷里面是否存在同樣的url。url以億級計(jì),資源不足以hash。
          算法題2
        數(shù)組al[0,mid-1] 和 al[mid,num-1],都分別有序。將其merge成有序數(shù)組al[0,num-1],要求空間復(fù)雜度O(1)
          系統(tǒng)設(shè)計(jì)題
        百度搜索框的suggestion,比如輸入北京,搜索框下面會以北京為前綴,展示“北京愛情故事”、“北京公交”、“北”等等搜索詞。
        如何設(shè)計(jì)使得空間和時(shí)間復(fù)雜度盡量低。
      4. 人搜筆試
      5. 1. 快排每次以第一個(gè)作為主元,問時(shí)間復(fù)雜度是多少?(O(N*logN))
          2. T(N) = N + T(N/2)+T(2N), 問T(N)的時(shí)間復(fù)雜度是多少?(O(N))
          3. 從(0,1)中平均隨機(jī)出幾次才能使得和超過1?(e)
          4.編程題:
         一棵樹的節(jié)點(diǎn)定義格式如下:
         struct Node{
            Node* parent;
            Node* firstChild; // 孩子節(jié)點(diǎn)
            Node* sibling; // 兄弟節(jié)點(diǎn) 
        }
        要求非遞歸遍歷該樹。
        思路:采用隊(duì)列存儲,來遍歷節(jié)點(diǎn)。
          5. 算法題:
        有N個(gè)節(jié)點(diǎn),每兩個(gè)節(jié)點(diǎn)相鄰,每個(gè)節(jié)點(diǎn)只與2個(gè)節(jié)點(diǎn)相鄰,因此,N個(gè)頂點(diǎn)有N-1條邊。每一條邊上都有權(quán)值wi,定義節(jié)點(diǎn)i到節(jié)點(diǎn)i+1的邊為wi。
        求:不相鄰的權(quán)值和最大的邊的集合。
      6. 2011,人搜面試,所投職位:搜索研發(fā)工程師:面試題回憶 
             1、刪除字符串開始及末尾的空白符,并且把數(shù)組中間的多個(gè)空格(如果有)符轉(zhuǎn)化為1個(gè)。
             2、求數(shù)組(元素可為正數(shù)、負(fù)數(shù)、0)的最大子序列和。 
             3、鏈表相鄰元素翻轉(zhuǎn),如a->b->c->d->e->f-g,翻轉(zhuǎn)后變?yōu)椋篵->a->d->c->f->e->g 
             4、鏈表克隆。鏈表的結(jié)構(gòu)為: 
             typedef struct list { 
                 int data; //數(shù)據(jù)字段 
             list *middle; //指向鏈表中某任意位置元素(可指向自己)的指針 
             list *next;//指向鏈表下一元素 
             } list; 
             5、100萬條數(shù)據(jù)的數(shù)據(jù)庫查詢速度優(yōu)化問題,解決關(guān)鍵點(diǎn)是:根據(jù)主表元素特點(diǎn),把主表拆分并新建副表,并且利用存儲過程保證主副表的數(shù)據(jù)一致性。(不用寫代碼) 
             6、求正整數(shù)n所有可能的和式的組合(如;4=1+1+1+1、1+1+2、1+3、2+1+1、2+2) 
             7、求旋轉(zhuǎn)數(shù)組的最小元素(把一個(gè)數(shù)組最開始的若干個(gè)元素搬到數(shù)組的末尾,我們稱之為數(shù)組的旋轉(zhuǎn)。輸入一個(gè)排好序的數(shù)組的一個(gè)旋轉(zhuǎn),輸出旋轉(zhuǎn)數(shù)組的最小元素。例如數(shù)組{3, 4, 5, 1, 2}為{1, 2, 3, 4, 5}的一個(gè)旋轉(zhuǎn),該數(shù)組的最小值為1。) 
             8、找出兩個(gè)單鏈表里交叉的第一個(gè)元素 
             9、字符串移動(dòng)(字符串為*號和26個(gè)字母的任意組合,把*號都移動(dòng)到最左側(cè),把字母移到最右側(cè)并保持相對順序不變),要求時(shí)間和空間復(fù)雜度最小 
             10、時(shí)間復(fù)雜度為O(1),怎么找出一個(gè)棧里的最大元素   
             11、線程、進(jìn)程區(qū)別 
             12、static在C和C++里各代表什么含義 
             13、const在C/C++里什么意思 
             14、常用linux命令 
             15、解釋Select/Poll模型 
      7. 百度,網(wǎng)易,阿里巴巴等面試題:http://blog.csdn.net/hopeztm/article/category/1201028;
      8. 8月30日,網(wǎng)易有道面試題
        var tt = 'aa';
        function test()
        {
          alert(tt);
          var tt = 'dd';
          alert(tt);
        }
        test();  
      9. 8月31日,百度面試題:不使用隨機(jī)數(shù)的洗牌算法,詳情:http://topic.csdn.net/u/20120831/10/C837A419-DFD4-4326-897C-669909BD2086.html;
      10. 9月6日,阿里巴巴面試:
        1、介紹一下你自己。
        2、介紹一下你認(rèn)為做的最好的一個(gè)項(xiàng)目。
        3、請用五分鐘的時(shí)間把你做的項(xiàng)目的流程圖畫一下。
        4、項(xiàng)目中你遇到的難點(diǎn)是什么?怎么解決的?
        5、項(xiàng)目中你認(rèn)為哪個(gè)技術(shù)是你最拿手的?
        6、介紹一下HTTP協(xié)議
        7、如何把一個(gè)大的日志文件哈希到不同的哈希表中,這些哈希表的存儲格式是什么?
        8、linux網(wǎng)絡(luò)編程,畫一個(gè)c/s通信的流程
        9、多線程了解多少,做過的項(xiàng)目中有沒有用到過?
        10、描述一下動(dòng)態(tài)規(guī)劃的思想
        11、快排。
        12、內(nèi)存分配方式有哪幾種?代碼段放在哪個(gè)內(nèi)存區(qū)?static int a[1024][1024][1024]放在哪個(gè)區(qū)?會不會有異常?
        13、如何表示圖?
        14、如何驗(yàn)證圖的連通性?
        15、對互聯(lián)網(wǎng)的業(yè)務(wù)和技術(shù)是否關(guān)注?
      11. 9月7日,一道華為上機(jī)題:
        題目描述: 選秀節(jié)目打分,分為專家評委和大眾評委,score[] 數(shù)組里面存儲每個(gè)評委打的分?jǐn)?shù),judge_type[] 里存儲與 score[] 數(shù)組對應(yīng)的評委類別,judge_type == 1,表示專家評委,judge_type == 2,表示大眾評委,n表示評委總數(shù)。打分規(guī)則如下:專家評委和大眾評委的分?jǐn)?shù)先分別取一個(gè)平均分(平均分取整),然后,總分 = 專家評委平均分 * 0.6 + 大眾評委 * 0.4,總分取整。如果沒有大眾評委,則 總分 = 專家評委平均分,總分取整。函數(shù)最終返回選手得分。
        函數(shù)接口 int cal_score(int score[], int judge_type[], int n)  
         上機(jī)題目需要將函數(shù)驗(yàn)證,但是題目中默認(rèn)專家評委的個(gè)數(shù)不能為零,但是如何將這種專家數(shù)目為0的情形排除出去。
        來源:http://topic.csdn.net/u/20120907/15/c30eead8-9e49-41c2-bd11-c277030ad17a.html;
      12. 9月8日,騰訊面試題:
        假設(shè)兩個(gè)字符串中所含有的字符和個(gè)數(shù)都相同我們就叫這兩個(gè)字符串匹配,
         比如:abcda和adabc,由于出現(xiàn)的字符個(gè)數(shù)都是相同,只是順序不同,
         所以這兩個(gè)字符串是匹配的。要求高效!
        我想,你們能想到的,這篇blog里:http://blog.csdn.net/v_JULY_v/article/details/6347454都已經(jīng)有了。
      13. 阿里云,搜索引擎中5億個(gè)url怎么高效存儲;
      14. 創(chuàng)新工場微博,前幾天才發(fā)布的難道不少人的的牛題:http://t.qq.com/iwrecruiting?pgv_ref=im.WBlog.guest&ptlang=2052
      15. 4**9 的筆試題,比較簡單:
        1.求鏈表的倒數(shù)第二個(gè)節(jié)點(diǎn)
        2.有一個(gè)整數(shù)數(shù)組,求數(shù)組中第二大的數(shù)

      16.  阿里巴巴二道題
        第一道:
        對于給定的整數(shù)集合S,求出最大的d,使得a+b+c=d。a,b,c,d互不相同,且都屬于S。集合的元素個(gè)數(shù)小于等于2000個(gè),元素的取值范圍在[],假定可用內(nèi)存空間為100MB,硬盤使用空間無限大,試分析時(shí)間和空間復(fù)雜度,找出最快的解決方法。
        阿里巴巴第二道(研發(fā)類)
        筆試題1,原題大致描述有一大批數(shù)據(jù),百萬級別的。數(shù)據(jù)項(xiàng)內(nèi)容是:用戶ID、科目ABC各自的成績。其中用戶ID為0~1000萬之間,且是連續(xù)的,可以唯一標(biāo)識一條記錄??颇緼BC成績均在0~100之間。有兩塊磁盤,空間大小均為512M,內(nèi)存空間64M。
        1) 為實(shí)現(xiàn)快速查詢某用戶ID對應(yīng)的各科成績,問磁盤文件及內(nèi)存該如何組織;
        2) 改變題目條件,ID為0~10億之間,且不連續(xù)。問磁盤文件及內(nèi)存該如何組織;
        3) 在問題2的基礎(chǔ)上,增加一個(gè)需求。在查詢各科成績的同時(shí),獲取該用戶的排名,問磁盤文件及內(nèi)存該如何組織。
        筆試題2:代碼實(shí)現(xiàn)計(jì)算字符串的相似度。 
      17. 9月11日,京東全套筆試題:
      18. 群友壯壯在我的算法群里貼了如下一個(gè)圖(而它就是我寫的編程藝術(shù)系列第一章左旋轉(zhuǎn)字符串:http://blog.csdn.net/v_JULY_v/article/details/6322882的題):
        上面文章來源:http://www.cnblogs.com/bakari/archive/2012/09/09/2677155.html當(dāng)然,有些書上也收錄過此題,并給出了與我思路類似的解答,如下圖所示:
      19. 360PHP筆試全套試題:

        1、手工寫代碼一個(gè)HTML提交表單,注意(表單對齊方式)

        1. JavaScript代碼  
        2. 1. <script type="text/javascript">   
        3. 2. function check_form()   
        4. 3. {   
        5. 4.   var username = document.getElementById('username').value;   
        6. 5.   if (username == '') {   
        7. 6.     alert('非法用戶名');   
        8. 7.     return false;   
        9. 8.   } else {   
        10. 9.     return true;   
        11. 10.  }   
        12. 11. /*  
        13. 12. 更牛B的創(chuàng)意呢,你可以寫成jQuery的  
        14. 13.  
        15. 14.  if ($.trim($('#username').val()) == '') {  
        16. 15.   alert('非法用戶名');  
        17. 16.   $('#username').focus();  
        18. 17.   return false;  
        19. 18.  } esle {  
        20. 19.   return true;  
        21. 20.  }  
        22. 21. */   
        23. 22. }   
        24. 23. </script>   

        XML/HTML代碼

        1. 1. <form name="from1" method="POST" action="login.php" onsubmit="return check_form()">   
        2. 2. <table border="1" width="100%">   
        3. 3. <tr>   
        4. 4.   <td align="right">用戶名: </td>   
        5. 5.   <td><input type="text" id="username" name="username"></td>   
        6. 6. </tr>   
        7. 7. <tr>   
        8. 8.   <td align="right">密碼:</td>   
        9. 9.   <td><input type="password" id="password" name="password"></td>   
        10. 10 </tr>   
        11. 11. <tr>   
        12. 12.   <td colspan="2" align="right"><input type="submit" value="提交"></td>   
        13. 13. </tr>   
        14. 14. </table>   
        15. 15. </form>   

        2、寫一段上面表單的PHP驗(yàn)證程序

        PHP代碼

        1. 1. <?php   
        2. 2. /**  
        3. 3. * 如果想好好表現(xiàn)也可以不按這個(gè)流程來寫,設(shè)計(jì)個(gè)OO風(fēng)格的也許會+分,可以耐心的多寫會但不要寫亂這可不是在鍵盤上那么容易  
        4. 4. */   
        5. 5. $db = mysql_connect('localhost''root''');   
        6. 6. mysql_select_db('db_name');   
        7. 7.   
        8. 8. /* 不要吝嗇多寫代碼這個(gè)過濾函數(shù)要加的,此題也考察安全意識 */   
        9. 9. $username = mysql_real_escape_string($_POST['username']);   
        10. 10. $password = mysql_real_escape_string($_POST['password']);   
        11. 11.   
        12. 12. $sql = "SELECT PASS FROM UserInfo WHERE USER='{$username}'";   
        13. 13. $query = mysql_query($sql);   
        14. 14. $row = mysql_fetch_assoc($query);   
        15. 15.   
        16. 16. if ( ! $row) {   
        17. 17.   echo "用戶名不存在";   
        18. 18. } else {   
        19. 19.   echo $row['PASS'] == $password ? "密碼正確" : "密碼錯(cuò)誤";   
        20. 20. }   

        3、繼上一題寫出HTTP請求與接收的報(bào)文(摘錄)

        (1)請求行
            請求行由請求方法字段、URL字段和HTTP協(xié)議版本字段3個(gè)字段組成,它們用空格分隔。例如,GET /index.html HTTP/1.1。
            HTTP協(xié)議的請求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。這里介紹最常用的GET方法和POST方法。
          GET:當(dāng)客戶端要從服務(wù)器中讀取文檔時(shí),使用GET方法。GET方法要求服務(wù)器將URL定位的資源放在響應(yīng)報(bào)文的數(shù)據(jù)部分,回送給客戶端。使用GET方法時(shí),請求參數(shù)和對應(yīng)的值附加在URL后面,利用一個(gè)問號(“?”)代表URL的結(jié)尾與請求參數(shù)的開始,傳遞參數(shù)長度受限制。例如,/index.jsp?id=100&op=bind。
          POST:當(dāng)客戶端給服務(wù)器提供信息較多時(shí)可以使用POST方法。POST方法將請求參數(shù)封裝在HTTP請求數(shù)據(jù)中,以名稱/值的形式出現(xiàn),可以傳輸大量數(shù)據(jù)。
        (2)請求頭部
            請求頭部由關(guān)鍵字/值對組成,每行一對,關(guān)鍵字和值用英文冒號“:”分隔。請求頭部通知服務(wù)器有關(guān)于客戶端請求的信息,典型的請求頭有:
          User-Agent:產(chǎn)生請求的瀏覽器類型。
          Accept:客戶端可識別的內(nèi)容類型列表。
          Host:請求的主機(jī)名,允許多個(gè)域名同處一個(gè)IP地址,即虛擬主機(jī)。
        (3)空行
            最后一個(gè)請求頭之后是一個(gè)空行,發(fā)送回車符和換行符,通知服務(wù)器以下不再有請求頭。
        (4)請求數(shù)據(jù)
            請求數(shù)據(jù)不在GET方法中使用,而是在POST方法中使用。POST方法適用于需要客戶填寫表單的場合。與請求數(shù)據(jù)相關(guān)的最常使用的請求頭是Content-Type和Content-Length。

        4、正則匹配郵箱地址

        PHP代碼

        1. 1. <?php   
        2. 2. $html = "9812ed aboys72@sina.com s9dfasdf$@$ aboys72@sina.vip.com Aboys72@sohu.com linglong__@163-net.com.cn liu.lei@mail.com";   
        3. 3. preg_match_all('/\w+(\.\w+)*@\w+(\.\w+){1,}/'$html$mails);   
        4. 4. print_r($mails);   
        5. 4、SHELL下搜索*.xml文件中含有hello的文件(我在Ubuntu下嘗試命令通過,以前在CentOS也這樣的使用過此命令但是沒有預(yù)期效果)  

        Shell代碼

        1. 1. grep -r hello *.xml   

        5、autoload機(jī)制

        $object = new UFO;時(shí),試圖調(diào)用一個(gè)未引入的類文件在系統(tǒng)報(bào)錯(cuò)之前,會嘗試使用__autoload進(jìn)行加載類,如果定義了__autoload方法將按照此規(guī)則進(jìn)行加載類文件

        6、實(shí)現(xiàn)strrev()函數(shù)“360奇虎,不使用mb_substr情況下。

        PHP代碼

        1. 1. <?php   
        2. 2. /* 不使用mb_string */   
        3. 3. $string = "虎奇063";   
        4. 4. $length = strlen($string);   
        5. 5. $rev_string = '';   
        6. 6. /* 限UTF-8字符編碼字節(jié)占3,不然還有寫個(gè)is_utf8來判斷所占用的字節(jié)數(shù) */   
        7. 7. $byte_len = 3;   
        8. 8. for ($i = 0; $i < $length;) {   
        9. 9.   if (ord(substr($string$i, 1)) > 0xa0) {   
        10. 10.     $rev_string = substr($string$i$byte_len) . $rev_string;   
        11. 11.     $i+= $byte_len;   
        12. 12.   } else {   
        13. 13.   $rev_string = substr($string$i, 1) . $rev_string;   
        14. 14.   $i++;   
        15. 15.   }   
        16. 16. }   
        17. 17. echo $rev_string;   

        7、使用了索引查詢的語句,EXPLAIN

        SQL代碼

        1. 1. SELECT * FROM user where name='a';   
        2. 2.   
        3. 3. SELECT * FROM user where name='a' OR name='b';   
        4. 4.   
        5. 5. SELECT * FROM user where name like 'a%';   

      20. 多玩YY 2012校園招聘筆試題  C++  A

        時(shí)間:120分鐘          提示:請注意代碼風(fēng)格

        1、請給出以下程序的輸出:(12分)

        1. class A  
        2. {  
        3. public:  
        4.     A()  
        5.     {  
        6.         puts("In A");  
        7.     }  
        8.     ~A()  
        9.     {  
        10.         puts("Out A");  
        11.     }  
        12. };  
        13.   
        14. class B  
        15. {  
        16. public:  
        17.     B()  
        18.     {  
        19.         puts("In B");  
        20.     }  
        21.     ~B()  
        22.     {  
        23.         puts("Out B");  
        24.     }  
        25. };  
        26.   
        27. class X  
        28. {  
        29. public:  
        30.     X()  
        31.     {  
        32.         puts("In X");  
        33.     }  
        34.     ~X()  
        35.     {  
        36.         puts("Out X");  
        37.     }  
        38.     virtual void test()  
        39.     {  
        40.         puts("test in X");  
        41.     }  
        42. };  
        43.   
        44. class C:public X  
        45. {  
        46. public:  
        47.     C(): b(), a()  
        48.     {  
        49.         puts("In C");  
        50.   
        51.     }  
        52.     ~C()  
        53.     {  
        54.         puts("Out C");  
        55.     }  
        56.     virtual void test()  
        57.     {  
        58.         puts("test in C");  
        59.     }  
        60. private:  
        61.     A a;  
        62.     B b;  
        63. };  
        64.   
        65. int main()  
        66. {  
        67.     X* p = new C;  
        68.     p->test();  
        69.     delete p;  
        70.   
        71.     return 0;  
        72. }   

        2、請簡述以下const的作用(8分)

        1)const int a = 10;
        2)const  int*
        3)int * const a
        4)void T::test() const

        3、請問以下過程調(diào)用的時(shí)拷貝構(gòu)造函數(shù)還是賦值運(yùn)算符:(6分)

        1. class Test{…}  
        2. Test a,b;  
        3. a = b;             1)                                
        4. Test a;  
        5. Test b = a;         2)                                
        6. Test a;  
        7. Test b(a);          3)                                

        4、請完成以下函數(shù)的填空:(9分)

        1. int binarySearch(int from, int to, int target, int *array)  
        2. {  
        3.   /* 
        4.     功能:從array中查找target,返回target在array中的下標(biāo) 
        5.   */  
        6.   if(from <= to)  
        7.   {  
        8.     int middle = (from + to) /2;  
        9.     if(array[middle] == target)  
        10.                        
        11.     else if(array[middle]<target)  
        12.                        
        13.   else  
        14.                        
        15.   }  
        16.   return -1;  
        17. }  

        5、請給出以下程序的輸出:(5分)

        1. class T  
        2. {  
        3. public:  
        4.     T()  
        5.     {  
        6.         puts("T()");  
        7.     }  
        8.     ~T()  
        9.     {  
        10.         puts("~()");  
        11.     }  
        12. private:  
        13. };  
        14.   
        15. void test(T t)  
        16. {  
        17. }  
        18.   
        19. int main()  
        20. {  
        21.     T t;  
        22.     test(t);  
        23.   
        24.     return 0;  
        25. }  

        6、下面的代碼段有幾處錯(cuò)誤,請根據(jù)程序的意圖,寫出正確的server類(10分)

        提示:這段代碼實(shí)現(xiàn)的功能是定期向各個(gè)server 發(fā)ping包,各個(gè)server對象是在不同時(shí)間創(chuàng)建的

        1. class Server  
        2. {  
        3.     Server()  
        4.     {  
        5.     }  
        6.     ~Server()  
        7.     {  
        8.     }  
        9.     void checkSendPing()  
        10.     {  
        11.         /* 
        12.         每隔5秒給該服務(wù)器發(fā)ping 
        13.         */  
        14.         static int lastSendPing = (int)time(NULL);  
        15.         int now = (int)time(NULL);  
        16.         if(now < lastSendPing + 5)  
        17.             return;  
        18.         //send ping to peer  
        19.     }  
        20. private:  
        21. };  
        22.   
        23. void monitorServer(std::vector<Server>& x)  
        24. {  
        25.     /* 
        26.     監(jiān)控所有服務(wù)器的狀態(tài),這個(gè)函數(shù)每秒運(yùn)行一次 
        27.     */  
        28.     for(std::vector<Server>::iterator it = x.begin();  
        29.         it != x.end();++it)  
        30.         it->checkSendPing();  
        31. }  

        7、(編程題)100萬個(gè)數(shù)據(jù),數(shù)據(jù)值在0~65535之間,請用盡可能少的內(nèi)存和最快的速度從小到大排序(10分)

        1. void sort(int* array, int n)  
        2. {  
        3.     //n的值在100萬左右  
        4.     //你的實(shí)現(xiàn)  
        5. }  

        8、(編程題)請完成如下函數(shù),從長度為n的數(shù)組array中刪除值等于v的元素,返回刪除后的數(shù)組array和元素個(gè)數(shù)(10分)

        1. int remove(int* array, int n, int v)  
        2. {  
        3.     //你的實(shí)現(xiàn)  
        4. }  

        9、(編程題)請看以下的Maixu結(jié)構(gòu):(15分)

        1. struct Maixu  
        2. {  
        3.     int sid;                       //id  
        4.     std::list<int> userlist:      //隊(duì)列  
        5.     int validTime;                //預(yù)定時(shí)間,每個(gè)結(jié)構(gòu)不一樣,平均5分鐘左右,以秒為單位  
        6.     int leftTime;                 //剩余時(shí)間,以秒為單位  
        7. };  

        其中隊(duì)列userlist中每一項(xiàng)都在預(yù)定的時(shí)間validTime后出隊(duì),比如當(dāng)前隊(duì)列是{1,2,3},validTime5秒,則5秒后1出列,隊(duì)列變?yōu)?/span>{2,3},再過52出隊(duì),隊(duì)列變?yōu)?/span>{3},相應(yīng)的實(shí)現(xiàn)代碼如下:

        1. std::vector<Maixu> m_maixus;      /*這個(gè)vector長度最多可以達(dá)到100000*/  
        2.   
        3. void Timer()              //Timer函數(shù)每秒運(yùn)行一次  
        4. {  
        5.     for(std::vector<Maixu>::iterator it = m_maixus.begin();  
        6.       it !=m_maixus.end();++it)  
        7.       {  
        8.           if(it->userlist.empty())  
        9.               continue;  
        10.           if(--it->leftTime == 0)  
        11.           {  
        12.               //時(shí)間到  
        13.               it->userlist.pop_front();  
        14.               it->leftTime = it->validTime;  
        15.               //其他操作  
        16.           }  
        17.       }  
        18. }  

        請問上面的實(shí)現(xiàn)方式有沒有什么問題?如何改進(jìn)?請?zhí)岢瞿愕母倪M(jìn)方案并重寫上面的代碼段。

        10、(思考題)有服務(wù)器S1S2…Sn100>n>50),每個(gè)服務(wù)器上維護(hù)著連接到該服務(wù)器的用戶的信息,服務(wù)器之間互相連接,當(dāng)用戶信息有更新,必須通知到與它相連的其它服務(wù)器。比如S1上的用戶a改了昵稱,必須通知到S2 、S3…但由于網(wǎng)絡(luò)的不可靠,更新通知不一定每次都能到達(dá)其它服務(wù)器,假設(shè)S2丟了通知,則S2必須同步上的用戶信息,最差情況下,S2~Sn都可能同時(shí)丟了S1的通知而導(dǎo)致同步。

        每個(gè)服務(wù)器大概維護(hù)10000個(gè)用戶,用戶的信息結(jié)構(gòu)如下,大小平均約100B:(15分)

        1. struct UserInfo  
        2. {  
        3.     int userId;        //用戶id  
        4.     string nickname;   //昵稱  
        5.     string sign;       //簽名  
        6.     //其它用戶信息  
        7. };  

        問題:

        1) S2如何發(fā)現(xiàn)它丟了S1的通知?
        2) 每個(gè)服務(wù)器的帶寬限制10M/s,請給出一個(gè)可用的同步方案,保證服務(wù)器帶寬不超過限制的情況下完成同步工作;
        3) 顯然如果通知越可靠,同步將會大大減少,請?zhí)岢鲆恍┠芴岣咄ㄖ煽啃缘姆桨覆⒑唵握f明它的實(shí)現(xiàn)。

      21. 持續(xù)更新,待續(xù)...2012.09.13;

          由于整理匆忙,有部分題目未注明詳細(xì)來源,若以上任何一題目出自你的空間或者發(fā)的帖子而未有注明,請于本文評論中告知我,一定即刻補(bǔ)上,謝謝。

      后記

          經(jīng)過上面這么多筆試面試題目的了解,你自會看到,除了少數(shù)幾個(gè)特別難的算法題,大部分都是考察的基礎(chǔ),故面試的關(guān)鍵是你的80%的基礎(chǔ)和編程能力 + 20%的算法能力。
          重復(fù)開頭那句話:如果你有好的筆試面試題,歡迎提供給我統(tǒng)一整理出來對于好的題目提供者,在私信:http://weibo.com/julyweibo,或郵件:zhoulei0907@yahoo.cn,里你盡可以提出你的要求,或貼出你的微博昵稱,或個(gè)人主頁,或免費(fèi)回贈(zèng)編程藝術(shù)+算法研究的兩個(gè)PDF文檔:http://weibo.com/1580904460/yzpYDAuYz,以供他人借閱;如果你對以上任何一題有好的思路或解法,更歡迎不吝分享,show me your answer or code!thank you。
          OK,以上的一切都是我喜歡且我樂意做的,我愿同各位朋友享受這一切。如果你身邊有正在參加校招/筆試/面試的朋友,歡迎把此文轉(zhuǎn)給他/她,舉手之勞,助人無限,謝謝。完。July,二零一二年九月。

        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多