모두CBT

26-1아래 C 프로그램의 출력 결과를 적으시오.#include &lt… | 2026년 정보처리기사실기 1회차 기출문제 상세 페이지

5

26-1

아래 C 프로그램의 출력 결과를 적으시오.

#include <stdio.h>

struct Hop {
    int *(*jump)(int *);
};

int *twoAhead(int *q) {
    return q + 2;
}

int main(void) {
    struct Hop h;
    int nums[] = {7, 13, 26, 45, 60, 91};
    h.jump = twoAhead;
    printf("%x", *h.jump(nums + 1) + *h.jump(nums));
    return 0;
}
해설

47


[해설]

구조체 멤버 jump는 int*를 받아 int*를 돌려주는 함수 포인터이고, twoAhead를 가리킨다. twoAhead는 받은 주소에서 원소 두 칸 뒤의 주소를 돌려준다.

  • h.jump(nums + 1) → nums + 3 → 역참조하면 nums[3] = 45
  • h.jump(nums) → nums + 2 → 역참조하면 nums[2] = 26
  • 합: 45 + 26 = 71

%x는 16진수로 출력하므로 71 = 4×16 + 7 → 47이다. 10진수 71로 적지 않도록 주의한다.

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