25-2아래 C 프로그램의 출력 결과를 적으시오.#include <… | 2025년 정보처리기사실기 2회차 기출문제 상세 페이지
5
25-2
아래 C 프로그램의 출력 결과를 적으시오.
#include <stdio.h>
#include <stdlib.h>
typedef struct Link {
char ch;
struct Link *prev;
} Link;
Link *stack_up(const char *txt) {
Link *top = NULL;
for (int i = 0; txt[i] != '\0'; i++) {
if (txt[i] == '-')
continue;
Link *nw = (Link *)malloc(sizeof(Link));
nw->ch = txt[i];
nw->prev = top;
top = nw;
}
return top;
}
int main(void) {
Link *cur = stack_up("MO-ON");
while (cur != NULL) {
Link *del = cur;
printf("%c", cur->ch);
cur = cur->prev;
free(del);
}
return 0;
}해설
NOOM
[해설]
stack_up은 새 노드를 항상 맨 앞(top)에 붙이므로, 연결 리스트는 입력의 역순으로 쌓인다(스택).
- 하이픈(-)은 continue로 건너뛰어 노드가 만들어지지 않는다.
- M, O, O, N 순으로 쌓여 top부터 N → O → O → M
main은 top부터 prev를 따라가며 한 글자씩 찍고 메모리를 해제하므로 NOOM이 출력된다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.