24-1아래 C 프로그램이 출력하는 문자열을 적으시오.#include … | 2024년 정보처리기사실기 1회차 기출문제 상세 페이지
13
24-1
아래 C 프로그램이 출력하는 문자열을 적으시오.
#include <stdio.h>
#include <ctype.h>
char rot(char c) {
if (isupper(c))
return (c - 'A' + 4) % 26 + 'A';
if (islower(c))
return (c - 'a' + 7) % 26 + 'a';
if (isdigit(c))
return (c - '0' + 6) % 10 + '0';
return c;
}
int main(void) {
const char *src = "Zip 47";
char dst[32];
int k = 0;
while (src[k] != '\0') {
dst[k] = rot(src[k]);
k++;
}
dst[k] = '\0';
printf("%s\n", dst);
return 0;
}해설
Dpw 03
[해설]
rot은 문자 종류마다 다른 칸 수만큼 순환 이동하며, 끝을 넘으면 나머지 연산(% 26, % 10)으로 처음으로 되돌아온다.
- Z는 (25 + 4) % 26 = 3이라 D가 된다.
- 소문자는 7칸 이동해 i(8)는 p(15)가 되고 p(15)는 w(22)가 된다.
- 공백은 어느 조건에도 해당하지 않아 그대로 남는다.
- 숫자는 6칸 이동해 4는 (4 + 6) % 10 = 0, 7은 (7 + 6) % 10 = 3이 된다.
따라서 출력은 Dpw 03이다.
대문자(4칸)와 소문자(7칸)는 이동 칸 수가 달라 같은 공식으로 계산하면 틀린다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.