2014.03.16 网易游戏TTT计划实习生笔试题 .
来源:互联网 发布:nginx访问服务资源 编辑:程序博客网 时间:2024/06/06 13:11
注:这份试题是本人事后回忆的,题目可能会有出入,且给出的答案不一定正确,仅供参考,欢迎指正错误。
前面这些题是试卷的第I部分,试卷上面说第一部分达不到基本线直接淘汰,最终排名主要看II卷
I 卷 基础题
1.求1111+2*1111+....+1111*1111对7求余的结果。
n(n+1)/2, 即556*1111*1111对7求余,每个数分别对7求余,余数相乘后对7求余最后算的结果是5.
2.,某点p(x,y,z),绕Y轴旋转的角度为 ,求三维旋转矩阵。
3.如下图,A, B, C, D, E灯泡坏掉的概率分别为0.2, 0.3, 0.4, 0.5,0.6,求此电路不通的概率
AB路坏的概率:0.2*0.7 + 0.8*0.3 + 0.2*0.3 = 0.44
CDE路坏的概率:0.4*0.5 + 0.6 – 0.4*0.5*0.6 = 0.68
总的概率 0.44 * 0.68 =0.2992
4.f(0)=0,f(1)=1,f(n)=(f(n-1)+f(n-2))mod5 求f(2013);
周期为20,f(2013)=f(13)=3
5.二分查找的时间复杂度O(logn),堆排序的空间复杂度O(1)。快排的时间复杂度O(nlogn)。
6.堆和栈的区别。(malloc/new的内存在堆分配,局部非静态变量在栈中分配内存)
7.下面代码的输出结果:(vs2008 测试是25 82,其实这种题比较坑爹)
2
3
4
5
6
7
8
9
10
11
12
13
int main(void)
{
int a = 5, b, c;
b = mul(a++);
c = mul(++a);
if(!a && c++)
b++;
else
c++;
printf("%d %d", b, c);
}
8.定义一个宏,若满足条件则终止程序并报告错误文件名和行数,并有以下调用:
if(x>=0 && y>=0)
assert(x+y);
else
assert(x-y);
如果按照以下格式写宏,会有什么问题:
#define assert(e) if(!e) assert_error(__FILE__, __LINE__)
//边际效应,会变成!x + y,而且原来的else会跟这里的if(!e)匹配
如果按照以下格式写,又会有什么问题:
#define assert(e) {if(!e) assert_error(__FILE__, __LINE__);}
//错误仍在且出现语法错误,编译错误,花括号外面多了个分号
怎样改才是对的?#define assert(e); {if(!(e)) assert_error(__FILE__, __LINE__);}
或者 #define assert(e) ((e) || assert_error(__FILE__, __LINE__);)
10.已知是低端保存,32位机器,求输出结果.答案应该是4 2
2
3
4
5
6
7
8
9
10
11
12
13
{
int a;
unsigned short b;
}
int main(void)
{
data mData;
mData.b = 0x0102;
char *pData = (char *)&mData;
printf("%d %d", sizeof(pData), (int) (*(p + 4)));
}
11.下面程序输出是什么? ~Base
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using namespace std;
class Base
{
public:
~Base()
{
cout << "~Base" << endl;
}
};
class Dri: public Base
{
public:
~Dri()
{
cout << "~Dri" << endl;
}
};
int main()
{
Base *b = new Dri();
delete b;
return 0;
}
12.下面调用fork()总共生成多少个进程,打印几个'-' 4 6
2
3
4
5
6
7
8
9
10
11
12
13
#include <unistd.h>
int main()
{
int i;
for(i = 0; i < 2; ++i)
{
fork();
printf("-");
fflush(stdout);
}
return 0;
}
13.此代码有什么用?./a.out >outfile 2>&1
将a.out程序运行的标准输出和标准错误输出重定向到outfile
12.一分钟的音乐,采用14400的采样率,双声道,每个点16bit,问音乐的大小。14400*2*16*60/8=3456000B
II卷 程序应用与设计
1.程序改错
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class obj
{
public:
obj()
{
m = 0;
data = new int[100];
}
obj(const &t)
{
m = t.m;
data = new int[100];
memcpy((char *)data, (char *)t.data, sizeof(int) * 100);
}
int squ(volatile int *p) //表示对*p的赋值,将全部保留不做优化
{
int tmp = *p;
return tmp * tmp;
}
~obj()
{
if(data)
delete[] data;
}
void add()
{
m++;
}
private:
int m;
int *data;
};
int main()
{
obj o1;
obj o2 = o1;
return 0;
}
2.两个题可以选一个。
a.写一个strcmp函数
2
3
4
5
6
7
8
9
10
11
12
int strcmp(const char *s, const char *t)
{
assert(s != NULL && t != NULL);
while(*s && *t && *s == *t)
{
++ s;
++ t;
}
return (*s - *t);
}
b.约瑟夫环的问题(直接没看题目)。
3.纸牌游戏,随便抽五张牌,A代表1,2-10还是2-10,J,Q,K表示11,12,13, 大小王可以当任何一张。判断5张牌是不是顺子。http://zhedahht.blog.163.com/blog/static/25411174200951262930831
把数组排序,统计数组中0的个数,统计排序之后的数组相邻数字之间的空缺总数。如果空缺的总数小于或者等于0的个数,那么这个数组就是连续的;反之则不连续。最后,我们还需要注意的是,如果数组中的非0数字重复出现,则该数组不是连续的。换成扑克牌的描述方式,就是如果一副牌里含有对子,则不可能是顺子。基于这个思路,我们可以写出如下的代码:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Parameters: numbers: an array, each number in the array is between
// 0 and maxNumber. 0 can be treeted as any number between
// 1 and maxNumber
// maxNumber: the maximum number in the array numbers
bool IsContinuous(std::vector<int> numbers, int maxNumber)
{
if(numbers.size() == 0 || maxNumber <= 0)
return false;
// Sort the array numbers.
std::sort(numbers.begin(), numbers.end());
int numberOfZero = 0;
int numberOfGap = 0;
// how many 0s in the array?
std::vector<int>::iterator smallerNumber = numbers.begin();
while(smallerNumber != numbers.end() && *smallerNumber == 0)
{
numberOfZero++;
++smallerNumber;
}
// get the total gaps between all adjacent two numbers
std::vector<int>::iterator biggerNumber = smallerNumber + 1;
while(biggerNumber < numbers.end())
{
// if any non-zero number appears more than once in the array,
// the array can't be continuous
if(*biggerNumber == *smallerNumber)
return false;
numberOfGap += *biggerNumber - *smallerNumber - 1;
smallerNumber = biggerNumber;
++biggerNumber;
}
return (numberOfGap > numberOfZero) ? false : true;
}
或者排除法:
1)确认5张牌中除了0,其余数字没有重复的(可以用表统计的方法且记录0的个数);
2)满足这样的逻辑:(max,min分别代表5张牌中的除0以外的最大值最小值)
如果没有0,则max-min=4,则为顺子,否则不是
如果有一个0,则max-min=4或者3,则为顺子,否则不是
如果有两个0,则max-min=4或者3或者2,则为顺子,否则不是
4.写一个内存管理存储器,已知学生的学籍id,姓名,性别,省份,个性签名等信息。
要求:用C++;Linux环境下;至少建立两个索引加快查询;线程安全;高效的增删改查。
5. 一段关于redis KEYS 命令英文简介,说明使用KEYS这个命令会导致什么问题和有什么解决方法。
- 2014.03.16 网易游戏TTT计划实习生笔试题
- 2014.03.16 网易游戏TTT计划实习生笔试题
- 2014.03.16 网易游戏TTT计划实习生笔试题
- 2014.03.16 网易游戏TTT计划实习生笔试题
- 2014.03.16 网易游戏TTT计划实习生笔试题 .
- 2014.03.16 网易游戏TTT计划实习生笔试题
- 2014.03.16 网易游戏TTT计划实习生笔试题
- 2014.03.16 网易游戏TTT计划实习生笔试题
- 网易游戏TTT计划实习生笔试题
- 2014网易游戏TTT笔试
- 2014网易游戏TTT笔试部分题目(本人考后编码针对原题验证)
- 网易游戏笔试-数据挖掘实习生
- 网易游戏数据挖掘实习生笔试经历
- 网易TTT计划2015年春季笔试题目(回顾版本)不是很记得有些题了
- 网易游戏TTT面试总结
- 网易游戏TTT面试总结
- 名企笔试:网易游戏雷火盘古2017实习生招聘笔试题(字符串编码)
- 网易16年研发实习生笔试题 - 比较重量
- Forward与Redirect的区别
- 开源二维码库libqrencode
- 计算机系统的引导过程
- GDB中文手册
- Effective Object-C 2.0
- 2014.03.16 网易游戏TTT计划实习生笔试题 .
- 【转】 IIS6 中ASP不能上传大文件解决方法
- ios编译出错:UIButton.h' has been modified since the precompiled header UIKit.pcm' was built
- Linux系统Java连接Mysql数据库
- 民营医院网络营销
- 面向方面编程
- NGUI自适应
- IOS基础 第二课
- 害人的asp.net static变量