深圳创维Cocos2d-x笔试面试

2014深圳创维总部对Cocos2d-x招聘

笔试题,共7道(我这时只给出6道)

其实这笔试题是Linux / C / C++的笔试题


TCP wait_time

死锁的4个必要条件
4.1、互斥使用(资源独占)  一个资源每次只能给一个进程使用 4.2、不可强占(不可剥夺)     资源申请者不能强行的从资源占有者手中夺取资源,资源只能由占有者自愿释放 4.3、请求和保持(部分分配,占有申请) 一个进程在申请新的资源的同时保持对原有资源的占有(只有这样才是动态申请,动态分配) 4.4、循环等待 存在一个进程等待队列     {P1 , P2 , … , Pn},     其中P1等待P2占有的资源,P2等待P3占有的资源,…,Pn等待P1占有的资源,形成一个进程等待环路

const #define 区别
const定义常量是有数据类型的,这样const定义的常量编译器可以对其进行数据静态类型安全检查,而#define宏定义的常量却只是进行简单的字符替换,没有类型安全检查,且有时还会产生边际效应

移位和乘以2的区别
不管你采用哪种方式,任何合格的优化编译程序都会产生相同的代码,因此你可以采用使程序的上下文更易读的那种方式。你可以用DOS/Windows上的CODEVIEW或UNIX机上的反汇编程序(通常被称为"dis”)这样的工具来查看下述程序的汇编代码: 例10.4乘以2和左移一位经常是相同的    void main()    {      unsigned int test_nbr = 300;      test_nbr * =2;      test_nbr = 300;      test_nbr << = 1;    }

两个排好序的数组,最快的取中间数的办法
有一个类似的更难题目,可以参考
http://www.cnblogs.com/qi09/archive/2011/10/18/2216844.html

realloc free的区别
void* realloc(void* ptr, unsigned newsize); 
realloc是给一个已经分配了地址的指针重新分配空间,参数ptr为原有的空间地址,newsize是重新申请的地址长度 如: char* p; p=(char*)malloc(sizeof(char)*20); p=(char*)realloc(p,sizeof(char)*40); 注意,这里的空间长度都是以字节为单位。

free的调用形式为free(void*ptr):释放ptr所指向的一块内存空间。
http://www.cnblogs.com/BlueTzar/articles/1136549.html


面试题=======

Cocos2d-x是怎样实现跨平台?

怎样判断Cocos2d-x代码是否有内存泄露?

Cocos2d-x 3版本的特性?

C++ 11的特性?


你可能感兴趣的:(深圳创维Cocos2d-x笔试面试)