모두CBT

25-1아래 C 프로그램이 표준 출력으로 내보내는 내용을 적으시오.#i… | 2025년 정보처리기사실기 1회차 기출문제 상세 페이지

13

25-1

아래 C 프로그램이 표준 출력으로 내보내는 내용을 적으시오.

#include <stdio.h>

char word[6] = {'G', 'C', 'K', 'M', 'P'};

int main(void) {
    char key = 'H';
    int pos = 0, hold, nxt;
    printf("%d\n", word[4] - word[2]);
    while (pos < 5 && word[pos] <= key)
        pos++;
    hold = word[pos];
    word[pos] = key;
    for (pos = pos + 1; pos < 6; pos++) {
        nxt = word[pos];
        word[pos] = hold;
        hold = nxt;
    }
    for (pos = 0; pos < 6; pos++)
        printf("%c", word[pos]);
    return 0;
}
해설

5
GCHKMP


[해설]

문자끼리 빼면 아스키 코드의 차이가 정수로 나온다. word[4]는 'P'(80), word[2]는 'K'(75)라서 첫 줄은 5다.

while은 값이 key 'H'(72) 이하인 동안 pos를 늘린다. 'G'(71)와 'C'(67)를 지나 'K'에서 멈추므로 pos = 2다.

  • word[2]의 'K'를 hold에 옮기고 그 자리에 'H'를 넣는다.
  • for가 hold를 한 칸씩 뒤로 넘겨 K는 word[3], M은 word[4], P는 word[5]로 밀린다.
  • 배열 크기가 6이라 마지막 'P'도 잘리지 않는다.

둘째 줄은 GCHKMP다. 앞부분이 정렬돼 있지 않아도(C가 G 뒤에 있음) 조건만 맞으면 건너뛴다는 점에 주의한다.

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