모두CBT

25-2아래 C 프로그램의 실행 결과를 적으시오.#include &lt… | 2025년 정보처리기사실기 2회차 기출문제 상세 페이지

16

25-2

아래 C 프로그램의 실행 결과를 적으시오.

#include <stdio.h>
#define CAP 4

typedef struct {
    int buf[CAP];
    int head;
    int tail;
} Ring;

void push(Ring *r, int v) {
    r->buf[r->tail] = v;
    r->tail = (r->tail + 1) % CAP;
}

int pop(Ring *r) {
    int v = r->buf[r->head];
    r->head = (r->head + 1) % CAP;
    return v;
}

int main(void) {
    Ring r = {{0}, 0, 0};
    int x, y, z;
    push(&r, 5);
    push(&r, 8);
    push(&r, 6);
    pop(&r);
    push(&r, 9);
    push(&r, 7);
    x = pop(&r);
    y = pop(&r);
    z = pop(&r);
    printf("%d-%d-%d", z, x, y);
    return 0;
}
해설

9-8-6


[해설]

Ring은 크기 4의 원형 큐다. push는 tail 위치에 넣고, pop은 head 위치에서 꺼내며, 인덱스는 % CAP으로 되돌아간다.

  • push 5, 8, 6 → buf[0..2] = 5, 8, 6, tail = 3
  • pop → 5를 꺼냄(버림), head = 1
  • push 9 → buf[3] = 9, tail = 0 / push 7 → buf[0] = 7, tail = 1
  • x = pop → 8, y = pop → 6, z = pop → 9

printf는 z, x, y 순으로 찍으므로 9-8-6이다. 꺼내는 순서는 넣은 순서(FIFO)를 그대로 따른다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

2025년 정보처리기사실기 2회차 20문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요정보처리기사 실기 기출문제 암기장 전체 보기