嵌入式軟件面試題

    時間: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

    91久久大香伊蕉在人线_国产综合色产在线观看_欧美亚洲人成网站在线观看_亚洲第一无码精品立川理惠

      最新色国产精品精品视频 | 中文字幕亚洲无线码一区女同 | 色鬼色无需播放器在线视频 | 五月天激情婷婷婷久久 | 午夜精品少妇免费视频 | 日韩一级毛欧美一级国产一级 |