軟體工程師面試程式設計常見函式實現

2021-05-12 12:36:26 字數 2580 閱讀 3330

1、引用與指標區別:引用必須初始化,不可以改變值,不可指向null。

2 、字串比較,判斷2個字串是否相等:

int strcmp(char  *source, char *dest) 相等返回0,不等返回-1;

}

3 .字串複製,遇到'/0'立即停止複製。

char *strcpy(char *strdest, const char *strsrc) //注意,按道理,source字串應該是const,所以用const *src修飾。

4、子串查詢,返回子字串所在位置

int strindex(char *str,char *substr)  //在str中,查詢substr,返回索引位置。

//if

return -1; //子串長度大於要str

}

4 、memcpy() 用來拷貝src前n個位元組到dest所指的位址上。

與strcpy()不同的是,memcpy()會完整的複製n個位元組,不會因為遇到字串結束'/0'而結束。函式返回指向dest的指標。

void *memcpy(void* dest,const void* src, int size)

5、memmove(),對比memcpy()。

void *memmove(void *dest, const void*src,int count)

else // 有位址重疊,從src的串尾開始複製

return dest;

}

6、單鏈表插入刪除節點

首先,定義乙個單鏈表結構體,包含資料和指標(指向下乙個資料)

struct linklist  

【6.1】單鏈表插入節點

在單鏈表節點p後面插入s節點:只需這2步關鍵步驟

(1)s=(linklist*)malloc(sizeof(linklist); 

(2)s->next=p->next ;   p->next=s;

完整程式如下:

/***************單鏈表插入節點********************/

int listinsert(linklist *head,int i , int data)

s=(linklist*)malloc(sizeof(linklist));

assert(s!=null);

s->data=data;

s->next=p->next;

p->next=s;//在第i-1個位置後面,即指標p後面插入data

return 1;

}

【6.2】單鏈表刪除節點

/***************單鏈表刪除節點********************/

int listdelete(linklist *head,int i)

q=p->next;

p->next=q->next;//刪除節點i

return 1;

}

7、 翻轉鍊錶(鍊錶逆序),常見面試題。

void reverselinklist(linklist *head)

}

8、實現有序鍊錶上的插入

void linklist(linklist head ,elemtype x)

q =(linklist *)malloc(sizeof(linklist));

assert(q!=null);//判斷是否成功分配記憶體

q->data=x ; //申請節點,插入資料x

q->next=pre->next ;

pre-next=q;

}

9、折半查詢幹啥用?( 用於對遞增順序表的查詢)

int zheban(int *t)

} //while

return -1;

}

10、雙向鍊錶刪除節點p,p後插入節點;

首先,定義乙個雙向鍊錶的結構體元素。 

struct link;
/********************雙向鍊錶刪除操作***************************/

int listdelete_dul(struct link *head, int num)

else }

/********************雙向鍊錶插入操作*****************************/

int listinsert_dul(dulinklist *head,int num)

else

}

C 軟體工程師面試必備

拷貝建構函式與深淺拷貝 只在堆上 棧上建立物件 this指標 常函式和常物件 delete this合法嗎 為什麼空類大小不為0 靜態成員變數與靜態成員函式 初始化列表的好處和使用條件 能否通過初始化列表初始化靜態成員變數 友元全域性函式 友元類 友元成員函式 運算子過載及 過載實現 繼承方式 物件...

軟體工程師如何應對面試

軟體工程師如何應對面試 做軟體的人都討厭面試,我也一樣。可為了找工作,提薪水又不得不面對面試這一關。做軟體時間長了,人會變得內向,不太善於表達自己,可是面試是乙個自我推銷的過程。其實正確的態度是應該把面試當作軟體人的人生常態。軟體行業的特點決定了做軟體的人經常需要變換工作。即使進了微軟這樣大企業裡,...

360軟體工程師面試題

1.1億個數,找不存在的數,位圖,2.火車1423456進站出站 排列順序問題,卡特蘭數,3.copystring注意指標為空,返回位址的問題。4.有9個球,3個輕的,3個中的,3個重的,輕中重直接沒有必然的關係,比如輕 重 2 中 是不一定成立的。問稱幾次把球分成3組 5.演算法題 輸入13個不大...