网易有道2017内推笔试

第一题

 

第一个选项: 具体可看可扩展标记语言_百度百科

XML可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言。XML仅仅是存储数据,不能进行数据索引、排序、查找等,这也导致了它非常简单。XML是由SGML和HTML演变而来的,解决了这两个老前辈的一些不足,比如SGML不适合web数据的描述,价格高且复杂庞大。HTML虽然简单,但有可读性差和搜索时间长等缺点。

XML具有很多特点:1)XML可以从HTML中分离数据。2)XML可用于交换数据。3)XML可应用于B2B中。4)利用XML可以共享数据。XML数据以纯文本格式存储,这使得XML更易读、更便于记录、更便于调试,使不同系统、不同程序之间的数据共享变得更加简单。5)XML可以充分利用数据。6)XML可以用于创建新的语言。

总之,XML使用一个简单而又灵活的标准格式,为基于Web的应用提供了一个描述数据和交换数据的有效手段。但是,XML并非是用来取代HTML的。HTML着重如何描述将文件显示在浏览器中,而XML与SGML相近,它着重描述如何将数据以结构化方式表示。

XML有一些规则:具体可看XML——XML介绍和基本语法_Gavin-CSDN博客

1)必须有声明语句。

2)大小写是有区别的。

3)XML文档有且只有一个根元素。根元素就是紧接着声明后面建立的第一个元素,其他元素都是这个根元素的子元素,根元素完全包括文档中其他所有的元素。根元素的起始标记要放在所有其他元素的起始标记之前;根元素的结束标记要放在所有其他元素的结束标记之后。一个标签中也可以嵌套若干子标签。但所有标签必须合理地嵌套,绝对不允许交叉嵌套,

 4)属性值使用引号。

5)所有的标记必须有相应的结束标记。

6)所有的空标记也必须被关闭。

 第二个和第三个选项:

JSONObjetWithData:options:error: 使用缓冲区数据来解析

writeJSONObject:toSteam:options:error: 使用来解析

第四个选项:

XML三种解析方式 SAX、Dom、Pull,具体可见XML三种解析方式 SAX、Dom、Pull_云淡风轻的博客-CSDN博客​​​​​​​

这里首先明白什么是SAX是一个用于处理XML事件驱动的“推”模型,优点是一种解析速度快并且占用内存少的xml解析器,它需要哪些数据再加载和解析哪些内容。缺点是它不会记录标签的关系,而要让你的应用程序自己处理,这样就增加了你程序的负担。DOM是一种文档对象模型,DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。Dom技术使得用户页面可以动态地变化,如可以动态地显示或隐藏一个元素,改变它们的属性,增加一个元素等,Dom技术使得页面的交互性大大地增强。缺点是DOM解析XML文件时,会将XML文件的所有内容以文档树方式存放在内存中。 Pull解析和Sax解析很相似,Pull解析和Sax解析不一样的地方是pull读取xml文件后触发相应的事件调用方法返回的是数字还有pull可以在程序中控制想解析到哪里就可以停止解析。

第二题

非常有迷惑性的题目! 先说一下队列的基础知识。

 我们课本上几乎都是队尾指针指向队尾元素的下一位置,而题目中是指向队尾元素!

第三题

概率问题基本上都是贝叶斯和全概率的问题,他们之间往往可以通过条件概率建立联系。 

本题中,要判断 xi 属于w1,还是w2,就是判断 p(w1 | xi)  和 p(w2 | xi)的大小关系。即在xi已经发生的情况下,xi 属于哪个类别(w1 ,w2)的可能性更大。 

p(w1 | xi) = p(xiw1) / p(xi) = p(xi | w1) * p(w1) / p(xi) = 0.6*(2 - xi) / p(xi)   // 因为xi都在 (1,2)范围 

p(w2 | xi) = p(xiw2) / p(xi) = p(xi | w2) * p(w2) / p(xi) = 0.4*(xi - 1) / p(xi)   // 因为xi都在 (1,2)范围 

上面两等式相减,得: 

delta = p(w1 | xi) - p(w2 | xi) = (1.6 - xi) / p(xi) 

所以,在上诉样本中,大于1.6的,属于w2,小于1.6的,属于w1。

第四题 


 

grep命令:强大的文本搜索工具,正则搜索。

grep 关键词 text.c 输出包含关键词的行

-n 输出行号。

-v 输出不包含的行。

-c 输出行的数量。

-l 输出文件名。

-c 输出数量。

wc命令:为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。

-c 统计字节数。

-l 统计行数。

-m 统计字符数。这个标志不能与 -c 标志一起使用。

-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。

-L 打印最长行的长度。

-help 显示帮助信息

--version 显示版本信息

本题可使用:grep “for”  proc.c  | wc -l
首先用grep找到proc.c总有“for”的行,随后用wc -l统计行数

第五题

正确答案:p=new int(x);

p = &x:表示的是,对x取地址,赋值给指针p,那么p 将指向 x 的那块内存空间,但是 x  是形式参数(也有人说是方法参数,都可以),函数调用完了之后,内存就释放了,所以再返回 *p(即取出那块内存空间的值),已经找不到了。所以错误。 

*p = x:表示的是将 x 的值赋值给 P 所指向的空间,而p之前并没有指向任何地方,这个操作将是非法的。 

*p = new int(x):这个操作同 A 的结果一样。 

p = new int(x):new int(x) 新申请空间,调用完后不释放空间,所以将地址赋值给p,p 指向了这段新申请内存空间,所以当做  *p 返回时,即取出p所执行空间的值,所以会输出5。

 第六题

 5*6-12=18

18/5=3.6

int向零取整,所以结果为3。

第七题

 

--y和y--,前者优先级最高,参与运算之前减1。y--优先级最低,一般参与运算之后再减1。

--y=y-1=4

x=x/4=3.0/4.0=0.75

第八题

前序遍历:根节点-->左子树-->右子树 

中序遍历:左子树 --> 根节点 ->右子树

后序遍历: 左子树 ->右子树 --> 根节点

第九题 

 


编译方式是指利用事先编好的一个称为编译程序的机器语言程序,作为系统软件存放在计算机内,当用户将高级语言编写的源程序输入计算机后,编译程序便把源程序整个地翻译成用机器语言表示的与之等价的目标程序,然后计算机再执行该目标程序,以完成源程序要处理的运算并取得结果。执行速度快。

解释方式是指源程序进入计算机后,解释程序边扫描边解释,逐句输入逐句翻译(转换成机器可识别码),计算机一句句执行,并不产生目标程序。人机交互好。


A:计算机不能直接理解任何除及其语言以外的语言,所以必须要把程序员所写的程序语言翻译成机器语言,计算机才能执行程序。将其他语言翻译成机器语言的工具,被称为编译器。 编译器翻译的方式有两种:一个是编译,一个是解释,相对应的是编译型语言和解释型语言。
B:编译语言程序执行分为编译、执行两个阶段。
C:编译语言如JAVA是跨平台语言,编译一次可以在别的系统中不需再次编译直接执行。
D:编译语言首先将源码编译成字节码或者编译成二进制码 ,C就是把源码编译成二进制码,Java编译成字节码。编译语言执行的效率往往比较高。因为它会对编译好的代码直接执行,而编译好的代码已经接近机器语言,无需再去做解释的工作。 解释性语言不同,在执行的时候才把源代码调到执行它的地方,比如是引擎或者解释器,调用一句执行一句。

第十题

 

 具体可见B树、B-树、B+树、B*树之间的关系_道友请多指教-CSDN博客_b 树

10/2-1=4,10-1=9。

第十一题

答案1,2,4,5,6错误。

经过继承之后,各类中成员的属性情况为: 

A: 

public:a3 

private:a1 

protected:a2 

B:public A

public:a3  b3

private:b1 

protected:a2  b2

C:private B

public:c3

private:c1 a2  a3  b2  b3

protected:c2

cout<<obb.a1;   三种继承方式中,private属性不能被继承到派生类中,所以类A的a1没有被继承到类B中,不能访问;

cout<<obb.a2;   类A的保护属性变量a2被公有继承到类B中依然为保护属性,但它只能在派生类中被访问,而不能通过类的对象访问;

cout<<obb.a3;   a3为类B的公有成员,正确;

cout<<obc.b1;   错误,私有属性不被继承到派生类中;

cout<<obc.b2;   错误,私有属性能通过类中的成员函数进行访问,而不能通过类的对象直接对私有数据成员进行访问;

cout<<obc.b3;   错误,同上;

cout<<obc.c3;   c3为为类C的公有成员,正确;

类的继承后方法属性变化:

private 属性不能够被继承。 

使用private继承,父类的protected和public属性在子类中变为private; 

使用protected继承,父类的protected和public属性在子类中变为protected; 

使用public继承,父类中的protected和public属性不发生改变;  

private, public, protected 访问标号的访问范围:

private:只能由1.该类中的函数、2.其友元函数访问。 不能被任何其他访问,该类的对象也不能访问。 

protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。 但不能被该类的对象访问。 

public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.该类的对象访问。 

 第十二题

因为 数据传输率(C)=记录位密度(D) x   线速度( V )

所以 D=C/V= 128000/2=64000

看单位算!

第十三题


ipV4是由32位组成的 分为4个字节  一个字有八位: 

10.1.193.0/24    对应二进制 (00001010.00000001.11000001.00000000) 对应的子网掩码为24  11111111.11111111.11111111.00000000 

10.1.194.0/24    对应二进制 (00001010.00000001.11000010.00000000) 对应的子网掩码为24  11111111.11111111.11111111.00000000

10.1.196.0/24    对应二进制 (00001010.00000001.11000100.00000000) 对应的子网掩码为24  11111111.11111111.11111111.00000000 

10.1.198.0/24    对应二进制 (00001010.00000001.11000110.00000000) 对应的子网掩码为24  11111111.11111111.11111111.00000000

路由汇聚是把相同的路由ip地址共同聚集成为一个总的ip地址:

10.1.192.0/21    对应二进制 (00001010.00000001.11000000.00000000) 对应的子网掩码为21  11111111.11111111.11111000.00000000 

 第一套结束啦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值