首页 > 代码库 > 2014人人校招 笔试总结
2014人人校招 笔试总结
2014人人校招,今天参加了笔试,主要内容包括操作系统、数据结构、计算机网络一共12道选择题,一道关于Sql的问答题(较复杂,删除重复的内容),三道编码题(字符串处理、转换数字为中文形势、大文件有重复且考虑内存情况下统计行数)。
下面说一下我都做错了哪些吧!还有一些重点
1.粗心做错
对于类的“+”的重载,一道选择题,一不小心选错了,class A,正常重载成员函数原型为:
A A::operator +(const A &A2);
2.基础不够
(1)友元函数的访问,一个类的友元函数能够通过(类对象参数)访问类的所有成员。
(2)进程转换可能有哪些?如图记住就好
(3)网络协议
ARP 地址解析协议(数据链路层),ARP为通过IP地址映射到到MAC地址
RARP 逆地址解析协议(数据链路层),RARP一般用于无盘工作站启动时通过硬件地址获得IP地址。
顺便对于网络协议总结一下
计算机网络中五层协议分别是(从下向上):
1) 物理层 2)数据链路层 3)网络层 4)传输层 5)应用层
其功能分别是:
1)物理层主要负责在物理线路上传输原始的二进制数据;
2)数据链路层主要负责在通信的实体间建立数据链路连接;
3)网络层主要负责创建逻辑链路,以及实现数据包的分片和重组,实现拥塞控制、网络互连等功能;
4)传输曾负责向用户提供端到端的通信服务,实现流量控制以及差错控制;
5)应用层为应用程序提供了网络服务。
一般来说,物理层和数据链路层是由计算机硬件(如网卡)实现的;
网络层和传输层由操作系统软件实现;
而应用层由应用程序或用户创建实现。
3. 难度上升
(1) 数据库操作,删除一个表中的冗余数据,这个比较复杂,因为没有主键,只有两个字段id和name,而且name冗余,想了好久也没想到是怎么删除的,最后胡乱写了一个。现在查找资料之后有了一些思路:根据rowid删除,每一条记录都有唯一的rowid。可以通过下面语句查看想要删除的row的rowid
SELECT a.*,rowid FROM a;
(2)大文件行数统计,这个想到了一个比较好的思路,就是利用userid范围创建一个int数组,全部初始化a[n]=n, 循环读,每次读出一个数字符合就赋值为0,同时count++,如果a[n]==0,说明前面已经读过,忽略这次的结果继续读,最后的count就应该是去除冗余后的总行数。
刚刚结果出来了,不幸,也在意料之中,没有我。。