京東 2018 秋招測試開發工程師筆試題
一.單選題
1.若度爲m 的哈夫曼樹中,其葉結點個數爲 n,則非葉結點的個數爲( )
A. n-1
B. n/m-1
C. (n-1)/(m-1)
D. n/(m-1)-1
E. (n+1)/(m+1)-1
2.進程會在各個狀態之間切換,下面哪些是不可能的( )
A. 運行→就緒
B. 運行→等待
C. 等待→運行
D. 等待→就緒
3.若一序列進棧順序爲 a1,a2,a3,a4,問存在多少種可能的出棧序列( )
A. 12
B. 13
C. 14
D. 15
4.下面關於c++拷貝構造函數說法錯誤的是( )
A. 產生了新的對象實例,調用的就是拷貝構造函數;如果沒有,調用的是賦值運算符
B. 沒有定義拷貝構造函數的話,編譯器不會默認自動產生拷貝構造函數
C. 類中可以存在超過一個拷貝構造函數
D. 聲明一個私有拷貝構造函數可以防止按值傳遞對象
5.查詢該目錄及子目錄下所有的以.conf 爲後綴的文件
A. fifind ./ -name “conf”
B. fifind ./ -name “*.[conf]”
C. fifind ./ -type d | egrep “.(conf)”
D. fifind ./ -regextype posix-extended -regex “.*.(conf)”
6.若將網絡192.168.0.0/22 劃分爲5 個子網,則可以劃分出的最小子網的子網掩碼是( )
A. 255.255.255.0
B. 255.255.255.128
C. 255.255.255.192
D. 255.255.255.224
7.有2 個關係模式:訂單表:R(訂單號,日期,客戶名稱,收貨人) 訂單明細表:S(訂單號,商品編
碼,單價,數量) 若要檢索 2017/1/1 到2017/12/31 期間,訂購商品的總金額超過 20000 元的客戶名稱
和總金額,則 SQL查詢語句是( )
A. SELECT客戶名稱,單價數量 AS 總金額 FROM R,S WHERE 日期 BETWEEN *"*2017-1-1"AND “2017-12-31”
AND 單價數量>20000
B. SELECT客戶名稱, SUM(單價數量) AS 總金額 FROM R,S WHERE R.訂單號*=* S.訂單號 AND日期
BETWEEN “2017-1-1” AND “2017-12-31” GROUP BY 客戶名稱 HAVING 單價數量>20000
C. SELECT 客戶名稱, SUM (單價數量*)* AS 總金額 FROM R,S WHERE R.訂單號*=* S.訂單號 AND 日期
BETWEEN “2017-1-1” AND “2017-12-31” GROUP BY 客戶名稱 HAVING SUM(單價數量)>20000
D. SELECT 客戶名稱,單價數量 AS 總金額 FROM R,S WHERE R.訂單號*=* S.訂單號 AND 日期 BETWEEN
“2017-1-1” AND “2017-12-31” GROUP BY 客戶名稱 HAVING 單價數量>20000
8.下面覆蓋標準中 ,覆蓋標準最低的是?( )
A. 語句覆蓋
B. 判定覆蓋
C. 條件覆蓋
D. 判定/條件覆蓋
9.下面代碼如果用基本路徑法測試的話,覆蓋幾條路徑?
void sort(int num, int type){
int a = 0;
int b = 0;
while(num-- > 0){
if(3==type){
a=b+1;
break;
} else if(4==type){
x=y+10;
} else if(5==type){
x=y+20;
} else {
x=y+30;
}
}
}
A. 3
B. 4
C. 5
D. 6
10.正則表達式 ^d+ 【^d】+ 能匹配下列哪個字符串?( )
A. 123
B. 123a
C. d123
D. 123def
E. d7d
11.一個序列爲(13,18,24,35,47,50,63,83,90,115,124),如果利用二分法查找關鍵字爲 90 的,則需要
幾次比較 。( )
A. 1
B. 2
C. 3
D. 4
12.已知一個二叉樹前序遍歷和中序遍歷分別爲 ABDEGCFH和DBGEACHF,則該二叉樹的後序遍歷爲?(
)
A. DGEBHFCA
B. DGEBHFAC
C. GEDBHFCA
D. ABCDEFGH
13.以下哪個命令不能查看文件裏內容?()
A. more
B. cat
C. ls
D. less
14.把14,27,71,50,93,39 按順序插入一棵樹,插入的過程不斷調整使樹爲平衡排序二叉樹,最終形成平衡排
序二叉樹高度爲?
A. 3
B. 4
C. 5
D. 6
15.定義如下程序:
public class Person{
{
tem.out.println(“P1”);
}
static{
System.out.println(“P2”);
}
public Person(){
System.out.println(“P3”);
}
}
public class Students extends Person{
static{
System.out.println(“S1”);
}
{
System.out.println(“S2”);
}
public Students(){
System.out.println(“S3”)
}
public static void main(String[] args){
new Students();
}
}
程序執行結果是?( )
A. P1P2P3S1S2S3
B. P1P2P3S2S1S3
C. P2P1S1P3S2S3
D. P2S1P1P3S2S3
16.下面程序的輸出是?( )
public class Main {
public static void main(String[] args) {
Other o = new Other();
new Main().addOne(o);
System.out.println(o.i);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
A. 0
B. 1
C. 編譯出錯
D. 運行出錯
二.不定項選擇題
1.有關linux 線程的描述,正確的是( )
A. 線程自己擁有很少的資源,但它可以使用所屬進程的資源
B. 同一進程中的多個線程具有相同的地址空間,所以它們間的同步和通信也易於實現
C. 進程創建與線程創建的時空開銷不相同
D. 線程是資源分配的基本單位,進程是資源調度的基本單位
2.以下哪些狀態爲 TCP連接關閉過程中的出現的狀態?()
A. LISTEN
B. TIME-WAIT
C. LAST-ACK
D. SYN-RECEIVED
3.下面選項中,和192.168.3.110/27 屬於一個子網的有哪些( )
A. 192.168.3.94
B. 192.168.3.124
C. 192.168.3.96
D. 192.168.3.126
4.Linux 系統中,哪些可以用於進程間的通信?
A. Socket
B. 臨界區
C. 消息隊列
D. 信號量
5.白盒測試又稱結構測試、透明盒測試、邏輯驅動測試或基於代碼的測試。下面屬於白盒測試方法的有
哪些?( )
A. 句覆蓋
B. 等價類劃分
C. 邊界值分析
D. 判定條件覆蓋
6.下列選項中,有關死鎖的說法正確的是?( )
A. 採用“按序分配”策略可以破壞產生死鎖的環路等待條件
B. 在資源的動態分配過程中,防止系統進入安全狀態,可避免發生死鎖
C. 銀行家算法是最有代表性的死鎖解除算法
D. 產生死鎖的現象是每個進程等待着某個不能得到且不可釋放的資源
7.現有testfifile 文件內容如下所示
12 12 213 5434 3123 123 34 對所有數字求和,以下做法正確的是:( )
A. awk ‘BEGIN{sum}{sum+$1}END{print sum}’ testfifile
B. awk ‘BEGIN{sum =0}{sum+=$1}END{print sum}’ testfifile
C. awk ‘{sum+$1}END{print sum}’ testfifile
D. wk ‘{sum+=$1}END{print sum}’ testfifile
8.以下關於HTTP 說法正確是的:( )
A. HTTP POST方式比 GET更安全
B. HTTP GET請求提交參數沒有長度限制
C. HTTP POST請求提交參數沒有長度限制
D. HTTP GET和POST請求提交參數都沒有長度限制
9.python 代碼如下:( )
foo = [1,2]
foo1 = foo1
foo.append(3)
A. foo 值爲[1,2]
B. foo 值爲[1,2,3]
C. foo1 值爲[1,2]
D. foo1 值爲[1,2,3]
10.在測試“搜索”功能時,下列哪些測試用例是必須的( )
A. 模糊查詢值的搜索測試用例
B. 全數字的搜索測試用例
C. 全半角的搜索測試用例
D. 字母大小寫的搜索測試用例
11.下面選項中對 TCP與 UDP 論述正確的是?( )
A. TCP是面向連接的,如打電話要先撥號建立連接
B. TCP支持一對一,一對多,多對一和多對多的交互通信
C. TCP面向字節流,實際上是 TCP把數據看成一連串無結構的字節流
D. UDP 是無連接的,即發送數據之前不需要建立連接
12.C++中的拷貝構造函數在下面哪些情況下會被調用( )
A. 對象創建的時候
B. 使用一個類的對象去初始化該類的一個新對象
C. 被調用函數的形參是類的對象
D. 當函數的返回值是類的對象時,函數執行完成返回調用者
13.用瀏覽器訪問www.jd.com 時,可能使用到的協議有?( )
A. MAC
B. HTTP
C. SMTP
D. ARP
E. RTSP
14.功能測試用例需包含哪些元素( )
A. 測試步驟
B. 預期結果
C. 測試數據
D. 實際結果
三.編程題
1.兩個子串給定一個字符串 s, 請計算輸出含有連續兩個 s 作爲子串的最短字符串。 注意兩個s 可能有重疊部分。例
如,“ababa"含有兩個"aba”.
輸入描述**😗*
輸入包括一個字符串s,字符串長度length(1 ≤ length ≤ 50),s 中每個字符都是小寫字母.
輸出描述**😗*
輸出一個字符串,即含有連續兩個 s 作爲子串的最短字符串。
輸入例子****1:
abracadabra
輸出例子****1:
abracadabracadabra
2.括號匹配方案
合法的括號匹配序列被定義爲:
\1. 空串""是合法的括號序列
\2. 如果"X"和"Y"是合法的序列,那麼"XY"也是一個合法的括號序列
\3. 如果"X"是一個合法的序列,那麼"(X)"也是一個合法的括號序列
\4. 每個合法的括號序列都可以由上面的規則生成 例如"", “()”, “()()()”, “(()())”, "(((())))"都是合法的。 東
東現在有一個合法的括號序列 s,一次移除操作分爲兩步:
\5. 移除序列s 中第一個左括號
\6. 移除序列s 中任意一個右括號.保證操作之後s 還是一個合法的括號序列 東東現在想知道使用上述的
移除操作有多少種方案可以把序列 s 變爲空 如果兩個方案中有一次移除操作移除的是不同的右括號
就認爲是不同的方案。 例如: s = “()()()()()”,輸出 1, 因爲每次都只能選擇被移除的左括號所相鄰的右
括號. s = “(((())))”,輸出24, 第一次有4 種情況, 第二次有3 種情況, … ,依次類推, 4 * 3 * 2 * 1 = 24
輸入描述**😗*
輸入包括一行,一個合法的括號序列 s,序列長度 length(2 ≤ length ≤ 20).
輸出描述**😗*
輸出一個整數,表示方案數
輸入例子****1:
(((())))
輸出例子****1:
24
求職必備刷題官網:https://github.com/bennyrhys/interview
【更多互聯網公司筆試面試真題請關注“讓我遇見相似的靈魂”公衆號】