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