网易游戏11年校招题

1 对于一个内存地址是32位、内存页是8KB的系统。0x0005F123这个地址的页号与页内偏移分别是多少?

页号为:0x0005F123 >> 13位 = 0x2E 页内偏移为原地址的低13位:0x1123。

2 如果X大于0并小于65536,用移位法计算X乘以255的值? (x<<8)-x;  //移位运算符的优先级小于减号运算符,因此要加括号

3 一个包含n个节点的四叉树,每个节点都有四个指向孩子节点的指针,这4n个指针中有多少个空指针? (3n+1)

4 以下两个语句的区别是:

	int *p1 = new int[10];
	int *p2 = new int[10]();
第一个没有初始化,第二个会调用构造函数初始化,即数组元素都为0.

5 计算机在内存中存储数据时使用了大、小端模式,请分别写出A=0X123456在不同情况下的首字节是,大端模式:0x12; 小端模式:0x56.
PS:该题不够严谨,大端模式为0x00.

6 请声明一个参数为int *,返回值为int的函数指针: int (*func)(int *);

7 下面程序运行后的结果为:to test something //p1++时移动了4个字节

    char str[] = "glad to test something";  
    char *p = str;  
    p++;  
    int *p1 = static_cast<int *>(p);  
    p1++;  
    p = static_cast<char *>(p1);  
    printf("result is %s\n",p);  

8 你见到一个宝箱,身上有N把钥匙,其中一把可以打开宝箱,假如没有任何提示,随机尝试,问:数学题
(1)恰好第K次(1=<K<=N)打开宝箱的概率是多少? 1/n
(2)平均需要尝试多少次? (n+1)/2
9 头文件中ifndef / define / endif 是做什么用的?

都是预编译命令,作用是防止该头文件被重复引用,避免变量、类型等被重新定义。

10 代码里有时可以看到extern “C”,这语句是做什么用的?

本质作用是:实现C和C++的混合编程。原理是C++和C编译全局变量和函数的实现方式不同。实际用法有两个:

1)在C++中调用C语言写的函数。 2)C程序调用C++编写的函数。

11 在下列乘法算式中,每个字母代表0~9的一个数字,而且不同的字母代表不同的数字:写出推导的过程。

 ABCDEFGH
*         AJ
------------------
EJAHFDGKC
BDFHAJEC
------------------
CCCCCCCCC

大致过程是:首先通过观察可得K=0,然后通过AB * A = BD,AB * J = EJ,可推测A = 2,E=1, B=4,之后就简单了。

答案是:A=2、B=4、C=6、D=9、E=1、F=3、G=5、H=8、J=7、K=0


参考来源: http://blog.csdn.net/hackbuteer1/article/details/6878570

http://www.cnblogs.com/xulei/archive/2006/11/12/558139.html





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值