- 相關推薦
2017嵌入式系統開發工程師考試仿真題
1、簡答題。下面的題目必須全部答對才給分:(5分)
1、在UNIX環境中,編譯流程是什么?
2、ABI,ELF的英文全稱是什么
3、一般UNIX的程序有多少段,舉一個實際的例子說明。
4、如何在kernel二進制代碼中找一個字符串。
5、段地址F000:FFF0轉換為線形地址的值是多少(16進制表達)。
6、在一個UNIX文件系統中,文件的唯一性標志是什么?
2、問答題。
1、———————————————————–
寫一些代碼。如何用文件實現信號燈?要求如果程序崩潰了,這個文件也將自動被刪除。
為什么可以這樣實現信號燈?(5分)
傳統的signal函數信號處理為什么是不可靠的,信號和系統調用有何關系?(5分)
在圖形庫系統中往往提供timer的功能,除了使用ALARM信號外,你還可以使用什么系統調用來實現timer?(5分)
2、———————————————————–
寫一些代碼,演示如何正確使用write系統調用。注意看好手冊再回答。(2分)
如果一個文件以rw模式打開,在進行read/write操作轉換時,需要進行什么操作。(2分)
3、———————————————————–
解釋終端結構termios.c_cc的MIN/TIME數值變化的帶來read/write的特性。(5分)
如何理解終端、控制終端、虛擬終端、控制臺、tty等類同的概念?(5分)
4、———————————————————–
解釋計算機中Copy-On-Write的概念。(2分)
調用fork之后,子進程沒有繼承父進程的屬性有哪些?(5分)
解釋為什么每個程序在裝入執行之后,總是已經預先打開了stdout、stdin、stderr?(2分)
在fork之前,父進程打開了一個文件。在fork之后,如果子進程移動了文件指針,父進程的文件指針有什么變化;如果子進程關閉了文件,父進程有什么變化?為什么會這樣?(5分)
標準輸入、輸出和錯誤輸出分別是什么類型的緩沖,這些緩沖在用戶空間還是在核心空間?
怎樣關閉他們的緩沖?如果父進程關閉了緩沖,在fork之后建立的子進程是否也關閉了緩沖?(5分)
vfork和fork相比,有什么特色?(2分)
system函數是否等同于fork+exec?(2分)
wait系統調用有多少種條件可以退出?(2分)
5、———————————————————–
系統調用和庫函數調用有什么區別。(2分)
在linux2.4.x上的glibc和newlib(一種嵌入式C庫)的系統調用有什么不同?(2分)
在linux2.4.x上,對系統調用execve如果調用成功,它返回的值是多少。(2分)
6、———————————————————–
列出你所知道的2個內存跟蹤庫。(2分)
設計一個內存跟蹤方案,為什么選擇這個方案(5分)
3、分析題。
本題(各5分)。假設下面代碼中的變量都是合法變量,調用外部的函數都是正確的;卮饚讉問題:
這些代碼意圖要干什么?
是否有問題?
如果有問題,該如何修改,或者如何避免類似錯誤發生?
如果沒有問題,如果代碼有輸出,輸出是什么?
1、———————————————————–
int isvowel (char c)
{
return c==’a’’’’’’’’||c==’e’’’’’’’’||c==’i’’’’’’’’||c==’o’’’’’’’’||c==’u’’’’
}
2、———————————————————–
while (c==’\t’||c=’ ‘||c==’\n’)
c=getc(f);
3、———————————————————–
/* 當x=2, y=3, z=? */
if (x==0)
if (y==0)
z=-1;
else
z=x+y;
4、———————————————————–
/* 處理網絡事件 */
void process_network_code(int x, int y)
{
/* 選擇modes_pointer資源 */
switch (line) {
case THING1:
/* 處理異常1#, 使用老的modes_pointer資源 */
doit1();
break;
case THING2:
/* 處理異常2#, 需要重新啟動服務 */
if (x == STUFF) {
/* 重新申請modes_pointer資源,沒有初始化 */
do_first_stuff();
/* 在這種條件下,有些資源不用重新申請 */
if (y == OTHER_STUFF)
break;
/* 申請剩下的資源,并初始化 */
do_later_stuff();
}
/* 初始化modes_pointer資源 */
initialize_modes_pointer();
break;
default:
/* 處理普通事件, 使用老的modes_pointer資源 */
processing();
}
/* 使用modes_pointer資源,處理事件 */
use_modes_pointer();
}
5、———————————————————–
int is_gb2312_char(char c1, char c2)
{
if (c1 >= 0xa1 && c2 >= 0xa1)
return 1;
else
return 0;
}
【嵌入式系統開發工程師考試仿真題】相關文章:
嵌入式系統開發工程師考試要點08-24
嵌入式系統開發工程師考試考試要點09-03
2017嵌入式系統開發工程師綜合編程題07-26
嵌入式系統開發工程師考試知識點08-05
2024嵌入式系統開發工程師考試模擬試題10-22
2017咨詢工程師考試仿真題及答案09-06
2018咨詢工程師考試仿真題及答案10-17
環保工程師考試仿真題及答案201705-24
2017造價工程師考試仿真題及答案09-14