民國110年 普通考試 電子工程 計算機概要
第29題
下列所定義之C 語言的字串變數s,char s[] = "Computer", *p;for (p = s; *p; p++)--*p;puts(s);經過上述…
題目
下列所定義之C 語言的字串變數s,char s[] = "Computer", *p;for (p = s; *p; p++)--*p;puts(s);經過上述處理後將輸出何者? A. Computer B. retupmoc C. Bomputer D. Bnlotsdq
官方答案
- 答案:D. Bnlotsdq
解析
for (p=s; *p; p++) 讓指標走訪每個字元直到字串結束的 '\0',--*p 是前置遞減,把該字元的 ASCII 碼減 1 後寫回。'C'→'B'、'o'→'n'、'm'→'l'、'p'→'o'、'u'→'t'、't'→'s'、'e'→'d'、'r'→'q',因此字串變成 "Bnlotsdq"。B 的 "retupmoc" 是字元順序反轉的結果,但程式中並未交換位置;C 只改了第一個字元,忽略迴圈走訪全部字元;A 則是完全未修改的情形。故輸出為 D。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。
官方資料
答案以考選部公告之測驗式試題標準答案 PDF 為準。