◦ 먼저 수험생이 선택한 과목의 문제지인지 확인하시오.

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

제 4 교시    직업탐구영역(프로그래밍)

성명			수험번호						3

직업탐구영역

프로그래밍

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

직업탐구영역

프로그래밍

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

◦ 문제지에 성명과 수험 번호를 정확히 기입하시오.

◦ 답안지에 수험 번호, 선택 과목, 답을 표기할 때는 반드시 ‘수험생이 지켜야 할 일’에 따라 표기하시오.

◦ 문항에 따라 배점이 다르니, 각 물음의 끝에 표시된 배점을 참고하시오. 3점 문항에만 점수가 표시되어 있습니다. 점수 표시가 없는 문항은 모두 2점씩입니다.

프로그래밍

65

72

5권 중 5권

1. 대화에서 말하는 특징을 공통으로 가진 프로그래밍 언어를 <보기>에서 고른 것은?

타 언어에 비해

이해하기가 어렵지.

하드웨어를 제어하기에 적합한 언어야.

컴퓨터의 기종에 따라서 프로그램을 수정해야 해.

		< 보 기 >
	ㄱ. 코볼 ㄴ. 기계어 ㄷ. 베이식 ㄹ. 포트란 ㅁ. C언어 ㅂ. 어셈블리어

① ㄱ, ㄴ	② ㄴ, ㅂ	③ ㄷ, ㄹ

④ ㄷ, ㅁ	⑤ ㄹ, ㅂ

2. 순서도 (가), (나)에 대한 설명으로 옳은 것은?

아니오

예

조건

명령문

아니오

예

조건

명령문

(가)	(나)

① (가)의 순서도를 코딩하기 위해서는 if문이 필수적이다.

② (나)의 순서도를 코딩하기 위해서는 if문이 필수적이다.

③ (가)의 형태가 (나)의 형태보다 훨씬 빠르게 실행된다.

④ (가)에서 명령문은 조건에 따라서 한 번도 수행되지 않을 수 있다.

⑤ (나)에서 명령문은 조건에 따라서 한 번도 수행되지 않을 수 있다.

3. 프로그램의 실행 결과 출력되는 내용으로 옳은 것은?

C 언어	Visual Basic 언어
#include<stdio.h> void park(){ printf("Lucky\n"); } void main(){ park(); printf("Good\n"); }	Function park() Print "Lucky" End Function Private Sub Form_Activate() park Print "Good" End Sub

① Good	② Lucky	③ Good Lucky

④ Good	⑤ Lucky

Lucky	Good

4. <보기>에서 올바른 변수명을 고른 것은?

		< 보 기 >
	ㄱ. for ㄴ. sum ㄷ. 3man ㄹ. x_age ㅁ. age*

① ㄱ, ㄷ	② ㄱ, ㄹ	③ ㄴ, ㄹ

④ ㄴ, ㅁ	⑤ ㄷ, ㅁ

5. 프로그램을 실행한 후 변수 a, b의 입력값에 대하여 출력 결과가 다른 것은?

C 언어	Visual Basic 언어
#include<stdio.h> void main(){ int a, b; scanf("%d %d",&a,&b); if (a<b && a+b>5) printf("True"); }	Private Sub Form_Activate() Dim a As Integer, b As Integer a = InputBox("a=") b = InputBox("b=") If a < b And a + b > 5 Then Print "True" End If End Sub

a	b

①   1	2

②   3	4

③   4	4

④   5	3

⑤   6	6

6. 그림의 놀이 기구를 탈 수 있는 조건을 논리식으로 바르게 표현한 것은?

프로그래밍

66

72

5권 중 5권

<탑승 조건>

이 놀이 기구는  키가 130cm 이상이거나

A

나이가 16세 이상이어야 하며,

B

몸무게는 80Kg 이하이어야 탑승할 수 있습니다.

C

C 언어	Visual Basic 언어

① A || (B && C)	A Or (B And C)

② ( A || B ) || C	( A Or B ) Or C

③ ( A || B ) && C	( A Or B ) And C

④ ( A && B ) || C	( A And B ) Or C

⑤ ( A && B ) && C	( A And B ) And C

7. 프로그램의 실행 결과 출력되는 내용으로 옳은 것은?

C 언어	Visual Basic 언어
#include<stdio.h> void main(){ int cnt=2; switch (cnt){ case 2: printf("A");break; case 1: printf("B");break; default : printf("C"); } }	Private Sub Form_Activate() Dim cnt As Integer cnt=2 Select Case cnt Case 2 Print "A"; Case 1 Print "B"; Case Else Print "C"; End Select End Sub

① A	② B	③ C	④ AB	⑤ ABC

8. 다음은 1부터 20까지의 자연수 중 3의 배수의 합을 구하는 프로그램이다. 에 들어갈 내용으로 옳은 것은? [3점]

C 언어	Visual Basic 언어
#include <stdio.h> void main(){ int a=0, sum=0; while(a<=20){ sum=sum+a; ; } printf("sum=%d",sum); }	Private Sub Form_Activate() Dim a As Integer, sum As Integer a=0 : sum=0 While a<=20 sum=sum+a Wend Print "sum=" ; sum End Sub

① a=a+1	② a=a-1	③ a=a+3

④ a=a-3	⑤ a=sum+3

9. 프로그램 실행 후 변수 a, b에 저장되는 값에 대한 설명으로 옳은 것은?

C 언어	Visual Basic 언어
#include<stdio.h> void main() { int a, b; a=30; b=40; a=a+b; b=a-b; a=a-b; }	Private Sub Form_Activate() Dim a As Integer, b As Integer a=30 : b=40 a=a+b b=a-b a=a-b End Sub

① a에 40, b에 30이 저장된다.

② a에 30, b에 40이 저장된다.

③ a, b에는 각각 30이 저장된다.

④ a, b에는 각각 40이 저장된다.

⑤ a에 70, b에 -10이 저장된다.

10. 다음 순서도의 수행 결과 각 변수에 저장되는 값으로 옳은 것은? [3점]

m=m-k

c=0

m=10, k=3

m>=k

c

c=c+1

아니오

예

① c=1	② c=3	③ k=0	④ k=7	⑤ m=10

11. 프로그램 실행 후 입력 값이 6일 경우 출력되는 내용으로 옳은 것은? [3점]

C 언어	Visual Basic 언어
#include <stdio.h> void main(){ int a, n; int x[6]={3,7,0,1,6,5}; scanf("%d", &n); for(a=0;a<=5;a++){ if(x[a]==n){ printf("%d",a); break; } } }	Private Sub Form_Activate() Dim a As Integer, n As Integer Dim x() As Variant x() = Array(3, 7, 0, 1, 6, 5) n = InputBox("n=") For a=0 To 5 If x(a) = n Then Print a: Exit For End If Next a End Sub

① 2	② 3	③ 4	④ 5	⑤ 6

12. 프로그램 실행 결과 출력되는 내용으로 옳은 것은?

프로그래밍

71

72

5권 중 5권

C 언어	Visual Basic 언어
#include<stdio.h> void main() { printf("%d", 'c'-'a'); }	Private Sub Form_Activate() Print Asc("c")-Asc("a") End Sub

① 2	② 3	③ a	④ c	⑤ c-a

13. 다음 프로그램에 대한 설명으로 옳지 않은 것은?

C 언어	Visual Basic 언어
#include<stdio.h> void kk(int x, int y, int z){ float r; r=(x+y+z)/3.0; printf("r=%f",r); } void main(){ int a=3,b=4; kk(a, b, 5); }	Private Sub kk(x As Integer, _ y As Integer, z As Integer) Dim r As Single r = (x + y + z) / 3 Print "r="; r End Sub Private Sub Form_Activate() Dim a As Integer Dim b As Integer a=3: b=4 kk a, b, 5 End Sub

① 변수 x에는 3이 전달된다.

② 변수 z에는 5가 전달된다.

③ kk 함수로 3개의 인수가 전달된다.

④ kk 함수는 전달받은 인수의 평균값을 계산하여 출력한다.

⑤ 밑줄 부분을 5, b, a로 바꾸면 kk 함수의 출력값이 달라진다.

14. 프로그램 실행 결과 계산되는 과정을 수식으로 바르게 나타낸 것은? [3점]

C 언어	Visual Basic 언어
#include<stdio.h> int m(int k){ return k * k; } void main(){ int a, sum; sum=0; for(a=1; a<=4; a++) sum=sum+m(a); printf("%d",sum); }	Function m(k) As Integer m = k * k End Function Private Sub Form_Activate() Dim a As Integer Dim sum As Integer sum=0 For a=1 To 4 sum = sum + m(a) Next a print sum End Sub

① 1*2*3*4

② [eqn: 1+2+3+4]

③ [eqn: 1-2+3-4]

④ [eqn: 1+2 ^{2} +3 ^{2} +4 ^{2}]

⑤ [eqn: 1+(1+2)+(1+2+3)+(1+2+3+4)]

15. 언어의 번역 과정을 다음과 같이 순서도로 표현하였다. 이에 해당하는 번역 방식과 프로그래밍 언어를 바르게 짝지은 것은? [3점]

아니오

예

처음 한 문장을 가져온다.

번역할 문장이

남아 있는가?

번역된 문장을 실행한다.

원시 프로그램을 작성한다.

시작

가져온 문장을 번역한다.

다음 한 문장을 가져온다.

끝

번역 방식	프로그래밍 언어

① 컴파일러	C 언어

② 컴파일러	BASIC 언어

③ 인터프리터	C 언어

④ 인터프리터	BASIC 언어

⑤ 인터프리터	FORTRAN 언어

16. 다음은 학급 청소 당번을 정하기 위해 출석 번호를 6으로 나누어 나머지 값에 따라 청소 당번을 배정하기 위한 표이다.

나머지 값	0	1	2	3	4	5
청소 요일	월	화	수	목	금	토

출석 번호에 해당하는 청소 요일을 출력하는 프로그램을 작성하기 위해 에 들어갈 내용으로 옳은 것은? [3점]

C 언어	Visual Basic 언어
#include<stdio.h> void main(){ char x[6][3]={"월","화", "수","목","금","토"}; int num, p; printf("번호=?"); scanf("%d",&num); ; printf("%s",x[p]); }	Private Sub Form_Activate() Dim x() As Variant Dim num As Integer Dim p As Integer x()=Array("월","화", _ "수","목","금","토") num=InputBox("번호=?") Print x(p) End Sub

C 언어	Visual Basic 언어

① num=p % 6	num=p Mod 6

② p=num % 6	p=num Mod 6

③ num=num / 6	num=num / 6

④ p=(num-p) / 6	p=(num-p) / 6

⑤ p=int(num*10+0.5)/10	p=Int(num*10+0.5)/10

17. 영희가 아래와 같이 일을 하였을 때, 받을 용돈을 계산하는 프로그램이다. 출력되는 값은? [3점]

프로그래밍

72

72

5권 중 5권

일의 종류(work)	일한 시간(time)	시간당 용돈
1(집안 청소)	1시간	프로그램 소스 참조
2(심부름)	3시간

C 언어	Visual Basic 언어
#include<stdio.h> void main(){ int sum=0,cnt=0; int work[2]={1,2}; int time[2]={1,3}; do{ switch(work[cnt]) { case 1 : sum+=2000*time[cnt]; break; case 2 : sum+=1000*time[cnt]; break; } cnt=cnt+1; }while(cnt<2); printf("%d",sum); }	Private Sub Form_Activate() Dim sum As Integer Dim cnt As Integer Dim time(), work() As Variant work() = Array(1, 2) time() = Array(1, 3) Do Select Case work(cnt) Case 1 sum = sum + 2000 * time(cnt) Case 2 sum = sum + 1000 * time(cnt) End Select cnt = cnt + 1 Loop While cnt < 2 Print sum End Sub

① 1500	② 5000	③ 6500	④ 7500	⑤ 9000

18. 그림은 로봇에 의해 관리되는 자동화 주차 시스템이다. 로봇은 단지 4개의 명령만 수행할 수 있으며 주차장의 구조와 로봇의 명령은 다음과 같다.

출구

서쪽(W)	동쪽(E)

명령	로봇의 동작
pop_E pop_W move_E move_W	동쪽 차 1대를 출구로 꺼낸다. 서쪽 차 1대를 출구로 꺼낸다. 서쪽 차 1대를 동쪽으로 최대한 이동한다. 동쪽 차 1대를 서쪽으로 최대한 이동한다.
※ 주차장의 폭은 차량 1대씩만 이동 가능하다.

위 시스템에서 자동차를 ㉠, ㉡, ㉢의 순서대로 출구로 꺼내기 위해 로봇에 지시해야 할 명령의 순서로 옳은 것은? [3점]

①	②	③	④	⑤
move_E pop_W pop_E pop_W	pop_W move_E pop_W pop_E	move_E pop_W move_W pop_W pop_W	move_E move_E pop_W move_W pop_E pop_W	move_E move_E pop_E move_E pop_E pop_E

19. 프로그램의 실행 결과 출력되는 내용으로 옳은 것은? [3점]

C 언어	Visual Basic 언어
#include<stdio.h> void main() { int a,b; int x[5]={1,3,5,6,7}; int y[5]={3,4,5,1,2}; for(a=0;a<=4;a++){ for(b=0;b<=4;b++){ if(x[a]==y[b]) printf("%d ",x[a]); } } }	Private Sub Form_Activate() Dim a, b As Integer Dim x(), y() As Variant x() = Array(1, 3, 5, 6, 7) y() = Array(3, 4, 5, 1, 2) For a = 0 To 4 For b = 0 To 4 If x(a) = y(b) Then Print x(a); " "; End If Next b Next a End Sub

① 1	② 3	③ 5

④ 1 3 5	⑤ 1 2 3 4 5 6 7

20. 다음은 배열의 요소들을 정렬하는 프로그램이다. 이에 대한 설명으로 옳은 것은? [3점]

C 언어	Visual Basic 언어
#include<stdio.h> void main() { int a,temp,k,flag; int x[6]={1,2,3,8,7,5}; k=5; flag=1; while(flag>0){ k=k-1; flag=0; for(a=0;a<=k;a++){ if(x[a]>x[a+1]){ temp=x[a]; x[a]=x[a+1]; x[a+1]=temp; flag=1; } } } }	Private Sub Form_Activate() Dim a, k, temp, flag As Integer Dim x() As Variant x() = Array(1, 2, 3, 8, 7, 5) k = 5: flag = 1 While flag > 0 k = k - 1: flag = 0 For a = 0 To k If x(a) > x(a + 1) Then temp = x(a) x(a) = x(a + 1) x(a + 1) = temp flag = 1 End If Next a Wend End Sub

① 변수 k의 최종값은 0이다.

② 선택정렬 방법을 사용하여 정렬하였다.

③ 배열 요소값을 내림차순으로 정렬하였다.

④ while문 내부의 문장들은 총 6회 수행된다.

⑤ 배열 요소값이 교환될 경우에 flag값은 1이 된다.

※ 확인 사항

○ 문제지와 답안지의 해당란을 정확히 기입(표기)했는지 확인하시오.

67

72

여 백 입 니 다

68

72

여 백 입 니 다

69

72

여 백 입 니 다

70

72

여 백 입 니 다