次のC言語のプログラムを実行したときに、表示される結果を選べ。
#include <stdio.h>
int x, y ;
int f(int a, int x)
{
++y ;
++x ;
return a+y ;
}
main () {
int y, z ;
y = 100 ;
z = f(10, y) ;
z += y ;
printf("%d\n", z) ;
}
@ 11 A 101 B 110 C 111 D 211
C
main() の x, は外部変数であり、y, z は内部変数である。
f() の x, y は外部変数であり、 a は内部変数である。
以下のように変数の値が変化していく。
なお、main() の y は便宜上 Y と記す。
int y, z ・・・(x, Y, z) = (0 ,0, 0)
y = 100 ・・・(x, Y, z) = (0 ,100, 0)
f(10, y) ・・・(x, Y, z) = (0 ,100, 0)
f(int a, int x) ・・・(x, y) = (100, 0) a = 10
++y ・・・(x, y) = (100, 1) a = 10
++x ・・・(x, y) = (101, 1) a = 10
return a+y ・・・(x, y) = (101, 1) a = 10
z = f(10, y) ・・・(x, Y, z) = (101, 100, 11)
z += y ・・・(x, Y, z) = (101, 100, 111)
なお、 z += y は z = z + y と同じことである。
W−2 | 目次 | W−4 |