网易游戏TTT计划实习生笔试题

转自: http://www.php100.com/html/it/focus/2014/0401/6735.html

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,其实这种题比较坑爹)

\

 

 

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位机器,求输出结果.答案应该是8 2

\


 

 

11.下面程序输出是什么?  ~Base

 

\

 

12.下面调用fork()总共生成多少个进程,打印几个'-'  4  6 (注:如果没有fflush,将输出8个'-')

 

\

 

13.此代码有什么用?./a.out >outfile 2>&1

将a.out程序运行的标准输出和标准错误输出重定向到outfile


12.一分钟的音乐,采用14400的采样率,双声道,每个点16bit,问音乐的大小。14400*2*16*60/8=3456000B

 

II卷 程序应用与设计

 

1.程序改错

 

\

 

2.两个题可以选一个。

a.写一个strcmp函数

\

 

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数字重复出现,则该数组不是连续的。换成扑克牌的描述方式,就是如果一副牌里含有对子,则不可能是顺子。基于这个思路,我们可以写出如下的代码:

 

\

或者排除法:

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这个命令会导致什么问题和有什么解决方法。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值