모두CBT

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)로 바꾼 뒤 나누므로 몫이 잘리지 않는다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.