프로그래밍 정답

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

해 설

1. [출제의도] 실생활에서 일어나는 일을 프로그램 수식으로 작성할 수 있는가를 묻는 문제이다.

1,000원 미만을 구하기 위해서는 지불한 금액에서 물건 값을 뺀 금액을 1,000으로 나누었을 때 나머지를 구한다. 여기서 연산자의 우선 순위는 괄호→나머지→뺄셈 순이다.

2. [출제의도] 프로그래밍 언어의 일반적인 내용을 설명할 수 있느냐를 묻는 문제이다.

프로그래밍 언어는 저급언어와 고급언어로 나눌 수 있다.

[오답풀이] ㄷ의 고급언어로 작성한 프로그램은 컴파일러나 인터프리터를 사용하여 컴퓨터가 처리할 수 있는 기계어로 번역되어야 실행할 수 있다. ㄹ에서 저급언어는 컴퓨터가 처리하기 쉬운 반면 고급언어는 사용자가 이해하기 쉽다.

3. [출제의도] 순서도를 해석할 수 있느냐를 묻는 문제이다.

순서도에서 줄넘기와 철봉을 하지 않으면‘산책을 한다’ 로 이동하는 것이 아니라‘집에 간다’ 로 이동한다.

4. [출제의도] 2차원 배열을 옳게 선언할 수 있느냐를 묻는 문제이다.

표에 들어간 자료가 4행 5열이므로 2차원 배열을 사용하여 처리한다. 2차원 배열의 선언 형식은 C 언어에서는‘자료형 배열명[요소의 수][요소의 수];’ 이고, Visual Basic 언어에서는‘Dim 배열명(요소의 수-1, 요소의 수-1) As 자료형’ 이다.

5. [출제의도] for(For) 문을 사용할 수 있느냐를 묻는 문제이다.

10부터 20까지의 짝수이므로 초기값은 10이고 최종값은 20이며, 증가값은 2가 된다.

6. [출제의도] 문자열을 처리할 수 있느냐를 묻는 문제이다.

문자열의 길이를 구하는 라이브러리 함수는 C 언어에서는‘strlen()’ ,  Visual  Basic  언어에서는 ‘Len()’ 을 사용한다. 따라서 주어진 배열에서 문자열의 길이는‘good’ 의 4와 ‘bye’의 3이므로 7이 된다.

7. [출제의도] 주어진 임의의 수들의 합을 구하는 프로그램을 이해할 수 있느냐를 묻는 문제이다.

홀수는 2로 나누었을 때 나머지가 1인 수이다. 따라서 이 조건을 만족하는 수들의 합을 구하면 1부터 100까지 홀수의 합이 된다. 이때 합을 저장하는 변수의 초기값은 0이어야 한다.

8. [출제의도] do - while 문을 사용할 수 있느냐를 묻는 문제이다.

do ~ while 문의 조건식에 의해 n이 2보다 작거나 50보다 크면 참이 되어 다시 입력받으므로 ①의 1은 출력되지 않는다.

9. [출제의도] if(If) 문을 사용할 수 있느냐를 묻는 문제이다.

if 문의 조건식은 a와 b의 값이 서로 다를 경우에 참

이고, 이때 y의 값은 1이 된다.

10. [출제의도] 누적 합을 구하는 프로그램을 이해할 수 있느냐를 묻는 문제이다.

반복 수행되는 부분에서 a의 값을 1씩 증가한 후, a의 누적 합을 구한다.

[오답풀이] a의 초기값이 0이므로 ⑤의 2가 아닌 ④의 1이 되고, 반복 조건 a<50을 만족하는 최대값은 49인데 1을 증가시키면 50이므로 주어진 프로그램은 1부터 50까지의 합을 구하는 프로그램이다.

11. [출제의도] 2진수에서 1의 보수 프로그램을 작성할 수 있느냐를 묻는 문제이다.

if 문의 조건에서 배열의 요소값이 0이면 1을, 아니면 0을 저장하여 출력한다.

12. [출제의도] 배열을 이용한 프로그램을 이해할 수 있느냐를 묻는 문제이다.

배열의 요소값이 1인 것을 누적하여 그 값이 홀수이면‘오류’ 를 출력하므로, 보기에 주어진 배열 요소값에서 1의 개수가 홀수인 것을 찾는다.

13. [출제의도] 순차 탐색 알고리즘을 적용할 수 있느냐를 묻는 문제이다.

순차 탐색은 저장된 자료를 처음부터 마지막 자료까지 탐색하여 원하는 자료가 있으면 그 결과를 출력한다. 그런데 첨자가 0인 것을 고려하면 4이지만 출력하는 변수 a는 1이 증가된 a+1을 출력하므로 5가 된다.

14. [출제의도] 주어진 알고리즘을 해석할 수 있느냐를 묻는 문제이다.

1부터 30보다 작은 수에서 5의 배수를 출력하는 알고리즘이다. 따라서 30은 5의 배수이지만 (4) 단계조건에 어긋나므로 ⑤의 30은 출력하지 않는다.

15. [출제의도] 사용자 정의 프로그램을 작성할 수 있느냐를 묻는 문제이다.

호출 프로그램에서 인수 6을 가지고 sum 함수를 호출한다. 따라서 호출된 sum 함수는 10부터 6까지 2로 나누어 떨어지는 짝수(10, 8, 6)의 합을 구한다.

16. [출제의도] switch(Select) 문을 사용할 수 있느냐를 묻는 문제이다.

switch(Select)의 비교 대상인 배열에 저장된 요소값이 a이면 3을, b이면 2를, 그 외이면 1을 출력한다.

17. [출제의도] 등급 프로그램을 작성할 수 있느냐를 묻는 문제이다.

if 문의 조건을 만족하는 것은 변수 k 또는 e의 값이 100이면서 두 값의 평균을 구한 a가 90이상인 경우이다.

18. [출제의도] 되돌려주는 값이 있는 사용자 정의 프로그램을 이해할 수 있느냐를 묻는 문제이다.

호출 프로그램에서 인수 10을 가지고 k 함수를 호출한다. 호출된 k 함수에서 10*10을 계산한 후, 이 값을 호출한 함수로 되돌려준다. 따라서 출력되는 값은 100이다.

19. [출제의도] 정렬 프로그램을 작성할 수 있느냐를 묻는 문제이다.

주어진 정렬 프로그램은 정렬하고자 하는 자료의 위치를 찾을 때까지 기존의 정렬된 자료를 비교하여 그 값이 크면 하나씩 뒤로 이동한 후, 찾은 위치에 자료를 삽입한다.

20. [출제의도] 정렬 프로그램을 적용할 수 있느냐를 묻는 문제이다.

오름차순으로 정렬하는 프로그램이므로 출력 결과는‘3 4 5 6 7’ 이다. 따라서 마지막 값은 7이다.