网易雷火游戏研发面经(C++)
- 一面(做题)
1、下面程序的输出
int arr[6] = {1, 2, 3, 4, 5, 6};
int* ptr = (int*)(&arr + 1);printf(“%d“, *(ptr - 1));
int arr[6] = {1, 2, 3, 4, 5, 6};
int* ptr = (arr + 1);
printf(“%d“, *(ptr - 1));
2、填空题
telnet、ping、tracert、HTTP、FTP、DNS中哪些用了Tcp协议?
3、单选题
以下哪个功能比较适合使用UDP协议?
A、数据多播
B、可靠连接
C、流量控制
D、拥塞控制
4、改错题
下面是带长度的字符串拷贝函数,最多拷贝 siz-1 个字节,目标字符串以'\0'结尾,返回值为 strlen(src)。找出代码中的逻辑错误,并修正。
size_t strlcpy(char *dst, const char *src, size_t siz)
{register char *d = dst;
register const char *s = src;
register size_t n = siz;
if (n != 0 && --n != 0) {
do {
if ((*++d = *++s) == 0)
break;
} while (--n != 0);
}
if (n == 0) {
if (siz == 0)
*d = '\0';
while (*s++)
;
}
return (s - src);
}
5、多选题
关于排序算法的以下说法,正确的是()
A. 归并排序的平均时间复杂度为O(n log n),最坏时间复杂度为O(n2)
B. 快速排序的平均时间复杂度为O(n log n),最坏时间复杂度为O(n2)
C. 堆排序的平均时间复杂度为O(n log n),最坏时间复杂度为O(n log n)
D. 冒泡排序的平均时间复杂度为O(n2),最坏时间复杂度为O(n2)
6、计算题
相对现实世界来说,网络游戏世界给了我们更大的自由度。比如,在网络游戏中,我们可以选择不同性别的角色,比如和自己性别不相同的角色。通过统计得知以下信息。 a. 某游戏男性玩家和女性玩家的比率如下:
男性玩家 女性玩家
0.9 0.1
b. 玩家对于扮演不同性别角色的偏好如下:
男性角色 女性角***r /> 男性玩家 0.6 0.4
女性玩家 0.1 0.9
注:0.6 表示男性玩家选择游戏中扮演男性角色的比例 求游戏中女性角色中是一个女性玩家的概率是()
7、编程题
针对第4题的问题进行改进,类似memcpy()的实现。
- 二面
2、select与epoll的区别
3、数据库语句解读
select * from table_name order by rand() limit 1;
4、编程题
现有一个HP为x的绵羊怪物(不会攻击),猎人可以每次可以使用普通攻击对其造成1点伤害,或者使用技能对其造成2点伤害。 那么要杀死这个怪物,一共有多少种不同顺序的方法呢?
-----------------------------------------------------------
雷火的面试有点特殊,一次进行两面,一面竟然视频做题。暂时只进行了二面,估计凉了,状态一直处于“处理中”,等待感谢信!
#网易雷火面经##网易雷火##面经##实习##游戏研发工程师#