選擇部分
數據結構、計網、數據庫事務、
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工程師的案例,第四步之后的大概描述推測應該描述什么邏輯?
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
|
純數字、純字母、字母加數字、特殊字符加數字、
特殊字符加字母、各類自由組合
|
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,輸入數字輸出字母
第二個好像是判斷一年中的哪一天,反正就是閉眼寫的
第三題忘了,不難,可能要處理一下輸入輸出