25-3아래 C 프로그램을 실행했을 때 출력되는 값을 적으시오.#inc… | 2025년 정보처리기사실기 3회차 기출문제 상세 페이지
7
25-3
아래 C 프로그램을 실행했을 때 출력되는 값을 적으시오.
#include <stdio.h>
struct Link {
unsigned int val;
struct Link *nx;
};
int main(void) {
struct Link n1 = {6u, NULL};
struct Link n2 = {3u, NULL};
struct Link n3 = {8u, NULL};
struct Link *cur;
unsigned int acc = 0u;
n1.nx = &n3;
n3.nx = &n2;
for (cur = &n1; cur != NULL; cur = cur->nx)
acc = acc * 4u + cur->val;
acc = (acc ^ 60u) + 20u;
printf("%u", acc);
return 0;
}해설
211
[해설]
for 문은 선언 순서가 아니라 nx 포인터를 따라 n1 → n3 → n2 순으로 방문하므로, val은 6, 8, 3 순으로 읽힌다.
acc = acc × 4 + val
n1: 0 × 4 + 6 = 6
n3: 6 × 4 + 8 = 32
n2: 32 × 4 + 3 = 131
131 XOR 60 = 1000 0011 XOR 0011 1100
= 1011 1111 = 191
191 + 20 = 211
혼동 주의: C의 ^는 거듭제곱이 아니라 비트 XOR이라, 두 비트가 같으면 0, 다르면 1이 된다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.