2013搜狐实习招聘笔试题
第一部分:四个中选出不同的一个。
1.A:CVS B:SVN C:GIT D:SSH
2.A:AirBNB B:CragList C:Yandex D:Monster
Airbnb是一个旅行房屋租赁社区,用户可通过网络或手机应用程序发布、搜索度假房屋租赁信息并完成在线预定程序。Airbnb的概念抽象一下,它的逻辑应该是:有空闲的资源就可以出租,就可以提高闲置资源利用率从而获得最大收益。
Craigslist是一个网上大型免费分类广告网站,但在某些城市的征才广告需付费,这也是这网络公司的主要收入。
Yandex(俄语:Яндекс,NASDAQ:YNDX)是一家俄罗斯互联网企业,旗下的搜索引擎在俄国内拥有逾60%的市场占有率,[1]同时也提供其他的一系列互联网产品和服务。
Monster全球最大的专业招聘网站,也是全球最大的招聘服务供应商,其访问量长期位居30位内,提供由招聘代理、线上招聘、猎头服务和招聘黄页广告四项构成的全方位的全球招聘解决方案。
3.A:AWK B:Shell C:Sed D:Bash
AWK是一种优良的文本处理工具。它不仅是 Linux 中也是任何环境中现有的功能最强大的数据处理引擎之一。
Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。
sed是stream editor的缩写。是一个非交互式上下文(context)编辑器。
bash 是一个为GNU计划编写的Unix shell。
5.A:LVS B:Nginx C:Lighttpd D:Apache
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
4.A:AVL B:Huffman C:B D:B+
6.A:Spring B:Ibatis C:Velocity D:Zend
Spring是一个开源框架,Spring 是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。
7.A:Latin1 B:GBK C:JIS D:ASCII
其他三个是编码标准。
8.A:H1 B:BR C:DIV D:P
标题文字 <h#>..........</h#> #=1~6;h1为最大字,h6为最小字。
换行 <br>。
分段 <p>。
<div >层的意思</div>。
9.A:JQuery B:Node.js C:Prototype D:CommonJS
Jquery是继prototype之后又一个优秀的Javascrīpt框架。它是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器。
Node.js是一套用来编写高性能网络服务器的JavaScript工具包。
10.A:enum B:char C:float D:int
enum不是基本类型。
11.A:XML B:JSon C:Base64 D:YAML
可扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯。
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。
YAML是一种很简单的类似于XML的数据描述语言,语法比XML简单很多。
12.A:fopen B:fread C:fseek D:fwrite
fopen打开文件。
fread读文件。
fseek函数设置文件指针stream的位置。
fwrite写文件。
13.A:JAVA B:Python C:objectC D:C#
Python是脚本语言。
14.A:Eclipse B:VS2012 C:Aptana D:Emacs
Emacs是文本编辑器。
15.A:main B:typedef C:sizeof D:enum
main不是关键字。
16.A:telnet B:rsync C:wget D:scp
Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。
scp就是secure copy,是用来进行远程文件拷贝的。
17.A:Mysql B:MongoDB C:DB2 D:PostgreSQL
MongoDB是一个基于分布式文件存储的数据库。其他三个是关系型数据库系统。
18.A:fiddler B:firebug C:httpwatch D:IETester
Fiddler是一个http调试代理,它能够记录并检查所有你的电脑和互联网之间 的http通讯,设置断点,查看Fiddle 所有的“进出”的数据。
Firebug是firefox下的一个插件,能够调试所有网站语言。
HttpWatch是强大的网页数据分析工具.集成在Internet Explorer工具栏.包括网页摘要.Cookies管理.缓存管理.消息头发送/接受.字符查询.POST 数据和目录管理功能.报告输出.HttpWatch 是一款能够收集并显示深层信息的软件。
19.A:<nav> B:<footer> C:<meta> D:<canvas>
<nav> 标签定义导航链接的部分。
<footer> 标签定义 section 或 document 的页脚。
<meta> 标签位于文档的头部,不包含任何内容。<meta> 标签的属性定义了与文档相关联的名称/值对。
<canvas> 标签定义图形,比如图表和其他图像。
20.A:MacOS B:IOS C:Andriod D:WP8
MacOS是电脑操作系统。其他的是手机操作系统。
1、C语言灵活性好,效率高,可以接触到软件开发比较底层的东西。
2、微软的MFC库博大精深,学会它可以让随心所欲地进行编程。
3、VC是微软制作的产品,与操作系统的结合更加紧密。
缺点:
对使用者的要求比较高,既要具备丰富的C语言编程经验,又要具有一定的Windows编程基础,它的过于专业使得一般的编程爱好者学习起来会有不小的困难。
C++语言优点:
1、C++语言的优点全部得以继承。
2、完全的可视化。
3、极强的兼容性,支持OWL、VCL和MFC三大类库。
4、编译速度非常快。
缺点:
由于推出的时间太短,关于它的各种资料还不太多。
寻找预编译头文件路径时遇到了不该遇到的文件尾。(一般是没有#include "stdafx.h")
2、fatal error C1083: Cannot open include file: 'R…….h': No such file or directory
不能打开包含文件“R…….h”:没有这样的文件或目录。
3、error C2011: 'C……': 'class' type redefinition
类“C……”重定义。
4、error C2018: unknown character '0xa3'
不认识的字符'0xa3'。(一般是汉字或中文标点符号)
5、error C2057: expected constant expression
希望是常量表达式。(一般出现在switch语句的case分支中)
6、error C2065: 'IDD_MYDIALOG' : undeclared identifier
“IDD_MYDIALOG”:未声明过的标识符。
7、error C2082: redefinition of formal parameter 'bReset'
函数参数“bReset”在函数体中重定义。
8、error C2143: syntax error: missing ':' before '{'
句法错误:“{”前缺少“;”。
9、error C2146: syntax error : missing ';' before identifier 'dc'
句法错误:在“dc”前丢了“;”。
10、error C2196: case value '69' already used
值69已经用过。(一般出现在switch语句的case分支中)
11、error C2509: 'OnTimer' : member function not declared in 'CHelloView'
成员函数“OnTimer”没有在“CHelloView”中声明。
12、error C2511: 'reset': overloaded member function 'void (int)' not found in 'B'
重载的函数“void reset(int)”在类“B”中找不到。
13、error C2555: 'B::f1': overriding virtual function differs from 'A::f1' only by return type or calling convention
类B对类A中同名函数f1的重载仅根据返回值或调用约定上的区别。
14、error C2660: 'SetTimer' : function does not take 2 parameters
“SetTimer”函数不传递2个参数。
15、warning C4035: 'f……': no return value
“f……”的return语句没有返回值。
16、warning C4553: '= =' : operator has no effect; did you intend '='?
没有效果的运算符“= =”;是否改为“=”?
17、warning C4700: local variable 'bReset' used without having been initialized
局部变量“bReset”没有初始化就使用。
18、error C4716: 'CMyApp::InitInstance' : must return a value
“CMyApp::InitInstance”函数必须返回一个值。
19、LINK : fatal error LNK1168: cannot open Debug/P1.exe for writing
连接错误:不能打开P1.exe文件,以改写内容。(一般是P1.Exe还在运行,未关闭)
20、error LNK2001: unresolved external symbol "public: virtual _ _thiscall C……::~C……(void)"
连接时发现没有实现的外部符号(变量、函数等)。
逻辑错误,比如本来要需要计算和,却在编程的过程将加号误写为减号,结果输出了差。
运行时错误,比如在运行的过程中,空间耗尽。
1、软件编写存在bug
无论是服务器程序、客户端软件还是操作系统,只要是用代码编写的东西,都会存在不同程度的bug。Bug主要分为以下几类:
(1) 、缓冲区溢出:指入侵者在程序的有关输入项目中了输入了超过规定长度的字符串,超过的部分通常就是入侵者想要执行的攻击代码,而程序编写者又没有进行输入长度的检查,最终导致多出的攻击代码占据了输入缓冲区后的内存而执行。别以为为登录用户名留出了200个字符就够了而不再做长度检查,所谓防小人不防君子,入侵者会想尽一切办法尝试攻击的途径的。
(2)、意料外的联合使用问题:一个程序经常由功能不同的多层代码组成,甚至会涉及到最底层的操作系统级别。入侵者通常会利用这个特点为不同的层输入不同的内容,以达到窃取信息的目的。例如:对于由Perl编写的程序,入侵者可以在程序的输入项目中输入类似“mail</etc/passwd”的字符串,从而使perl让操作系统调用邮件程序,并发送出重要的密码文件给入侵者。借刀杀人、借Mail送“信”,实在是高!
(3) 、不对输入内容进行预期检查:有些编程人员怕麻烦,对输入内容不进行预期的匹配检查,使入侵者输送炸弹的工作轻松简单。
(4)Raceconditions:多任务多线程的程序越来越多,在提高运行效率的同时,也要注意Raceconditions的问题。比如说:程序A和程序B都按照“读/改/写”的顺序操作一个文件,当A进行完读和改的工作时,B启动立即执行完“读/改/写”的全部工作,这时A继续执行写工作,结果是A的操作没有了表现!入侵者就可能利用这个处理顺序上的漏洞改写某些重要文件从而达到闯入系统的目的,所以,编程人员要注意文件操作的顺序以及锁定等问题。
2、系统配置不当
(1) 、默认配置的不足:许多系统安装后都有默认的安全配置信息,通常被称为easy to use。但遗憾的是,easy to use还意味着easy to break in。所以,一定对默认配置进行扬弃的工作。
(2)、 管理员懒散:懒散的表现之一就是系统安装后保持管理员口令的空值,而且随后不进行修改。要知道,入侵者首先要做的事情就是搜索网络上是否有这样的管理员为空口令的机器。
(3) 、临时端口:有时候为了测试之用,管理员会在机器上打开一个临时端口,但测试完后却忘记了禁止它,这样就会给入侵者有洞可寻、有漏可钻。通常的解决策略是:除非一个端口是必须使用的,否则禁止它!一般情况下,安全审计数据包可用于发现这样的端口并通知管理者。
(4) 、信任关系:网络间的系统经常建立信任关系以方便资源共享,但这也给入侵者带来借牛打力、间接攻击的可能,例如,只要攻破信任群中的一个机器,就有可能进一步攻击其他的机器。所以,要对信任关系严格审核、确保真正的安全联盟。
3、口令失窃
(1) 、弱不禁破的口令:就是说虽然设置了口令,但却简单得再简单不过,狡猾的入侵者只需吹灰之力就可破解。
(2) 、字典攻击:就是指入侵者使用一个程序,该程序借助一个包含用户名和口令的字典数据库,不断地尝试登录系统,直到成功进入。毋庸置疑,这种方式的关键在于有一个好的字典。
(3) 、暴力攻击:与字典攻击类似,但这个字典却是动态的,就是说,字典包含了所有可能的字符组合。例如,一个包含大小写的4字符口令大约有50万个组合,1个包含大小写且标点符号的7字符口令大约有10万亿组合。对于后者,一般的计算机要花费大约几个月的时间才能试验一遍。看到了长口令的好处了吧,真正是一两拨千斤啊!
4、嗅探未加密通讯数据
(1)、共享介质:传统的以太网结构很便于入侵者在网络上放置一个嗅探器就可以查看该网段上的通讯数据,但是如果采用交换型以太网结构,嗅探行为将变得非常困难。
(2)、服务器嗅探:交换型网络也有一个明显的不足,入侵者可以在服务器上特别是充当路由功能的服务器上安装一个嗅探器软件,然后就可以通过它收集到的信息闯进客户端机器以及信任的机器。例如,虽然不知道用户的口令,但当用户使用Telnet软件登录时就可以嗅探到他输入的口令了。
(3)、 远程嗅探:许多设备都具有RMON(Remotemonitor,远程监控)功能以便管理者使用公共体字符串(publiccommunitystrings)进行远程调试。随着宽带的不断普及,入侵者对这个后门越来越感兴趣了。
5、设计存在缺陷
(1) 、 TCP/IP协议的缺陷:TCP/IP协议现在已经广为应用、但是它设计时却是在入侵者猖狂肆虐的今天之很早以前设计出来的。因此,存在许多不足造成安全漏洞在所难免,例如smurf攻击、ICMPUnreachable数据包断开、IP地址欺骗以及SYNflood。然而,最大的问题在于IP协议是非常容易“轻信”的,就是说入侵者可以随意地伪造及修改IP数据包而不被发现。现在Ipsec协议已经开发出来以克服这个不足,但还没有得到广泛的应用。
6、系统攻击
系统攻击是指某人非法使用或破坏某一信息系统中的资源,以及非授权使系统丧失部分或全部服务功能的行为。
4.请从“唱吧”和“微信”两款APP中,选择一款,画出系统结构图。注意:考虑前端、后端、数据流转。
注:以上答案只是我个人的观点,不一定对,欢迎大家指正。