1. 程式人生 > >網易內推筆試題整理

網易內推筆試題整理

網易內推筆試程式設計

關於ICMP:

     ICMP是(Internet Control Message Protocol)Internet控制報文協議。它是TCP/IP協議族的一個子協議,用於在IP主機路由器之間傳遞控制訊息。ICMP協議是一種面向無連線的協議,用於傳輸出錯報告控制資訊。ICMP協議本身的特點決定了它非常容易被用於攻擊網路上的路由器主機。ICMP資料包最大尺寸不超過64KB這一規定,向主機發起“Ping of Death”(死亡之Ping)攻擊。“Ping of Death” 攻擊的原理是:如果ICMP資料包的尺寸超過64KB上限時,主機就會出現記憶體分配錯誤,導致TCP/IP

堆疊崩潰,致使主機宕機。

linux有關於網路的介面

          網路資訊檢視

           檢視網路介面資訊

           1.瞭解linux中的網路介面裝置

                       $/sbin/ifconfig 檢視所有活動網路介面資訊,其中包括一個lo環回埠。

           2.檢視指定網路介面的資訊

                      $/sbin/ifconfig <網路介面名稱> 檢視指定介面資訊。

           3.檢視系統中所有網路介面的資訊

                         $/sbin/ifconfig –a 檢視所有介面資訊,包括非活動狀態介面。

在UNIX/Linux系統中,一般不同的儲存檔案具有不同的功能,使用/etc/shadow檔案來儲存使用者密碼,所有使用者都可以通過執行passwd(usr/bin/passwd)修改自己的祕密(修改/etc/shadow檔案),但非root的其他使用者對/etc/shadow檔案沒有讀寫許可權。為什麼所有使用者可通過passwd命令修改的密碼(修改/etc/shadow檔案)?

題目描述
又到了豐收的季節,恰逢小易去牛牛的果園裡遊玩。牛牛常說他對整個果園的每個地方都瞭如指掌,小易不太相信,所以他想考考牛牛。在果園裡有N維蘋果,每維蘋果的數量為ai,小易希望知道從左往右數第x個蘋果是屬於哪一堆的。
牛年覺得這個問題太簡單,所以希望你來替他回答。
輸入描述:
第一行一個數n(1<=n<=10(5次方))。
第二行n個數ai:(I<=ai<=100),表示從左往右數第i堆有多少蘋果
第三行一個數m(1<=m<=10(5次方)),表示有m次詢問。
第四行個數,表示小易希塑知道第4:個蘋果屬於哪一境。
輸出描述:
m行,第i行誦進第qi個蘋果屬於哪一堆

#include<iostream>
#include<stdio.h>
using namespace std;
#include <list>
int main()
{
	int m,n,value;
	cin>>m;//堆數
	
	list<int> arr;
	list<int> q;
	for(int i=0;i<m;i++)
	{
		cin>>value;
		arr.push_back(value);
	}
	cin >> n;//查詢數
	for (int i = 0;i<n;i++)
	{
		cin >> value;
		q.push_back(value);
	}
	auto qite =q.begin();
	while(qite != q.end())
	{
		value = *qite;
		int count = 0,flag=1;
		auto arrite = arr.begin();
		while (arrite != arr.end())
		{
			count+=*arrite;
			if(value <= count)
			{
				cout<<flag<<endl;
				break;
			}
			flag++;
			arrite++;
		}
		qite++;
	}
	while(1);
return 0;
}

第二題

小易有一些立方體,每個立方體的邊長為1,他用這些立方體搖了一些塔。
現在小易定義:這些塔的不穩定值為它們之中最高的塔與最低的塔的高度差。
小易想讓這些塔儘量穩定,所以他進行了如下操作:每次從某座塔上取下一塊立方體,並把它放到另一座塔上。
注意,小易不會把立方體放到它原本的那座塔上,因為他認為這樣毫無意義。
現在小易想要知道,他進行了不超過k次操作之後,不穩定值最小是多少。
輸入描述:
第一行兩個數n,k(1<=n<=100,1<=k<=1000)
表示塔的數量以及最多操作的次數。
第二行n個數,ai(1<=ai<=106)表示第i座塔的初始高度。
輸出描述:

第三題:

又到了週末,小易的房間亂得一團糟。
他希望將地上的雜物稍微整理下,使每團雜物看起來都緊湊一些,沒有那麼亂。
地上一共有n固雜物,每團雜物都包含4個物品。第物品的座標用
(ai,bi)表示,小易每次都可以將它繞著(xi,yi)逆時針旋轉90°,這將消耗他的一次移動次數。如果一團雜物的4個點構成了一個面積
不為0的正方形,我們說它是緊湊的。
因為小易很懶,所以他希望你幫助他計算一下每團雜物最少需要多少步移動能使它變得緊湊。
輸入描述:
第一行一個數n(1<=a<=100),表示雜物的團數。
接下來4行,每4行表示一團雜物,每行4個數ai,bi,xi,yi,
(-10(4次方)<=xi,yi,ai,bi<=10(4次方),表示第i個物品旅轉的它本身的座標和中心點座標。
輸出描述:
|n行,每行1個數,表示最少移動次數。

有如下程式碼:
template <typename>void g(T&& val);<s/ypename> int i=0;const int ci= i;
(1)對於下面的呼叫,請確定T和va的型別?
g(i);g(ci).g(i*ci).g(i=ci);
(2)如果g的引數宣告為T(而不是T&&)確定的端型?
(3)如果g的函式引數是constT&呢?

答案:

(1) g(i)   T: int&        val:int&

        g(ci)   T: const int&&      val:const int&

       g(i*ci)  T: int        val:int&&

       g(i=ci)  T: int&        val:?

 (2)函式引數為T:

         (a) int&   (b) cont int& (c) int

(3)函式引數為const T&(實參中的const是無關的):
         (a) int   (b) int  (c) int

分析:從函式實參來確定模板實參的過程被稱為模板實參推斷。在模板實參推斷過程中,編譯器使用函式呼叫中的實參型別在尋找模板實參,用這些模板實參生成的函式版本與給定的函式呼叫最為匹配。