阿摩線上測驗 登入

申論題資訊

試卷:94年 - 94 關務特種考試_四等_資訊處理:程式語言概要#34395
科目:程式語言
年份:94年
排序:0

申論題內容

一、寫出下列 C 程式之執行結果:(20 分) main() { int a,b,c,d,e; a=b=c=d=e=3; a+=b-=c*=d=e+=2; printf("%d %d %d %d %d ", a, b, c, d, e); a += (b+=c) + (e-=2) – 1; printf("%d %d %d %d %d ", a, b, c, d, e); }

詳解 (共 1 筆)

詳解 提供者:s1121ks011 s1121ks011
#include <stdio.h>
 
int main(void) {
    int a, b, c, d, e; 
    a = b = c = d = e = 3; 
    a += b -= c *= d = e += 2; 
    printf("%d %d %d %d %d ", a, b, c, d, e); 
    a += (b += c) + (e -= 2) - 1; 
    printf("%d %d %d %d %d ", a, b, c, d, e); 
    return 0;
}

列印的結果如下:
-9 -12 15 5 5
-4 3 15 5 3
 
 
  1. 初始化所有變量 a, b, c, d, e 為 3。
  2. 接著是複合賦值表達式 a += b -= c *= d = e += 2,在這個表達式中,先從右向左計算,e 變成了 5,然後 d 變成了 5,接著 c 變成了 5 * 5 = 15,然後 b 變成了 3 - 25 = -12,最後 a 變成了 3 + (-22) = -9。
  3. 印出 a, b, c, d, e 的值。
  4. 接著是另一個複合賦值表達式 a += (b += c) + (e -= 2) – 1,在這個表達式中,先計算括號內的 b += c 和 e -= 2,此時 b 變成了 -12 + 15 = 3,e 變成了 5 - 2 = 3,然後計算 a += 3 + 3 - 1 = -4。
  5. 再次印出 a, b, c, d, e 的值。