第六組
1.鏈表和數組的區別在哪裡?
2.編寫實現鏈表排序的一種算法。說明為什麼你會選擇用這樣的方法?
3.編寫實現數組排序的一種算法。說明為什麼你會選擇用這樣的方法?
4.請編寫能直接實現char * strcpy(char * pstrDest,const char * pstrSource)函數功能的代碼。
5.編寫反轉字符串的程序,要求優化速度、優化空間。
6.在鏈表裡如何發現循環鏈接?
7.給出洗牌的一個算法,並將洗好的牌存儲在一個整形數組裡。
8.寫一個函數,檢查字符是否是整數,如果是,返回其整數值。(或者:怎樣只用4行代碼
9.給出一個函數來輸出一個字符串的所有排列。
10.請編寫實現void * malloc(int)內存分配函數功能一樣的代碼。
11.給出一個函數來復制兩個字符串A和B。字符串A的後幾個字節和字符串B的前幾個字節重疊。
12.怎樣編寫一個程序,把一個有序整數數組放到二叉樹中?
13.怎樣從頂部開始逐層打印二叉樹結點數據?請編程。
14.怎樣把一個鏈表掉個順序(也就是反序,注意鏈表的邊界條件並考慮空鏈表)? --
15.請編寫能直接實現int atoi(const char * pstr)函數功能的代碼
//===============================================================================
第六組部分題參考答案:
4.
char * strcpy(char * pstrDest,const char * pstrSource)
{
assert((pstrDest!=NULL)&&(pstrSource!=NULL));
char * pstr=pstrDest;
while((*(pstrDest++)=*(pstrSource++))!= ''\0 '');
return pstr;
}
5.
char * strrev(char * pstr)
{
assert(pstr!=NULL);
char * p=pstr;
char * pret=pstr;
while(*(p++)!= ''\0 '');
p--;
char tmp;
while(p> pstr)
{
tmp=*p;
*(p--)=*(pstr);
*(pstr++)=tmp;
}
return pret;
選http://exam.itzero.com/2007/0123/15993_2.Html