본문 바로가기

정보처리기사 Daily 문제

정보처리기사 실기 Daily 문제 24

출처 : [2021년 제1회 기사 실기 출제예상 문제] (6과목) 프로그램밍 언어 활용 - 20 : 네이버 카페 (naver.com)

빈칸에 들어갈 코드를 작성하시오

#include <stdio.h>

#define MAX_SIZE 10 // 스택 최대사이즈 지정

int stack[MAX_SIZE]; // 스택(배열)

int top; // 스택 top

// 스택 초기화

void init() { top = -1; }

// 스택 push 함수 (데이터 삽입)

int push(int val)

{

if(top >= MAX_SIZE - 1) {

printf("statck overflow\n");

return -1;

}

stack[빈칸1] = val; //top을 1증가 시키고 val을 스택에 넣음

return val;

}

// 스택 pop함수 (데이터를 꺼냄)

int pop(void)

{

if(top<0){

printf("stack underflow\n");

return -1;

}

return stack[빈칸 2]; //top을 1 감소

}

// 스택 내용 출력 함수

void print_stack() {

int i;

printf("in stack..");

for(i=top; i >= 0; i--) {

printf("%d", stack[i]);

}

printf("\n");

}

int main()

{

int i;

int item;

init();

// 스택에 1부터 10까지 삽입

for(i=1; i <= 10; i++) {

push(i);

}

//삽입확인

print_stack();

//스택에서 하나 꺼냄

item = pop();

printf("pop item is %d\n", item); // 꺼낸 데이터를 화면에 출력

// 스택 확인

print_stack();

return 0;

}

정답

빈칸 1 : ++top (top 이 -1이 초기값이므로 미리 더해야 한다.)

빈칸 2 : top