gogo专业大尺度亚洲高清人体,美女张开双腿让男生桶,亚洲av无码一区二区三区鸳鸯影院,久久久久国产精品人妻

當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式招聘 > 嵌入式面試題 > 嵌入式工程師筆試題目

嵌入式工程師筆試題目 時(shí)間:2018-08-15      來(lái)源:未知

嵌入式工程師對(duì)于工作來(lái)說(shuō)最重要的就是面試+筆試了,作為一個(gè)面試過(guò)很多家的老鳥(niǎo)來(lái)說(shuō),總結(jié)了一些嵌入式工程師經(jīng)典筆試題,而且也是很廠家的,快看看你都掌握了沒(méi)
1.給兩個(gè)變量,如何找出一個(gè)帶環(huán)單鏈表中是什么地方出現(xiàn)環(huán)的?

一個(gè)遞增一,一個(gè)遞增二,他們指向同一個(gè)接點(diǎn)時(shí)就是環(huán)出現(xiàn)的地方

1)。.堆棧溢出一般是由什么原因?qū)е碌?

沒(méi)有回收垃圾資源

3).不能做switch()的參數(shù)類型是:

switch的參數(shù)不能為實(shí)型。

4)、隊(duì)列和棧有什么區(qū)別?

隊(duì)列先進(jìn)先出,棧后進(jìn)先出
2.什么是引用,引用與指針有什么區(qū)別?

1) 引用必須被初始化,指針不必。

2) 引用初始化以后不能被改變,指針可以改變所指的對(duì)象。

3) 不存在指向空值的引用,但是存在指向空值的指針。

3.A.c 和B.c兩個(gè)c文件中使用了兩個(gè)相同名字的static變量,編譯的時(shí)候會(huì)不會(huì)有問(wèn)題?這兩個(gè)static變量會(huì)保存到哪里(棧還是堆或者其他的)?

static的全局變量,表明這個(gè)變量?jī)H在本模塊中有意義,不會(huì)影響其他模塊。

他們都放在數(shù)據(jù)區(qū),但是編譯器對(duì)他們的命名是不同的。

如果要使變量在其他模塊也有意義的話,需要使用extern關(guān)鍵字。

4.什么是二叉樹(shù),平衡二叉樹(shù)?

左右子樹(shù)都是平衡二叉樹(shù) 且左右子樹(shù)的深度差值的絕對(duì)值不大于1

5.internet采用哪種網(wǎng)絡(luò)協(xié)議,該協(xié)議的主要層次是什么?

Tcp/IP 主要層次有應(yīng)用層 傳輸層 網(wǎng)絡(luò)層 數(shù)據(jù)鏈路層 物理層

ISO的七層模型是什么?

應(yīng)用層 表示層 會(huì)話層 傳輸層 網(wǎng)絡(luò)層 物理鏈路層 物理層

Tcp udp屬于運(yùn)輸層

Tcp服務(wù)提供了數(shù)據(jù)流傳輸,可靠性,有效流控制,全雙工操作和多路復(fù)用技術(shù)

Udp不提供可靠性,流控制以及錯(cuò)誤恢復(fù)功能 udp頭包含少,負(fù)載消耗小。

優(yōu)缺點(diǎn):

Tcp提供可靠的傳輸服務(wù),有流量控制。缺點(diǎn)是包頭大,冗余性不好。

Udp不提供穩(wěn)定的服務(wù) 但包頭小 開(kāi)銷小。

Internet物理地址和ip地址轉(zhuǎn)換采用什么協(xié)議?

ARP(地址解析協(xié)議)

IP地址的編碼分為那兩部分?

網(wǎng)絡(luò)號(hào) 和主機(jī)號(hào) 不過(guò)要與子網(wǎng)掩碼與之后才能區(qū)分哪是網(wǎng)絡(luò)號(hào)那是主機(jī)號(hào)。

6.用戶輸入M,N值,從1至N開(kāi)始順序循環(huán)數(shù)數(shù),每數(shù)到M輸出該數(shù)值,直至全部輸出。寫(xiě)出C程序。

循環(huán)鏈表,用取余操作做

7..不能做switch()的參數(shù)類型是:

switch的參數(shù)不能為實(shí)型。

進(jìn)程和線程的區(qū)別是什么?

進(jìn)程是程序的一次執(zhí)行

線程是進(jìn)程內(nèi)的一個(gè)執(zhí)行單元,也是進(jìn)程內(nèi)的可調(diào)度實(shí)體。

與進(jìn)程的區(qū)別:

調(diào)度:線程是可調(diào)度和分配的基本單元,進(jìn)程是擁有資源的基本單位。

并發(fā)性:不同進(jìn)程和同一個(gè)進(jìn)程中的多個(gè)線程都可以并發(fā)。

擁有資源:進(jìn)程是擁有資源的獨(dú)立單位,而線程不擁有資源,但它可以訪問(wèn)屬于進(jìn)程的資源。

系統(tǒng)開(kāi)銷:由于創(chuàng)建進(jìn)程和撤銷進(jìn)程 系統(tǒng)都要為之分配和回收資源,所以系統(tǒng)的開(kāi)銷明顯大于線程創(chuàng)建和撤銷時(shí)的開(kāi)銷

8.談?wù)凜OM的線程模型。然后討論進(jìn)程內(nèi)/外組件的差別。

1網(wǎng)絡(luò)編程中設(shè)計(jì)并發(fā)服務(wù)器,使用多進(jìn)程 與 多線程 ,請(qǐng)問(wèn)有什么區(qū)別?

1) 進(jìn)程:子進(jìn)程是父進(jìn)程的復(fù)制,它獲得父進(jìn)程數(shù)據(jù)空間,堆 棧的復(fù)制品。

2) 線程:相對(duì)于進(jìn)程而言,線程更接近于一個(gè)執(zhí)行體的概念,它可以與同進(jìn)程的其他線程同享進(jìn)程資源,但同時(shí)擁有自己的?臻g,寄存器,指針(獨(dú)立的執(zhí)行序列)。

3) 兩者都可以提高程序的并發(fā)度,提高程序的運(yùn)行效率和響應(yīng)。

4) 線程和進(jìn)程各有優(yōu)缺點(diǎn),線程開(kāi)銷少,但不利于資源管理和保護(hù)。而進(jìn)程恰恰相反,開(kāi)銷大,但對(duì)資源有獨(dú)立掌控權(quán),可更好地管理。

2.列舉幾種進(jìn)程的同步機(jī)制

1)原子操作

2)信號(hào)量機(jī)制

3)自旋鎖

4)管程,會(huì)合,分布式系統(tǒng)

3 進(jìn)程間的通訊的途徑

共享存儲(chǔ)系統(tǒng)

消息傳遞系統(tǒng)

管道:以文件系統(tǒng)為基礎(chǔ)

9.進(jìn)程死鎖的原因

資源競(jìng)爭(zhēng)及進(jìn)程推進(jìn)順序非法

10.死鎖的4個(gè)必要條件

互斥、請(qǐng)求保持、不可剝奪、環(huán)路

11.死鎖的處理

鴕鳥(niǎo)策略、預(yù)防策略、避免策略、檢測(cè)與解除死鎖

12. 操作系統(tǒng)中進(jìn)程調(diào)度策略有哪幾種?

FCFS(先來(lái)先服務(wù)),優(yōu)先級(jí),時(shí)間片輪轉(zhuǎn),多級(jí)反饋

13.數(shù)組和鏈表的區(qū)別

數(shù)組:數(shù)據(jù)順序存儲(chǔ),固定大小

連表:數(shù)據(jù)可以隨機(jī)存儲(chǔ),大小可動(dòng)態(tài)改變

面試題: 線程與進(jìn)程的區(qū)別和聯(lián)系? 線程是否具有相同的堆棧? dll是否有獨(dú)立的堆棧?

進(jìn)程是死的,只是一些資源的集合,真正的程序執(zhí)行都是線程來(lái)完成的,程序啟動(dòng)的時(shí)候操作系統(tǒng)就幫你創(chuàng)建了一個(gè)主線程。

14.每個(gè)線程有自己的堆棧。

DLL中有沒(méi)有獨(dú)立的堆棧,這個(gè)問(wèn)題不好回答,或者說(shuō)這個(gè)問(wèn)題本身是否有問(wèn)題。因?yàn)镈LL中的代碼是被某些線程所執(zhí)行,只有線程擁有堆棧,如果DLL中的代碼是EXE中的線程所調(diào)用,那么這個(gè)時(shí)候是不是說(shuō)這個(gè)DLL沒(méi)有自己獨(dú)立的堆棧?如果DLL中的代碼是由DLL自己創(chuàng)建的線程所執(zhí)行,那么是不是說(shuō)DLL有獨(dú)立的堆棧?

以上講的是堆棧,如果對(duì)于堆來(lái)說(shuō),每個(gè)DLL有自己的堆,所以如果是從DLL中動(dòng)態(tài)分配的內(nèi)存,最好是從DLL中刪除,如果你從DLL中分配內(nèi)存,然后在EXE中,或者另外一個(gè)DLL中刪除,很有可能導(dǎo)致程序崩潰

用宏定義寫(xiě)出swap(x,y)

#define swap(x,y) (x=x+y;y=x-y;x=x-y)

char * const p;

char const * p

const char *p

上述三個(gè)有什么區(qū)別?

char * const p; //常量指針,p的值不可以修改

char const * p;//指向常量的指針,指向的常量值不可以改

const char *p; //和char const *p

char str1[] = "abc";

char str2[] = "abc";

const char str3[] = "abc";

const char str4[] = "abc";

const char *str5 = "abc";

const char *str6 = "abc";

char *str7 = "abc";

char *str8 = "abc";

cout << ( str1 == str2 ) << endl;

cout << ( str3 == str4 ) << endl;

cout << ( str5 == str6 ) << endl;

cout << ( str7 == str8 ) << endl;

結(jié)果是:0 0 1 1

解答:str1,str2,str3,str4是數(shù)組變量,它們有各自的內(nèi)存空間;

而str5,str6,str7,str8是指針,它們指向相同的常量區(qū)域。

15. 以下代碼中的兩個(gè)sizeof用法有問(wèn)題嗎?[C易]

void UpperCase( char str[] ) // 將 str 中的小寫(xiě)字母轉(zhuǎn)換成大寫(xiě)字母

{

for( size_t i=0; i

if( 'a'<=str[i] && str[i]<='z' )

str[i] -= ('a'-'A' );

}

char str[] = "aBcDe";

cout << "str字符長(zhǎng)度為: " << sizeof(str)/sizeof(str[0]) << endl;

UpperCase( str );

cout << str << endl;

答:函數(shù)內(nèi)的sizeof有問(wèn)題。根據(jù)語(yǔ)法,sizeof如用于數(shù)組,只能測(cè)出靜態(tài)數(shù)組的大小,無(wú)法檢測(cè)動(dòng)態(tài)分配的或外部數(shù)組大小。函數(shù)外的str是一個(gè)靜態(tài)定義的數(shù)組,因此其大小為6,函數(shù)內(nèi)的str實(shí)際只是一個(gè)指向字符串的指針,沒(méi)有任何額外的與數(shù)組相關(guān)的信息,因此sizeof作用于上只將其當(dāng)指針看,一個(gè)指針為4個(gè)字節(jié),因此返回4。

16.main()

{

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

int *ptr=(int *)(&a+1);

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

}

輸出:2,5

*(a+1)就是a[1],*(ptr-1)就是a[4],執(zhí)行結(jié)果是2,5

&a+1不是首地址+1,系統(tǒng)會(huì)認(rèn)為加一個(gè)a數(shù)組的偏移,是偏移了一個(gè)數(shù)組的大小(本例是5個(gè)int)

int *ptr=(int *)(&a+1);

則ptr實(shí)際是&(a[5]),也就是a+5

原因如下:

&a是數(shù)組指針,其類型為 int (*)[5];

而指針加1要根據(jù)指針類型加上一定的值,

不同類型的指針+1之后增加的大小不同

a是長(zhǎng)度為5的int數(shù)組指針,所以要加 5*sizeof(int)

所以ptr實(shí)際是a[5]

但是prt與(&a+1)類型是不一樣的(這點(diǎn)很重要)

所以prt-1只會(huì)減去sizeof(int*)

a,&a的地址是一樣的,但意思不一樣,a是數(shù)組首地址,也就是a[0]的地址,&a是對(duì)象(數(shù)組)首地址,a+1是數(shù)組下一元素的地址,即a[1],&a+1是下一個(gè)對(duì)象的地址,即a[5].

上一篇:c開(kāi)發(fā)經(jīng)典面試題集合

下一篇:嵌入式軟件開(kāi)發(fā)人員經(jīng)典面試題,資深程序員總結(jié)

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見(jiàn)科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5,京公海網(wǎng)安備11010802025203號(hào)

回到頂部