网易2012校园招聘笔试题目
第一部分(必做):计算机科学基础
1、长为N的字符串中匹配长度为M的子串的算法复杂度是()
A. O(N) B. O(M+N) C. O(N+logM) D. O(M+logN)
答:B
2、以下排序算法中,哪些是稳定的排序算法(多选)()
A.冒泡 B.插入 C.合并 D.希尔 E.快速排序
答:ABC
3、以下是一颗平衡二叉树,请画出插入键值3以后的这颗平衡二叉树。
答:图略
4、给定两个整数集合A和B,每个集合都包含20亿个不同整数,请给出快速计算A∩B的算法,算法可使用外存,但是要求占用内存不能超过4GB。
- 答: 将集合A是的整数,根据n%10不同,分别装入10个文件中,依次命名为a0,a1……,a9。同理,将集合B分别装入10个文件中,依次命名为b0,b1,……,b9。那么A和B编号不同的文件中,一定不会有相同的整数。只需分另求出a0与b0中共有的元素、a1与b1中共有的元素……
- 利用bitmap,将bitmap清0,读入文件ai,依次处理每个数,即将bitmap的第(n/10)位置1。然后读入文件bi,依次处理每个数,即:若bitmap第(n/10)位为1,则这个数属于A∩B
答: 将集合A是的整数,根据n%10不同,分别装入10个文件中,依次命名为a0,a1……,a9。同理,将集合B分别装入10个文件中,依次命名为b0,b1,……,b9。那么A和B编号不同的文件中,一定不会有相同的整数。只需分另求出a0与b0中共有的元素、a1与b1中共有的元素…… 利用bitmap,将bitmap清0,读入文件ai,依次处理每个数,即将bitmap的第(n/10)位置1。然后读入文件bi,依次处理每个数,即:若bitmap第(n/10)位为1,则这个数属于A∩B
5、请给出从N个无序的整数中计算机最小的K个整数的算法,并给出时间复杂度,其中K<<N,要求时间复杂度尽可能的低,不要求K个整数排序。
- 答:堆排序。将N个数中的前K个建立一个小顶堆。每读入一个新的整数,就把它插入到堆中,调整堆,但是每次调整都只调整前K个元素。从第K+1个位置开始的元素都忽略。时间为NlogK
答:堆排序。将N个数中的前K个建立一个小顶堆。每读入一个新的整数,就把它插入到堆中,调整堆,但是每次调整都只调整前K个元素。从第K+1个位置开始的元素都忽略。时间为NlogK
6、假设一个有8个1024字页面的逻辑地址空间,映射到一个有32帧的物理内存结构中,逻辑地址有多少位?
- 答:13
- 逻辑地址 = 逻辑页号 + 页内偏移
- 逻辑页面数为8,因此逻辑页号长度为3,页面的大小为1024,因此页面偏移的长度为10.
- 如果求物理地址多少位,则是15
答:13 逻辑地址 = 逻辑页号 + 页内偏移 逻辑页面数为8,因此逻辑页号长度为3,页面的大小为1024,因此页面偏移的长度为10. 如果求物理地址多少位,则是15
7、关于网络ISO各层协议的问题,把左右相对应。
应用层 |
|
网卡 |
表示层 |
|
路由IP |
会话层 |
|
交换机 |
网络层 |
|
TCP/UDP |
传输层 |
|
HTTP/DNS |
数据链路层 |
|
ASCII |
物理层 |
|
PRC,SQL |
答:貌似连线题?
- (1)网卡的作用就是把数据进行串并转换(串连数据是比特流形式的,存在与本计算机内部,而计算机与计算机之间是通过帧形式的数据来进行数据传输的),MAC子层规定了如何在物理线路上传输的frame,LLC的作用是识别不同协议类型然后进行encapsulation(封包), 所以精确的说,网卡工作在数据链路层的MAC子层.
- (2)路由IP属于网络层
- (3)ISO的术语称之为中继(relay)系统。根据中继系统所在的层次,可以有以下五种中继系统:
- 1.物理层(即常说的第一层、层L1)中继系统,即转发器(repeater)。
- 2.数据链路层(即第二层,层L2),即网桥或桥接器(bridge)。
- 3.网络层(第三层,层L3)中继系统,即路由器(router)。
- 4.网桥和路由器的混合物桥路器(brouter)兼有网桥和路由器的功能。
- 5.在网络层以上的中继系统,即网关(gateway).
- 我们经常说到的以太网交换机实际是一个基于网桥技术的多端口第二层网络设备,即数据链路层
- (4)TCP/UDP属于传输层
- (5)HTTP/DNS属于应用层
- (6)表示层位于OSI分层结构的第六层,它的主要作用之一是为异种机通信提供一种公共语言,以便能进行互操作。这种类型的服务之所以需要,是因为不同的计算机体系结构使用的数据表示法不同。例如,IBM主机使用EBCDIC编码,而大部分PC机使用的是ASCII码。在这种情况下,便需要会话层来完成这种转换。ASCII属于表示层
- (7)PRC,SQL属于哪一层呢?
(1)网卡的作用就是把数据进行串并转换(串连数据是比特流形式的,存在与本计算机内部,而计算机与计算机之间是通过帧形式的数据来进行数据传输的),MAC子层规定了如何在物理线路上传输的frame,LLC的作用是识别不同协议类型然后进行encapsulation(封包), 所以精确的说,网卡工作在数据链路层的MAC子层. (2)路由IP属于网络层 (3)ISO的术语称之为中继(relay)系统。根据中继系统所在的层次,可以有以下五种中继系统: 1.物理层(即常说的第一层、层L1)中继系统,即转发器(repeater)。 2.数据链路层(即第二层,层L2),即网桥或桥接器(bridge)。 3.网络层(第三层,层L3)中继系统,即路由器(router)。 4.网桥和路由器的混合物桥路器(brouter)兼有网桥和路由器的功能。 5.在网络层以上的中继系统,即网关(gateway). 我们经常说到的以太网交换机实际是一个基于网桥技术的多端口第二层网络设备,即数据链路层 (4)TCP/UDP属于传输层 (5)HTTP/DNS属于应用层 (6)表示层位于OSI分层结构的第六层,它的主要作用之一是为异种机通信提供一种公共语言,以便能进行互操作。这种类型的服务之所以需要,是因为不同的计算机体系结构使用的数据表示法不同。例如,IBM主机使用EBCDIC编码,而大部分PC机使用的是ASCII码。在这种情况下,便需要会话层来完成这种转换。ASCII属于表示层 (7)PRC,SQL属于哪一层呢?
8、关于Bridge模式,Observer模式,Strategy模式,Mediator模式,以上哪种模式可以使得算法的使用者忽视算法的具体实现?
- 答:Bride模式
- (1)Bridge模式 的用意是"将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化"。
- (2)Observer模式定义对象间的一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。
- (3)Strategy模式 定义一系列算法,把他们封装起来,并使他们可以互相替换。
- 将策略加以封装为一个物件,而不是将策略写死在某个类中,如此一来,策略可以独立于客户端,随时增加变化、增加或减少策略,即使是修改每个策略的内容,也不会对客户端程式造成影响。
- (4)Mediator模式 用一个中介对象来封装一系列关于对象交互行为。
答:Bride模式 (1)Bridge模式 的用意是"将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化"。 (2)Observer模式定义对象间的一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。 (3)Strategy模式 定义一系列算法,把他们封装起来,并使他们可以互相替换。 将策略加以封装为一个物件,而不是将策略写死在某个类中,如此一来,策略可以独立于客户端,随时增加变化、增加或减少策略,即使是修改每个策略的内容,也不会对客户端程式造成影响。 (4)Mediator模式 用一个中介对象来封装一系列关于对象交互行为。
9、数据库系统提供两种不同类型的语言,分别是自含式语言和嵌入式语言,来供数据库管理员及开发者管理,查询和更新。
10、数据库理论中取出右侧关系中所有与左侧关系的任一元组都不匹配的元组,用空值填充所有来自左侧关系的属性,再把产生的元组加到自然连接的结果上,这种连接运算称为?
- 答:左外连接
- 表的联结、运算符学习笔记
- 1.等值联结
- 两个表的相同列的值必须相等。
- 等值联结也称为 简单联结 或 内联结
- 2.非等值联结
- 非等值联结是包含非等号运算符的联结条件
- 3.外联结
- 通过外联结返回不直接匹配的记录。
- 外联结运算符只能出现在表达式的一侧,即缺少信息的那一侧。他将从一个表中返回在另一个表中没有直接匹配的行。
- 包含外联结的条件不能用IN 运算符,也不能通过OR运算符链接到另一个条件。
- 4.自联结
- 自己联结自己的一种联结形式
- 5.交叉联结:
- 返回两个表的交叉乘积 这与两个表之间的笛卡尔乘积是相同的 CROSS JOIN
- 6.自然联结:
- NATURAL JOIN 子句是以两个表中具有相同名称的所有列为基础。
- 它选择两个表中那些在所有匹配的列中值相等的行。
- 如果列具有相同的名称 但是数据类型不同,就会返回一个错误。
- 7.USING子句
- 如果几个列具有相同的名称,但是数据类型不匹配,则可以使用USING 子句来修改NATURAL JOIN子句 以指定要用于等值联结的列。
- 在多个列匹配时,使用USING子句只匹配一个列。
- 在引用列中不要使用表名或别名
- 对于使用Using限制只用一个相同列来关联的,where条件当中出现的相同的列则必须限定为某一个表的列 否则因产生歧义而抛出错误
- 8.使用ON子句创建联结
- 自然联结的联结条件基本上是具有相同名称的所有列的等值联结。
- 要制定任意条件或指定要联结的列,可以使用ON子句。
- 联结条件与其他搜索条件分开。
- 9 INNER 与 OUTER 联结
- 在SQL:99标准中,只返回匹配行的两个表之间的联结叫做:内联结。
- 两个表之间的联结不但返回内联结结果而且返回左(或右)表不匹配行的结果。
- 两个表之间的联结不但返回内联结结果而且返回左联结和右联结不相匹配的结果,这样的联结就是完全外联结
- 关于左/右外联结的理解:
- 由于左右两个表完全匹配的情况称为 内联结,那么左外联结则可以理解为除了匹配的结果外,还将列出左表匹配以外的记录。
- 右外联结则是除了显示两表匹配的结果,还将显示右表除匹配结果以外的记录。
答:左外连接 表的联结、运算符学习笔记 1.等值联结 两个表的相同列的值必须相等。 等值联结也称为 简单联结 或 内联结 2.非等值联结 非等值联结是包含非等号运算符的联结条件 3.外联结 通过外联结返回不直接匹配的记录。 外联结运算符只能出现在表达式的一侧,即缺少信息的那一侧。他将从一个表中返回在另一个表中没有直接匹配的行。 包含外联结的条件不能用IN 运算符,也不能通过OR运算符链接到另一个条件。 4.自联结 自己联结自己的一种联结形式 5.交叉联结: 返回两个表的交叉乘积 这与两个表之间的笛卡尔乘积是相同的 CROSS JOIN 6.自然联结: NATURAL JOIN 子句是以两个表中具有相同名称的所有列为基础。 它选择两个表中那些在所有匹配的列中值相等的行。 如果列具有相同的名称 但是数据类型不同,就会返回一个错误。 7.USING子句 如果几个列具有相同的名称,但是数据类型不匹配,则可以使用USING 子句来修改NATURAL JOIN子句 以指定要用于等值联结的列。 在多个列匹配时,使用USING子句只匹配一个列。 在引用列中不要使用表名或别名 对于使用Using限制只用一个相同列来关联的,where条件当中出现的相同的列则必须限定为某一个表的列 否则因产生歧义而抛出错误 8.使用ON子句创建联结 自然联结的联结条件基本上是具有相同名称的所有列的等值联结。 要制定任意条件或指定要联结的列,可以使用ON子句。 联结条件与其他搜索条件分开。 9 INNER 与 OUTER 联结 在SQL:99标准中,只返回匹配行的两个表之间的联结叫做:内联结。 两个表之间的联结不但返回内联结结果而且返回左(或右)表不匹配行的结果。 两个表之间的联结不但返回内联结结果而且返回左联结和右联结不相匹配的结果,这样的联结就是完全外联结 关于左/右外联结的理解: 由于左右两个表完全匹配的情况称为 内联结,那么左外联结则可以理解为除了匹配的结果外,还将列出左表匹配以外的记录。 右外联结则是除了显示两表匹配的结果,还将显示右表除匹配结果以外的记录。
11、关于索引的概念的选择题,没有拍全
12、关于数据库事务,简述事务的特性,事务的其它东东(忘记了)
第二部分 全是JAVA内容,没有拍下来
第三部分 专业类,根据岗位不同,试题不同。测试工程师(网易宝)
1、 谈谈你对软件测试的理解,可以包括测试流程、测试类型、测试目的等。请回答你认为最重要的部分,尽量控制字数。
2、 请描述http请求get和post的区别。
- GET与POST方法有以下区别:
- (1) 在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。
- (2) GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
- (3) 安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。
- (4) 安全的和幂等的。所谓安全的意味着该操作用于获取信息而非修改信息。幂等的意味着对同一URL 的多个请求应该返回同样的结果。换句话说,GET 请求一般不应产生副作用。从根本上讲,其目标是当用户打开一个链接时,她可以确信从自身的角度来看没有改变资源。POST 请求就不那么轻松了。POST 表示可能改变服务器上的资源的请求。
- 表单提交中get和post方式的区别归纳如下几点:
- (1)get是从服务器上获取数据,post是向服务器传送数据。
- (2)对于表单的提交方式,在服务器端只能用Request.QueryString来获取Get方式提交来的数据,用Post方式提交的数据只能用Request.Form来获取。
- (3)一般来说,尽量避免使用Get方式提交表单,因为有可能会导致安全问题。比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗。但是在分页程序中,用Get方式就比用Post好。
GET与POST方法有以下区别: (1) 在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。 (2) GET方式提交的数据最多只能有1024字节,而POST则没有此限制。 (3) 安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。 (4) 安全的和幂等的。所谓安全的意味着该操作用于获取信息而非修改信息。幂等的意味着对同一URL 的多个请求应该返回同样的结果。换句话说,GET 请求一般不应产生副作用。从根本上讲,其目标是当用户打开一个链接时,她可以确信从自身的角度来看没有改变资源。POST 请求就不那么轻松了。POST 表示可能改变服务器上的资源的请求。 表单提交中get和post方式的区别归纳如下几点: (1)get是从服务器上获取数据,post是向服务器传送数据。 (2)对于表单的提交方式,在服务器端只能用Request.QueryString来获取Get方式提交来的数据,用Post方式提交的数据只能用Request.Form来获取。 (3)一般来说,尽量避免使用Get方式提交表单,因为有可能会导致安全问题。比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗。但是在分页程序中,用Get方式就比用Post好。
3、 请描述进程与线程的区别。
答:见Linux2.6进程
4、 现在让你测试一个程序,这个程序有三个输入框,分别是输入三角形的3条边,旁边有一个确认按钮,你点击按钮可能会弹出这么几种结果:不是三角形,锐角三角形,直角三角形,钝角三角形,等腰三角形,等边三角形,请详细描述下测试的过程以及需要注意的点。
5、 程序运行时会遇到很多系统给予的中断事件,手机系统中,中断事件是一个很常见的现象,比如来电通知,短信提醒等。请写出你所知的中断事件,排列出优先级,如果有一个通讯录同步软件需要测试,请写出哪些操作需要关注中断事件。
6、 某大学图书馆信息管理系统需要设计一张图书信息表,请给出以下问题的答案(默认采用MySQL语法,若采用其他数据库可注明)
a) 请设计表结构,并且用SQL语句写出建表语句
b) 向你设计的表中插入5条图书记录。
c) 检索出“机械工业出版社”出版的2007年以后的书名包含“软件测试”的图书。
d) 如果表中的某两列,比如“书名”和“出版社”需要经常一起使用查询,请用SQL语句为该表设计一个索引以提高查询效率。
e) 请描述索引的优点和缺点。
7、 编程题。存在一个名为user.csv的文件,csv中的内容是以逗号作为分隔符的,里面依次存储了用户的id,name,mail信息。请写一段程序,输出用户信息中mail是以163结尾的所有用户的name。
内容格式如下:
Id,name,mail
1,Kevin,Kevin@163.com
2,micheal,micheal@126.com
8、 编程题。编写代码把16进制表示的串转换为3进制表示的串。例如x=”5”,则返回:”12”;又例如:x=”F”,则返回”120”。