C 언어로 작성된 프로그램의 실행 결과로 옳은 것은?#include &… | [계리직 컴퓨터일반] 19년 1회차 기출문제 상세 페이지
1[계리직 컴퓨터일반] 19년 1회차
C 언어로 작성된 프로그램의 실행 결과로 옳은 것은?#include <stdio.h>
double h(double *f, int d, double x) {
int i;
double res = 0.0;
for(i=d-1; i >= 0; i--) {
res = res * x + f[i];
}
return res;
}
int main() {
double f[] = {1, 2, 3, 4 };
printf("%3.1f \n", h(f, 4, 2));
return 0;
}
1
11.0
2
26.0
3
49.0
4
112.0
해설
출력 결과는 49.0이다.
함수 h는 호너(Horner) 방식으로 다항식 의 값을 x=2에서 계산한다.
i=3: res = 0×2+4 = 4
i=2: res = 4×2+3 = 11
i=1: res = 11×2+2 = 24
i=0: res = 24×2+1 = 49
%3.1f 형식이므로 49.0이 출력된다.
- 11.0: 반복을 두 번(i=3, i=2)만 수행했을 때의 중간값이다.
- 26.0: 계수를 f[0]부터 높은 차수로 잘못 대응시킨 값(1·8+2·4+3·2+4)이다.
- 112.0: 반복 횟수나 곱셈 순서를 잘못 추적한 값으로, 실제 계산과 맞지 않는다.
오류나 개정된 내용이 보이면 알려주세요