C語言基礎 int f(void) { static int s = 0; int a = 0; s++; a++; return s * 10 + a; }連續呼叫上方的函式 f 三次時,第3次的回傳值為下列何者? A11 B13 C31 查看答案與解析 正確答案:C. 31 加上 static 的區域變數 s,只在程式開始前初始化為0一次,函式返回後值仍會保留。因此 s 隨每次呼叫增加為1、2、3。沒有 static 的 a 每次呼叫都會重新建立並從0開始,因此每次都是1。第3次的回傳值為 3 × 10 + 1 = 31。 A. 這是認為 s 也在每次呼叫時從0開始的值。static 變數的值會保留。B. 這是把 static 的 s 與沒有 static 的 a 的作用對調時的值(s = 1、a = 3)。C. 正確。s 增加到3,a 每次都是1,因此 3 × 10 + 1 = 31。 繼續練習C語言基礎的另外9題