1. 程式人生 > >2016騰訊線上筆試

2016騰訊線上筆試

2015年,投了騰訊的軟體測試,提交的挺早的,但9月4號才收到通知,9月5號19:00進行線上筆試測試。

跟中興測試的筆試系統差不多,唯一的區別就是,騰訊的做完之後不可以返回前進行更改。兩部分題,客觀題和填空題,各25題。

客觀題:不定向選擇,就是可能有多個答案;設計知識點C語言、C++、Java、資料庫、計算機網路等基礎知識,當然也有測試方面的知識。

主觀題:都是填空題,有給你一段程式碼,求輸出的,填入空缺程式的;還有讓你進行數制之間的轉換;智力測試;計算機組網;Linux shell 的一些操作。都不需要在紙上寫上傳。直接填就行。

印象中有幾個題記錄一下,應該不算洩題吧!大笑

一、計算機網路的——子網劃分,因為中興也考過。

學習下:

1、通過子網掩碼計算一個子網能容納的計算機數目。

三類常用IP:(這個騰訊考了一個就是給你一個197.5.0.0 讓你確定是哪個類的IP段)

A類IP段0.0.0.0 到127.255.255.255   
B類IP段128.0.0.0 到191.255.255.255   
C類IP段192.0.0.0 到223.255.255.255

要想在同一網段,只要網路標識相同就可以了,那要怎麼看網路標識呢?首先要做的是把每段的IP轉換為二進位制。
把子網掩碼切換至二進位制,我們會發現,所有的子網掩碼是由一串[red]連續[/red]的1和一串[red]連續[/red]的0組成的(一共4段,每段8位,一共32位數)。  
255.0.0.0 11111111.00000000.00000000.00000000  
255.255.0.0 11111111.11111111.00000000.00000000  
255.255.255.011111111.11111111.11111111.00000000  


這是A/B/C三類預設子網掩碼的二進位制形式,其實,還有好多種子網掩碼,只要是一串連續的1和一串 連續的0就可以了(每段都是8位)。如11111111.11111111.11111000.00000000,這也是一段合法的子網掩碼。子網掩碼決定的是一個子網的計算機數目,計算機公式是2的m次方,其中,我們可以把m看到 是後面的多少個0。

如255.255.255.0轉換成二進位制,那就是11111111.11111111.11111111.00000000, 後面有8顆0,那m就是8,255.255.255.0這個子網掩碼可以容納2的8次方(臺)電腦,也就是256臺,但是有兩個IP是不能用的,那就是最後一段不能為0和255,減去這兩臺,就是254臺。我們再來做一 個。  


255.255.248.0這個子網掩碼可以最多容納多少臺電腦?  
計算方法:  
把將其轉換為二進位制的四段數字(每段要是8位,如果是0,可以寫成8個0,也就是00000000)  
11111111.1111111.11111000.00000000

然後,數數後面有幾個0,一共是有11個,那就是2的11次方,等於2048,這個子網掩碼最多可以容納 2048臺電腦。  
一個子網最多可以容納多少臺電腦你會算了吧,下面我們來個逆向演算法的題。  

2、通過一個子網中計算機的數目,求子網掩碼
一個公司有530臺電腦,組成一個對等區域網,子網掩碼設多少最合適?  
首先,無疑,530臺電腦用B類IP最合適(A類不用說了,太多,C類又不夠,肯定是B類),但是 B 類預設的子網掩碼是255.255.0.0,可以容納6萬臺電腦,顯然不太合適,那子網掩碼設多少合適呢? 
我們先來列個公式。  

2的m次方=560  
首先,我們確定2一定是大於8次方的,因為我們知道2的8次方是256,也就是C類IP的最大容納電腦的數目,我們從9次方一個一個試2的9次方是512,不到560,2的10次方是1024,看來2的10次方最合適 了。子網掩碼一共由32位組成,已確定後面10位是0了,那前面的22位就是1,最合適的子網掩碼就 是:11111111.11111111.11111100.00000000,轉換成10進位制,那就是255.255.252.0。 

3、通過IP 求得網路標識和主機標識

分配和計運算元網掩碼你會了吧,下面,我們來看看IP地址的網段。  
相信好多人都和偶一樣,認為IP只要前三段相同,就是在同一網段了,其實,不是這樣的,同樣, 把IP的每一段轉換為一個二進位制數,這裡就拿IP:192.168.0.1,子網掩碼:255.255.255.0 做實驗吧。  
192.168.0.1  11000000.10101000.00000000.00000001  
(這裡說明一下,和子網掩碼一樣,每段8位,不足8位的,前面加0補齊。)  
IP 11000000.10101000.00000000.00000001  
子網掩碼 11111111.11111111.11111111.00000000  
在這裡,向大家說一下到底怎麼樣才算同一網段。 

要想在同一網段,必需做到網路標識相同,那網路標識怎麼算呢?各類IP的網路標識演算法都是不一 樣的。

IP 的劃分。 
A類的,只算第一段。B類,只算第一、二段。C類,算第一、二、三段。  
演算法只要把IP和子網掩碼的每位數進行相與就可以了。  

如:192.168.0.1,255.255.255.0,先轉換為二進位制,然後相與每一位

IP 11000000.10101000.00000000.00000001

子網掩碼 11111111.11111111.11111111.00000000  
得出AND結果11000000.10101000.00000000.00000000  
轉換為十進位制192.168.0.0,這就是網路標識, 

 
再將子網掩碼反取,也就是00000000.00000000.00000000.11111111,與IP 相與 得出結果00000000.00000000.00000000.00000001,轉換為10進位制,即0.0.0.1,  這0.0.0.1就是主機標識。要想在同一網段,必需做到網路標識一樣。  


我們再來看看這個改為預設子網掩碼的B類IP  
如IP:188.188.0.111,188.188.5.222,子網掩碼都設為255.255.254.0,在同一網段嗎?  
先將這些轉換成二進位制  
188.188.0.11110111100.10111100.00000000.01101111  
188.188.5.22210111100.10111100.00000101.11011010  
255.255.254.011111111.11111111.11111110.00000000

分別AND,得  
10111100.10111100.00000000.00000000  
10111100.10111100.00000100.00000000  
網路標識不一樣,即不在同一網段。  
判斷是不是在同一網段,你會了吧。

4、子網劃分  
一個公司有530臺電腦,組成一個對等區域網,子網掩碼和IP設多少最合適?  
子網掩碼不說了,前面算出結果來了11111111.11111111.11111100.00000000,也就是255.255.252.0 。我們現在要確定的是IP如何分配,首先,選一個B類IP段,這裡就選188.188.x.x 吧 ,這樣,IP的前兩段確定的,關鍵是要確定第三段,只要網路標識相同就可以了。我們先來確定網路 號。(我們把子網掩碼中的1和IP中的?對就起來,0和*對應起來,如下:) 

255.255.252.011111111.11111111.11111100.00000000  
188.188.x.x 10111100.10111100.??????**.********  
網路標識 10111100.10111100.??????00.00000000  
由此可知,?處隨便填(只能用0和1填,不一定全是0和1),我們就用全填0吧,*處隨便,這樣呢,我們的IP就是10111100.10111100.000000**.********,一共有530臺電腦,IP的最後一段1~254可以分給254臺計算機,530/254=2.086,

採用進1法,得整數3,這樣,我們確定了IP的第三段要分成 三個不同的數字,也就是說,把000000**中的**填三次數字,只能填1和0,而且每次的數字都不一 樣,至於填什麼,就隨我們便了,如00000001,00000010,00000011,轉換成二進位制,分別是1,2,3,這樣,第三段也確定了,這樣,就可以把IP分成 188.188.1.y,188.188.2.y,188.188.3.y,y處隨便填,只要在1~254範圍之內,並且這530臺電腦每 臺和每臺的IP不一樣,就可以了。

二、Linux Shell 命令

1、改變檔案 file1 的許可權,使得使用者組都可以進行讀、寫、執行:chmod 777 file1。

2、讓file1 屬於 user 使用者組, 屬於使用者 test  

命令:chgrp users file1

    chown test file1

三、將十進位制數轉換為八進位制數,數值挺大的。

四、計算機網路:ping命令等

五、C語言基礎知識:陣列

等等