思科面试题c语言,C语言面试题~总汇(基础题、嵌入式、微软、华为、思科……).doc...
|
基本C語(yǔ)言基礎(chǔ)題
1 ? .? 用預(yù)處理指令#define? 聲明一個(gè)常數(shù),用以表明1 年中有多少秒(忽略閏年問題)?
#define? SECONDS_PER_YEAR ? (60 ? *? 60? *? 24? *? 365)UL ?
我在這想看到幾件事情:?
? #define? 語(yǔ)法的基本知識(shí)(例如:不能以分號(hào)結(jié)束,括號(hào)的使用,等等)?
懂得預(yù)處理器將為你計(jì)算常數(shù)表達(dá)式的值,因此,直接寫出你是如何計(jì)算一年中?有多少秒而不是計(jì)算出實(shí)際的值,是更清晰而沒有代價(jià)的。?意識(shí)到這個(gè)表達(dá)式將使一個(gè) 16位機(jī)的整型數(shù)溢出‐ 因此要用到長(zhǎng)整型符號(hào)L, 告訴編?譯器這個(gè)常數(shù)是的長(zhǎng)整型數(shù)。?如果你在你的表達(dá)式中用到 UL(表示無(wú)符號(hào)長(zhǎng)整型),那么你有了一個(gè)好的起點(diǎn)?。記住,第一印象很重要。?
2 ? .? 寫一個(gè)“標(biāo)準(zhǔn)”宏 MIN? ,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)。?
#define? MIN(A,B)? ((A)? <= ? (B)? ?? (A)? : ? (B)) ??
這個(gè)測(cè)試是為下面的目的而設(shè)的:?標(biāo)識(shí)#define在宏中應(yīng)用的基本知識(shí)。這是很重要的,因?yàn)橹钡角度?inline) 操作?符變?yōu)闃?biāo)準(zhǔn)C 的一部分,宏是方便產(chǎn)生嵌入代碼的唯一方法,對(duì)于嵌入式系統(tǒng)來(lái)說(shuō),為了能?達(dá)到要求的性能,嵌入代碼經(jīng)常是必須的方法。?三重條件操作符的知識(shí)。這個(gè)操作符存在 C 語(yǔ)言中的原因是它使得編譯器能產(chǎn)生比?f ‐ then ‐ else 更優(yōu)化的代碼,了解這個(gè)用法是很重要的。?懂得在宏中小心地把參數(shù)用括號(hào)括起來(lái)?我也用這個(gè)問題開始討論宏的副作用,例如:當(dāng)你寫下面的代碼時(shí)會(huì)發(fā)生什么事???least ? =? MIN(*p++,? b);?
?
3. ? 預(yù)處理器標(biāo)識(shí)#error 的目的是什么??
如果你不知道答案,請(qǐng)看參考文獻(xiàn) 1。這問題對(duì)區(qū)分一個(gè)正常的伙計(jì)和一個(gè)書呆子是很有用 ?
的。只有書呆子才會(huì)讀 C 語(yǔ)言課本的附錄去找出象這種問題的答案。當(dāng)然如果你不是在一?
個(gè)書呆子,那么應(yīng)試者最好希望自己不要知道答案。?死循環(huán)(Infinite ? loops)?
4. ? 嵌入式系統(tǒng)中經(jīng)常要用到無(wú)限循環(huán),你怎么樣用 C 編寫死循環(huán)呢??這個(gè)問題用幾個(gè)解決方案。我首選的方案是:?
?
while(1)?{ ?} ?
?
一些程序員更喜歡如下方案:??
for(;;) ?{ ?} ?
這個(gè)實(shí)現(xiàn)方式讓我為難,因?yàn)檫@個(gè)語(yǔ)法沒有確切表達(dá)到底怎么回事。如果一個(gè)應(yīng)試者給出這?
個(gè)作為方案,我將用這個(gè)作為一個(gè)機(jī)會(huì)去探究他們這樣做的基本原理。如果他們的基本答案?
是:“我被教著這樣做,但從沒有想到過為什么。”這會(huì)給我留下一個(gè)壞印象。?
第三個(gè)方案是用? goto ??
Loop:?
... ?
goto ? Loop;?
應(yīng)試者如給出上面的方案,這說(shuō)明或者他是一個(gè)匯編語(yǔ)言程序員(這也許是好事)或者他是?
一個(gè)想進(jìn)入新領(lǐng)域的BASIC/FORTRAN 程序員。??
數(shù)據(jù)聲明(Data ? declarations )?
5. ? 用變量a 給出下面的定義?
a) ? 一個(gè)整型數(shù)(An? integer )?
b) 一個(gè)指向整型數(shù)的指針(? A? pointer ? to ? an? integer )?
c) 一個(gè)指向指針的的指針,它指向的指針是指向一個(gè)整型數(shù)(? A? pointer ? to ? a ? pointer ? to ?an? intege )r?
d) 一個(gè)有10個(gè)整型數(shù)的數(shù)組(? An? array? of ? 10? integers )?
e) ? 一個(gè)有10個(gè)指針的數(shù)組,該指針是指向一個(gè)整型數(shù)的。(An? array? of ? 10? pointers? to ?integers )?
f) ? 一個(gè)指向有 10個(gè)整型數(shù)數(shù)組的指針(? A? pointer ? to ? an? array?of ? 10? integers )?
g) ? 一個(gè)指向函數(shù)的指針,該函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整型數(shù)(A? pointer ? to ? a ? function ? that ? takes? an? integer ? as ?an? argument ?and ? returns ?an ? integer )?
h) 一個(gè)有10個(gè)指針的數(shù)組,該指針指向一個(gè)函數(shù),該函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整型
數(shù)?(? An? array? of ? ten ? pointers? to ? functions ? that ? take ? an? integer ? argument ? and ? return ? an? integer ? )?
?
答案是:?
a) ? int? a; ? // ? An? integer ?
總結(jié)
以上是生活随笔為你收集整理的思科面试题c语言,C语言面试题~总汇(基础题、嵌入式、微软、华为、思科……).doc...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 五子棋开发案列c语言,C语言案例:控制台
- 下一篇: android广播面试题,Android