emc的4道面試題自解

2021-05-10 15:44:52 字數 1061 閱讀 5120

1.int main()

問:共建立了多少程序?

這道題我第乙個映像就是短路求值,然後又想到了幾何級數,以及fork函式,fork後還有fork

我的答案是20-1=19。前邊的20是程序總數,後邊-1是建立程序數

第乙個fork完後共用2個程序(id=1,id=2),第二個fork,當返回值為0時,即子程序時,直接呼叫倒數第二個fork,於是id=1,id=2分別調到第二個fork,然後各調到倒數第二個fork,共形成了8個程序

第二個fork不為0時,即程序為母程序或第乙個子程序時,則要看第二個fork如果第二個fork也不為0的話,則不用考慮第三個程序,最先存在兩個程序呼叫最後的fork,然後形成了4個程序

第二個fork!=0,第三個為0時,則需要呼叫後邊兩個fork,則為2x2x2=8

所以除去最開始的程序,一共建立19個程序

2.#define nele(a) (sizeof(a) / sizeof(a[0]))

int main() ;

for (int d=-1; d<=(nele(str)-2);d++)

printf("%c",str[d+1]);

return 0;

}問:輸出結果

什麼都沒輸出,根據c99文件,sizeof是無符號的數,當表示式中出現了個無符號的數時,所有有符號轉化成無符號,則-1將變成乙個巨大的值,那麼直接return了

3.int i=1;

printf("%d,%d/n",sizeof(i++),i);

問:輸出結果

4,1sizeof()在編譯前就處理了,因此sizeof(***)就是求的是int的大小,而++被忽略了。。。

4.#define f(a,b) a##b

#define g(a)   #a

#define h(a)  g(a)

int main()

問:輸出結果

12ascii12代表字元

a##b字元12

#define g(a)   #a引用字元12

#define h(a)  g(a) g(a)被字元12代替,然後理解為了數字12

EMC面試題目

今天同學去emc公司進行面試。emc是那做記憶體的世界500強公司。下面將題目公布給大家參考 1 兩個人往圓桌上放硬幣,最後誰沒有地方放,誰就為輸家。你先放,請問有致勝方法嗎?2 有兩堆東西,乙份有4個 乙份有7個,兩個人開始拿東西,一次可拿任意多個,但只能從乙份中拿。現規定 如果最後剩下1個,而且...

北京寶利通公司4道面試題

1 給定兩個字串,如果乙個字串是另乙個字串的結尾部分相同則返回1,否則返回0,如 abcddde dde 則返回1 如 abcddde dce 則返回0 思路 用string類中的endswith判斷一下即可搞定。2 給定乙個字串將其中連續的四個空格換成tab鍵。思路 用string中的replac...

三道面試題

一 給定乙個n個整數元素的陣列,元素分別為a1,a2,a3.an,每個元素分別對應乙個權重w1 小於1的float w2,w3.wn,其和為1,找出其中乙個元素ak,使所有小於ak的元素的權重之和小於1 2,所有大於ak的元素的權重之和 1 2。思路 首先將該陣列按元素值的大小進行公升序排列,同樣的...