問題詳情

28 下列 C 語言程式的指令執行時,會產生何種輸出?


(A)1 2
(B)3 4
(C)42
(D)31

參考答案

答案:C
難度:適中0.58
書單:沒有書單,新增

用户評論

【用戶】不叫賭俠的陳小刀

【年級】高三下

【評論內容】首先,宣告了一個整數陣列 a,並初始化為 {1, 3, 5, 7}。然後,宣告了一個整數指標 p,並將其指向陣列 a 的第一個元素。接著,宣告了一個整數變數 n,並計算陣列 a 的大小除以整數的大小,以獲得元素的個數。最後,使用 printf 函式輸出 n 的值和 ++*p 的值。在這段程式碼中,++*p 是前置遞增運算子,它會先對指標 p 所指向的值進行遞增操作,然後將遞增後的值作為表達式的值。因此,++*p 的執行順序如下:*p:取得指標 p 所指向的值,即陣列 a 的第一個元素的值,即為 1。++*p:對 *p 的值進行遞增操作,即將 1 遞增為 2。最終,printf 函式將輸出 n 的值和 ++*p 的值,即為 "4 2"。

【用戶】不叫賭俠的陳小刀

【年級】高三下

【評論內容】首先,宣告了一個整數陣列 a,並初始化為 {1, 3, 5, 7}。然後,宣告了一個整數指標 p,並將其指向陣列 a 的第一個元素。接著,宣告了一個整數變數 n,並計算陣列 a 的大小除以整數的大小,以獲得元素的個數。最後,使用 printf 函式輸出 n 的值和 ++*p 的值。在這段程式碼中,++*p 是前置遞增運算子,它會先對指標 p 所指向的值進行遞增操作,然後將遞增後的值作為表達式的值。因此,++*p 的執行順序如下:*p:取得指標 p 所指向的值,即陣列 a 的第一個元素的值,即為 1。++*p:對 *p 的值進行遞增操作,即將 1 遞增為 2。最終,printf 函式將輸出 n 的值和 ++*p 的值,即為 "4 2"。