26-1아래 C 프로그램을 실행했을 때 화면에 찍히는 값을 적으시오.#… | 2026년 정보처리기사실기 1회차 기출문제 상세 페이지
13
26-1
아래 C 프로그램을 실행했을 때 화면에 찍히는 값을 적으시오.
#include <stdio.h>
double headAvg(int v[], int cnt) {
int k, total = 0;
for (k = 0; k < cnt; k++)
total += v[k];
return (double)total / cnt;
}
double tailAvg(int *v, int cnt) {
int k, total = 0;
for (k = 0; k < cnt; k++)
total += *(v + k);
return (double)total / cnt;
}
int main(void) {
int data[8] = {72, 15, 38, 64, 90, 27, 51, 43};
printf("%.2f", headAvg(data, 5) + tailAvg(data + 5, 3));
return 0;
}해설
96.13
[해설]
배열을 매개변수로 받을 때 int v[]와 int *v는 똑같이 포인터로 처리된다. 그래서 v[k]와 *(v + k)는 같은 원소를 가리킨다.
- headAvg(data, 5): 72+15+38+64+90 = 279 → 279/5 = 55.8
- tailAvg(data + 5, 3): 시작 주소가 data[5]로 옮겨져 27+51+43 = 121 → 121/3 = 40.333…
- 합계 55.8 + 40.333… = 96.1333…
%.2f는 소수 셋째 자리에서 반올림해 둘째 자리까지 찍으므로 96.13이 출력된다. 정수 합을 (double)로 바꾼 뒤 나누므로 몫이 잘리지 않는다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.