2011학년도 대학수학능력시험 9월 모의평가 [프로그래밍]해설

[정답]

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

1. [출제의도] 고급 프로그래밍 언어의 특징

[정답 ] ①

제시문에서 스마트폰에 대한 예시를 들면서 자바프로그래밍 언어에 대해 소개하였다.

자바프로그래밍 언어는 고급언어이므로 <보기>에서 고급언어의 특징에 해당하는 것을 찾으면 된다. 자바프로그래밍 언어는 고급언어이므로 언어번역프로그램이 필요하므로 ㄷ은옳지 않으며 ㄹ은 기계어에 대한 설명으로 자바언어에 해당되지 않는다.

2. [출제의도] 변수값의 교환 개념에 대해 알고 있는가?

[정답]③

영역놀이 규칙에 따라 해당영역에 적절한 무늬를 칠해준다. 단계 1에서 A = B이므로 A를 B의 무늬형태로 만든다. 단계 2에서 B = C이므로 B를 C의 무늬형태로 만든다. 단계3에서 C = A이므로 C를 A 무늬 형태로 만들게 되므로 정답은 ③이 된다.

3. [출제의도]주어진 알고리즘을 분석할 수 있는가?

[정답]⑤

주어진 알고리즘은 그릇 A에 있는 사탕을 B의 크기 만큼 묶어서 묶여진 개수를 C에 표시하고 남은 개수를 D에 적게 하는 내용이다. 따라서 A를 B로 나누었을 때, C는 몫이 되고, D는 나머지가 되는 것이다. 따라서 A 사탕의 총 개수는 B * C + D가 된다.

4. [출제의도] 논리식의 표현

[정답]④

주어진 조건을 논리식으로 나타내는 문제이다. 조건을 보면 센서 A에 차량이 감지되어야 하고, B의 무게가 2000kg이하여야 한다. 따라서 논리식으로 나타내면 A와 B <= 2000이라는 조건이 논리곱의 형태로 연결되어야 한다.

5.[출제의도] 변수값의 표현

[정답]③

동물의 정보를 관리하는 프로그램을 작성하기 위해 주어진 변수에 올바른 데이터를 대입한 선언문을 찾는 문제이다. 이름의 경우 문자형으로 선언되어야 하며 age는 정수형태로 선언되어야 한다. 몸무게의 경우 실수형태로 선언되어야 하며 Species의 경우도 문자의 형태로 출력되어야 한다. 따라서 올바른 정답은 ③이 된다.

6. [출제의도] 주어진 용어의 정의를 알고 있는가?

[정답]⑤

주어진 문제의 정답 여부에 따라 스탬프일람표에 스탬프를 받게 된다. 알고리즘은 순서도로 표현할 수 있으며, 프로그램은 처리해야할 명령문의 집합이라고 할 수 있다. 또한 사용자가 작성한 프로그램은 원시 프로그램이 된다.

7.[출제의도] 주어진 프로그램을 분석할 수 있는가?

[정답] ②

주어진 반복문에 의해 d값은 다음과 같이 변하며 출력값은 다음과 같다.

c의 값	0	1	2	3	4
배열b의 값	0	2	-1	3	-2
d의값	0	2	1	4	2
출력값	A	C	B	E	C

8. [출제의도] 주어진 논리식을 분석할 수 있는가?

[정답]①

주어진 논리식을 분석하면 다음과 같다.

y1 : a와 b는 같지 않으므로 조건식은 ‘참’이 된다.

y2 : a = 6으로 10보다 작으므로 조건식은 ‘참’이 된다.

y3 : 8 < 9 조건을 만족하는데 앞에 not조건이 붙어 있으므로 조건식은 ‘거짓’이 된다.

y4 : a < b조건은 참이고 b > c조건은 거짓이며 따라서 두 조건식의 논리곱 조건이므로 조건식은 ‘거짓’이 된다. 따라서 논리기호에서 참을 얻을 수 있는 것은 입력이 y1과 y2인 경우이다.

9. [출제의도] 프로그램의 실행결과를 구할 수 있는가?

[정답]②

주어진 프로그램에서 static으로 선언된 변수 c는 함수를 벗어나더라도 프로그램이 종료되기 전까지 주어진 값을 보존하게 된다. 따라서 c의 값에 따라 함수부분에서 반복문의 횟수는 1회, 2회, 3회가 된다. 따라서 출력결과는

♣

♣♣

♣♣♣ 와 같이 출력이 된다.

10. [출제의도] 주어진 순서도를 제어문으로 나타낼 수 있는가?

[정답]②

주어진 순서도는 반복문을 이용하여 처리할 수 있다. 따라서 반복을 나타내는 제어명령문을 고르면 된다.

11.[출제의도] 주어진 내용을 논리식으로 표현할 수 있는가?

[정답]⑤

[추억놀이 게임]의 내용을 논리식으로 표현하면 다음과 같다.

A	B	Y
0	0	0
0	1	1
1	0	1
1	1	0

Y가 1인 경우를 골라  논리식으로 표현하면 되므로 ⑤번과 같이 된다.

12. [출제의도] 프로그램을 분석할 수 있는가?

[정답]②

주어진 프로그램은 원소를 차례대로 가져와 배열 a의 원소와 비교하여 작은 원소가 있을때는 변수 d에 더하고 같을때는 변수 c에 더하게 하는 프로그램이다. 이 결과값을 이용하여 배열 b의 값을 구한 후 결과를 출력하게 된다. 이 프로그램의 수행과정을 표로 나타내면 다음과 같다.

원소	c의 값	d의 값	배열b의 값
4	3	1	1 + 0.5 * 3	2
5	2	3	3 + 0.5 * 2	4
6	2	4	4 + 0.5 * 2	5
4	3	1	1 + 0.5 * 3	2
1	2	0	0 + 0.5 * 2	1

13. [출제의도] 주어진 프로그램을 분석할 수 있는가?

[정답]④

ㄱ. Func2는 실행 후 결과값을 돌려주지 않는다.

ㄴ. 변수 a는 지역변수이므로 Func2에서만 사용됨.

ㄷ. 배열 d는 지역변수가 아닌 전역변수임.

ㄹ. 전달받은 인자의 값은 7,3이므로 2개임.

따라서 <보기>에서 올바른 설명은 ㄴ과 ㄹ이 됨.

14.[출제의도] 프로그램을 분석할 수 있는가?

[정답] ⑤

7,3이 함수에 전달되면 7을 3으로 나눈 나머지 값이 차례로 배열 d에 저장된다.

따라서 배열 d의 첫 번째 원소는 1, 두 번째 원소는 2가 저장된다.

배열 d의 출력을 뒤에서부터 차례대로 출력하고 있으므로 출력값은 2 1이 된다.

15. [출제의도] 주어진 순서도를 수식으로 표현할 수 있는가?

[정답] ①

a, b값을 입력받아 a값을 b번만큼 m에 더하게 되므로 결국 m = a * b가 된다.

16. [출제의도] 주어진 논리식의 결과값을 알고 있는가?

[정답]④

ㄱ의 경우 fire값이 0인 상태에서도 “화재경보”가 울리게 되므로 거짓임.

ㄴ의 경우 fire가 1이 될 때에만 "화재경보“가 출력되므로 ‘참’이됨

ㄷ의 경우 0과 같지 않은 경우 “화재경보”를 출력하게 되므로 ‘참’이 됨.

17. [출제의도] 주어진 프로그램을 분석할 수 있는가?

[정답]⑤

주어진 프로그램을 분석해 보면 배열 d의 원소를 함수 subs에 보내어 되돌려진 값을 변수 t에 더하는 프로그램이다.

3의 경우 3으로 나누어 떨어지므로 되돌려지는 값은 3이 된다. 1의 경우 3으로 나누었을 때 나머지 값이 1이므로 배열 t의 요솟값 3이 되돌려진다. 5의 경우 3으로 나누었을 때 나머지의 값이 2이므로 배열 t의 요솟값 1이 되돌려 진다. 6인 경우 3으로 나누었을 때 나머지의 값이 0이므로 값 6이 되돌려진다. 결국 t에 누적되는 값은 3+3+1+6 = 13이 된다.

18. [출제의도] 주어진 프로그램을 분석할 수 있는가?

[정답]①

반복문을 수행하면서 조건을 비교하여 조건이 ‘참’인 경우 변수 b에 배열 k값을 더해주고, 조건이 거짓인 경우 변수 b에서 1을 빼주는 프로그램이다. 따라서 실행과정은 다음과 같다. 출력되는 b의 최종값은 1이 된다.

배열 c	배열d	배열k	b
1	1	1	1
4	2	2	1-1 =0
2	3	1	0-1 = -1
1	1	2	-1 + 2 = 1

19. [출제의도]프로그램을 분석할 수 있는가?

[정답]③

프로그램에서 함수 Func3()은 4번 실행된다. 이유는 호출쪽 반복문에서 반복문의 실행이 1부터 4까지이기 때문이다. 또한 반환되는 값은 n이 아니라 c가 된다. Func3()에 변수 2가 전달되면 점선(가)부분은 조건을 만족하지 않으므로 실행되지 않는다.

20.[출제의도]프로그램의 실행결과를 알 수 있는가?

[정답]②

호출쪽 반복문에의해 변화되는 프로그램값은 다음과 같다.

호출쪽 반복문	조건(k<=n)	반환값
1	3 <= 1	1
2	3 <= 2	1
3	3 <= 3	2
4	3 <= 4	3

따라서 출력되는 값을 차례로 적으면 1 1 2 3이 된다.