民國105年 第3梯次 數位電子甲級 學科

第75題

某C語言程式如下,下列敘述執行後結果何者正確?

題目

某C語言程式如下,下列敘述執行後結果何者正確?

  1. (1) P R ( S Q U A R E ( A ) ) = 16
  2. (2) P R ( S Q U A R E ( A + 2 ) ) = 14
  3. (3) P R ( S Q U A R E ( + + A ) ) = 30
  4. (4) P R ( S Q U A R E ( + + A ) ) =

官方答案

(1) P R ( S Q U A R E ( A ) ) = 16、(2) P R ( S Q U A R E ( A + 2 ) ) = 14、(3) P R ( S Q U A R E ( + + A ) ) = 30

解析

巨集只是文字替換。若SQUARE(x)定義為x*x,A=4時SQUARE(A)=4*4=16;SQUARE(A+2)展開成A+2*A+2=4+8+2=14,因缺少括號不會先算A+2。SQUARE(++A)展開為++A*++A,依題意常見求值A由4→5→6,乘積5×6=30;但標準C對同一運算式多次修改A屬未定義行為,實務應避免。故1、2、3正確,4未給出結果不能選。

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

官方資料