모두CBT

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이 된다.

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