재구성 출제 고지: 이 편은 국가평생교육진흥원 독학학위제 컴퓨터과학 전공 3단계 「프로그래밍언어론」의 최신 출제기준(평가영역) 중 제어 구조, 하위프로그램·매개변수 전달, 하위프로그램 구현(활성화 레코드), 언어 구현 방식 영역을 근거로 새로 구성한 코드·모델 추론형 예상문제 24문항입니다. 실제 특정 회차의 기출 문항을 그대로 옮기거나 암기해 재현한 것이 아니며, 13~15·21편에서 다룬 개념을 의사코드 실행 추적과 스택 그림 해설로 재구성했습니다. 실제 응시 시 문항 수·배점·시험 시간은 그해 시행 공고를 반드시 확인하시기 바랍니다. 아래 의사코드는 특정 프로그래밍언어의 실제 문법이 아니라 매개변수 전달·스코프 규칙을 비교하기 위한 교육용 표기입니다.
이 편의 영역 구성
| 문항 번호 | 출제기준 영역 | 관련 편 | 유형 |
|---|---|---|---|
| 1–4 | 제어 구조 설계(선택·반복·다중 루프·case) | 13편 | 코드 추적 |
| 5–10 | 매개변수 전달 방식(값·참조·값-결과·이름) | 14편 | 코드 결과 대조 |
| 11–17 | 활성화 레코드 구조·정적 체인·동적 체인·재귀 구현 | 15편 | 모델·스택 그림 |
| 18–22 | 언어 구현 방식(컴파일러·인터프리터·링크) | 21편 | 개념·비교 |
| 23–24 | 매개변수 전달과 활성화 레코드 종합 | 14–15편 | 종합·코드 추적 |
문제 1
i = 1
while i <= 3 do:
j = 1
while j <= 2 do:
만약 j == 2이면 break(안쪽 루프만 탈출)
(i, j)를 출력한다
j = j + 1
i = i + 1문제 2
문제 3
n = 3
switch n:
case 1: A를 출력한다
case 2: B를 출력한다
case 3: C를 출력한다
case 4: D를 출력한다
default: E를 출력한다
(각 case 끝에 break가 없다고 가정 — fall-through 언어)문제 4
문제 5
다음 하위프로그램 swap이 두 값을 서로 바꾸려는 목적으로 작성되었다고 하자.
procedure swap(a, b):
temp = a
a = b
b = temp
x = 1
y = 2
call swap(x, y) // 값 전달(pass by value) 방식
x와 y를 출력한다문제 6
문제 5와 동일한 swap 코드를 이번에는 참조 전달(pass by reference)로 호출한다고 가정한다.
문제 7
문제 8
다음은 값-결과 전달(pass by value-result, copy-restore)로 호출되는 하위프로그램이다. 형식 매개변수 a는 실제 인자 x와 연결되고, 또 다른 실제 인자로 배열 원소 arr[1]도 함께 넘겨받으며, 이 하위프로그램 안에서 배열 arr 자체도 전역으로 접근 가능하다고 하자.
전역 배열 arr = [10, 20]
procedure p(a):
a = a + 1
arr[1] = 99 // 전역 배열을 직접 변경
// 값-결과 전달로 arr[1]을 인자로 넘겨 호출
call p(arr[1])
arr[1]을 출력한다문제 9
문제 10
문제 11
문제 12
문제 13
정적 스코프 언어에서 다음과 같이 하위프로그램이 중첩되어 정의되어 있다고 하자.
procedure Outer는:
지역 변수 x = 5
procedure Inner는:
x를 출력한다 // Outer의 지역 변수 x를 참조
call Inner()
call Outer()문제 14
문제 15
다음과 같이 재귀적으로 정의된 팩토리얼 하위프로그램을 3을 인자로 호출한다.
function factorial(n):
만약 n <= 1이면 1을 반환한다
아니면 n * factorial(n - 1)을 반환한다
factorial(3)을 호출한다문제 16
문제 17
문제 18
문제 19
문제 20
문제 21
문제 22
문제 23
다음 하위프로그램은 참조 전달로 배열 원소 하나를 넘겨받아 값을 두 배로 만든다.
procedure doubleIt(a): // 참조 전달
a = a * 2
전역 배열 nums = [3, 7]
call doubleIt(nums[2])
nums를 출력한다문제 24
참고 자료
- 국가평생교육진흥원 독학학위제 — https://bdes.nile.or.kr
- cppreference.com, Function declaration and parameter passing — https://en.cppreference.com/w/cpp/language/function