面試總結2--美團測試面試

1面:

1、 自我介紹(獎學金、專利、在校獲獎好像有加分)。

2、 介紹一個你認爲最有含金量的項目?

3、 根據項目用到的知識:程序中TCP具體怎麼實現?TCPUDP區別、分別用在哪些場合?

答:TCP實現步驟:服務器調用socket()、bind()、listen()完成初始化後,調用accept()阻塞等待,處於監聽端口的狀態,客戶端調用socket()初始化後,調用connect()發出SYN段並阻塞等待服務器應答,服務器應答一個SYN-ACK段,客戶端收到後從connect()返回,同時應答一個ACK段,服務器收到後從accept()返回。

TCP、UDP區別:…….

TCP用在需要確保信息可靠傳輸或者丟包重傳的地方,如QQ文件傳輸

UDP用在對傳輸實時性要求高的地方,如QQ語音、視頻等


4、 URL登陸網站時用到那些協議?

答:URL(統一資源定位符),是對可以從互聯網上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯網上標準資源的地址。互聯網上的每個文件都有一個唯一的URL,它包含的信息指出文件的位置以及瀏覽器應該怎麼處理它。基本URL包含模式(或稱協議)、服務器名稱(或IP地址)、路徑和文件名,如“協議://授權/路徑?查詢”。

     可能用到HTTP協議,DNS協議,TCP/IP,ARP。


5、 講講多線程內部怎麼實現?

答:Win32 API提供了_beginthreadex函數,可以讓你在底層啓動線程。

在MFC中所有的線程都由CWinThread對象來表現,包括你的應用程序的主線程。主線程由一個起源於CWinApp的類實現,而CWinApp直接起源於CWinThread。讓MFC全局函數AfxBeginThread()來爲你創建一個CWinThread對象。CWinThread::CreateThread()函數用來啓動新的線程。CWinThread類也提供了SuspendThread()和ResumeThread()函數以便你掛起和恢復線程的執行。

 MFC區別兩種線程:工作線程和用戶界面線程。這種區分是由MFC自己進行的,Win32 API不區分線程的種類。

工作線程一般用來完成那些不需要用戶輸入的後臺任務。可舉的例子包括數據庫備份功能和網絡聯接狀態監視功能。

用戶界面線程能夠處理用戶輸入,它們通過實現消息循環來響應那些由用戶與應用程序交互所產生的事件和消息。


6、 Linux相關知識,grepfind區別?用什麼命令查看ip?怎麼殺死佔用80端口的所有進程?講講AWK?正則表達式方面知識(寫一個正則表達式表示電話號碼)?

答:grep是查找匹配條件的行,find是搜索匹配條件的文件。

用ifconfig查看ip。

殺死某端口號的進程步驟:1 netstat -nlp 查看佔用端口號的服務;2找到該端口號的進程;3找到該進程id4 kill它。

kill [‘]netstat –nlp |grep:80|awk ‘{print $7}’|awk –F ”/” ‘{print $1}’ [‘]

正則表達式:1[3|5|7][0-9]{9}


7、 數據庫方面知識,了不瞭解SQL語句?怎麼刪除表結構中的一個列?index的作用?講講havingwhere

答:ALTER  TABLE  tablename

DROP COLUMN  columnname;

Index兩大好處:1、加快查詢速度;2確保唯一特性。可爲表中某一列建一個唯一性索引,那麼如果有人企圖向表中插入這樣一行記錄,即他在這個有索引的列的數值與以前已有值重複,則這個操作就會失敗。

having和where都是用來篩選的,having是篩選組,而where是篩選記錄。用having就一定要和group by連用,用group by不一有having (它只是一個篩選條件用的)。


8、 寫二叉樹中序遍歷非遞歸?給出兩個API getChilds()getFather()求多叉樹第n層節點數?寫雙向鏈表插入刪除?

中序遍歷:根據中序遍歷的順序,對於任一結點,優先訪問其左孩子,而左孩子結點又可以看做一根結點,然後繼續訪問其左孩子結點,直到遇到左孩子結點爲空的結點才進行訪問,然後按相同的規則訪問其右子樹。因此其處理過程如下:(1)若其左孩子不爲空,則將P入棧並將P的左孩子置爲當前的P,然後對當前結點P再進行相同的處理;(2)若其左孩子爲空,則取棧頂元素並進行出棧操作,訪問該棧頂結點,然後將當前的P置爲棧頂結點的右孩子;(3)直到P爲NULL並且棧爲空則遍歷結束

void inOrder(BinaryTree* root)
{
    stack<BinaryTree*> s;
    BinaryTree* p=root;
    while(p!=NULL||!s.empty())
    {
        while(p!=NULL)
        {
            s.push(p);
            p=p->left;
        }
        if(!s.empty())
        {
            p=s.top();
            printf("%d\n",p->value);
            s.pop();
            p=p->right;
        }
    }
}


9、 智力題7個等重量的球還有一個稍重的球共8個怎麼用天平2次找出最重的一個?

答:去6個均分成兩組稱一次,如果相等則再稱剩下的兩個。如果不相等取重的一組,取兩個稱。

10、怎麼對一個東西要從那些方面進行測試?怎麼測試一個電梯?

11、講講自己的專利,爲什麼投測試、選測試的哪個方向?

 

二面:

1、 自我介紹

2、 二叉樹怎麼分層遍歷每一層節點?講講快速排序?

3、 進程和線程的區別?

4、 一個執行的進程的空間分哪些部分?分別講講。

5、 什麼死鎖?

6、 C++哪些情況會出現內存泄露?

7、 講講中斷?

答:中斷是CPU處理外部突發事件的一個重要技術。它能使CPU在運行過程中對外部事件發出的中斷請求及時地進行處理,處理完成後又立即返回斷點,繼續進行CPU原來的工作。引起中斷的原因或者說發出中斷請求的來源叫做中斷源。 根據中斷源的不同,可以把中斷分爲硬件中斷和軟件中斷兩大類,而硬件中斷又可以分爲外部中斷和內部中斷兩類。

8、 給一個字符串轉換爲整數的函數怎麼進行測試?

9、 Web測試,給你一個登陸界面怎麼進行測試?什麼是性能?

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章