次のC言語のプログラムを実行したときに出力される結果を、@〜Dの中から選べ。
int p (int x, int y) {
if (x > y) return p(x-y, y);
if (x < y) return p(y-x+1, x);
retern x;
}
int main ( ) {
printf("%d\n", p(5, 6));
}
@ 2 A 3 B 4 C 5 D 6
@
if (x > y) return p(x-y, y); ・・・(1)
if (x < y) return p(y-x+1, x); ・・・(2)
とすると、
p(5, 6)
= p(6-5+1, 5) ・・・(2) より
= p(2, 5)
= p(5-2+1, 2) ・・・(2) より
= p(4, 2)
= p(4-2, 2) ・・・(1) より
= p(2, 2)
= 2 ・・・ (1),(2)の条件に合わないため return 2 で終了。
目次 | W−2 |