1、寫乙個「標準」巨集,這個巨集輸入兩個引數並返回較小的乙個。
.#define min(x, y) ((x)>(y)?(y):(x))//結尾沒有;
2、嵌入式系統中經常要用到無限迴圈,你怎麼用c編寫死迴圈。
while(1){}或者for(;;)
3、關鍵字static的作用是什麼?
定義靜態變數
4、關鍵字const有什麼含意?
表示常量不可以修改的變數。
5、關鍵字volatile有什麼含意?並舉出三個不同的例子?
提示編譯器物件的值可能在編譯器未監測到的情況下改變。
int (*s[10])(int) 表示的是什麼啊
int (*s[10])(int) 函式指標陣列,每個指標指向乙個int func(int param)的函式。
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=0x321f;
*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.#include
#include
void getmemory(char *p)
p=(char *) malloc(100);
strcpy(p,"hello world");
int main( )
char *str=null;
getmemory(str);
printf("%s/n",str);
free(str);
return 0;
程式崩潰,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: 不提供穩定的服務,包頭小,開銷小
應聘C語言類工作職位面試題大彙總5
思科 1.用巨集定義寫出swap x,y define swap x,y x x y y x y x x y 2.陣列a n 存放了1至n 1個數,其中某個數重複一次。寫乙個函式,找出被重複的數字.時間複雜度必須為o n 函式原型 int do dup int a,int n 3 一語句實現x是否為...
C語言面試題大彙總之華為面試題
1 區域性變數能否和全域性變數重名?答 能,區域性會遮蔽全域性。要用全域性變數,需要使用 區域性變數可以與全域性變數同名,在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。對於有些編譯器而言,在同乙個函式內可以定義多個同名的區域性變數,比如在兩個迴圈體內都定義乙個同名的區域性變數...
C語言面試題大彙總之華為面試題
1 區域性變數能否和全域性變數重名?答 能,區域性會遮蔽全域性。要用全域性變數,需要使用 區域性變數可以與全域性變數同名,在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。對於有些編譯器而言,在同乙個函式內可以定義多個同名的區域性變數,比如在兩個迴圈體內都定義乙個同名的區域性變數...