計算機常見演算法面試題

2021-03-04 04:27:41 字數 2565 閱讀 4797

怎麼判斷鍊錶中是否有環?

bool circleinlist(link* phead)

if(ptemp = = ptemp1)

return (true);

return (false);

}兩個字串,s,t;把t字串插入到s字串中,s字串有足夠的空間存放t字串

void insert(char *s, char *t, int i)

1。編寫乙個 c 函式,該函式在乙個字串中找到可能的最長的子字串,且該字串是由同一字元組成的。

char * search(char *cpsource, char ch)

++cpsource;

}return cpdest;

}2。請編寫乙個 c 函式,該函式在給定的記憶體區域搜尋給定的字元,並返回該字元所在位置索引值。

int search(char *cpsource, int n, char ch)

乙個單向鍊錶,不知道頭節點,乙個指標指向其中的乙個節點,問如何刪除這個指標指向的節點?

將這個指標指向的next節點值copy到本節點,將next指向next->next,並隨後刪除原next指向的節點。

#include

void foo(int m, int n)

int main()

輸出:m=7,n=4,b=7(vc6.0)

這種方式和編譯器中得函式呼叫關係相關即先後入棧順序。不過不同

編譯器得處理不同。也是因為c標準中對這種方式說明為未定義,所以

各個編譯器廠商都有自己得理解,所以最後產生得結果完全不同。

因為這樣,所以遇見這種函式,我們首先要考慮我們得編譯器會如何處理

這樣得函式,其次看函式得呼叫方式,不同得呼叫方式,可能產生不同得

結果。最後是看編譯器優化。

2.寫一函式,實現刪除字串str1中含有的字串str2.

第二個就是利用乙個kmp匹配演算法找到str2然後刪除(用鍊錶實現的話,便捷於陣列)

/*雅虎筆試題(字串操作)

給定字串a和b,輸出a和b中的最大公共子串。

比如a="aocdfe" b="pmcdfa" 則輸出"cdf"

*///author: azhen

#include

#include

#include

char ****manstring(char shortstring, char longstring)

}return null;

}main()

11.寫乙個函式比較兩個字串str1和str2的大小,若相等返回0,若str1大於

str2返回1,若str1小於str2返回-1

int strcmp ( const char * src,const char * dst)

if ( ret < 0 )

ret = -1 ;

else if ( ret > 0 )

ret = 1 ;

return( ret );

}3,求1000!的未尾有幾個0(用素數相乘的方法來做,如72=2*2*2*3*3);

求出1->1000裡,能被5整除的數的個數n1,能被25整除的數的個數n2,能被125整除的數的個數n3,

能被625整除的數的個數n4.

1000!末尾的零的個數=n1+n2+n3+n4;

#include

#define num 1000

int find5(int num)

return ret;

}int main()

printf(" the total zero number is %d\n",result);

return 0;}

1. 有雙向迴圈鍊錶結點定義為:

struct node

;有兩個雙向迴圈鍊錶a,b,知道其頭指標為:pheada,pheadb,請寫一函式將兩煉表中data值相同的結點刪除

bool detelenode(node *pheader, datatype value)

else

pnode->front->next = pnode->next;

}node *pnextnode = pnode->next;

delete pnode;

pnode = pnextnode;

bret = true;

//不要break或return, 刪除所有

}else

}return bret;

}void de(node *pheada, node *pheadb)

node *pnode = pheada;

while (pnode != null)

else

}node *pnextnode = pnode->next;

delete pnode;

pnode = pnextnode;

}else}}

2. 程式設計實現:找出兩個字串中最大公共子字串,如"abccade","dgcadde"的最大子串為"cad"

int get***mon(char *s1, char *s2, char **r1, char **r2)

計算機面試題

1 世界上第一台計算機誕生哪一年?第一台電子計算機在1946年2 月14日問世。它由17468個電子管 6萬個電阻器 1萬個電容器和6千個開關組成,重達30噸,占地160平方公尺,耗電174千瓦,耗資45萬美元。這台計算機每秒只能執行5千次加法運算,僅相當於乙個電子數字積分計算機 eniac即 埃尼...

計算機真實面試題

姓名畢業院校 專業家所在的 英語是否過四級 高考數學成績 1 好的生活習慣有助於工作,請回答以下問題?吸菸嗎?打麻將嗎?有物件嗎?有房子嗎?2 大學的學習,讓你掌握了足夠的理論知識,你熱愛軟體開發工作,肯定閱讀過大量的軟體開發書籍,請你列出你讀過的軟體開發的部分書籍。3 你喜歡軟體開發,自己寫過什麼...

計算機網路面試題

第一套 網路基礎知識考查 一,基礎部份 1 osi的中文全稱是 國際標準化組織 它們分別是 應用層 application layer 表示層 presentation layer 會話層 session layer 傳輸層 transport layer 網路層 network layer 資料鏈...