28 呼叫下列 C 函式,若傳入兩字串 "abcd" 與 "babc",將會在螢幕上輸出那兩個字母?
(A) 'a' 與 'b'
(B) 'b' 與 'c'
(C) 'a' 與 'd'
(D) 'b' 與 'd'
答案:登入後查看
統計: A(57), B(50), C(118), D(23), E(0) #3185031
統計: A(57), B(50), C(118), D(23), E(0) #3185031
詳解 (共 1 筆)
#6164822
調用該函數時,傳入的字符串為 "abcd" 和 "babc"。
- p1 = s 指向 "abcd" 的第一個字符 a。
- 開始外層 for 循環,p1 從第一個字符開始依次向後移動。
- 在第一次內層 for 循環中,p2 = t 指向 "babc" 的第一個字符 b,依次向後移動直到找到與 p1 相同的字符或到達字符串末尾。
- p1 指向 a,p2 依次檢查 b, a,找到匹配的 a,跳出內層 for 循環。
- 外層 for 循環繼續,p1 指向下一個字符 b。
- 內層 for 循環從頭開始,p2 依次檢查 b, a, b,找到匹配的 b,跳出內層 for 循環。
- 外層 for 循環繼續,p1 指向下一個字符 c。
- 內層 for 循環從頭開始,p2 依次檢查 b, a, b, c,找到匹配的 c,跳出內層 for 循環。
- 外層 for 循環繼續,p1 指向下一個字符 d。
- 內層 for 循環從頭開始,p2 依次檢查 b, a, b, c,沒有找到匹配的 d,p2 到達字符串末尾 '\0'。
此時,p1 指向 d,跳出外層 for 循環,執行 printf("%c %c", *p1, *s)。因此,將打印 d 和 s 的第一個字符 a。
所以,螢幕上將打印的字符是:a與 d
5
0