모두CBT

23-3아래 C 프로그램이 출력하는 내용을 적으시오.#include &… | 2023년 정보처리기사실기 3회차 기출문제 상세 페이지

16

23-3

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

#include <stdio.h>

int main(void) {
    const char *word = "DRAGON";
    const char *q = word + 1;
    printf("%s\n", word);
    printf("%s\n", q + 2);
    printf("%c\n", q[-1]);
    printf("%c\n", *(q + 3));
    printf("%c\n", *q - 1);
    return 0;
}
해설

DRAGON
GON
D
O
Q


[해설]

word는 "DRAGON"의 0번 글자를, q는 word + 1이므로 1번 글자 'R'을 가리킨다. 인덱스는 D=0, R=1, A=2, G=3, O=4, N=5다.

  • %s와 word: 처음부터 널 문자까지 → DRAGON
  • %s와 q + 2: 1+2=3번 칸부터 → GON
  • q[-1]: 1−1=0번 문자 → D
  • *(q + 3): 1+3=4번 문자 → O
  • *q - 1: 역참조가 먼저라 'R'(82)에서 1을 뺀 81 → Q

포인터 기준이 word가 아니라 q라는 점, 그리고 *(q + 3)은 주소를 옮긴 뒤 읽고 *q - 1은 읽은 문자 코드를 계산한다는 차이가 핵심이다.

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