計算機概論、大意(資訊科學概論,電腦常識,電子計算機概論)題庫下載題庫

上一題
28 下列那個 C 程式碼執行後會輸出字串"abc"?
(A)char *p="abc"; puts(p);
(B)char *p="abc"; puts(*p);
(C)char *p="abc"; putchar(p);
(D)char *p="abc"; putchar(*p);


答案:登入後觀看
難度: 困難
最佳解!
Clown(2021上岸 大三下 (2019/04/13)
puts =>  適用於輸出字串    ☆☆: ...


(內容隱藏中)
查看隱藏文字
2F
Jenna 國一下 (2019/04/18)

puts( )和putchar( )的差異,

在於一個是輸出字串,

一個是輸出字元

3F
喜安娜 高二下 (2019/07/21)

 getchar() ->取得第一個字元,並將第二個字元留在緩衝區中,直到再使用 getchar() 或 scanf() 取得輸入。
 gets() -> 它會取得使用者的輸入字串,不包括按下 Enter 的換行字元碼

 puts() ->它在輸出字串後,會直接進行換行

 putchar() ->輸出一個字元

4F
蔡明勳 高三上 (2022/09/22)

題目可能出的不好
雖然題目是C語言,但在C++中
因為右側的"abc" 為字串常量(string literal)
所以宣告應為 const char *p="abc"; puts(p); 
(推薦這樣宣告)

而 const char * (字串常量)本質上就是個字元陣列,而陣列名稱具有指標性質。
所以"輸出整個字串"時變數直接使用 p 而非 *p

再補充一下 :
又或者說puts() 裡面放的參數要是 char *(陣列) 或是 const char * (字串常量)

那麼 *p 又是甚麼呢 ?
答案是字串(陣列)的起始位址 -> p[0]

參考一下實跑圖
632bed0794828.jpg#s-465,634


可能很難讀懂,所以要慢慢咀嚼
如有大神發現錯誤,一定要糾正我 :))

也可以參考這
https://openhome.cc/Gossip/CGossip/PointerAndString.html
https://blog.csdn.net/whatday/article/details/10626739...


查看完整內容

28 下列那個 C 程式碼執行後會輸出字串"abc"? (A)char *p=..-阿摩線上測驗