嵌入式系統是當前最熱門、最具發展前途的IT應用領域之一。那麼關於嵌入式工程師考試你知道多少呢?下面跟yjbys小編一起來看看吧!
1、請寫出你所知道的C語言關鍵字。
auto :聲明自動變量
switch :用於開關語句
case:開關語句分支
break:跳出當前循環
default:開關語句中的“其它”分支
continue:結束當前循環,開始下一輪循環
goto:無條件跳轉語句
do :循環語句的循環體
while :循環語句的循環條件
if:條件語句
else :條件語句否定分支(與 if 連用)
enum :聲明枚舉類型
union:聲明共用數據類型
extern:聲明變量是在其它文件中聲明
for:一種循環語句
register:聲明寄存器變量
return :子程序返回語句(可以帶參數,也可不帶參數)循環條件
sizeof:計算數據類型長度
static :聲明靜態變量
struct:聲明結構體變量或函數
typedef:用以給數據類型取別名
unsigned:聲明無符號類型變量或函數
void :聲明函數無返回值或無參數,聲明無類型指針
volatile:説明變量在程序執行中可被隱含地改變
short :聲明短整型變量或函數
signed:聲明有符號類型變量或函數
char :聲明字符型變量或函數
float:聲明浮點型變量或函數
int: 聲明整型變量或函數
long :聲明長整型變量或函數
const :聲明只讀變量
double :聲明雙精度變量或函數
2、IPv4把所有的IP地址分為A、B、C、D、E五類。請寫出B類地址和C類地址的範圍和掩碼,D類地址的用途是什麼?
分類 前綴碼 開始地址 結束地址 對應CIDR修飾 默認子網掩碼
A類地址 0 /8
B類地址 10 /16
C類地址 110 /24
D類地址 (羣播) 1110 /4 未定義
E類地址 (保留) 1111 /4 未定義
3、請簡述在linux中多進程程序和多線程程序的區別。
4、列出目前linux系統能支持的文件系統,列舉常用的四個以上。
Ext3 ext4 jffs2 yffs2 ubifs cramfs
5、寫一個“標準”宏MIN,這個宏輸入兩個參數並返回較小的一個?
#define MIN(a, b) ( (a) <= (b) : (a) ? (b) )
6、什麼是MMU,MMU的作用?
MMU是Memory Management Unit的縮寫,負責虛擬地址到物理地址的轉換,提供硬件機制的內存訪問授權。
7、關鍵字volatile有什麼含義,並給出幾個應用場合。
1. 定義的變量應該是異變的,防止編譯器優化,使得程序直接存取原始內存地址。
2. 中斷服務程序中修改的供其它程序檢測的'變量需要加volatile。
3. 多任務環境下各任務間共享的標誌應該加volatile。
4. 存儲器映射的硬件寄存器通常也要加voliate,因為每次對它的讀寫都可能有不同意義。
5. 頻繁地使用volatile很可能會增加代碼尺寸和降低性能。
8、雙向鏈表操作題:
/*節點定義*/
typedef srruct node
{
struct node *next;
struct node *previous;
}NODE;
/*鏈表定義*/
typedef struct
{
NODE node;
int count;
} LIST;
#define HEAD
#define TALL ious
/*初始化一個鏈表*/
void lstInit (LIST *pList)
{
pPlist->HEAD=NULL;
pPlist->TALL=NULL;
pPlist->count=0;
}
請編寫函數把一個節點(pNode)插入鏈表pList中某個節點(pPrev)之後。
9、請寫出strcpy 和 memcpy 的區別
1、strcpy和memcpy都是標準C庫函數。
2、strcpy提供了字符串的複製。即strcpy只用於字符串複製,並且它不僅複製字符串內容之外,還會複製字符串的結束符。
3、strcpy函數的原型是:char* strcpy(char* dest, const char* src);
4、memcpy提供了一般內存的複製。即memcpy對於需要複製的內容沒有限制,因此用途更廣。
5、memcpy函數的原型是:void *memcpy( void *dest, const void *src, size_t count );
strcpy和memcpy主要有以下3方面的區別。
5.1、複製的內容不同。strcpy只能複製字符串,而memcpy可以複製任意內容,例如字符數組、整型、結構體、類等。
5.2、複製的方法不同。strcpy不需要指定長度,它遇到被複制字符的串結束符"