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 뒤에 있음) 조건만 맞으면 건너뛴다는 점에 주의한다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.