SQLD프로그래밍 언어 활용C 재귀난이도 3MCQ

SQLD C 재귀 기출문제 #4085

문제

아래 C 코드의 실행결과로 올바른 것은 무엇인가?

C
int fn(int* x, int n){ if(n==1) return 1; return *x + fn(x, n-1); } int main(){ int x=5; printf("%d", fn(&x, x)); return 0; }

① 21 ② 25 ③ 15 ④ 5

정답

1

해설

정답: 1. fn(&x,5)5+5+5+5+1을 계산하므로 21이 출력된다.

오답 풀이

  • 1번: 재귀 호출이 n=1에서 1을 반환하므로 총합은 21이다.
  • 2번: n=1에서도 5를 더한다고 착각한 값이다.
  • 3번: 재귀 횟수를 부족하게 계산한 값이다.
  • 4번: 첫 번째 포인터 값만 출력하는 코드가 아니다.

보충 개념 재귀 함수는 종료 조건과 각 호출에서 누적되는 값을 정확히 추적해야 한다.

SQLD 시험 준비 가이드

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[SQLD] C 재귀 프로그래밍 언어 활용 기출 #4085 | 문어CBT