모두CBT

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칸)는 이동 칸 수가 달라 같은 공식으로 계산하면 틀린다.

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