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

詳解 (共 1 筆)

#6164822

調用該函數時,傳入的字符串為 "abcd" 和 "babc"。

  1. p1 = s 指向 "abcd" 的第一個字符 a。
  2. 開始外層 for 循環,p1 從第一個字符開始依次向後移動。
  3. 在第一次內層 for 循環中,p2 = t 指向 "babc" 的第一個字符 b,依次向後移動直到找到與 p1 相同的字符或到達字符串末尾。
    • p1 指向 a,p2 依次檢查 b, a,找到匹配的 a,跳出內層 for 循環。
  4. 外層 for 循環繼續,p1 指向下一個字符 b。
  5. 內層 for 循環從頭開始,p2 依次檢查 b, a, b,找到匹配的 b,跳出內層 for 循環。
  6. 外層 for 循環繼續,p1 指向下一個字符 c。
  7. 內層 for 循環從頭開始,p2 依次檢查 b, a, b, c,找到匹配的 c,跳出內層 for 循環。
  8. 外層 for 循環繼續,p1 指向下一個字符 d。
  9. 內層 for 循環從頭開始,p2 依次檢查 b, a, b, c,沒有找到匹配的 d,p2 到達字符串末尾 '\0'。

此時,p1 指向 d,跳出外層 for 循環,執行 printf("%c %c", *p1, *s)。因此,將打印 d 和 s 的第一個字符 a。

所以,螢幕上將打印的字符是:a與 d

5
0