모두CBT

25-2아래 C 프로그램의 출력 결과를 적으시오.#include &lt… | 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이 출력된다.

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