2014网易游戏TTT笔试

答案仅供参考,有错误欢迎指正。

1.求1111+2*1111+....+1111*1111对7求余的结果。

556*1111*1111对7求余,每个分别对7求余最后算的结果是5.

2.绕Y轴旋转的旋转矩阵。


3.f(0)=0,f(1)=1,f(n)=(f(n-1)+f(n-2))mod 5求f(2013);

周期为20,答案是3

4.二分查找的时间复杂度,堆排序的空间复杂度。

课本

5.快排的时间复杂度。

课本

6.下面代码的输出结果:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #include <iostream>  
  2. #define f(a)  (a)*(a)  
  3. using namespace std;  
  4. int main()  
  5. {  
  6.     int a=5,b,c;  
  7.     b=f(a++);  
  8.     c=f(++a);  
  9.     if(!a&&c++)  
  10.         b++;  
  11.     else  
  12.         c++;  
  13.     cout<<b<<'\t'<<c<<endl;  
  14. }  

GCC和VS的结果不同,本来刚开始这么写的,但是后来还是写的GCC上的结果。

VS:25,82.GCC30,82

7.关于断言:

下面是一个断言的声明:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #define asert(e)  if(!e) assert_error(_ERROR_LINE),  

这样声明有什么问题?改成下面这样呢?

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #define asert(e) {if(!e)assert_error(ERROR_LINE);}  

该怎么改才是对的。

8.下面程序输出是什么?

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #include <iostream>  
  2. using namespace std;  
  3. class Base  
  4. {  
  5.     public:  
  6.         ~Base()  
  7.         {  
  8.             cout<<"~Base"<<endl;  
  9.         }  
  10. };  
  11. class Dri:public Base  
  12. {  
  13.     public:  
  14.         ~Dri()  
  15.         {  
  16.             cout<<"~Dri"<<endl;  
  17.         }  
  18. };  
  19. int main()  
  20. {  
  21.     Base *b=new Dri();  
  22.     delete b;  
  23.     return 0;  
  24. }  
~Base
9.在一个低地址的系统中,下面代码输出的结果是:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #include <stdio.h>  
  2. struct data  
  3. {  
  4.     int a;  
  5.     short s;  
  6. };  
  7. int main()  
  8. {  
  9.     struct data dd;  
  10.     dd.s=0x0102;  
  11.     char *p=ⅆ  
  12.     printf("%d,%d",sizeof(dd),(int)(*(p+4)));  
  13. }  

p=&dd不知道怎么回事显示有点问题。

8,2

10.下面调用多少次fork(),打印几个'-'

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #include <stdio.h>  
  2. #include <unistd.h>  
  3. int main()  
  4. {  
  5.     int i;  
  6.     for(i=0;i<2;++i)  
  7.     {  
  8.         fork();  
  9.         printf("-");  
  10.     }  
  11.     return 0;  
  12. }  

3,8

11.下面代码有什么用?

./a.out >outfile 2>&1

将标准输出和标准出错重定向到outfile
12.一分钟的音乐,采用14400的采样率,双声道,16比特,问大概多大。

前面这些题是试卷的第I部分,上面说第一部分不过直接就pass

下面是编程方面的题目

1.两个题可以选一个,a.写一个strcmp函数b.约瑟夫环的问题。

2.纸牌游戏,随便抽五张牌,A代表1,2-10还是2-10,J,Q,K表示11,12,13 王可以当任何一张。判断5张牌是不是顺子。

3.程序改错

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. class obj  
  2. {  
  3.     public:  
  4.         obj()  
  5.         {  
  6.             m=0;  
  7.             data=new int[100];  
  8.         }  
  9.         obj(const &t)  
  10.         {  
  11.             m=t.m;  
  12.         }  
  13.         int squ(volatile int *p)  
  14.         {  
  15.             return *p**p;  
  16.         }  
  17.         ~obj()  
  18.         {  
  19.             if(data)  
  20.                 delete[] data;  
  21.         }  
  22.         void add() const  
  23.         {  
  24.             m++;  
  25.         }  
  26.     private:  
  27.         int m;  
  28.         int *data;  
  29. };  
  30. int main()  
  31. {  
  32.     obj o1;  
  33.     obj o2=o1;  
  34.     return 0;  
  35. }  
比较明显的错误是:拷贝构造函数要用深拷贝,volatile那个应该先用一个int记下*p的值,还有就是const函数的问题。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值