民國112年 地方四等 電子工程 計算機概要

第28題

呼叫下列C 函式,若傳入兩字串"abcd" 與"babc",將會在螢幕上輸出那兩個字母?int f(char *s, char *t){char *p1,*p2…

題目

呼叫下列C 函式,若傳入兩字串"abcd" 與"babc",將會在螢幕上輸出那兩個字母?int f(char *s, char *t){char *p1,*p2;for (p1 = s; *p1; p1++){for (p2 = t; *p2; p2++)if (*p1 == *p2) break;if (*p2 == '\0') break;}printf("%c %c", *p1, *s);return p1-s;} A. 'a'與'b' B. 'b'與'c' C. 'a'與'd' D. 'b'與'd'

官方答案

  • 答案:C. 'a'與'd'

解析

外層以 p1 逐一走訪 s 的字元,內層以 p2 在 t 中尋找相同字元;若在 t 中找到相同字元就 break 內層,接著檢查 *p2 是否為 '\0',若 t 已掃到結尾仍未找到,就 break 外層。'a'、'b'、'c' 都能在 t="babc" 中找到,直到 p1 指向 'd' 時,在 t 中找不到而停止。此時 *p1 為 'd',*s 為 'a',故印出 'a' 與 'd'。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料

答案以考選部公告之測驗式試題標準答案 PDF 為準。