欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2018网易校招前端开发工程师笔试卷讨论

程序员文章站 2022-06-09 10:33:51
...

又是一年校招季,实习面试对于2019届的我们已经越来越近了,做了两次笔试试水,感觉还是没有十足的把握完成笔试卷,任重道远啊。
来看看这次的笔试题吧。

单选,20题(40分)

  • CSS
  • HTML5(新特性的考察)
  • JS(this,setTimeout,typeof,window对象)
  • 数据结构(链表,栈,二叉树)
  • 操作系统
  • 正则表达式
  • 计算机网络
  • 设计模式
  • 算法(排序算法(二分查找算法),空间复杂度)

编程:3题(60分)


一、单选题

Types: CSS

Question: 下面哪一个不是伪元素选择器?

Choices: before : first-line : behind : first-letter

Thinking:

选择器 示例 事例说明
:link a:link 选择所有未访问过得链接
:visited a:visited 选择所有访问过得链接
:active a:active 选择所有正在活动的链接链接
:hover a:hover 鼠标在链接上
:focus input:focus 选择元素后具有焦点
:first-letter p:first-letter 选择每个元素的第一个字母
:first-line p:first-line 选择每个元素的第一个行
:first-letter p:first-child 选择器匹配属于任意元素的第一个子元素的 元素
:before p:before 在每个元素之前插入内容
:after p:after 在每个后插入内容
:lang(language) p:lang(it) 为元素的lang属性选择一个开始值

Types: 操作系统

Question: 某计算机系统中有12台打印机,由K个进程竞争使用,每个进程最多需要4台打印机。该系统可能会发生死锁的K的最小值是 () 。

Thinking: 最坏情况每个进程卡3台,4个进程全部卡死


Types: 正则表达式

Question: 下面可以匹配 《img src=”http://img.163.com”>

Thinking: 《img src=”[^]*”>

特别字符 描述
$$ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 \n\r 字符本身,请使用 $
( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 )。
* 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。
+ 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。
. 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 . 。
[ 标记一个中括号表达式的开始。要匹配 [,请使用 [。
? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。
\ 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n’ 匹配字符 ‘n’。’\n’ 匹配换行符。序列 ‘\’ 匹配 “\”,而 ‘(’ 则匹配 “(“。
^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。
{ 标记限定符表达式的开始。要匹配 {,请使用 {。

Type: 计算机网络

Question: 下面不属于TCP协议拥塞控制部分的是

Thinking:

http://blog.csdn.net/jtracydy/article/details/52366461


Type: HTML5

Question: 下面不属于HTML imput元素种类的是

Thinking:

2018网易校招前端开发工程师笔试卷讨论


Type: 设计模式

Question: 下面意图那个是用来描述ADAPTER(适配器)?

Thinking:

将一个类的接口转换成客户希望的另外一个接口。本模式使得原本由于接口不兼容 而不能一起工作的那些类可以一起工作。


Type: 排序算法

Question: 将一个整数序列整理为升序,两趟处理后序列变为10,12,21,9,7,3,4,25,则采用的排序算法可能是?

Thinking:

将一个类的接口转换成客户希望的另外一个接口。本模式使得原本由于接口不兼容 而不能一起工作的那些类可以一起工作。


Type:多线程

Question:下面关于进程和线程的关系不正确的是:

Choices:

i.线程可以通过相互之间协同来完成进程所要完成的任务
ii.线程是进程的一个实体,可作为系统独立调度和分派的基本单位
iii.线程之间不共享进程中的共享变量和部分环境
iv.一个进程中多给安城可以并发执行

Thinking:

请大神赐教..


Type: this

Thinking:

https://www.ibm.com/developerworks/cn/web/1207_wangqf_jsthis/


Type: Window对象

Question: JS中window对象的子对象不包含以下那个对象?

Thinking:


属性 描述
closed 返回窗口是否已被关闭。
defaultStatus 设置或返回窗口状态栏中的默认文本。
document 对 Document 对象的只读引用。请参阅 Document 对象。
history 对 History 对象的只读引用。请参数 History 对象。
innerheight 返回窗口的文档显示区的高度。
innerwidth 返回窗口的文档显示区的宽度。
length 设置或返回窗口中的框架数量。
location 用于窗口或框架的 Location 对象。请参阅 Location 对象。
name 设置或返回窗口的名称。
Navigator 对 Navigator 对象的只读引用。请参数 Navigator 对象。
opener 返回对创建此窗口的窗口的引用。
outerheight 返回窗口的外部高度。
outerwidth 返回窗口的外部宽度。
pageXOffset 设置或返回当前页面相对于窗口显示区左上角的 X 位置。
pageYOffset 设置或返回当前页面相对于窗口显示区左上角的 Y 位置。
parent 返回父窗口。
Screen 对 Screen 对象的只读引用。请参数 Screen 对象。
self 返回对当前窗口的引用。等价于 Window 属性。
status 设置窗口状态栏的文本。
top 返回最顶层的先辈窗口。
window window 属性等价于 self 属性,它包含了对窗口自身的引用。
screenLeft screenTop screenX screenY 只读整数。声明了窗口的左上角在屏幕上的的 x 坐标和 y 坐标。IE、Safari 和 Opera 支持 screenLeft 和 screenTop,而 Firefox 和 Safari 支持 screenX 和 screenY。

Type: 二分查找算法

Question: 下面那个数据结构不能使用二分查找算法?

Choices:

i.sorted linear array
ii.sorted linked list
iii.sorted pointer array
iV.sorted binary trees

Thinking:

二分查找算法需要在有序地线性表中使用


Type: setTimeout()

Question: 代码执行结果为?

setTimeout(function() {
console.log(1);
},100);
setTimeout(function(){
console.log(2);
},0);
console.log(3);

Thinking:

3
2
1

二、算法题

Question:

彩色砖块
  小易有一些彩色的砖块。每种颜色由一个大写字母表示。各个颜色砖块看起来都完全一样。现在有一个给定的字符串s,s中每个字符代表小易的某个砖块的颜色。小易想把他所有的砖块排成一行。如果最多存在一对不同颜色的相邻砖块,那么这行砖块就很漂亮的。请你帮助小易计算有多少种方式将他所有砖块排成漂亮的一行。(如果两种方式所对应的砖块颜色序列是相同的,那么认为这两种方式是一样的。)

例如: s = “ABAB”,那么小易有六种排列的结果:
“AABB”,”ABAB”,”ABBA”,”BAAB”,”BABA”,”BBAA”
其中只有”AABB”和”BBAA”满足最多只有一对不同颜色的相邻砖块。

输入描述:输入包括一个字符串s,字符串s的长度length(1 ≤ length ≤ 50),s中的每一个字符都为一个大写字母(A到Z)。

输出描述:输出一个整数,表示小易可以有多少种方式。

//题目出的很误导人,其实意思就是判断给出的字符串中有多少种不同种类的字符,超过两种就是0,两种就是2,一种就是1
while(line = readline()){
    //存取题目给出数组
    // var arr = "AAA";
    var arr = line.trim().split('');
    //存取数组中的不同元素
    var check = [];
    for(var i = 0;i < arr.length;i++) {
        if(check.indexOf(arr[i]) == -1) {
            check.push(arr[i]);
        }
    }
    var length = check.length;
    if(length == 2){
        console.log(2);
    }else if (length == 1) {
        console.log(1);
    }else {
        console.log(0);
    }
}

Question:

01串的最长子串求取
  如果一个01串任意两个相邻位置的字符都是不一样的,我们就叫这个01串为交错01串。例如: “1”,”10101”,”0101010”都是交错01串。
小易现在有一个01串s,小易想找出一个最长的连续子串,并且这个子串是一个交错01串。小易需要你帮帮忙求出最长的这样的子串的长度是多少。

输入描述:输入包括字符串s,s的长度length(1 ≤ length ≤ 50),字符串中只包含’0’和’1’

输出描述:输出一个整数,表示最长的满足要求的子串长度。

//直接遍历整个字符串,记录每次的长度,并取最大值
while(line = readline()){
    var str = line.trim();
    var len = str.length;
    if(len<=1){
        console.log(len);
    }else{
        var k=1;
        var max=1;
        for(var i=0; i<str.length-1; i++){
            if(str[i] !== str[i+1]){
                k++;
            }else{
                k=1;
            }
            if(k > max){
                max = k;
            }
        }
        console.log(max);       
    }   
}

Question:

独立的小易
  小易为了向他的父母表现他已经长大独立了,他决定搬出去自己居住一段时间。一个人生活增加了许多花费: 小易每天必须吃一个水果并且需要每天支付x元的房屋租金。当前小易手中已经有f个水果和d元钱,小易也能去商店购买一些水果,商店每个水果售卖p元。小易为了表现他独立生活的能力,希望能独立生活的时间越长越好,小易希望你来帮他计算一下他最多能独立生活多少天。

输入描述:输入包括一行,四个整数x, f, d, p(1 ≤ x,f,d,p ≤ 2 * 10^9),以空格分割

输出描述:输出一个整数, 表示小易最多能独立生活多少天。

//注意分两种情况,水果够吃和不够吃,不能使用循环,任务量过大会超时
while(line = readline()){
    var lines = line.trim().split(' ');
    var arr = lines.map(function(item){
        return parseInt(item);
    });
    var x = arr[0],
        f = arr[1],
        d = arr[2],
        p = arr[3];
    if(Math.floor(d/x)<=f){
        console.log(Math.floor(d/x));
    }else{
        console.log(Math.floor((d-f*x)/(x+p))+f);
    }
}

总结

总的来说,本次笔试题的难度相对之前的前端实习招聘笔试来说更为简单,最后的三个大题都是网易17届的题目,估计是云音乐事业部扩招了,那么希望就更大了嘿嘿。
希望明年3月的实习面试的时候,能够游刃有余,加油。