모두CBT

다음 C 언어 프로그램의 출력 결과는?#include <stdio… | [법원직 9급 전산·사서 컴퓨터일반] 24년 1회차 기출문제 상세 페이지

1[법원직 9급 전산·사서 컴퓨터일반] 24년 1회차
다음 C 언어 프로그램의 출력 결과는?
#include <stdio.h>
int f(int *a)
{ static int b=0;
(*a)++; b=b+2;
return b;
}
int main()
{ int x=0, y=0;
x = f(&y);
y = y + f(&x);
printf("%d", x+y);
}
1
5
2
6
3
7
4
8
해설

정적 변수 b가 호출 사이에 값을 유지하므로 x+y의 값은 8이다.

첫 호출 f(&y)에서 y는 1이 되고 b는 2가 되어 2를 반환하므로 x = 2이다.

둘째 호출 f(&x)에서 x는 3이 되고 static 변수 b는 이전 값을 이어받아 4가 되어 4를 반환한다.

따라서 y=1+4=5y = 1 + 4 = 5이고, 출력은 x+y=3+5=8x + y = 3 + 5 = 8이다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[법원직 9급 전산·사서 컴퓨터일반] 24년 1회차 25문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요법원직 9급 전산·사서 컴퓨터일반 기출문제 암기장 전체 보기