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.求数字在排序数组中出现的次数
posted @ 2017-03-26 17:24  细雨落花  阅读(5430)  评论(0编辑  收藏  举报