c開發面試

2021-10-21 02:00:51 字數 1852 閱讀 1122

1.程式設計驗證大端還是小端

方法一:

void

isbigendian()

else

}方法二:

void

isbigendian()

temp;

temp.a =

0x1234;if

( temp.b ==

0x12

)//低位元組存的是資料的高位元組資料

else

}

2.int *a[10],int (*a)[10]區別,sizeof(a)

int *a[10]是乙個陣列指標,a是乙個陣列,10個int型指標的陣列 sizeof(a)=40

int (*a)[10] a是乙個指標,指向10個int型的陣列 sizeof(a)=4;

3.select和epoll的區別,編寫核心的select過程,epoll的兩種觸發方式

4.memcpy的實現

void

*memcpy

(char

*dst, char

* src,unsigned

int count)

}

5.c++ vector和list的不同

vector:

vector和陣列類似,擁有一段連續的記憶體空間,並且起始位址不變。

因此能高效的進行隨機訪問,時間複雜度為o(1);

但因為記憶體空間是連續的,所以在進行插入和刪除操作時,會造成記憶體塊的拷貝,時間複雜度為o(n)。

另外,當陣列中記憶體空間不夠時,會重新申請一塊記憶體空間並進行記憶體拷貝。

list:

list是由雙向鍊錶實現的,因此記憶體空間是不連續的。

只能通過指標訪問資料,所以list的隨機訪問非常沒有效率,時間複雜度為o(n);

但由於鍊錶的特點,能高效地進行插入和刪除。

6.希爾排序實現

7.gcc的實現步驟

1.預處理,生成預編譯檔案(gcc –e hello.c –o hello.i)

2.編譯,生成彙編**(gcc –s hello.i –o hello.s)

3.彙編,生成目標檔案(gcc –c hello.s –o hello.o)

4.鏈結,生成可執行檔案(gcc hello.o –o hello)

8.程式記憶體的分割槽

**區:存放函式體二進位制**

全域性區:存放全域性變數和靜態變數

常量區:常量字串,由系統自動釋放

棧區:由編譯器自動釋放,存放函式的引數值和區域性變數值。

堆區:一般由使用者釋放,存放使用new,malloc申請的變數

9.struct

struct 位元組對齊

10.complex的+過載

11.斐波那契數列的實現

12.過載和重寫的區別:

過載:函式名相同,函式的引數個數、引數型別或引數順序三者中必須至少有一種不同。函式返回值的型別可以相同,也可以不相同。發生在乙個類內部。

重寫:也叫做覆蓋,一般發生在子類和父類繼承關係之間。子類重新定義父類中有相同名稱和引數的虛函式。

重寫需要注意:

1、 被重寫的函式不能是static的。必須是virtual的

2 、重寫函式必須有相同的型別,名稱和引數列表

3 、重寫函式的訪問修飾符可以不同。

13.使用巨集定義 一年有多少秒

#define 365*24*60*60ul

unsigned long 強制轉換,防止溢位

iOS開發 面試

今天一大清早去面試,公司距離我家還挺近的,花了乙個小時走著去,也順路印下簡歷,理理思路,到了公司面試官什麼的都不錯,還給我講了很多知識,收穫也是滿滿的,總結下今天都遇到了哪些問題,調整調整狀態.1,當需要自定義tabbar的item的數量可變時怎麼做的 這裡原本是想說自定義tabbar的,不過估計考...

C 後台開發面試 STL相關

六大元件及其關係 空間配置器 容器 迭代器 演算法 仿函式 介面卡 記憶體管理 記憶體配置和物件構造 析構分開。使用雙層級配置器 第一級直接 malloc,free 第二級記憶體池 維護 16 個自由鍊錶 迭代器 一種智慧型指標 vector 動態分配的陣列,連續線性空間 維護 3 個迭代器 sta...

後台開發面試整理之C

對於一些平台,特定的資料型別只能從特定的位址進行讀取,隨意防止將導致錯誤。而更一般的情況是,如果不按照規定存放資料,將會造成讀寫效率上的損耗。比如32位的intel處理器通過匯流排訪問 包括讀和寫 記憶體資料。每個匯流排週期從偶位址開始訪問32位記憶體資料,記憶體資料以位元組為單位存放。如果乙個32...