모두CBT

다음 C 프로그램의 실행 결과로 옳은 것은?#include <st… | [계리직 컴퓨터일반] 14년 1회차 기출문제 상세 페이지

1[계리직 컴퓨터일반] 14년 1회차
다음 C 프로그램의 실행 결과로 옳은 것은?
#include <stdio.h>
int sub(int n)
{
if(n==0) return 0;
if(n==1) return 1;
return (sub(n-1) + sub(n-2));
}
void main()
{
int a=0;
a=sub(4);
printf("%d", a);
}
1
0
2
1
3
2
4
3
해설

sub(4)의 값은 3이므로 3이 출력된다.

sub는 n이 0이면 0, 1이면 1을 돌려주고 그 외에는 sub(n-1)+sub(n-2)를 구하는 피보나치 재귀 함수다.

sub(2)=sub(1)+sub(0)=1
sub(3)=sub(2)+sub(1)=2
sub(4)=sub(3)+sub(2)=3

  • 0: n이 0일 때의 반환값일 뿐이다.
  • 1: sub(2)의 값이다.
  • 2: sub(3)의 값이다.

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

이어서 풀어보기

[계리직 컴퓨터일반] 14년 1회차 20문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요계리직 컴퓨터일반 기출문제 암기장 전체 보기