天天看點

C C++ OC iOS面試重點問題(一)

​​C C++ OC iOS面試重點問題(一)​​

1、字元串常量需要加\0

2、邏輯運算 位操作(經典:實作兩個數的交換)

3、關鍵字

4、引用和指針的差別和聯系

5、如何引用一個已經定義過的全局變量?   

答:可以用引用頭檔案的方式,也可以用extern關鍵字,如果用引用頭檔案方式來引用某個在頭檔案中聲明的全局變變量,假定你将那個變量寫錯了,那麼在編譯期間會報錯,如果你用extern方式引用時,假定你犯了同樣的錯誤,那麼在編譯期間不會報錯,而在連接配接期間報錯。 

5、extern關鍵字的用法?

答:extern可以置于變量或者函數前,以表示變量或者函數的定義在别的檔案中,提示​​編譯器​​遇到此變量和函數時在其他子產品中尋找其定義。另外,extern也可用來進行連結指定。

6、語句for( ;1 ;)有什麼問題?它是什麼意思?  

答:和while(1)相同都是死循環。

7、請寫出下列代碼的輸出内容   

        #include <stdio.h>   main()   {    int a,b,c,d;    a=10;    b=a++;    c=++a;    d=10*a++; 

   printf( "b,c,d,a:%d,%d,%d ",b,c,d, a);    return 0; 

  }     答:10,12,120 ,13

6、bool在C中沒有C++中才有?

答:C語言裡面沒有bool(布爾)類型
C++裡面才引入bool類型
C語言裡面用數值0表示假,非0整數表示真(一般是1)      

7、轉義字元

9、全局變量和局部變量可以同名嗎?

答:能,局部會屏蔽全局。要用全局變量,需要使用 ":: " 。局部變量可以與全局變量同名,在函數内引用這個變量時,會用到同名的局部變量,而不會用到全局變量

10、循環 死循環

11、函數傳值,在函數内部改變值是用指針的指針或者引用

12、資料越界

13、算法:字元串拼接、拷貝、等等 兩個數變換,冒泡排序,快速排序

14、連結清單,連結清單的資料在實體上不一定相鄰但是邏輯上面是相鄰的。

二叉樹,前序 中序 後序

1、大量随機通路資料用數組,大量插入删除就用連結清單。連結清單的插入删除的操作?二叉樹?

2、隊列的特點,先進先出?

3、const的用法有哪幾種?

4、static的用法?靜态全局 靜态局部 初始化一次?如果在一個函數的中間定義一個靜态變量

OC iOS

1、函數的簽名:即函數名  函數有好多形參的時候怎麼辦?

2、自動釋放池的作用?

3、垃圾回收和引用計數的差別?引用計數為0了才釋放

4、C++中有多重和多層,OC中是?

5、宏和常量的差別?内聯函數  面試題:寫一個宏   差別大體為: inline做類型判斷,類型部隊回報錯或者做類型轉換,但是宏不會做類型判斷,容易出錯,++

6、QQ是怎樣實作的下拉清單?

7、層和UIView的差別是什麼?

答:兩者最大的差別是,圖層不會直接渲染到螢幕上,UIView是iOS系統中界面元素的基礎,所有的界面元素都是繼承自它。它本身完全是由CoreAnimation來實作的。它真正的繪圖部分,是由一個CALayer類來管理。UIView本身更像是一個CALayer的管理器。一個UIView上可以有n個CALayer,每個layer顯示一種東西,增強UIView的展現能力。

8、委托的作用?委托也是一個設計模式有一個專門的子產品完成一個功能可以讓另一個子產品異步完成另外一個功能,如果完成了可以通過回調函數來進行下面的操作