2014网易前端开发笔试题-解答

原文来自:http://yjbys.com/bishi/timu/585868.html

主要是为了今晚的网易笔试。整理一下

1.(2分)对于多关键字而言,那种文件组织方便而又高效()

  A、顺序文件 B、倒排文件 C、散列文件 D、B+树索引文件

  解析:答案 B。

  文件在外存上的基本的组织方式有四种:顺序组织,索引组织,散列组织和链组织;对应的的文件名称分别为:顺序文件、索引文件、散列文件和多关键字文件。选择哪一种文件组织方式,取决于对文件中记录的使用方式和频繁程度、存取要求、外存的性质和容量。

  多关键字文件:包含有多个次关键字索引的文件称为多关键字文件。

  倒排文件(也称倒排索引):用记录的非主属性值(也叫副键)来查找记录而组织的文件叫倒排文件,即次索引。倒排文件中包括了所有副键值,并列出了与之有关的所有记录主键值,主要用于复杂查询。

  倒排表的主要优点是:在处理复杂的多关键字查询时,可在倒排表中先完成查询的交、并等逻辑运算,得到结果后再对记录进行存取。这样不必对每个记录随机存取,把对记录的查询转换为地址集合的运算,从而提高查找速度。

2.(2分)以下哪些算法可用于遍历网络图()

  A、广度优先搜索 B、深度优先搜索 C、线性规划策略 D、决策树

  解析:答案 A、B。

  广度优先搜索假设从图中某个顶点v出发,在访问了v之后依次访问v的各个未曾访问过的邻接点,然后再分别从这些邻接点出发依次访问它们的邻接点,并使先被访问的顶点的邻接点先于后被访问的顶点的邻接点被访问(因此需要用队列来存储顶点),直到图中所有已被访问的顶点的邻接点都被访问为止。如果此时图中还有未被访问的顶点,则另选图中未被访问的顶点作为起点,重复上述过程,直到图中所有顶点都被访问为止。

  深度优先搜索法是树的先根遍历的推广,它的基本思想是:从图G的某个顶点v0出发,访问v0,然后选择一个与v0相邻且没被访问过的顶点vi访问,再从vi出发选择一个与vi相邻且未被访问的顶点vj进行访问,依次继续。如果当前被访问过的顶点的所有邻接顶点都已被访问,则退回到已被访问的顶点序列中最后一个拥有未被访问的相邻顶点的顶点w,从w出发按同样的方法向前遍历,直到图中所有顶点都被访问。

3.(2分)我们使用一个6元组来表示6个节点的无向图的顶点数,请问以下哪些6元组是可能的组合()

  A、<1,2,3,4,5,6>

  B、<2,4,4,2,3,5>

  C、<1,3,4,2,2,1>

  D、<1,2,2,4,5,2>

  解析:

  无向图:一个无向图(undirected graph)是一个二元组,其中:1.V是非空集合,称为顶点集。2.E是V中元素构成的无序二元组的集合,称为边集。

  若一个图中每条边都是无方向的,则称为无向图。

  若G是无向图,则0≤e≤n(n-1)/2

4.(2分)以下关于可计算性的说法正确的是()

  A、 所有问题最终都可以抽象为一个计算模型,图灵机可以在一个有限的时间(虽然可能会占用非常久的时间)内完成计算:现代计算机的设计正是基于该理论。

  B、 存在部分问题,我们无法在有限时间内,给出解答:但是,所有问题都可以在有限时间内验证其解答的正确性。

  C、 Godel(哥德尔)第一定律指明不存在完备且相容的公理系统。

  D、 以上说法都不正确。

  解析:可计算性(calculability)是指一个实际问题是否可以使用计算机来解决,但是一个可以使用计算机解决的问题应该被定义为“可以在有限步骤内被解决的问题”。

5.(2分)16进制数值C396和8进制数值64474的异或结果值(10进制)为()

  A、43690 B、16660 C、60350 D、20375

  解析:

  异或:Exclusive OR(异-或运算、模2和),异或(xor)是一个数学运算符。它应用于逻辑运算。异或符号为“^”。真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值不相同,则异或结果为真。反之,为假。 不同为1,相同为0.

  若x是二进制数0101,y是二进制数1011,则x^y=1110。

  只有在两个比较的位不同时其结果是1,否则结果为0

  即“相同为0,不同为1”!

6.(2分)以下经典的问题哪些属于NP问题()

  A、图灵停机问题 B、排序 C、0,1背包问题 D、枚举有限集合的所有子集

  解析:

    图灵停机问题:不存在这样一个程序(算法),它能够计算任何程序(算法)在给定输入上是否会结束(停机)。

    应该选c

7.(2分)存在以下字母串:AGDCCDDDGFBBFFGGDDDGGGEFFDDCCCDDDFGAAA现在需要对该串进行Huffman编码,那么字母F对应bit值(二进制格式为)()

  A、10 B、11 C、110 D、101

  解析:

  //既然现在用电脑,就用 javascript 来解决一下如果数数的问题

  var temp=‘AGDCCDDDGFBBFFGGDDDGGGEFFDDCCCDDDFGAAA‘;

  var count=temp.match(/F/g); // 搜索整个字符串匹配字母 F

  console.log(temp.length); //字符总长度为36

  console.log(count.length);; //输出的结果应该是6

  霍夫曼编码:(Huffman Coding)是一种编码方式,是一种用于无损数据压缩的熵编码(权编码)算法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码。

  HC 具体方法:先按出现的概率大小排队,把两个最小的概率相加,作为新的概率 和剩余的概率重新排队,再把最小的两个概率相加,再重新排队,直到最后变成1。每次相 加时都将“0”和“1”赋与相加的两个概率,读出时由该符号开始一直走到最后的“1”, 将路线上所遇到的“0”和“1”按最低位到最高位的顺序排好,就是该符号的霍夫曼编码。

9.(2分)进程管理如果设计不当将会导致“死锁”的产生,对待死锁,典型的银行家算法属于(1),而剥夺资源属于(2)的方法。

  A、(1)=死锁预防,(2)=死锁避免

  B、(1)=死锁预防,(2)=死锁解除

  C、(1)=死锁避免,(2)=死锁预防

  D、(1)=死锁避免,(2)=死锁解除

  解析:答案B

  死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。

  系统产生死锁的四个必要条件:

  1)互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。

  2)请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。

  3)不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。

  4)环路等待条件:指在发生死锁时,必然存在一个进程——资源的环形链,即进程集合{P0,P1,P2,···,Pn}中的P0正在等待一个P1占用的资源;P1正在等待P2占用的资源,……,Pn正在等待已被P0占用的资源。

  银行家算法:我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配。

10.(2分)关于数据库索引,以下说法正确的是()

  A、针对某些字段建立索引,能够有小减少相关数据库表的磁盘空间占用;

  B、针对某些字段建立索引,能够有效的提升相关字段的读与写的效率;

  C、常见数据库管理系统,通常使用hash表来存储索引;

  D、数据库索引的存在,可能导致相关字段删除的效率降低;

  解析:索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大 所以A×

     当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度 所以D√

     大大加快数据的检索速度,这也是创建索引的最主要的原因  但是不会提高写效率B×

     B树  C×

第二部分:专业题(前端开发)

  题型有1.不定项选择题 12道,2.填空题 5道左右 3.简答题 4.编程题 5道左右,偏重考察 javascript,编程题要求手写代码,其中包含 js 题目3道还是4道,一道给出三切换标签界面原型图,要求手写html+css+javascript实现原型图和交互效果。由于距离有一段时间了,详细的题目记不清楚了。就回忆一下几个知识点吧。

1.简答题:什么是闭包,闭包有什么用?请举例说明。

  解析:Javascript中,函数内部可以读取全局变量,函数外部无法读取函数内部的局部变量。

  

function f1(){
  var n=1024;
  function f2(){
    console.log(n)
  }
    return f2();
}
var foo =f1();
foo();

  //以上函数f2()就是闭包

  闭包就是能够读取其他函数内部变量的函数。

2.填空题:apply 和 call 的用法和区别。

  解析:

  两者的作用都是将函数绑定倒另外一个对象上面去,两者仅仅在定义参数方式有所区别。

  来自 MDN 的解释:NOTE: While the syntax of this function is almost identical to that of apply(), the fundamental difference is that call() accepts an argument list, while apply() accepts a single array of arguments.

  apply(thisArg,argArray);

  call(thisArg[,arg1,arg2…] ]);

3.bind 函数的兼容性

  解析:

  bind方法会创建一个新函数,称为绑定函数.当调用这个绑定函数时,绑定函数会以创建它时传入bind方法的第一个参数作为this,传入bind方法的第二个以及以后的参数加上绑定函数运行时本身的参数按照顺序作为原函数的参数来调用原函数.

  fun.bind(thisArg[, arg1[, arg2[, ...]]])

4.参考给出的原型图和要求,手写 html,css和 js。

时间: 2024-08-08 15:05:52

2014网易前端开发笔试题-解答的相关文章

前端开发笔试题

part1:Css 1.css中,Transform,Transition,Animation的区别?import和link的区别? 2.请用css画一个三角形和圆? 3.请解释css sprites和iconfonts? 4.行内元素和块级元素的区别? part2:JavaScript 1.列举异步加载JS的方式? 2.给Array本地对象增加一个原型方法,它的用途是删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组? 3.请用JS编写一个方法实现获取url参数值

总结的一些前端开发笔试题

最近正忙于前端的应聘,在网络上搜集了一些问题,顺便结合网络答案,自己也整理了一部分,如有纰漏,还望批评指正. 1.请写出至少三个CSS3中新添加的样式属性的名字: (1)增强的文本属性:text-shadow(CSS2.1中已定义,但CSS3中又重新定义并增加了不透明度效果).text-overflow.word-wrap; (2)新增的盒模型属性:box-align.box-direction.box-flex.box-flex-group.box-lines.box-orient.box-p

WEB前端开发笔试题(1)

1.上面两个div在使用纯CSS的情况下,保持在任何尺寸的页面中都横向居中,垂直居中(页面大小不固定). <html> <head> <title>横向居中,垂直居中</title> <style>#div1{ width:600px; height:100px; border:1px solid #0F0; position:absolute; top:50%; left:50%; margin:-50px 0 0 -300px;}#div2{

大公司移动前端开发面试题——做转盘

"如果有个做转盘的需求,你准备怎么做?设计师只会提供一个转盘的图片,其余都需要你完成,不能用框架和类库." "这个转盘没有惯性的需求,只要求在手机上,用手指拖转盘,能让转盘跟随手指转起来即可." 这是我在面试前端开发人员时,经常会问到的一道题.转盘是类似上图的样子. 博主之前在M公司和C公司的时候,经常用这题面试移动前端开发工程师.M公司的产品和设计是美国团队,在个别项目上UI设计比较大胆脱俗,对前端开发人员有较高的要求.C公司的只会JS的前端开发人员占比较大,产品

一个校园实验室的纳新试题——(2)我的服务端开发笔试题

晚上整理 一个校园实验室的纳新题——(1)资源整理 http://www.cnblogs.com/corvoh/p/4869403.html 服务端开发笔试题 1.简述const与define的区别. 在PHP中定义常量时,const与define的区别: 用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数.另外const在编译时 要比define快得多.在PHP 5.3.0 以后,可以使用const关键字在类定义的外部定义常量,先前版本const 关键字只能

大公司移动前端开发面试题——做转盘[参考代码]

题目在此 http://www.cnblogs.com/arfeizhang/p/turntable.html 这几天一直在忙,终于找到时间把参考代码放出来了.大家参考一下. 参考代码考虑到让入行不久的前端也看得懂,没有进行封装.变量名也没有进行简写,尽量一看就明白. 图片随手在网上截的,也许没有对准圆心.这段代码只考虑了webkit内核的浏览器,没做兼容.重在让大家弄懂原理. :P 如果感到有些卡帧,可能是转盘图片带来的效果.在调试器上试过,能维持50-60帧,流畅度还是让人满意的.在LG G

前端开发面试题收集 JS

前端开发面试题收集-JS篇 收集经典的前端开发面试题 setTimeout的时间定义为0有什么用? javascript引擎是单线程处理任务的,它把任务放在队列中,不会同步执行,必须在完成一个任务后才开始另一个任务. 由于setTimeout可以把任务从某个队列中跳出成为新队列,因此能够得到期望的结果. 怎么理解this this指向的总是调用函数的那个对象. this一般情况下,是全局对象Global. 什么是闭包 闭包是一个概念,我的理解是函数里的函数,能够读取函数内部变量的函数. 就是将函

20K前端开发面试题:关于如何回答ajax跨域问题

在接触前端开发起,跨域这个词就一直以很高的频率在我们学习工作中重复出现,最近在工作中遇到了跨域的相关问题,这里我把它总结记录一下. 关于跨域,有N种类型,现在我只专注于ajax请求跨域(ajax跨域只是属于浏览器"同源策略"中的一部分,其它的这里不做介绍),内容大概如下:什么是ajax跨域?如何解决ajax跨域?如何分析ajax跨域? 一.什么是Ajax跨域 Ajax跨域的原理 ajax出现请求跨域错误问题,主要原因就是因为浏览器的"同源策略". CORS请求原理

前端开发面试题收集(css部分)

http://davidshariff.com/quiz/ 做了下这里面前端开发面试的题,发现有些不会,所以在此做个整理以供自己学习,参考,总结. 1.问: CSS属性是否区分大小写? ul { MaRGin: 10px; } 答:不区分.(HTML, CSS都不区分,但为了更好的可读性和团队协作,一般都小写,而在XHTML 中元素名称和属性是必须小写的.) 2.问:对行内元素设置margin-top 和margin-bottom是否起作用 答:不起作用.(需要注意行内元素的替换元素img.in