下列C程式執行時若輸入下列6個字元:'1'、'2'、'3'、'4'、'5'以及'\n',則輸出為何? void fn(char str[],int n) { char ch; int i=0; while (ch=getchar()!='\n') if (i<n) str[i++]=ch; str[i]='\0'; } int main() { char c[5]; fn(c, 4); puts(c); return 0; }
A12
B123
C1234正確答案
D12345
答案與詳解
依題意 getchar 依序讀入 '1'~'5' 與 '\n',while 迴圈在遇到 '\n' 前執行,因 i<n (n=4) 限制,只存入 '1''2''3''4',第 5 個字元 '5' 被讀取但 i 已達 4 不存入,最後 str[4]='\0',puts 輸出 1234。
