다음 C 프로그램의 실행 결과를 두 줄로 쓰시오.
#include <stdio.h>
int main(void) {
char letters[5] = {'B', 'A', 'D', 'E', '\0'};
char target = 'C';
int pos;
printf("%d\n", letters[3] - letters[1]);
for (pos = 0; pos < 4; pos++) {
if (letters[pos] > target) break;
}
for (int i = 4; i > pos; i--) {
letters[i] = letters[i - 1];
}
letters[pos] = target;
for (int i = 0; i < 5; i++) printf("%c", letters[i]);
return 0;
}모범답안
4 BACDE
풀이와 판단 근거
첫 줄은 E의 문자 코드에서 A의 문자 코드를 뺀 값이다. 69 – 65이기 때문에 4가 최종 출력에 나타난다.
C보다 큰 첫 문자는 D이다. D부터 뒤의 문자를 한 칸씩 밀고 그 자리에 C를 넣으면 배열이 B, A, C, D, E가 되어 BACDE가 최종 출력에 나타난다.
자주 틀리는 지점
- 연산자 우선순위나 재귀 반환 순서를 생략하고 눈에 보이는 값만 바로 계산함
- 값 전달·참조 전달, 오버라이딩·오버로딩 또는 배열과 포인터의 차이를 혼동함
- 출력의 공백·줄바꿈·대소문자를 무시해 4 / BACDE와 다른 형식으로 작성함
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.