久久综合丝袜日本网手机版,日韩欧美中文字幕在线三区,亚洲精品国产品国语在线,极品在线观看视频婷婷

      <small id="aebxz"><menu id="aebxz"></menu></small>
    1. 華為筆試題之十五

      時間:2022-07-11 13:36:02 筆試 我要投稿
      • 相關推薦

      華為筆試題之十五

      華為最新筆試題及其分析

      華為筆試題之十五

      1.printf的輸出問題

      printf("%d",total);//this is right
      printf(total);//this is wrong
      printf("hello");//but this is right

      2.整數(shù)類型的長度
      char 1個子節(jié),8位

      unsigned short [int]
      [signed] short int
      short 2個字節(jié),16位

      [signed] int
      unsigned int
      int 型在vc里是4個子節(jié),32位,也可能是16位,2個字節(jié)

      long [int]
      unsigned long [int]

      long型都是32位,4個字節(jié)

      float 32 ,4

      double 64,8

      long double 128,16

      char 8,一個字節(jié),存放的實際上是字符的ascii碼

      3、找出錯誤并改正

      char *my_cpy(char* src, int len){
      char dest[1024];
      memcpy(dest, src, len);
      return dest;
      }
      上面的函數(shù)是否有問題,如果有指出其所在,如果沒有,給出函數(shù)功能描述。

      答案:
      1。數(shù)組應該初始化
      2。memcpy不判斷是否越界,所以調(diào)用前應該判斷是否越界
      3。不應該返回rest,因為這個數(shù)組是在函數(shù)內(nèi)部申請的,所以函數(shù)結束之后就會消失,指針也會變成“野指針”,所以指向非法地址
      最后一個比較隱蔽

      char *memcpy( char *dest, const char *src,int len )
      {
      char* pDest = (char*)dest;
      char* pSrc = (char*)src;
      int pos;
      for(pos=0;pos {
      pDest[pos] = pSrc[pos];
      }
      return (char*)pDest;
      }

      存在地問題就是沒有判斷指針是否非法assert(dest !=NULL || src != NULL); 條件為 FLASE 顯示

      不調(diào)用其他函數(shù),寫一個memcpy的函數(shù),函數(shù)原型為
      void *memcpy(void *dest, void *src, size_t length);

      -----------利用好斷言---------


      void memcpy(void* pvTo, void* pvFrom, size_t size)
      {
      void* pbTo = (byte*)pvTo;
      void* pbFrom = (byte*)pvFrom;
      ASSERT(pvTo != NULL && pvFrom != NULL);

      ASSERT(pbTo>=pbFrom+size || pbFrom>=pbTo+size);
      while(size-->0)
      *pbTo++ == *pbFrom++;
      return(pvTo);
      }

      -----------------------

      常見函數(shù)編程:
      char *strcpy(char *strDest, const char *strSrc)
      {
      ASSERT(strDest != NULL && strSrc != NULL);
      char *addr = strDest;
      while(*strDest++=*strSrc++)
      NULL; //NULL可以省略,但更有利于編譯器發(fā)現(xiàn)錯誤
      }
      return addr;
      }

      void *memcpy(void *dest, const void *src, int count)
      {
      ASSERT(dest!= NULL && src!= NULL);
      for(int i=0; i< cout; i++)
      {
      dest = src;
      }
      }
      int strcmp(const char*str1, const char *str2)
      {
      while (str1 != NULL && str2 != NULL)
      {
      if(*str1 < *str2) return -1;
      else if(*str1 > *str2) return 1;
      else { str1++; str2++;}
      }
      if(str1 == NULL && str2 != NULL)
      return -1;
      else if(str1 != NULL && str2 == NULL)
      return 1;
      else return 0;
      }

      //way2: more compact
      int strcmp(const char*str1, const char *str2)
      {
      int i = strlen( str1 );
      int j;
      for(j=0; j<=i; j++)
      {
      if(str1[j] > str2[j]) return 1; //if str2 terminates, then str2[j]=0, str1[j]>str2[j], return 1;
      else if(str1[j] < str2[j]) return -1;
      else if(str1[j] == \) return 0;
      }
      }
      //way3: optimize again.
      int strcmp(const char * str1, const char * str2 )
      {
      while(1)
      {
      if(*str1 > *str2) return 1;
      else if(*str1 < *str2) return -1;
      else if(*str1 == \) return 0;
      str1++;str2++;
      }
      }

      【華為筆試題之十五】相關文章:

      華為硬件筆試題目08-11

      親歷華為面試06-18

      華為面試經(jīng)歷06-18

      華為新員工報到Q&A(華為入職須知)04-27

      華為面試問題03-24

      華為幾號發(fā)工資04-19

      華為都有哪些部門02-28

      華為資格面試內(nèi)容08-10

      華為d2怎么樣,華為d2好嗎?08-01

      簡筆與繁筆教學設計05-27