프로그래밍 정답

1	②	2	④	3	⑤	4	⑤	5	①
6	④	7	④	8	②	9	③	10	⑤
11	③	12	④	13	②	14	③	15	④
16	②	17	③	18	①	19	①	20	⑤

해 설

1. [출제의도] 프로그램 개발 절차와 각 단계별 수행 작업을 이해하고 있는지 묻는 문제이다.

그림의 회의 내용은 입출력설계 단계이며 문제에서 요구하는 다음 단계는 알고리즘 작성 단계이다.

2. [출제의도] 프로그래밍 언어의 종류와 특징을 이해하고 있는지 묻는 문제이다.

그래프에서 객체지향 언어인 JAVA는 점유율이 늘고 있으며 절차지향 언어인 C의 점유율은 줄고 있다. 홈페이지 개발에 주로 사용하는 PHP는 점유율이 늘고 있고 저급 언어는 그래프에 나타나 있지 않다.

3. [출제의도] 나머지 연산자의 동작 방식을 이해하고 있는지 묻는 문제이다.

x가 0이 되려면 a는 36의 약수이어야 한다. 8은 36의 약수가 아니다.

4. [출제의도] 주어진 조건에 따라 추론하여 문제를 해결할 수 있는지 묻는 문제이다.

[정비 지침서]에 의하면 A 부품에 속하는 정보처리기가 고장 난 경우  WiFi 및 카메라는 고장 난다. 또한 WiFi가 고장 나면 GPS도 고장 난다. 목관절의 A 부품은 2개가 있으므로 어느 것이 고장인지 알 수 없다.

5. [출제의도] 주어진 조건에 따라 추론하여 문제를 해결할 수 있는지 묻는 문제이다.

3단계에서 a에 있던 1개의 콩은 분할된 후 1개는 벽에 맞고 a로 떨어지고 나머지 1개는 b에 떨어진다. b에 있던 3개의 콩은 분할되어 a로 3개, c로 3개가 떨어지고, d에 있던 3개의 콩은 분할되어 c로 3개, e로 3개가 떨어진다. 따라서 c의 콩은 6개가 된다. e의 콩은 분할되어 d로 1개 떨어진다.

6. [출제의도] 변수의 저장 구조를 이해하고 있는지 묻는 문제이다.

1개의 부호 비트가 있으므로 양의 정수와 음의 정수 모두 저장 가능하다. 자료 저장 크기가 7비트이므로 0 ~ 127까지 저장 가능하며 음수일 경우 2의 보수를 사용하면 (-1) ~ (-128)까지 저장 가능하다.

7. [출제의도] 순서도의 기호와 수식을 이해하고 해독할 수 있는지 묻는 문제이다.

순서도의 조건을 해석하면 A가 10보다 작은 경우 ‘단계 2’로 이동한다.

8. [출제의도] 재귀 함수를 이용하여 주어진 문제를 해결할 수 있는지 묻는 문제이다.

재귀 함수 f의 첫 번째 매개 변수는 초이고 두 번째 매개 변수는 1 / 2씩 줄어드는 속도이다. 함수를 재귀 호출할 때마다 1초씩 줄어들어야 하므로 첫 번째 매개 변수는 t - 1이 된다.

9. [출제의도] 문제를 해결할 수 있는 논리적 추론 능력을 평가하는 문제이다.

[측정 1]을 이용하면 [측정 2]의 오른쪽 접시 ‘○△△’는 ‘□□’로 치환할 수 있다. [측정 2]의 오른쪽 접시는 ‘○○□□’가 되므로 양쪽 접시에서 ‘□’ 2개를 빼주면 ‘□’ 한 개와 ‘○’ 두 개의 무게는 같다.

10. [출제의도] 주어진 조건을 분석하여 이를 프로그램으로 구현하는 능력을 평가하는 문제이다.

변수 a는 전문가 수, b는 보조자 수로 사용하였고 이들의 총연봉을 변수 won에 저장하였다. 총예산 6억 원 한도 내에서 최댓값을 갖는 a와 b를 출력하면 해를 구할 수 있다,

11. [출제의도] 제시된 프로그램의 분석 능력을 평가하는 문제이다.

전문가보다는 보조자를 많이 고용할수록 총고용자 수를 크게 할 수 있다. 총예산 6억 원으로는 전문가 12명, 보조자 20명을 고용할 수 있다.

12. [출제의도] 2차원 배열과 제어문으로 구성된 프로그램의 분석 능력을 평가하는 문제이다.

배열 a에서 m = 3 이거나 n = 3 또는 m + n = 3에 해당하는 배열의 요소값에 1을 채우므로 이를 LED 매트릭스에 표시하면 숫자 4의 모양이 출력된다.

13. [출제의도] while문과 for문으로 구성된 이중 루프 프로그램의 분석 능력을 평가하는 문제이다.

while문은 0 ~ 2까지 3회 반복되며, 첫 번째 for문은 ‘O’를, 두 번째 for문은 ‘-’를 출력한다. 따라서 출력되는 부호는 ‘O-’, ‘OO-’, ‘OOO-’이므로 이에 해당하는 문자는 ‘AUV’가 된다.

14. [출제의도] 1차원 배열을 사용한 프로그램의 분석 능력을 평가하는 문제이다.

프로그램을 실행하면 배열 z에는 ‘0, 1, 1, 1’이 저장된다. 이 값과 배열 x, y의 요솟값을 하나씩 비교하면 z는 x와 y의 논리합 연산 결과와 같다.

15. [출제의도] 이중 for문을 이용한 정렬 프로그램에서 자료 교환 횟수를 구할 수 있는지 묻는 문제이다.

프로그램을 실행하면 표와 같이 자료가 교환된다.

a	배열 data	교환 횟수
0	10, 50, 20, 40, 30	0
1	10, 20, 50, 40, 30	1
2	10, 20, 40, 50, 30 10, 20, 30, 50, 40	2
3	10, 20, 30, 40, 50	1

16. [출제의도] 1차원 배열에 저장된 자료의 위치를 탐색할 수 있는지 묻는 문제이다.

배열 b에서 자료 ‘S’의 위치는 세 번째 이지만 배열의 첨자는 0부터 시작하므로 출력되는 수는 2이다.

17. [출제의도] 사용자 정의 함수를 이용한 프로그램을 해석할 수 있는지 묻는 문제이다.

t = 0일 때는 fn(1, 1), t = 1일 때는 fn(2, 3), t = 3일 때는 fn(4, 6)을 호출한다. 그러므로 마지막에 출력되는 수는 4 + 5 + 6의 합인 15가 된다.

18. [출제의도] 명제 논리의 분석 능력을 평가하는 문제이다.

은경의 진술만 참이므로 건우가 모임에 빠졌다.

[오답해설] 참석 : O   불참 : X

출결 가정	수혁	민우	은경	건우
수혁의 진술만 참	O	X	O	X
민우의 진술만 참	O	O	X	X
은경의 진술만 참	O	O	O	X
건우의 진술만 참	X	O	O, X	O

19. [출제의도] 나머지 연산자를 활용한 수식을 해석할 수 있는지 묻는 문제이다.

(2050 + 8)을 12로 나눈 나머지는 6이다. 따라서 배열 s의 7번째 값인 ‘말’을 출력한다.

20. [출제의도] 2차원 배열과 제어문을 활용한 프로그램의 분석 능력을 평가하는 문제이다.

새로운 차가 들어오면 2차원 배열의 첨자 a = 2, b = 5인 위치의 값부터 검사한다. 배열의 값이 1이면 다음으로 넘어가고 0이면 해당 첨자를 출력한다.