30 下列 C 語言程式的輸出為何?
(A) 53
(B) 62
(C) 66
(D) 68
答案:登入後查看
統計: A(50), B(58), C(88), D(32), E(0) #3429194
統計: A(50), B(58), C(88), D(32), E(0) #3429194
詳解 (共 2 筆)
#6990084
p 指到A[1] 的位址
q 指到A[9] 的位址
ㅤㅤ
當q+3個位址 > p的位址時
需要做 *(q--)=*(p++) *2
也就是 q(這時候是a[9]) = p(這時候是a[1])*2 之後再把q的位址-1 P的位址+1
嘗試展開
嘗試展開
| p | q | q+3 | 執行後 |
| a[1] | a[9] | a[9] +3位址 | a[9]=a[1]*2=2*2=4 |
| a[2] | a[8] | a[8] +3位址 | a[8]=a[2]*2=3*2=6 |
| a[3] | a[7] | a[7] +3位址 | a[7]=a[3]*2=4*2=8 |
| a[4] | a[6] | a[9]位址 | a[6]=a[4]*2=5*2=10 |
| a[5] | a[5] | a[8]位址 | a[5]=a[5]*2=0*2=0 |
| a[6] | a[4] | a[7]位址 | a[4]=a[6]*2=10*2=20 |
| a[7] | a[3] |
a[6]位址
|
未執行 |
| a[8] | a[2] | ||
| a[9] | a[1] |
a[1]=2
a[2]=3
a[3]=4
a[4]=20
a[5]=0
a[6]=10
a[7]=8
a[8]=6
a[9]=4
ㅤㅤ
之後sum = sum+a[i] 從a[1] + a[2]+....~a[8] = 2+3+4+20+0+10+8+6 = 53
2
0