您的位置:首页 > 移动开发 > Cocos引擎

[Cocos2dx]面试题汇总一

2017-02-08 21:54 387 查看
最新在网上找Cocos2dx/C++的面试题,觉得很是麻烦,特别在这总结一下,有些是亲身经历有些是朋友经历。

1、int占多少字节?

4位

2、sizeof和strlen的区别
http://blog.csdn.net/21aspnet/article/details/1539951  这篇说的非常好了,我就不废话了。

3、static_cast, dynamic_cast, const_cast

简单来说就是以下:

static_cast转换类似于C/C++里面的强制类型转换。

       dynamic_cast转换是根据基类派生类的原则进行转换,把一个派生类转换为基类使用这个转换。

       const_cast转换是去掉const变量的const

4、说一下mvc架构

MVC全名是Model ViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

5、怎么快速实现乱序
A[10] //正序
For (int I = 1;i<10;i++)
{
Int j = 随机 1-10
a[i] <-> a[j]// 两个元素换一下
}
6、快速排序 
算法
#include<iostream>
#include<cstdio>
using namespace std;
int Partition(int *array,int low,int high){

int k=low+rand()%(high-low+1);
int tmp;
tmp=array[k];array[k]=array[low];array[low]=tmp;//随机选择一个点,然后将它与第low个点互换。
int key=array[low];
//上面步骤可以简化,变于理解写成这样
while(low<high){
while(low<high&&array[high]>key) high--;
array[low]=array[high];
while(low<high&&array[low]<key) low++;
array[high]=array[low];
}
array[low]=key;
return low;
}
void qsort(int *array,int low,int high){
if(low<high){
int po=Partition(array,low,high);
qsort(array,low,po-1);
qsort(array,po+1,high);
}
}
int main(){
int q[10]={1,3,5,7,9,10,8,6,4,2};
qsort(q,0,9);
for(int i=0;i<10;i++)
printf("%d ",q[i]);
}
7、引用和指针的区别?
http://www.cnblogs.com/tracylee/archive/2012/12/04/2801519.html   http://blog.csdn.net/listening_music/article/details/6921608
8、时针分针重合几次

表面上有60个小格,每小格代表一分钟,

时针每分钟走1/12小格,分针每分钟走1小格,从第一次重合到第二次重合分针比时针多走一圈即60小格,所以

60/(1-1/12)=720/11

每隔720/11分才重合一次(而并不是每小时重合一次)

1440里有22个720/11,如果说算上0点和24点,那也是重合23次而已,但我觉得0点应该算到前一天的24点头上,所以每一天循环下来重合22次啊

9、 找出字符串的最长不重复子串,输出长度

建一个256个单元的数组,每一个单元代表一个字符,数组中保存上次该字符上次出现的位置;

依次读入字符串,同时维护数组的值;

如果遇到冲突了,就返回冲突字符中保存的位置,继续第二步。也可以用hashmap保存已经出现的字符和字符的位置

10、说是有一个文本文件,大约有一万行,每行一个词,要求统计出其中最频繁出

现的前十个词。

先用哈希,统计每个词出现的次数,然后在用在N个数中找出前K大个数的方法找出出现

次数最多的前10个词。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息