1.下列**的輸出是?(注:print已經宣告過)
main()
print(char *s)
}解答:輸出的是" suiene"(注意,字母前面有乙個空格)
這裡考察了兩個知識點:遞迴和print(++s),指標先移動,然後呼叫函式。
找到一篇講解遞迴的部落格:遞迴演算法
程式呼叫自身的程式設計技巧稱為遞迴( recursion)。遞迴做為一種演算法在程式語言中廣泛應用。遞迴有直接遞迴
和間接遞迴
•直接遞迴:函式在執行過程中呼叫本身。
•間接遞迴:函式在執行過程中呼叫其它函式再經過這些函式呼叫本身。
下面是網上的乙個解釋:
1、*s為g,執行print(e),printf(e)被壓入倒數第1層,應該輸出e;
2、*s為e,執行print(n),printf(n)被壓入倒數第2層,應該輸出n;
3、*s為n,執行print(e),printf (e) 被壓入倒數第3層,應該輸出e;
4、*s為e,執行print(i),printf (i) 被壓入倒數第4層,應該輸出i;
5、*s為i,執行print(u),printf (u) 被壓入倒數第5層,應該輸出u;
6、*s為u,執行print(s),printf (s) 被壓入倒數第6層,應該輸出s;
7、*s為s,執行print(\0),printf (\0) 被壓入倒數第7層,應該輸出空格;
8、開始跳出print,從上向下得到壓入棧中的printf,得到最後結果「 suiene」
**及結果如下:
void print(char *s)
}int main()
輸出結果: \0suiene 牛客 題庫 1
1.字串複製函式strcpy 字元陣列1,字元陣列2 字元陣列1的長度應大於等於字元陣列2的長度.說法是否正確?解答 說法正確 strcpy函式 顧名思義字串複製函式 原型宣告 char strcpy char dest,const char src 標頭檔案 include string.h 和 ...
牛客 題庫 define typedef 區別
1.test.c檔案中包括如下語句 define int ptr int typedef int int ptr int ptr a,b int ptr c,d 檔案中定義的四個變數,哪個變數不是指標型別?解答 b typedef 給已有型別宣告乙個別名,故c和d都是int ptr型別也即都是int...
牛客網 java題庫(21 30)
literator可用來遍歷set和list集合,但是listlterator只能用來遍歷list。iterator對集合只能是前向遍歷,listiterator既可以前向也可以後向。listiterator實現了iterator介面,幷包含其他的功能,比如 增加元素,替換元素,獲取前乙個和後乙個元...