shopee測試崗筆試題匯總


選擇部分

數據結構、計網、數據庫事務、

1、若系統中有五個並發進程涉及某個相同的變量A,則變量A的相關臨界區是由( )臨界區構成。
5個(每個進程都需要有相關的臨界區)

2、關於TCP狀態
LISTEN:偵聽來自遠方的TCPport的連接請求
SYN-SENT:再發送連接請求后等待匹配的連接請求
SYN-RECEIVED:再收到和發送一個連接請求后等待對方對連接請求的確認
ESTABLISHED:代表一個打開的連接
FIN-WAIT-1:等待遠程TCP連接中斷請求,或先前的連接中斷請求的確認
FIN-WAIT-2:從遠程TCP等待連接中斷請求
CLOSE-WAIT:等待從本地用戶發來的連接中斷請求
CLOSING:等待遠程TCP對連接中斷的確認
LAST-ACK:等待原來的發向遠程TCP的連接中斷請求的確認
TIME-WAIT:等待足夠的時間以確保遠程TCP接收到連接中斷請求的確認
CLOSED:沒有不論什么連接狀態

3、求一個簡單算法的時間復雜度
4、求一個2進制數轉換為16進制數,包括小數部分的轉換
5、先序、中序給出一個樹,求樹的深度
先序遍歷:根左右
中序遍歷:左根右
后序遍歷:左右根

6、概率題
有2個五分硬幣 3個二分硬幣 5個一分硬幣 從中任取五個使得面值大於一角的概率是多少?
考慮三種情況:
A:取1個5分,2個2分,2個1分
B:取2個5分,其他隨意
C:取1個5分,3個2分,1個1分
P=(C(1,2)*C(2,3)C(2,5)+(C2,2C(3,8)+C(1,2)*C(3,3)*C(1,5))/C(5,10)=0.5

7、如果5台機器用了5分鍾來生產5個零件,那么99台機器生產99個零件要多少分鍾?
5分鍾
以5分鍾為一個單位考慮,每台機器5分鍾生產5個零件

8、120g鹽,一個天平兩個砝碼,2g和7ge,求稱出50g和70g的鹽,最少需要多少次
3次
首先120g不用砝碼直接對半稱,稱出兩份60g
再從60g里面稱出5g與2g砝碼,與7g砝碼,得出5g的鹽
之后再稱出5g的鹽,然后混合兩份5g的鹽到60g的鹽里面即可

9、DBMS的並發控制子系統,保證了事務()的實現
隔離性
數據庫事務ACID四大特性:原子性、一致性, 隔離性, 持久性
原子性:事務中的多個數據庫操作是一個不可分割的原子單元整體,只有所有的操作執行成功,整個事務才提交。
一致性:事務操作成功后,保證數據不會被破壞。
隔離性:並發控制
持久性:一旦事務提交成功后,事務中所有的數據操作都必須被持久化到數據庫中。可恢復

10、數據庫的聚合函數不能用在where語句中
聚合函數如果出現在where子句中,它就要受到整個語句的限制,因為這條語句最終是需要對數據進行篩選的,也就是說整條sql語句產生的結果將會是所有數據中的部分數據,而不是全部的完整數據。這與聚合函數實現的前提——完整的所有數據是相悖的,因此,聚合函數不能出現在where子句中。彼此相悖了!

11、關於運行態、就緒態和阻塞態的狀態的轉換
不能直接由阻塞態變為運行態,運行態的前一個狀態一定是就緒態,下面是三態轉換圖

12、還有一道是啥記不清楚了。

編程部分

1.1、判斷一個數是否為丑數,丑數即為只有質因數2、3、5的正整數
示例:
25
true

def ungly(a):
    while a%2==0:
        a=a/2
    while a%3==0:
        a=a/3
    while a%5==0:
        a=a/5
    if a==1:
        print('true')
    else:print('flase')

 

1.2、求一個整數數組的中位數

 

 

1.3、10進制數轉換為16進制數

 

2.1、注意數是long long int類型,輸入格式  1,2,3,4;輸入有逗號,我就是沒看到這點,牛客網編譯器一直說我段錯誤,我真的奇怪了,浪費我好長時間。除此之外,我想不通為啥沒有100%通過,可能很多細節。

2.2:相當於讀入文件的內容,並進行整理,用Python一些函數可以寫好,我直接看了第三題,這個題就沒來得及做。

2.3:按照“位數多的放在前面,位數少的放在后面,相同位數,則小的排在前面,大的排在后面”。這個100%ac,我沒用結構體(用結構體也可以的),我用兩個數組,一個存放輸入數,一個存放數的位數,然后使用冒泡排序思路去排序(其他排序方法也可以,我選擇最熟悉的排序了)。除此之外,還要注意輸入數據格式是[1,2,3]  python的列表形式,我用c++處理很久,python會簡單一些。還要注意空列表[]以及輸出的格式要求(1位數、空的)。

 

3.1、比較版本號。給兩個版本號 a 和 b ,用逗號和一個空格分隔開,判斷大小。假設兩個版本的版本段是一致的.

    • a<b 輸出 -1
    • a=b 輸出 0
    • a>b 輸出 1

樣例輸入
1.10.2, 1.2.10
樣例輸出
1

3.2、輸入一個有序 int 數組,去重規則:數字 x 的出現次數不超過 x,問去重后數組的最大長度

樣例輸入
1 1 1 2 2 2 3 3 3
樣例輸出
6

3.3、經典動態規划題,給定 m 和 n 表示矩陣的長寬,小明從左上角走到右下角一共有多少條路,只等向右走或者向下走。注意數字溢出問題。 m n 的值都不超過 50.

樣例輸入
3 2
樣例輸出
3

 


4.1   場景描述:

對於一個程序的登陸測試案例,有三位測試工程師根據程序所處的不同階段,寫出的測試案例如下:
主要問題:
1、這三類案例的不同特色是什么?
2、這三類案例大概率分別屬於哪個階段的測試? 為什么?
3、對於A工程師的案例,第四步之后的大概描述推測應該描述什么邏輯?

4、對於C工程師的第7步操作,你認為測試會有哪幾種結果輸出?

A工程師的測試案例:

1
2
3
4
1 、創建一個新用戶user1.
2 、用user1用戶登陸
3 、user1登陸成功
4 、。。。。。

B工程師的測試案例:

1
2
3
4
5
6
1 、創建一個新用戶user1,密碼為:<密碼變量>。
2 、用user1用戶用第一類密碼組合登陸
3 、user1登陸成功
4 、user修改密碼為第二類密碼組合,
5 、user1退出,重新登陸
6 、重復 2 - 5 部,驗證所有密碼組合。

密碼變量表:
1
2
純數字、純字母、字母加數字、特殊字符加數字、
特殊字符加字母、各類自由組合

C工程師的測試案例:
1
2
3
4
5
6
7
1 、創建一個新用戶user1.
2 、用user1用戶登陸
3 、user1登陸成功
4 、注銷用戶user1
5 、退出系統
6 、重新用user1登陸系統
7 、重新注冊user1。。。

5.1、求一個區間素數的個數

5.2、最少可以帶多少張零錢可以湊夠一個區間所有的數值。

 

第一個是數手指游戲ABCDEDCBA,輸入數字輸出字母
第二個好像是判斷一年中的哪一天,反正就是閉眼寫的
第三題忘了,不難,可能要處理一下輸入輸出


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM