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