모두CBT

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

15

24-2

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

#include <stdio.h>

void put(char *to, const char *from) {
    for (; *from != '\0'; from++, to++)
        *to = *from;
    *to = '\0';
}

int main(void) {
    char buf[32] = "keyboard";
    int acc = 0;
    put(buf, "moon");
    for (int i = 0; buf[i] != '\0'; i++)
        acc += i * 2;
    printf("%d %c", acc, buf[5]);
    return 0;
}
해설

12 a


[해설]

put은 포인터를 한 칸씩 옮기며 "moon"을 buf 앞부분에 덮어쓰고, 끝에 '\0'을 넣는다.

  • 복사 전 buf: k e y b o a r d
  • 복사 후 buf: m o o n \0 a r d (인덱스 4가 널 문자)

for는 널 문자 전까지인 i = 0~3만 돌아 acc = 0 + 2 + 4 + 6 = 12다. 널 뒤의 buf[5]에는 원래 문자 'a'가 그대로 남아 있어 출력은 12 a다.

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