정보처리기사 실기C언어C 배열난이도 4MCQ

정보처리기사 실기 C 배열 기출문제 #3870

문제

다음 C 코드의 출력 결과로 가장 적절한 것은?

C
#include <stdio.h> char Data[5] = {'B', 'A', 'D', 'E'}; char c; int main() { int i, temp, temp2; c = 'C'; printf("%d\n", Data[3] - Data[1]); for (i = 0; i < 5; ++i) { if (Data[i] > c) break; } temp = Data[i]; Data[i] = c; i++; for (; i < 5; ++i) { temp2 = Data[i]; Data[i] = temp; temp = temp2; } for (i = 0; i < 5; i++) { printf("%c", Data[i]); } }

① 4 BACDE ② 4 BADEC ③ 3 BACDE ④ 4 ABCDE

정답

1

해설

정답: 1. 'E' - 'A'는 ASCII 코드 차이로 4이고, 'C'를 첫 번째로 자신보다 큰 문자 D 위치에 삽입하면 배열은 B, A, C, D, E가 된다.

오답 풀이

  • 1번: 첫 줄 4와 최종 문자열 BACDE가 맞다.
  • 2번: 삽입 후 뒤 원소 이동이 잘못 계산되었다.
  • 3번: ASCII 코드 차이를 잘못 계산했다.
  • 4번: 기존 배열 순서를 완전 정렬한 것이 아니다.

보충 개념 문자끼리 뺄셈하면 해당 문자의 정수 코드값 차이가 계산된다. C의 전역 char 배열은 명시하지 않은 마지막 원소가 '\0'으로 초기화된다.

정보처리기사 실기 시험 준비 가이드

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[정보처리기사 실기] C 배열 C언어 기출 #3870 | 문어CBT