모두CBT

21-3아래 C 프로그램이 출력하는 값을 적으시오.#include &l… | 2021년 정보처리기사실기 3회차 기출문제 상세 페이지

1

21-3

아래 C 프로그램이 출력하는 값을 적으시오.

#include <stdio.h>

struct Score {
    char id[8];
    int net, sw, sum1, sum2;
};

int main(void) {
    struct Score t[3] = {{"K01", 72, 90}, {"K02", 65, 83}, {"K03", 58, 94}};
    struct Score *q = t + 2;
    (q - 1)->sum1 = q->net + (q - 2)->sw;
    (q - 1)->sum2 = (q - 1)->sum1 - (q - 1)->sw + t[0].net;
    printf("%d\n", (q - 1)->sum2 * 2 - (q - 1)->sum1 + t[2].sum1);
    return 0;
}
해설

126


[해설]

구조체 초기화에서 값을 주지 않은 멤버(sum1, sum2)는 0으로 초기화된다. q는 t + 2이므로 q는 t[2], q − 1은 t[1], q − 2는 t[0]이다.

  • t[1].sum1 = t[2].net + t[0].sw = 58 + 90 = 148
  • t[1].sum2 = 148 − t[1].sw + t[0].net = 148 − 83 + 72 = 137
  • t[2].sum1은 대입된 적이 없어 0

137 × 2 − 148 + 0 = 126이다.

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