前天下午参加了网易游戏的中大专场实习生招聘,感觉好久没有看到纸质试卷了,网易游戏笔试比较全面,方方面面都考了,有单选、多选、填空、编程。稍微记录一下还记得的几道不会的题目及知识点,好好加油~继续努力!最后面的答案是我自己回来之后百度+算的,出现错误欢迎指出。
PS:吐槽一波,笔试教室少说50个人肯定是有的,才5个妹子,想着隔壁面试非技术岗的妹子,内心震惊而忧伤……
单选题
- 文本加密算法
- 构建与表示分离的设计模式?
A. Prototype
B. Factory Method
C. Builder
D. Abstract Factory - 视频的编码标准
- 对事务T对数据加上S锁之后,其他事务对数据进行的操作?(加上什么类型的锁,可读/写?)
- LRU算法(常见问题,给出序列,问缺页中断次数)
填空题
- #define CONS(a, b){ a##e##b},CONS(2,3) = ?
- 在32位机器上判断一个有符号整数是否为3的幂,不使用循环及递归。(Tips: 3^21=10460353203, 3^22=31381059609, 3^23=94143178827)
- http的bad request对应的状态码?
- 2017!有多少个0?
- (103^207)%7=?
答案
单选题
- 文本加密(参考[1])
题目给出了四个选项,问哪个不是,然而我只知道RSA是,其他随缘蒙了一个ORZ
单向加密算法:BASE64(严格来说属于编码方式而非加密算法)、MD5、SHA、HMAC
对称加密/非对称加密算法:
DES、PBE、RSA、DH、DSA、ECC - C
这个完全不懂,稍微看了一下23种设计模式 - 选项有一个是aac,是音频编码标准,我一时脑抽好像选错了,回来才发现有哪里不对QAQ虽然问的是编码标准,但实际上是在问封装标准,常见的有AVI、RMVB、MKV、ASF、WMV、MP4、3GP、FLV。感觉就是个常识题(对,我就是没常识了一波)
- 基本的封锁类型有两种:
共享锁(S锁/读锁)
若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。
排它锁(X锁/写锁)
若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。这保证了其他事务在T释放A上的锁之前不能再读取和修改A。 - LRU算法(Least Recently Used)
基于局部性原理,即前面频繁使用到的页面可能在之后的指令中也会被频繁使用。在每次调换时,找到最近最久使用的那个页面调出内存。
填空题
- 2000
考察宏(define)中#和##的用法,#把宏参数变为一个字符串,用##把两个宏参数贴合在一起,所以得到的结果为int(2e3)=2000。另外一些有趣的用法 - 是否为3的幂:首先找到一个最大的3的幂max=Math.pow(3,(int)(Math.log(0x7fffffff)/Math.log(3))),判断传入参数n是否为max的约数,即符合max%n==0;
以上是比较通用的方法,实际上笔试的时候我考虑的一种特殊的方法适用于2的幂,考虑2的幂的二进制表示只有最高位为1,按位与 n&(n-1)==0则表示该数字为2的幂(排除数字1),然而考虑到负数,此方法不成立。 - 400 这么多状态码根本记不住的万能百度链接
- 502 考虑质因子,计算2017!里有多少个5,25,125,625,数量之和为结果[2017/5]+[2017/25]+[2017/125]+[2017/625]([]表示取整数部分)
- 6
(103^207)%7 = ((103%7)^207)%7 = (5^207)%7
接下来就是找规律时间
(5^0)%7 = 1
(5^1)%7 = 5
(5^2)%7 = 4
(5^3)%7 = 6
(5^4)%7 = 2
(5^5)%7 = 3
(5^6)%7 = 1
(5^7)%7 = 5
其实这里有个数论证明,必定是有规律的,则有a^b%c=a^(b%phi(c)+phi(c))%c 证明