<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

            嵌入式軟件面試題

            時間:2024-10-02 06:45:46 嵌入式培訓 我要投稿
            • 相關推薦

            2017年嵌入式軟件面試題

              嵌入式系統是當前最熱門、最具發展前途的IT應用領域之一。那么關于嵌入式工程師考試你知道多少呢?下面跟yjbys小編一起來看看吧!

            2017年嵌入式軟件面試題

              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 0.0.0.0 127.255.255.255 /8 255.0.0.0

              B類地址 10 128.0.0.0 191.255.255.255 /16 255.255.0.0

              C類地址 110 192.0.0.0 223.255.255.255 /24 255.255.255.0

              D類地址 (群播) 1110 224.0.0.0 239.255.255.255 /4 未定義

              E類地址 (保留) 1111 240.0.0.0 255.255.255.255 /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 node.next

              #define TALL node.previous

              /*初始化一個鏈表*/

              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不需要指定長度,它遇到被復制字符的串結束符"\0"才結束,所以容易溢出。memcpy則是根據其第3個參數決定復制的長度。

              5.3、用途不同。通常在復制字符串時用strcpy,而需要復制其他類型數據時則一般用memcpy。

              6、實現原型:

              char *strcpy(char* strDest, const char* strSrc)

              {

              if((strDest == NULL) || (strSrc == NULL))

              return NULL;

              char* strDestCopy = strDest;

              while( ( *strDest++ = *strSrc++ ) != '/0' );

              return strDestCopy;

              }

              void *memcpy(void *dest, const void *src, size_t count)

              {

              char *tmp = dest;

              const char *s = src;

              while (count--)

              *tmp++ = *s++;

              return dest;

              }


            【嵌入式軟件面試題】相關文章:

            嵌入式C語言面試題(附答案)03-17

            嵌入式軟件開發要學什么03-05

            注釋嵌入式軟件的十大技巧03-19

            嵌入式軟件工程師認證03-03

            2016年嵌入式工程師面試題及答案「精選」03-07

            嵌入式系統軟件開發技術概述03-21

            2016最新公司嵌入式考試面試題庫03-04

            嵌入式軟件工程師經典筆試題03-06

            移植開源軟件到嵌入式Linux系統技術攻略03-29

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看