最新在网上找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变量的const4、说一下mvc架构
MVC全名是Model ViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
5、怎么快速实现乱序A[10] //正序For (int I = 1;i<10;i++){Int j = 随机 1-10a[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.htmlhttp://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个词。
新闻热点
疑难解答