京東應(yīng)聘筆試題

字號(hào):


    下面是出國(guó)留學(xué)網(wǎng)為大家搜集整理的京東應(yīng)聘筆試題,希望能幫到大家。
    京東應(yīng)聘筆試題(一)
    1. 已知二叉樹的前序中序求后序,還有問已知中序后序能否確定一棵二叉樹。
    2. 冒泡排序算法的結(jié)束條件是什么。
    3. 集合關(guān)系是一個(gè)____的集合。
    線性結(jié)構(gòu)的關(guān)系是_____的關(guān)系。
    樹形結(jié)構(gòu)的關(guān)系是_____的關(guān)系。
    圖形結(jié)構(gòu)的關(guān)系是_____的關(guān)系。
    4. 一個(gè)二分查找序列,問關(guān)鍵字的比較次數(shù)。
    5. (1) 給了三張數(shù)據(jù)表,畫出三張數(shù)據(jù)表的E-R圖,可能就是標(biāo)出主鍵外鍵即可。
    (2) 插入數(shù)據(jù)庫的SQL語句。
    (3) 更新語句的SQL語句。
    (4) 選擇給定范圍的數(shù)據(jù)(價(jià)格大于1000小于3000),并且按照價(jià)格逆序排列。
    6. ISO網(wǎng)絡(luò)模型和TCP/IP的網(wǎng)絡(luò)層對(duì)應(yīng)關(guān)系。答案:應(yīng)用層、表示層、會(huì)話層對(duì)應(yīng)應(yīng)用層, 傳輸層對(duì)應(yīng)傳輸層,網(wǎng)絡(luò)層對(duì)應(yīng)網(wǎng)絡(luò)層,數(shù)據(jù)鏈路曾、物理層對(duì)應(yīng)網(wǎng)絡(luò)接口層。
    7. 多線程多進(jìn)程的一些基礎(chǔ)知識(shí)。
    8. 死鎖的來源,原因,及解決方法。
    智力題:
    1.規(guī)律:
    1 13 15 17 _ 19
    13 115 135 _ 163
    -1 0 4 22 _ 118
    2. 從12個(gè)乒乓球中找出一個(gè)不知道輕重的乒乓球。
    3. 飛機(jī)加油的問題。
    附加題:(java)
    1. 子類父類繼承的問題。
    2. 實(shí)現(xiàn)線程的幾種方式:繼承Thread類,實(shí)現(xiàn)Runable接口,Timer等等。
    3. 問一個(gè)try,catch,finally的問題,finally里面的語句是必須執(zhí)行的,知道這個(gè)就可以了。
    4. servlet的生命周期。
    京東應(yīng)聘筆試題(二)
    1、數(shù)據(jù)結(jié)構(gòu)
    若一顆二叉樹的前序遍歷為a,e,b,d,c后序遍歷為b,c,d,e,a,則根節(jié)點(diǎn)的孩子節(jié)點(diǎn)( )
    A:只有e
    B:有e,b
    C:有e,c
    D:不確定
    答案:A
    解析:先序遍歷的首結(jié)點(diǎn)一定是根,所以,a是整個(gè)樹的根。假設(shè)a的左右孩子分別是a.left、a.right,同時(shí),以a.left為根的子樹稱為,以a.right為根的子樹稱為,則
    整個(gè)樹的前序遍歷是:a a.left a.right
    整個(gè)樹的后序遍歷是: a.left a.right a
    對(duì)照aebdc和bcdea,得:
    a.left:e
    :b,c,d
    :NULL
    a.right:NULL
    即,a只有左孩子e。
    2、算法
    已知一個(gè)無向圖(邊為正數(shù))中頂點(diǎn)A,B的一條最短路P,如果把各個(gè)邊的重(即相鄰兩個(gè)頂點(diǎn)的距離)變?yōu)樵瓉淼?倍,那么在新圖中,P仍然是A,B之間的最短路,以上說法是( )
    A:錯(cuò)誤
    B:正確
    答案:B
    解析:考察Dijkstra算法:權(quán)值變成2倍后,從A到B,每次新添加的結(jié)點(diǎn)不變,到達(dá)B經(jīng)過的邊數(shù)也不變。因此,最短路徑和原來保持不變。注:如果題目是邊的權(quán)值都增加相同的正數(shù),則不保證新最短路徑保持不變。
    3、算法
    如下程序的時(shí)間復(fù)雜度為(其中m>1,e>0)( )
    x=m;
    y=1
    while(x-y>e)
    {
    x=(x+y)/2;
    y=m/x
    }
    print(x);
    A:log m
    B:m的平方
    C:m的1/2方
    D:m的1/3方
    答案:A
    解析:x=(x+y)/2中,x每次都折半為當(dāng)前和的一半,如果不是y=m/x,而是y==1不變,則顯然只經(jīng)過(logN次,x-y的值即小于e;何況y=m/x會(huì)保證y的新值不小于y的老值,進(jìn)一步降低x-y的值。因此,上限是O(logN)。