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

      • 華為筆試題之十五

        時(shí)間:2022-07-11 13:36:02 筆試 我要投稿
        • 相關(guān)推薦

        華為筆試題之十五

        華為最新筆試題及其分析

        華為筆試題之十五

        1.printf的輸出問(wèn)題

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

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

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

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

        long [int]
        unsigned long [int]

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

        float 32 ,4

        double 64,8

        long double 128,16

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

        3、找出錯(cuò)誤并改正

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

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

        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;
        }

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

        不調(diào)用其他函數(shù),寫一個(gè)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);
        }

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

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

        【華為筆試題之十五】相關(guān)文章:

        華為硬件筆試題目08-11

        親歷華為面試06-18

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

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

        華為面試問(wèn)題03-24

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

        華為都有哪些部門02-28

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

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

        簡(jiǎn)筆與繁筆教學(xué)設(shè)計(jì)05-27