最新在網上找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個詞。
新聞熱點
疑難解答