2017嵌入式系統開發工程師考試模擬試題

  一、編程開發能力:

2017嵌入式系統開發工程師考試模擬試題

1、用預處理指令#define聲明一個常數,用以表明一年中有多少秒(忽略閏年問題);寫一個“標準”宏MIN函數,這個宏輸入兩個參數並返回較小的一個。

2、用變量a給出下面的定義:

(1)一個整型數(An integer);

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

(3)一個指向指針的指針,它指向的指針是指向一個整型數(A pointer to a pointer to an integer);

(4)一個有10個整型數的數組(An array of 10 integers);

(5)一個有10個指針的數組,該指針是指向一個整型數的(A array of 10 pointers to integers);

(6)一個指向有10個整型數組的指針(A pointer to an array of 10 integers);

(7)一個指向函數的指針,該函數有一個整型參數並返回一個整型數(A pointer to a function that takes an integer as an argument returns an integer);

(8)一個有10個指針的數組,該指針指向一個函數,該函數有一個整型參數並返回一個整型數(An array of 10 pointers to functions that take an integer argument and return an integer);

3、關鍵字volatile有什麼含義?並舉出三個不同的例子。

4、嵌入式系統總是要用戶對變量或寄存器進行位操作,給定一個整型變量a,寫兩段代碼,第一個設置a 的bit 3,第二個清除a 的bit 3,在以上操作中,要保持其他位不變。

5、嵌入式系統經常具有要求程序員去訪問某特定的內存位置的特點,在某工程中,要去設置一絕對地址爲0x67a9的整型變量的值爲0xaa66。編譯器是一個純粹的ANSI編譯器,寫代碼去完成這一任務。

6、中斷是嵌入式系統中的重要組成部分,這導致了很多編譯開發商提供一種擴展——讓標準C支持中斷,具有代表性的是,產生一個新的`關鍵字:__interrupt,下面的代碼就使用了__interrupt去定義了一箇中斷子程序(ISR),請評論下這段代碼的__interrupt,

double compute_area(double radius) {

double area=PI*radius*radius; print f("n Area"=%f,area); return area; }

7、儘管不像非嵌入式計算機那樣常見,嵌入式系統還是有從堆(heap)中動態分配內存的過程的,那麼嵌入式系統中,動態分派內存可能發生的問題是什麼?

8、關鍵字static 的作用是什麼?

9、#include 與#include "file.h"的區別? 10、請說出const 與#define 相比,有何優點?

  二、嵌入式系統編程:

1、進程與線程有什麼區別?

2、操作系統有哪幾個特徵?最主要的特徵是什麼?虛擬存儲器有哪幾個特徵?

其最本質的特徵是什麼?

3、庫函數的調用和系統調用的區別?

4、Linux進程間通行方式有哪幾種以及各自的特點?

5、Linux中四層網絡模型?IP的各種類型的範圍?

6、在Linux系統中,造成死鎖的原因有哪些?

7、Linux網絡編程中主要使用的API有哪些以及網絡服務器模型的種類? 8、簡述對Linux的認識(特點,優勢)。

  三、嵌入式平臺開發

1、bootloader 是什麼?bootloader的stage1和stage2分別做的工作有哪些? 2、Linux內核版本命名的規則? 3、Linux設備文件有哪幾類?

4、Linux文件系統的種類有哪些以及使用特點? 5、嵌入式系統移植的主要工作步驟是什麼?

  四、編程能力實測

1、編寫一個C函數,將“I am from shanghai”倒置爲“shanghai from am I”即將句子中的單詞位置倒置,並不改變單詞內部結構。

2、請編寫一個C函數,該函數可以實現將一個整數轉爲任意進制的字符串輸出。