26-1아래 C 프로그램의 출력 결과를 적으시오.#include <… | 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로 적지 않도록 주의한다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.