久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式招聘 > 嵌入式面試題 > 千(qian)家公司嵌入式(shi)面試題,都是比較常(chang)見(jian)的

千家(jia)公(gong)司嵌入式面(mian)試題,都是(shi)比較(jiao)常(chang)見的 時間:2018-08-10 ;    ; 來源(yuan):未知(zhi)

關鍵字static的作(zuo)用(yong)是什么?

這個簡單的(de)問題(ti)很少有人(ren)能(neng)回答完(wan)全(quan)。在(zai)C語言中,關鍵(jian)字static有三個明顯的(de)作(zuo)用:

1). 在(zai)函數體,一個(ge)被(bei)聲(sheng)明為(wei)靜態的(de)變量(liang)在(zai)這一函數被(bei)調(diao)用過程中維持其(qi)值不(bu)變。

2). 在模塊(kuai)內(但在函(han)數體外),一個被(bei)聲明為靜態(tai)的變量(liang)可以被(bei)模塊(kuai)內所用函(han)數訪問,但不(bu)能被(bei)模塊(kuai)外其它函(han)數訪問。它是一個本地(di)的全局變量(liang)。

3). 在(zai)模塊(kuai)內,一(yi)個(ge)被(bei)(bei)聲明為靜(jing)態的(de)函(han)數只可被(bei)(bei)這一(yi)模塊(kuai)內的(de)其它函(han)數調用(yong)(yong)。那就是(shi),這個(ge)函(han)數被(bei)(bei)限制(zhi)在(zai)聲明它的(de)模塊(kuai)的(de)本地范圍內使用(yong)(yong)。

--------------------------------------------------------------------------

Const

關鍵字const是(shi)什么(me)含意?

我(wo)只要一(yi)(yi)聽(ting)到被面試者說:“const意味著常(chang)數”,我(wo)就(jiu)知(zhi)道我(wo)正在(zai)和一(yi)(yi)個業(ye)余者打交道。去年Dan Saks已經在(zai)他的文章(zhang)里完全概括了const的所有用(yong)法,因(yin)此ESP(譯者:Embedded Systems Programming)的每一(yi)(yi)位讀者應該非(fei)常(chang)熟悉const能做什(shen)么和不能做什(shen)么.

如(ru)(ru)果(guo)你(ni)從沒有讀到那篇文章,只要能說出const意味(wei)著“只讀”就可以了。盡管這個答案(an)不是完全的答案(an),但我接受它(ta)作為(wei)一個正(zheng)確(que)(que)的答案(an)。(如(ru)(ru)果(guo)你(ni)想知道更詳細的答案(an),仔細讀一下(xia)Saks的文章吧(ba)。)如(ru)(ru)果(guo)應試者能正(zheng)確(que)(que)回答這個問(wen)題,我將問(wen)他一個附加(jia)的問(wen)題:下(xia)面的聲(sheng)明都是什么意思?

Const int a;

int const a;

const int *a;

int * const a;

int const * a const;

前兩個的(de)(de)作用是(shi)一(yi)(yi)樣,a是(shi)一(yi)(yi)個常(chang)整型(xing)數(shu)。第三個意味(wei)著(zhu)a是(shi)一(yi)(yi)個指(zhi)(zhi)(zhi)(zhi)向常(chang)整型(xing)數(shu)的(de)(de)指(zhi)(zhi)(zhi)(zhi)針(也(ye)就(jiu)是(shi),整型(xing)數(shu)是(shi)不可修改(gai)的(de)(de),但(dan)指(zhi)(zhi)(zhi)(zhi)針可以(yi))。第四個意思a是(shi)一(yi)(yi)個指(zhi)(zhi)(zhi)(zhi)向整型(xing)數(shu)的(de)(de)常(chang)指(zhi)(zhi)(zhi)(zhi)針(也(ye)就(jiu)是(shi)說(shuo),指(zhi)(zhi)(zhi)(zhi)針指(zhi)(zhi)(zhi)(zhi)向的(de)(de)整型(xing)數(shu)是(shi)可以(yi)修改(gai)的(de)(de),但(dan)指(zhi)(zhi)(zhi)(zhi)針是(shi)不可修改(gai)的(de)(de))。最(zui)后一(yi)(yi)個意味(wei)著(zhu)a是(shi)一(yi)(yi)個指(zhi)(zhi)(zhi)(zhi)向常(chang)整型(xing)數(shu)的(de)(de)常(chang)指(zhi)(zhi)(zhi)(zhi)針(也(ye)就(jiu)是(shi)說(shuo),指(zhi)(zhi)(zhi)(zhi)針指(zhi)(zhi)(zhi)(zhi)向的(de)(de)整型(xing)數(shu)是(shi)不可修改(gai)的(de)(de),同時指(zhi)(zhi)(zhi)(zhi)針也(ye)是(shi)不可修改(gai)的(de)(de))。如果應試者能(neng)(neng)正(zheng)確(que)回答這(zhe)些問(wen)題(ti),那么他(ta)就(jiu)給我(wo)留下了一(yi)(yi)個好印象(xiang)。順帶提一(yi)(yi)句,也(ye)許你可能(neng)(neng)會問(wen),即使不用關鍵字const,也(ye)還(huan)是(shi)能(neng)(neng)很(hen)容易寫出功能(neng)(neng)正(zheng)確(que)的(de)(de)程序,那么我(wo)為什(shen)么還(huan)要如此看重關鍵字const呢?我(wo)也(ye)如下的(de)(de)幾下理(li)由(you):

1). 關鍵(jian)字(zi)const的(de)(de)(de)作用(yong)(yong)是為給讀你(ni)代碼的(de)(de)(de)人傳達(da)非常(chang)有用(yong)(yong)的(de)(de)(de)信息,實際(ji)上,聲(sheng)明一個(ge)參(can)數為常(chang)量是為了告訴了用(yong)(yong)戶這個(ge)參(can)數的(de)(de)(de)應用(yong)(yong)目的(de)(de)(de)。如果你(ni)曾(ceng)花很多(duo)時間清理其它(ta)人留下(xia)的(de)(de)(de)垃圾,你(ni)就會很快學會感(gan)謝這點多(duo)余的(de)(de)(de)信息。(當然,懂得用(yong)(yong)const的(de)(de)(de)程序員很少(shao)會留下(xia)的(de)(de)(de)垃圾讓(rang)別人來清理的(de)(de)(de)。)

2). 通過給優化器一些附加的(de)信息,使用關鍵字const也許能產(chan)生(sheng)更緊湊的(de)代(dai)碼。

3). 合理地使(shi)用(yong)關鍵字const可(ke)(ke)以使(shi)編(bian)譯(yi)器很自然地保護那些(xie)不希(xi)望被改變(bian)的(de)參數,防止其被無(wu)意的(de)代碼修改。簡而(er)言之(zhi),這樣(yang)可(ke)(ke)以減少bug的(de)出現。

----------------------------------------------------------

main()

{

int a[5]={1,2,3,4,5};

int *ptr=(int *)(&a+1); //ptr實際是&(a[5]),也就是a+5

printf("%d,%d",*(a+1),*(ptr-1));

}

輸出:2,5

------------------------------------------------------------------------

編寫strcat函數(6分)

已知strcat函數(shu)的原型是char *strcat (char *strDest, const char *strSrc);

其中strDest 是(shi)(shi)目的字符串,strSrc 是(shi)(shi)源字符串。

(1)不(bu)調用C++/C 的字符(fu)串(chuan)庫函數,請編寫函數 strcat

答:

VC源碼:

char * __cdecl strcat (char * dst, const char * src)

{

char * cp = dst;

while( *cp )

cp++; /* find end of dst */

while( *cp++ = *src++ ) ; /* Copy src to end of dst */

return( dst ); /* return dst */

}

(2)strcat能(neng)把strSrc 的(de)內(nei)容連接到strDest,為什么還要char * 類型的(de)返回(hui)值?

答:方(fang)便賦值給其他(ta)變量

-----------------------------------------------------------------------------

枚舉:

enum day

{a,b,c,d=5,e,f,g}

問a和g各是多少?

---------------------------------------------------------------------------------

用宏函數求(qiu)出一(yi)維數組的長度(du)

#define arraysize(x) (sizeof(x)/sizeof(x[0])) 一維的

#define arraytow(x) arraysize(x[0])*arraysize(x) 二維(wei)

 -----------------------------------------------------------------------------

嵌入式系統總是要(yao)用戶對變(bian)(bian)量(liang)或(huo)寄(ji)存器進行位(wei)操作。給定(ding)一個(ge)整型變(bian)(bian)量(liang)a,寫(xie)兩段代(dai)碼,第一個(ge)設置(zhi)a的(de)bit 3,第二(er)個(ge)清除a 的(de)bit 3。在(zai)以上兩個(ge)操作中,要(yao)保持其它位(wei)不(bu)變(bian)(bian)。

#define BIT3 (0x1<<3)

static int a;

void set_bit3(void)

{

a |= BIT3;

}

void clear_bit3(void)

{

a &= ~BIT3;

}

----------------------------------------------------------------------------------------------------------------

下面的代碼輸出(chu)是什么,為什么?

Void foo(void)

{

unsigned int a = 6;

int b = -20;

(a+b >; 6) puts("> 6") : puts("<= 6");

}

: >6

---------------------------------------------------------------------------------------------------------

int a=5,b=7,c;

c=a+++b;

代碼執行后

a=6

b=7

c=12

 ------------------------------------------------------------------

用變量a給出下面的(de)定(ding)義

a) 一個整(zheng)型數(An integer)

b) 一個(ge)指向整型數的指針(A pointer to an integer)

c) 一個(ge)指(zhi)(zhi)(zhi)(zhi)向(xiang)指(zhi)(zhi)(zhi)(zhi)針(zhen)(zhen)的的指(zhi)(zhi)(zhi)(zhi)針(zhen)(zhen),它(ta)指(zhi)(zhi)(zhi)(zhi)向(xiang)的指(zhi)(zhi)(zhi)(zhi)針(zhen)(zhen)是(shi)指(zhi)(zhi)(zhi)(zhi)向(xiang)一個(ge)整型(xing)數(A pointer to a pointer to an integer)

d) 一(yi)個有10個整型(xing)數的(de)數組(An array of 10 integers)

e) 一個(ge)有(you)10個(ge)指(zhi)針的(de)數(shu)組,該指(zhi)針是指(zhi)向一個(ge)整型數(shu)的(de)(An array of 10 pointers to integers)

f) 一個(ge)指(zhi)向有10個(ge)整型數(shu)數(shu)組的(de)指(zhi)針(A pointer to an array of 10 integers)

g) 一個(ge)指(zhi)向函數(shu)的指(zhi)針,該函數(shu)有一個(ge)整型參數(shu)并返回一個(ge)整型數(shu)(A pointer to a function that takes an integer as an argument and returns an integer)

h) 一(yi)(yi)個有(you)(you)10個指(zhi)針(zhen)的數組,該(gai)指(zhi)針(zhen)指(zhi)向(xiang)一(yi)(yi)個函數,該(gai)函數有(you)(you)一(yi)(yi)個整型參數并返回一(yi)(yi)個整型數( An array of ten pointers to functions that take an integer argument and return an integer )

答案是:

a) int a; // An integer

b) int *a; // A pointer to an integer

c) int **a; // A pointer to a pointer to an integer

d) int a[10]; // An array of 10 integers

e) int *a[10]; // An array of 10 pointers to integers

f) int (*a)[10]; // A pointer to an array of 10 integers

g) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integer

h) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer

================================================================================================================

上一篇:嵌入式面試基本問題,各個都經典

下一篇:匯集各大型公司面試題,嵌入式學習者必看

熱點文章(zhang)推薦
華(hua)清(qing)學員(yuan)就(jiu)業榜(bang)單
高薪學員經驗分享(xiang)
熱點新(xin)聞推薦
前臺專(zhuan)線(xian):010-82525158 企業(ye)培訓洽談專線(xian):010-82525379 院校合(he)作洽(qia)談專(zhuan)線(xian):010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部