모두CBT

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이 출력된다.

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