24-3아래 C 프로그램을 실행하면 출력되는 결과를 적으시오.#incl… | 2024년 정보처리기사실기 3회차 기출문제 상세 페이지
15
24-3
아래 C 프로그램을 실행하면 출력되는 결과를 적으시오.
#include <stdio.h>
void shift(int **pp, int len) {
for (int k = 0; k < len; k++)
*(*pp + k) = (*(*pp + k) * 2 + k) % len;
}
int main(void) {
int data[] = {6, 2, 5, 3, 4, 1};
int *p = data;
int **pp = &p;
shift(pp, 6);
printf("%d%d", data[1], data[4]);
return 0;
}해설
50
[해설]
pp는 p의 주소를, p는 data의 시작 주소를 가지므로 *(*pp + k)는 data[k]와 같다.
shift는 각 원소를 (값 × 2 + k) % 6으로 바꾼다.
- data[1]: (2 × 2 + 1) % 6 = 5
- data[4]: (4 × 2 + 4) % 6 = 12 % 6 = 0
printf("%d%d")는 두 값을 붙여 찍으므로 50이 출력된다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.