46道嵌入式工程師相關(guān)的經(jīng)典面試題
掃描二維碼
隨時(shí)隨地手機(jī)看文章
微信公眾號(hào):嵌入式開發(fā)圈
關(guān)注可了解更多的教程。問題或建議,請(qǐng)公眾號(hào)留言;
如果你覺得本文對(duì)你有幫助,歡迎贊賞
????用find 寫出查找/opt/kernel目錄下(包括子目錄)文件名為Kconfig的命令。
?
????用 Vi 編譯器底行命令模式實(shí)現(xiàn)字符串替換,把當(dāng)前文件中的“xiaodai”全部替換成“banzhang”。
?
????變量的聲明和定義有什么區(qū)別?
?
????sizeof是庫函數(shù)嗎?sizeof 和 strlen 的區(qū)別?
????鏈表和數(shù)組有什么區(qū)別
?
????簡(jiǎn)述隊(duì)列和棧的異同
有以下語句: char a=3, b=6, c; c = a^b<<2; 則c的二進(jìn)制值是_____。
????如何打印出當(dāng)前源文件的文件名以及源文件的當(dāng)前行號(hào)?
?
????假設(shè)某個(gè)函數(shù)的原型為:void foo( int x, int y );?該函數(shù)分別被C編譯器和C++編譯器編譯后在符號(hào)庫中的名字是什么?
??
????在QT程序中可以調(diào)用被C 編譯器編譯后的函數(shù)嗎?如果可以怎么實(shí)現(xiàn)?
?
????.h頭文件中的ifndef/define/endif 的作用?#i nclude 與 #include "file.h"的區(qū)別?
??
????結(jié)構(gòu)與聯(lián)合有和區(qū)別?
?
????全局變量和局部變量可否同名,他們是否有區(qū)別?如果有,是什么區(qū)別???????
?
????static有什么用途??static全局變量與普通的全局變量有什么區(qū)別?static局部變量和普通局部變量有什么區(qū)別?static函數(shù)與普通函數(shù)有什么區(qū)別?
?
????什么是預(yù)編譯,何時(shí)需要預(yù)編譯?
?
????有數(shù)組定義int a[2][2]={{1},{2,3}};則a[0][1]的值為多少?。
????請(qǐng)計(jì)算sizeof的值。
char??str[]?=?“Hello”?;
char???*p?=?str?;
int?????n?=?10;
請(qǐng)計(jì)算
sizeof?(str?)?=_____
sizeof?(?p?)?=_____
sizeof?(?n?)?=_____
void?Func?(?char?str[100])
{
????請(qǐng)計(jì)算sizeof(?str?)?=
}
?void?*p?=?malloc(?100?);?請(qǐng)計(jì)算sizeof?(?p?)?=
?char?*str[]={“Hello”,”HI”,?“\x0”};
請(qǐng)計(jì)算:
sizeof(str)???=
sizeof(str[0])?=
頭文件中有如下宏定義,
#define?DECLARE_TASKLET(name,?func,?data)??\????
struct?tasklet_struct?name?=?{?NULL,?0,?ATOMIC_INIT(0),?func,?data?}
.c源文件中有如下語句:
static?DECLARE_TASKLET(btn_tasklet,
????????????????????btn_tasklet_func,
????????????????????(unsigned?long)&mydata);
請(qǐng)寫出預(yù)編譯后,該語句展開的結(jié)果.
????寫一個(gè)程序,以遞歸方式反序輸出一個(gè)字符串。如給定字符串“abc”輸出“cba ”。
????對(duì)于一個(gè)字節(jié)(8bit)的無符號(hào)整形變量,求二進(jìn)制表示中“1”的個(gè)數(shù),要求算法執(zhí)行效率盡可能地高。
????參數(shù)傳遞有哪些形式?寄存器和堆棧傳遞各有什么優(yōu)缺點(diǎn)?
????define宏語句和inline函數(shù)有什么區(qū)別?
????char a[5][4],a的地址為0,問printf(“%d”,a[4]+3)值
????編寫一個(gè)宏,實(shí)現(xiàn)判斷數(shù)組a元素的個(gè)數(shù)。
?
?
????.#define DOUBLE(x) x+x ?,i = 5*DOUBLE(5); ?i ?是多少?
?
?
????i++一下代碼的輸出結(jié)果是?
int?i?=?1;
int?j?=?2;
int?k?=?i+++j;
cout?<endl;
????下面代碼輸出是什么?為什么
void?foo(void)
{
????unsigned?int?a?=?6;
????int?b?=?-20;
????(a+b?>?6)?puts(">?6")?:?puts("<=?6");
}
????關(guān)于動(dòng)態(tài)申請(qǐng)內(nèi)存的問題
void?GetMemory(char?*p)
{
????p?=?(char?*)malloc(100);
}
void?Test(void)?
{
????char?*str?=?NULL;
????GetMemory(str);???
????strcpy(str,?"hello?world");
????printf(str);
}
請(qǐng)問運(yùn)行 Test 函數(shù)會(huì)有什么樣的結(jié)果?
????請(qǐng)問運(yùn)行 Test 函數(shù)會(huì)有什么樣的結(jié)果?
char?*GetMemory(void)
{??
????char?p[]?=?"hello?world";
????return?p;
}
void?Test(void)
{
????char?*str?=?NULL;
????str?=?GetMemory();
????printf(str);
}
????請(qǐng)問運(yùn)行 Test 函數(shù)會(huì)有什么樣的結(jié)果?
void?GetMemory2(char?**p,?int?num)
{
????*p?=?(char?*)malloc(num);
}
void?Test(void)
{
????char?*str?=?NULL;
????GetMemory(&str,?100);
????strcpy(str,?"hello");?
????printf(str);
}
????請(qǐng)問運(yùn)行 Test 函數(shù)會(huì)有什么樣的結(jié)果?
void?Test(void)
{
????char?*str?=?(char?*)?malloc(100);
????strcpy(str,?“hello”);
????free(str);?
????if(str?!=?NULL)?
????{
????????strcpy(str,?“world”);?
????????printf(str);
????}
}
????用預(yù)處理指令#define ?聲明一個(gè)常數(shù),用以表明 1 年中有多少秒(忽略閏年問題)
????C 語言中結(jié)構(gòu)化程序設(shè)計(jì)的三種基本控制結(jié)構(gòu)
????請(qǐng)說出 const 與#define相比,有何優(yōu)點(diǎn)?
????簡(jiǎn)述數(shù)組與指針的區(qū)別?
????main 函數(shù)執(zhí)行完畢后,是否可能會(huì)再執(zhí)行一段代碼,給出說明?
????如果編寫一個(gè)標(biāo)準(zhǔn) strlen 函數(shù)
????如何引用一個(gè)已經(jīng)定義過的全局變量?
????do……while 和 while……do 有什么區(qū)別?
????寫一個(gè)“標(biāo)準(zhǔn)”宏 MIN
????typedef 和 define 有什么區(qū)別
????Typedef 在C語言中頻繁用以聲明一個(gè)已經(jīng)存在的數(shù)據(jù)類型的同義字。也可以用預(yù)處理器做類似的事。
例如,思考一下下面的例子:
#define?dPS?struct?s?*?
typedef?struct?s?*?tPS;?
以上兩種情況的意圖都是要定義dPS 和 tPS 作為一個(gè)指向結(jié)構(gòu)s指針。哪種方法更好呢?(如果有的話)為什么?
int (*s[10])(int) ?表示的是什么
寫出 bool ?、int、 ?float、指針變量與“零值”比較的 if 語句bool 型數(shù)據(jù):
請(qǐng)寫出以下代碼的打印結(jié)果
#include
void?main(?void?)
{
????int?a[5]={1,2,3,4,5};
????int?*ptr=(int?*)(&a+1);
????printf("%d,%d",*(a+1),*(ptr-1));
????return;
}
設(shè)置地址為 0x67a9 的整型變量的值為 0xaa66
參考答案:公眾號(hào)回復(fù)"面試題答案"獲取下載鏈接!
王爭(zhēng)老師優(yōu)秀數(shù)據(jù)結(jié)構(gòu)算法學(xué)習(xí)課程推薦
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!