2017美團&網易&360部分筆試題


一、美團筆試

問答題:

1.JavaScript把一個參數從頁面A傳遞給頁面B,進行某些操作,然后由頁面B回傳給頁面A
 
2.各種排序算法的時間復雜度:冒泡排序,選擇排序,插入排序,快速排序,歸並排序,堆排序。
 

編程題:

找出兩個有序數組的公共元素,例:有序數組[3, 5, 7, 8, 10, 12]和有序數組[15, 10, 8, 7, 4, 3, 1]的公共元素為(8, 10)
 
待解答

二、樂視電面

1.css垂直居中怎么實現
主要幾種方式:(1) 使用絕對定位absolute,top:50%;和負外邊距margin-top:-(自身高度一半);對塊級元素進行垂直居中
(2)使用絕對定位absolute,top:50%;和transform:translate:0,-50%
(3)絕對定位結合margin: auto,固定寬高,top: 0; bottom: 0; margin: auto;
(4)父元素是不設置高度,給父元素設置相等的上下內邊距,讓它自動被填充起來,子元素就實現了垂直居中的
(5)使用 line-height 對單行文本進行垂直居中
(6)使用table,table cells的vertical-align:middle可以實現垂直居中
(7)設置display:flex;將其指定為flex布局的容器,再為其添加align-items:cnter屬性
2.講一下css的盒模型

在標准盒子模型中:

如圖:325x146便是寬高width*height,即內容框的寬高,並不包含padding和border。這是標准盒模型的情況,但還存在另一種ie盒子模型,ie盒子模型便是把padding與border包含在寬高內,即寬高包含了內容框的寬高加上padding與邊框。一般情況下,ie瀏覽器會使用ie盒子模型,其它如ff、chrome則使用標准盒子模型。如果要統一使用標准盒子模型,我們可以在網頁中加入doctype申明使用w3c標准,這樣所有瀏覽器都會使用標准盒子模型。
在 CSS 中,width 和 height 指的是內容區域的寬度和高度。增加內邊距、邊框和外邊距不會影響內容區域的尺寸,但是會增加元素框的總尺寸。
3.ajax有哪些請求方式,區別
ajax
ajax 請求
$.ajax(url,[settings]) 
load(url,[data],[callback]) 
$.get(url,[data],[fn],[type]) 
$.getJSON(url,[data],[fn]) 
$.getScript(url,[callback]) 
$.post(url,[data],[fn],[type]) 
ajax 事件
ajaxComplete(callback) 
ajaxError(callback) 
ajaxSend(callback) 
ajaxStart(callback) 
ajaxStop(callback) 
ajaxSuccess(callback) 
其它
$.ajaxSetup([options]) 
serialize() 
serializearray()

區別參考:jQuery中ajax的4種常用請求方式

4.用過哪些新的框架?angular.js,vue等
 

三、網易在線筆試

選擇題

1. HTTP狀態碼中301與302的區別
301 redirect: 301 代表永久性轉移(Permanently Moved)。
302 redirect: 302 代表暫時性轉移(Temporarily Moved )。

2.HTTP請求類型
HTTP協議的8種請求類型介紹
HTTP協議中共定義了八種方法或者叫“動作”來表明對Request-URI指定的資源的不同操作方式,具體介紹如下:

OPTIONS:返回服務器針對特定資源所支持的HTTP請求方法。也可以利用向Web服務器發送'*'的請求來測試服務器的功能性。
HEAD:向服務器索要與GET請求相一致的響應,只不過響應體將不會被返回。這一方法可以在不必傳輸整個響應內容的情況下,就可以獲取包含在響應消息頭中的元信息。
GET:向特定的資源發出請求。
POST:向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會導致新的資源的創建和/或已有資源的修改。
PUT:向指定資源位置上傳其最新內容。
DELETE:請求服務器刪除Request-URI所標識的資源。
TRACE:回顯服務器收到的請求,主要用於測試或診斷。
CONNECT:HTTP/1.1協議中預留給能夠將連接改為管道方式的代理服務器。

3.css中表示字體的屬性是?

* font-style
* font-variant
* font-weight
* font-size/line-height
* font-family

font-family 規定字體系列

4.元素入棧順序為1,2,3,...,7,可能的出棧順序有幾種?

2n!/((n+1)n!n!)

5.元素入棧順序為1,2,3,4,5,出棧順序為2,3,1,5,4,則棧的大小至少為?

2;解答:1進棧,2進棧,2出棧;3進棧,3出棧;1出棧;4進棧,5進棧,5出棧;4出棧;由此可知,棧里面最多有2個元素。

6.0到999999共有多少個3?

問答題:

給出一個table,點擊成績,所有行按照成績從小到大排序,再次點擊按照從大到小排序?

待解答

編程題:

待補充

四、360筆試

選擇題

1.Math.round(1.15)+Math.round(-1.15),輸出結果是多少?

JavaScript中 round() 方法可把一個數字舍入為最接近的整數。輸出結果為0。

2.給出width、margin、border、padding,求document.body.clientWidth=?

document.body.clientWidth為網頁可見區域寬,document.body.clientWidth = width + padding*2 + border*2 + margin*2;

3.針對二分查找,數組1,3,5,……21,查找21的過程為
 二分算法:
二分查找算法: 
public static int binarySearch(Integer[] srcArray, int des) {
    int low = 0;
    int high = srcArray.length - 1;
 
    while ((low <= high) && (low <= srcArray.length - 1)
            && (high <= srcArray.length - 1)) {
        int middle = (high + low) >> 1;
        if (des == srcArray[middle]) {
            return middle;
        } else if (des < srcArray[middle]) {
            high = middle - 1;
        } else {
            low = middle + 1;
        }
    }
    return -1;
}

查找過程為:11>>17>>19>>21

4.有一個B類IP地址為140.128.0.0,要划分為10個子網,並且要全部能連上網絡,子網掩碼應該為多少?
 每個IP地址都有一個網絡部分,用於識別接口使用的IP地址在哪個網絡中可被發現,以及一個主機地址,用於識別由網絡部分給出的網絡中的特定主機。A類IP地址以0開頭,網絡號為8位,B類IP地址以10開頭,網絡號為16位,C類IP地址以110開頭,網絡號為24位。子網划分是將IP地址中的主機號進一步分為子網ID+主機ID兩部分,為了讓路由器確定地址中的子網部分和主機部分,需要給出子網掩碼。子網掩碼與對應的IP地址長度相同,網絡/子網部分對應位為1,主機部分對應位為0。題目中要求划分10個子網,則子網部分至少為4位(2^4 = 16),B類IP地址網絡號16位,加上4位子網號,網絡部分共20位,所以子網掩碼應為11111111.11111111.11110000.00000000,即255.255.240.0
5.一個公司中,前端工程師占0.5,后端工程師占0.4,全棧工程師占0.25,問不是工程師的有多少
畫圖解答

6.一個關於HTTP內容協商的選擇題

7.哪些哪些數可以組成一個堆?

8.關於一個m階B樹說法正確的是

9.0xff^33=?

^為位運算符異或運算符(XOR)

異或運算將兩個運算分量的對應位按位遵照以下規則進行計算:
     0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, 1 ^ 1 = 0
即相應位的值相同的,結果為 0,不相同的結果為 1。

也可理解為不帶進位的二進制加法運算

10.有6個顧客同時等待同一服務,6個顧客所需時間分別為:100,50,20,60,30,40,求每個顧客平均等待時間

11.文件系統管理的最小磁盤空間單位是()A.扇區 B.頁面 C.簇 D.文件

12.下面代碼運行的結果是?

var a = 100;
function a() {
      console.log(a);    
}
a();

經測試,這個串代碼執行完會報錯 : a is not a function

如果alert(typeof a)結果會是number

為什么會這樣呢?

因為在預解析中

(1)變量聲明會置頂

(2)函數聲明也會置頂

(3)函數聲明比變量聲明更置頂

(4)變量和賦值語句一起書寫,在js引擎解析時,會將其拆成聲明和賦值2部分,聲明置頂,賦值保留在原來位置

(5)已經聲明過的變量不會重復聲明

因此,以上代碼執行過程為:

首先聲明函數a,function a();然后聲明變量a,在這一步,變量a覆蓋了上面的函數a。所以,調用函數a()時會是undefined,因為此時已經沒有了函數a。

以上代碼等同於:

var a=function (){
  console.log(a);
}
var a=100;
a();

 

編程題:

 360春招&實習生招聘3.25在線編程題解

 
面試常問的問題:Tcp/IP三次握手四次分手過程,Http 協議
 
筆試中有很多排列組合和概率論問題
 
360投的前端,選擇題后面全是C++題,運算符重載,括號運算符等等
 

四、騰訊在線筆試

選擇題:

1.以下說法正確的有哪些?
A.如果元素的display為none,那么元素不被渲染,position,float不起作用
B.如果元素擁有position:absolute,或者position:fixed;屬性那么元素將為絕對定位,float不起作用。
C.如果元素float屬性不是none,元素會脫離文檔流,根據float屬性值來顯示有浮動,絕對定位
D.inline-block屬性的元素,margin會和垂直方向上的其他元素margin折疊。
 
2.以下代碼執行結果:
1 'use strick' 
2 (function(){ 
3     var a=b=5    
4 })(); 
5 console.log(b); 
6 console.log(a); 

運行結果:Uncauht ReferenceError:a is not defined at 6

 
3.以下代碼執行結果:
function a(){
    alert(x);
    var x=2;
    x++;
    alert(x);
}
function b(){
    alert(x);
    x++;
    alert(x);
}
if(0<100<(0+4)){
    a();
}else{
    b();
}

運行結果:undefined,3

 
4. 以下代碼執行結果:
var a=1;
setTimeout(function(){console.log(a)},0);
var date1 = new Date();
while((new Date().getTime()-date1.getTime())<=10000){};
console.log(a);
a='2';

幾乎同時輸出1和2

 
5.以下程序可能的輸出順序
window.setTimeout(function(){console.log("1")},1);
window.setTimeout(function(){console.log("2")},2);
window.setTimeout(function(){console.log("2")},3);
window.requestAnimationFrame(function(){console.log("4")},4);

A.1,2,3,4

B.4,1,2,3
C.1,2,4,3
D.1,4,2,3
答案:ABCD
 
6.HTTP2.0新特性
 
7.現行鏈表中,表頭元素一定是存儲在其他元素的前面嗎?
 
8.對IP數據報分片的重組通常發生在(目標主機)上
 
9.UDP數據頭包含什么
 
10.Cookie的缺點
 
11.Struct和Class的區別
 
12.減少使用HTTP請求數量的方式
 
13.線程和進程的同步機制
 
 
 

問答題:

1.大型金融網站優化從哪里入手
2.從URL輸入到頁面展現發生了什么?
 
 

編程題:

1.求數字在排序數組中出現的次數


免責聲明!

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



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