1.有以下表示式:
int a=248; b=4;int const c=21;const int *d=&a;
int *const e=&b;int const *f const =&a;
請問下列表示式哪些會被編譯器禁止?為什麼?
*c=32;d=&b;*d=43;e=34;e=&a;f=0x 321f;
*c 這是個什麼東東,禁止
*d 說了是const, 禁止
e = &a 說了是const 禁止
const *f const =&a; 禁止
2.交換兩個變數的值,不使用第三個變數。即a=3,b=5,交換之後a=5,b=3;
有兩種解法, 一種用算術演算法, 一種用^(異或)
a = a + b;
b = a - b;
a = a - b;
ora = a^b;// 只能對int,char..
b = a^b;
a = a^b;
ora ^= b ^= a;
3.c和c++中的struct有什麼不同?
c和c++中struct的主要區別是c中的struct不可以含有成員函式,而c++中的struct可以。c++中struct和class的主要區別在於預設的訪問許可權不同,struct預設為public,而class預設為private
4.#i nclude
#i nclude
void getmemory(char *p)
int main( )
程式崩潰,getmemory中的malloc 不能返回動態記憶體, free()對str操作很危險
5.char szstr[10];
strcpy(szstr,"0123456789");
產生什麼結果?為什麼?
長度不一樣,會造成非法的os
6.列舉幾種程序的同步機制,並比較其優缺點。
原子操作
訊號量機制
自旋鎖管程,會合,分布式系統
7.程序之間通訊的途徑
共享儲存系統
訊息傳遞系統
管道:以檔案系統為基礎
11.程序死鎖的原因
資源競爭及程序推進順序非法
12.死鎖的4個必要條件
互斥、請求保持、不可剝奪、環路
13.死鎖的處理
鴕鳥策略、預防策略、避免策略、檢測與解除死鎖
15. 作業系統中程序排程策略有哪幾種?
fcfs(先來先服務),優先順序,時間片輪轉,多級反饋
8.類的靜態成員和非靜態成員有何區別?
類的靜態成員每個類只有乙個,非靜態成員每個物件乙個
9.純虛函式如何定義?使用時應注意什麼?
virtual void f()=0;
是介面,子類必須要實現
10.陣列和鍊錶的區別
陣列:資料順序儲存,固定大小
連表:資料可以隨機儲存,大小可動態改變
12.iso的七層模型是什麼?tcp/udp是屬於哪一層?tcp/udp有何優缺點?
應用層表示層
會話層運輸層
網路層物理鏈路層
物理層tcp /udp屬於運輸層
tcp 服務提供了資料流傳輸、可靠性、有效流控制、全雙工操作和多路復用技術等。
與 tcp 不同, udp 並不提供對 ip 協議的可靠機制、流控制以及錯誤恢復功能等。由於 udp 比較簡單, udp 頭包含很少的位元組,比 tcp 負載消耗少。
tcp: 提供穩定的傳輸服務,有流量控制,缺點是包頭大,冗餘性不好
udp: 不提供穩定的服務,包頭小,開銷小
linux C經典面試題 四
例子 code examples 12 下面的 輸出是什麼,為什麼?void foo void 這個問題測試你是否懂得c語言中的整數自動轉換原則,我發現有些開發者懂得極少這些東西。不管如何,這無符號整型問題的答案是輸出是 6 原因是當表示式中存在有符號型別和無符號型別時所有的運算元都自動轉換為無符號...
linux C經典面試題六
11.windows是核心級執行緒麼。12.linux有核心級執行緒麼。答 執行緒通常被定義為乙個程序中 的不同執行路線。從實現方式上劃分,執行緒有兩 種型別 使用者級執行緒 和 核心級執行緒 使用者執行緒指不需要核心支援而在使用者程式 中實現的執行緒,其不依賴於作業系統核心,應用程序利用執行緒庫提...
linux C經典面試題十
1.請問以下 有什麼問題 int main 沒有為str分配記憶體空間,將會發生異常 問題出在將乙個字串複製進乙個字元變數指標所指位址。雖然可以正確輸出結果,但因為越界進行內在讀寫而導致程式崩潰。char s aaa printf s s s 0 b printf s s 有什麼錯?aaa 是字串常...