亚洲AV日韩AⅤ综合手机在线观看,激情婷婷久久综合色,欧美色五月婷婷久久,久久国产精品99久久人人澡

  • <abbr id="uk6uq"><abbr id="uk6uq"></abbr></abbr>
  • <tbody id="uk6uq"></tbody>
  • c面試題庫

    時間:2023-04-01 07:15:37 面試問題 我要投稿
    • 相關推薦

    c面試題庫

    1、實現 strcmp
    int StrCmp(const char *str1, const char *str2)
    做是做對了,沒有抄搞,比較亂
    int StrCmp(const char *str1, const char *str2)
    {
    assert(str1 && srt2);
    while (*str1 && *str2 && *str1 == *str2) {
    str1++, str2++;
    }
    if (*str1 && *str2)
    return (*str1-*str2);
    elseif (*str1 && *str2==0)
    return 1;
    elseif (*str1 = = 0 && *str2)
    return -1;
    else
    return 0;
    }
    int StrCmp(const char *str1, const char *str2)
    {
    //省略判斷空指針(自己保證)
    while(*str1 && *str1++ = = *str2++);
    return *str1-*str2;
    }
    2、實現子串定位
    int FindSubStr(const char *MainStr, const char *SubStr)
    做是做對了,沒有抄搞,比較亂
    int MyStrstr(const char* MainStr, const char* SubStr)
    {
    const char *p;
    const char *q;
    const char * u = MainStr;
    //assert((MainStr!=NULL)&&( SubStr!=NULL));//用斷言對輸入進行判斷
    while(*MainStr) //內部進行遞增
    {
    p = MainStr;
    q = SubStr;
    while(*q && *p && *p++ == *q++);
    if(!*q )
    {
    return MainStr - u +1 ;//MainStr 指向當前起始位,u 指向
    }
    MainStr ++;
    }
    return -1;
    }
    3、已知一個單向鏈表的頭,請寫出刪除其某一個結點的算法,要求,先找到此結點,然后刪除。
    slnodetype *Delete(slnodetype *Head,int key){}中 if(Head->number==key)
    {
    Head=Pointer->next;
    free(Pointer);
    break;
    }
    Back = Pointer;
    Pointer=Pointer->next;
    if(Pointer->number==key)
    {
    Back->next=Pointer->next;
    free(Pointer);
    break;
    }
    void delete(Node* p)
    {
    if(Head = Node)
    while(p)
    }
    4、有1,2,....一直到n的無序數組,求排序算法,并且要求時間復雜度為O(n),空間復雜度O(1),使用交換,而且一次只能交換兩個數.(華為)
    #include<iostream.h>
    int main()
    {
    int a[] = {10,6,9,5,2,8,4,7,1,3};
    int len = sizeof(a) / sizeof(int);
    int temp;
    for(int i = 0; i < len; )
    {
    temp = a[a[i] - 1];
    a[a[i] - 1] = a[i];
    a[i] = temp;
    if ( a[i] == i + 1)
    i++;
    }
    for (int j = 0; j < len; j++)
    cout<<a[j]<<",";
    return 0;
    }
    5、寫出程序把一個鏈表中的接點順序倒排
    typedef struct linknode
    {
    int data;
    struct linknode *next;
    }node;
    //將一個鏈表逆置
    node *reverse(node *head)
    {
    node *p,*q,*r;
    p=head;
    q=p->next;
    while(q!=NULL)
    {
    r=q->next;


    q->next=p;
    p=q;
    q=r;
    }
    head->next=NULL;
    head=p;
    return head;
    }
    6、寫出程序刪除鏈表中的所有接點
    void del_all(node *head)
    {
    node *p;
    while(head!=NULL)
    {
    p=head->next;
    free(head);
    head=p;
    }
    cout<<"釋放空間成功!"<<endl;
    }
    7、兩個字符串,s,t;把 t 字符串插入到 s 字符串中,s 字符串有足夠的空間存放 t 字符串
    void insert(char *s, char *t, int i)
    {
    char *q = t;
    char *p =s;
    if(q == NULL)return;
    while(*p!='\0')
    {
    p++;
    }
    while(*q!=0)
    {
    *p=*q;
    p++;
    q++;
    }
    *p = '\0';
    }
    8、寫一個函數,功能:完成內存之間的拷貝
    memcpy source code:
    void* memcpy( void *dst, const void *src, unsigned int len )
    {
    register char *d;
    register char *s;
     if (len == 0)
     return dst;
     if (is_overlap(dst, src, len, len))
    complain3("memcpy", dst, src, len);
     if ( dst > src ) {
     d = (char *)dst + len - 1;
     s = (char *)src + len - 1;
    while ( len >= 4 ) {
    *d-- = *s--;
     *d-- = *s--;
     *d-- = *s--;
    *d-- = *s--;
    len -= 4;
     }
    while ( len-- ) {
    *d-- = *s--;
     }
     } else if ( dst < src ) {
     d = (char *)dst;
     s = (char *)src;
     while ( len >= 4 ) {
     *d++ = *s++;
     *d++ = *s++;
     *d++ = *s++;
     *d++ = *s++;
     len -= 4;
     }
     while ( len-- ) {
     *d++ = *s++;
     }
     }
     return dst;
     }
    9、公司考試這種題目主要考你編寫的代碼是否考慮到各種情況,是否安全(不會溢出)
    各種情況包括:
    1、參數是指針,檢查指針是否有效
    2、檢查復制的源目標和目的地是否為同一個,若為同一個,則直接跳出
    3、讀寫權限檢查
    4、安全檢查,是否會溢出
    memcpy 拷貝一塊內存,內存的大小你告訴它
    strcpy 是字符串拷貝,遇到'\0'結束
    /* memcpy ─── 拷貝不重疊的內存塊 */
    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);
    }

    【c面試題庫】相關文章:

    面試的通用題庫08-09

    C1科目四題庫201605-31

    面試題庫11-11

    IG-WB-C&C 電話面試11-20

    計算機二級c語言題庫及答案03-28

    英語面試常問題庫匯總10-26

    公選面試題庫11-06

    計算機二級C語言題庫2016最新03-29

    畢業(yè)面試銀行常見問題庫12-11

    護士面試筆試題庫11-07