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