모두CBT

25-2아래 C 프로그램을 실행했을 때 출력값을 적으시오.#includ… | 2025년 정보처리기사실기 2회차 기출문제 상세 페이지

9

25-2

아래 C 프로그램을 실행했을 때 출력값을 적으시오.

#include <stdio.h>

struct item {
    int key;
    struct item *next;
};

int main(void) {
    struct item x = {4, NULL};
    struct item y = {7, NULL};
    struct item z = {2, NULL};
    struct item *top = &y;
    x.next = &y;
    y.next = &z;
    z.next = NULL;
    y.next = &x;
    x.next = &z;
    z.next = &y;
    y.next = NULL;
    top = &x;
    printf("%d %d %d", top->key, top->next->key, top->next->next->key);
    return 0;
}
해설

4 2 7


[해설]

next 포인터는 마지막에 대입된 값만 남으므로, 최종 연결 상태만 따지면 된다.

  • x.next = &z (앞선 &y를 덮어씀)
  • z.next = &y (앞선 NULL을 덮어씀)
  • y.next = NULL (앞선 &z, &x를 덮어씀)

top은 &x로 바뀌었으므로 x → z → y 순으로 따라가 4 2 7이 출력된다.

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