모두CBT

다음 C 프로그램의 실행 결과는?#include <stdio.h&… | [7급 국가직 자료구조론] 26년 1회차 기출문제 상세 페이지

1[7급 국가직 자료구조론] 26년 1회차
다음 C 프로그램의 실행 결과는?
#include <stdio.h>

void function(int array[], int idx, int size) {
for(int i = idx; i < size - 1; i++)
array[i] = array[i + 1];
}

int main() {
int array[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
function(array, 5, 10);
function(array, 5, 10);

for(int i = 0; i < 10; i++)
printf("%d ", array[i]);
printf("\n");

return 0;
}
1
0 1 2 3 4 5 6 7 8 9
2
0 1 2 3 4 7 8 9 9 9
3
0 1 2 3 5 5 6 7 8 9
4
0 1 2 3 5 6 7 8 9 9
해설

출력은 0 1 2 3 4 7 8 9 9 9이다.

function은 idx부터 한 칸씩 왼쪽으로 당겨 array[idx]를 지우는 효과를 내며, 마지막 칸은 그대로 남는다.
1회 후: 0 1 2 3 4 6 7 8 9 9
2회 후: 0 1 2 3 4 7 8 9 9 9

  • 원래 배열 그대로라는 출력은 함수가 배열 원본을 수정한다는 점(배열 인자는 포인터 전달)을 놓친 것이다.
  • 4가 사라지고 5가 두 번 나오는 출력은 시작 인덱스를 잘못 잡은 것이다.
  • 5부터 9까지 한 칸만 당겨진 출력은 함수를 한 번만 호출한 경우이며, 시작 인덱스도 어긋난다.

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

이어서 풀어보기

[7급 국가직 자료구조론] 26년 1회차 25문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요7급 국가직 자료구조론 기출문제 암기장 전체 보기