다음 C 프로그램에서 포인터 상대 인덱스가 원본 문자 배열을 바꾸는 위치를 확인하여 출력 결과를 쓰시오.
#include <stdio.h>
int main(void) {
char word[] = "SECURE";
char *cursor = word + 2;
cursor[2] = 'I';
printf("%c-%s-%c", *cursor, cursor, word[5]);
return 0;
}모범답안
C-CUIE-E
풀이와 판단 근거
cursor는 word[2]의 C를 가리킨다. cursor[2]는 그 위치에서 두 칸 뒤인 word[4]이므로 R이 I로 바뀌어 배열은 `SECUIE`가 된다. `*cursor`는 C, cursor를 `%s`로 읽으면 C부터 끝까지 `CUIE`, word[5]는 E다.
구분 기호까지 포함한 출력은 `C-CUIE-E`다.
자주 틀리는 지점
- cursor[2]를 word[2]로 계산해 C를 I로 바꿈
- 문자 배열 변경이 cursor로 출력하는 문자열에 반영되지 않는다고 봄
- `%s`가 cursor 주소값 자체를 출력한다고 오해함
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.