1. 그림은 고객관리 프로그램 개발팀의 회의 모습이다. 프로그램 개발 절차에 따라 이 팀이 회의를 끝낸 후 다음 단계에서 할 작업으로 옳은 것은?

2011학년도 10월 고3 전국연합학력평가 문제지

직업탐구 영역(프로그래밍)

제 4 교시

성명			수험번호						3

직업탐구 영역

(프로그래밍)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

직업탐구 영역

(프로그래밍)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

25

52

2권 중 2권

프린터로 출력할

수 있는 기능이

필요해.

입력장치는

스캐너도

포함해야 해.

입출력 자료의
양이 많으니 파일

출력이 가능해야 해.

① 논리 오류를 찾아 디버깅한다.

② 순서도를 이용하여 알고리즘을 작성한다.

③ 프로그램 설치 안내서와 사용 설명서를 만든다.

④ 프로그래밍 언어로 프로그램을 작성하고 실행한다.

⑤ 모의 데이터를 입력하여 프로그램 작동을 시험한다.

2. 그래프는 수업 중 학생이 발표한 자료로서 프로그래밍 언어 종류의 연도별 점유율을 나타낸 것이다. 이에 대한 설명으로 옳은 것은?

① 객체지향 언어의 점유율이 줄고 있다.

② 그래프에는 절차지향 언어가 나타나 있지 않다.

③ 홈페이지 개발을 주목적으로 하는 언어의 점유율이 줄고 있다.

④ 2010년 현재 점유율이 가장 높은 언어는 객체지향 언어이다.

⑤ 저급 언어의 점유율이 가장 낮은 이유는 임베디드 프로그래밍을 할 수 없기 때문이다.

3. 다음 문장을 수행하였을 때, 변수 x가 0이 될 수 없는 a값은?

C 언어	비주얼 베이식 언어
int a, x; x = 36 % a;	Dim a, x As Integer x = 36 Mod a

① 2	② 3	③ 4	④ 6	⑤ 8

4. ○○사의 로봇은 [부품 연관표]와 같이 A, B 부품이 서로 연관되어 있다. [정비 지침서]에 따라 점검하였을 때, ‘정보처리기’가 고장 난 로봇에서 확실히 고장 났다고 판단할 수 없는 부품은?

[부품 연관표]

A 부품	B 부품
정보처리기	WiFi
정보처리기	카메라
WiFi	GPS
어깨관절	목관절
목관절	정보처리기
허리모터	목관절

[정비 지침서]

◦ A 부품이 고장 나면 연관된 모든 B 부품은 고장 난다.

◦ B 부품이 고장 났다면 연관된 A 부품 중 어느 하나가 고장 난 것이다.

① GPS	② WiFi	③ 목관절

④ 카메라	⑤ 어깨관절

5. 그림은 [규칙]에 따라 단계별로 변하는 콩의 상태를 나타낸 것이다. 4단계 때 접시별 콩의 개수로 옳은 것은?

* 점선으로 표시한 콩은 분할되어 소멸된 콩을 나타낸다.

[규칙]

(1) 단계가 진행됨에 따라 각각의 콩들은 2개로 분할되어 이웃 접시에 떨어진다.

(2) 접시 a에서 왼쪽으로 분할된 콩은 접시 a에 떨어진다.

(3) 접시 e에서 오른쪽으로 분할된 콩은 소멸된다.

a   b   c   d   e

① 4   1   6   0   3

② 4   3   6   3   3

③ 4   4   6   3   4

④ 5   9   1   9   5

⑤ 5  10   1   9   0

6. 정수형 자료를 저장하기 위한 기억장소의 구조가 그림과 같을 때, 이러한 기억장소에 저장할 수 있는 자료의 최대 범위로 옳은 것은?

① 0 ~ 127

② 0 ~ 128

③ 0 ~ 255

④ -128 ~ 127

⑤ -255 ~ 255

7. [알고리즘]은 순서도의 내용을 단계별로 기술한 것이다. [알고리즘] 단계 중 순서도와 맞지 않는 것은?

26

52

2권 중 2권

[알고리즘] 단계 1 : A = 0, S = 0으로 초기화한다. 단계 2 : A값을 1 증가시킨다. 단계 3 : A * A를 계산하고 결과를 S에 누적한다. 단계 4 : A가 10보다 크면 ‘단계 2’로 가고, 그렇지 않으면 ‘단계 5’로 간다. 단계 5 : S의 값을 출력한다.	시작 A=0 S=0 A=A+1 S=S+A*A A<10 S 끝 예 아니요

① 단계 1	② 단계 2	③ 단계 3	④ 단계 4	⑤ 단계 5

8. 다음은 초기 속도가 10[m/초]이고, 1초 후마다 속도가 1 / 2씩 줄어드는 물체의 5초 후 총 이동 거리를 구하는 프로그램이다.  안에 들어갈 문장으로 옳은 것은? [3점]

C 언어	비주얼 베이식 언어
#include <stdio.h> float f(int t, float v){ if(t>0) return v+f( , v/2); else return 0; } void main(){ int t=5; float v=10.0; printf("%f\n", f(t, v)); }	Function f(t As Integer, _ v As Single) As Single If t > 0 Then f = v + f( , v/2) Else f = 0 End If End Function Private Sub Form_Activate() Dim t As Integer Dim v As Single t = 5: v = 10 Print f(t, v) End Sub

① t	② t - 1	③ t + 1	④ t / 2	⑤ t * 2

9. 그림과 같이 저울이 [측정 1]과 [측정 2]에서 평형이 되었다. 이에 대한 설명으로 옳은 것은?

[측정 1]

[측정 2]

① ‘○’ 1개는 ‘□’ 1개의 무게와 같다.

② ‘○’ 1개는 ‘□’ 2개의 무게와 같다.

③ ‘○’ 2개는 ‘□’ 1개의 무게와 같다.

④ ‘○’ 2개는 ‘△’ 3개의 무게와 같다.

⑤ ‘○’ 3개는 ‘△’ 4개의 무게와 같다.

[10 ~ 11] [조건]에 따라 고용할 수 있는 최대 인원수를 구하는 프로그램을 작성하였다. 물음에 답하시오.

[조건]

◦ 전문가 연봉은 2,500만 원이고 보조자 연봉은 1,500만 원이다.

◦ 올해 인건비 총예산은 6억 원이다.

◦ 인건비의 총합은 총예산을 초과할 수 없다.

◦ 올해 최소한 12명의 전문가를 고용해야 한다.

◦ 한 사람의 전문가를 고용하면 적어도 한 사람 이상의 보조자가 필요하다.

C 언어	비주얼 베이식 언어
#include <stdio.h> void main(){ int a, b, won; int mx=0, mxa, mxb; for(a=12; a<=100; a++){ for(b=a; b<=100; b++){ won=a*25+b*15 ; if(won<=600){ if( ){ mx=a+b; mxa=a; mxb=b; } } } } printf("%d %d\n", mxa, mxb); }	Private Sub Form_Activate() Dim a, b, won As Integer Dim mx, mxa, mxb As Integer mx = 0 For a = 12 To 100 For b = a To 100 won = a * 25 + b * 15 If won <= 600 Then If Then mx = a + b mxa = a: mxb = b End If End If Next b Next a Print mxa; mxb End Sub

10.  안에 들어갈 문장으로 옳은 것은? [3점]

① a > b	② a < b	③ (a * b) > mx	④ (a + b) < mx	⑤ (a + b) > mx

11. 프로그램 실행 후 출력되는 결과로 옳은 것은? [3점]

① 12  12	② 12  15	③ 12  20

④ 15  17	⑤ 20  12

12. 그림은 [배열 a]에 저장된 값(‘0’ 또는 ‘1’)을 대응하는 [LED 매트릭스]에 출력한 예시이다. 프로그램 실행 후 배열에 저장된  값을 [LED 매트릭스]에 출력하였을 때 나타나는 숫자로 옳은 것은? [3점]

[배열 a]               [LED 매트릭스]

n m	0	1	2	3	4	5		켜짐, ○ 꺼짐
0	0	1	1	1	1	0
1	0	1	0	0	1	0
2	0	1	0	0	1	0
3	0	0	0	0	1	0
4	0	0	0	0	1	0
5	0	0	0	0	1	0

C 언어	비주얼 베이식 언어
#include<stdio.h> void main() { int a[6][6], m, n; for(m=0; m<=5; m++) { for(n=0; n<=5; n++) { if(m==3 || n==3 || m+n==3) a[m][n]=1; else a[m][n]=0; } } }	Private Sub Form_Activate() Dim a(5, 5), m, n As Integer For m = 0 To 5 For n = 0 To 5 If m = 3 Or n = 3 Or _ m + n = 3 Then a(m, n) = 1 Else a(m, n) = 0 End If Next n Next m End Sub

① 1	② 2	③ 3	④ 4	⑤ 5

27

52

2권 중 2권

13. 표는 문자에 대한 모스부호를 나타낸 것이다. 프로그램 실행 후 출력되는 세 줄의 모스부호에 각각 대응하는 문자는? [3점]

문자	모스부호	문자	모스부호
A	O -	F	O O - O
B	- O O O	G	- - O
C	- O - O	U	O O -
D	- O O	V	O O O -
E	O	Z	- - O O

C 언어	비주얼 베이식 언어
#include<stdio.h> void main() { int a, b, c; a=0; b=0; c=0; while(c<3) { for(a=0; a<=c; a++) printf("O"); for(a=0; a<=b; a++) printf("-"); printf("\n"); c=c+1; } }	Private Sub Form_Activate() Dim a, b, c As Integer a = 0: b = 0: c = 0 Do While c < 3 For a = 0 To c Print "O"; Next a For a = 0 To b Print "-"; Next a Print c = c + 1 Loop End Sub

① ABC	② AUV	③ BDF	④ EFG	⑤ EFZ

14. 프로그램 실행 후 배열 x, y와 배열 z에 저장된 요솟값들의  관계에 대한 설명으로 옳은 것은? [3점]

C 언어	비주얼 베이식 언어
#include<stdio.h> void main() { int x[4]={0,0,1,1}; int y[4]={0,1,0,1}; int a, z[4]; for(a=0; a<=3; a++) { if(x[a]==1 || y[a]==1) z[a]=1; else z[a]=0; } }	Private Sub Form_Activate() Dim x(), y() As Variant x() = Array(0, 0, 1, 1) y() = Array(0, 1, 0, 1) Dim a, z(3) As Integer For a = 0 To 3 If x(a) = 1 Or y(a) = 1 Then z(a) = 1 Else z(a) = 0 End If Next a End Sub

① z는 x와 같다.

② z는 y와 같다.

③ z는 x와 y의 논리합(OR) 연산 결과와 같다.

④ z는 x와 y의 논리곱(AND) 연산 결과와 같다.

⑤ z는 x와 y의 논리곱 연산 결과에 대한 논리 부정(NOT) 연산 결과와 같다.

15. 프로그램 실행 후 출력되는 결과로 옳은 것은? [3점]

C 언어	비주얼 베이식 언어
#include<stdio.h> void main() { int a, b, t, cnt; int data[5]={10,50,20,40,30}; cnt=0; for(a=0; a<=3; a++) { for(b=a+1; b<=4; b++) { if(data[a]>data[b]) { t=data[a]; data[a]=data[b]; data[b]=t; cnt=cnt+1; } } } printf("%d\n",cnt); }	Private Sub Form_Activate() Dim a, b, t, cnt As Integer Dim data() As Variant data() = Array(10,50,20,40,30) cnt = 0 For a = 0 To 3 For b = a + 1 To 4 If data(a) > data(b) Then t = data(a) data(a) = data(b) data(b) = t cnt = cnt + 1 End If Next b Next a Print cnt End Sub

① 1	② 2	③ 3	④ 4	⑤ 5

16. 프로그램 실행 후 출력되는 결과로 옳은 것은?

C 언어	비주얼 베이식 언어
#include<stdio.h> void main() { int a; char b[]={'R','E','S','U','L','T'}; for(a=0; a<=5; a++) if('S'==b[a]) printf("%d\n", a); }	Private Sub Form_Activate() Dim a As Integer Dim b() As Variant b()=Array("R","E","S","U","L","T") For a = 0 To 5 If "S" = b(a) Then Print a; Next a End Sub

① 1	② 2	③ 3	④ 4	⑤ 5

17. 프로그램 실행 후 마지막에 출력되는 값으로 옳은 것은? [3점]

C 언어	비주얼 베이식 언어
#include <stdio.h> int fn(int st, int ed){ int a, sum; sum=0; for(a=st; a<=ed; a++) sum=sum+a; return sum; } void main() { int k, t; k=1, t=0; while(k<6){ printf("%d\n", fn(k, k+t)); t=t+1; k=k+t; } }	Function fn(st As Integer, _ ed As Integer) As Integer Dim a, sum As Integer sum = 0 For a = st To ed sum = sum + a Next a fn = sum End Function Private Sub Form_Activate() Dim k As Integer, t As Integer k = 1: t = 0 While k < 6 Print fn(k, k + t) t = t + 1 k = k + t Wend End Sub

① 5	② 6	③ 15	④ 16	⑤ 21

18. 네 명의 학생 중 한 명이 모임에 빠졌다. 다음 중 한 학생의 진술만 옳다고 했을 때, [규칙]에 따라 해석할 경우 모임에 빠진 학생은? [3점]

수혁 : “민우가 빠졌어.”

민우 : “은경이가 빠졌어.”

은경 : “나는 안 빠졌어.”

건우 : “수혁이는 빠졌고, 나는 안 빠졌어.”

[규칙]

◦ ‘A가 빠졌다.’의 거짓은 ‘A는 안 빠졌다.’이다.

◦ ‘A는 빠졌고, B는 안 빠졌다.’의 거짓은 ‘A는 안 빠졌고, B는 빠졌다.’이다.

① 건우	② 민우	③ 수혁

④ 은경	⑤ 알 수 없음

19. 프로그램 실행 후 출력되는 결과로 옳은 것은?

28

52

C 언어	비주얼 베이식 언어
#include <stdio.h> void main() { int y, re; y=2050; char s[12][10]={"쥐", "소", "호랑이", "토끼", "용", "뱀", "말", "양", "원숭이", "닭", "개", "돼지"}; re = (y + 8) % 12 ; printf("%s\n", s[re]); }	Private Sub Form_Activate() Dim y, re As Integer Dim s() As Variant y = 2050 s() = Array("쥐", "소", "호랑이", _ "토끼", "용", "뱀", "말", "양", _ "원숭이", "닭", "개", "돼지") re = (y + 8) Mod 12 Print s(re) End Sub

① 말	② 소	③ 양	④ 돼지	⑤ 호랑이

20. 다음은 주차장에 주차할 위치의 번호를 출력하는 프로그램이다. 프로그램 실행 후 차가 주차할 위치로 옳은 것은? [3점]

C 언어	비주얼 베이식 언어
#include<stdio.h> int s[3][6]; void main() { int a, b; s[1][1]=1; s[1][5]=1; s[2][4]=1; s[2][5]=1; a=2; b=5; while(a>0) { if(s[a][b]==0) { s[a][b]=1; break; } b=b-1; if(b==0) {a=a-1; b=5;} } printf("%d\n",a*10+b); }	Dim s(2, 5) As Integer Private Sub Form_Activate() Dim a, b As Integer s(1,1)=1 : s(1,5)=1 s(2,4)=1 : s(2,5)=1 a = 2: b = 5 Do While a > 0 If s(a, b) = 0 Then s(a, b) = 1 Exit Do End If b = b - 1 If b = 0 Then a = a - 1: b = 5 End If Loop Print a * 10 + b; End Sub

① (A)	② (B)	③ (C)	④ (D)	⑤ (E)

※ 확인 사항

◦ 답안지의 해당란에 필요한 내용을 정확히 기입(표기)했는지 확인하시오.

28

52

2권 중 2권