• 검색 결과가 없습니다.

행정안전부 시험출제과장

N/A
N/A
Protected

Academic year: 2021

Share "행정안전부 시험출제과장"

Copied!
3
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

계산기 사용가능 여부 불가능

프로그래밍언어론 3 3

제 4 문. 신뢰도 있는 프로그램 개발을 위하여 프로그래밍 언어가 제공해야 하는 기능들 중에 예외처리(exception handling)가 있다. 다음 물음에 답하시오. (총 10점) 1) Java 언어와 C++ 언어의 예외처리 차이점을 설명하시오. (4점)

2) Java 언어와 C++ 언어의 예외처리 차이점을 보여주는 프로그램 코드를 예로 들어 설명하시오. (6점)

제 5 문. 객체지향 프로그래밍 언어에서 상속은 자료추상화, 다형성, 동적바인딩과 더불어 중요한 특징 중 하나이다. 다중상속(multiple inheritance)에 관한 다음

물음에 답하시오. (총 10점)

1) 다중상속의 문제점을 설명하시오. (5점)

2) 다중상속을 이용하면 편리한 경우를 예를 들어 설명하시오. (5점)

행정안전부 시험출제과장

(2)

계산기 사용가능 여부 불가능

프로그래밍언어론 2 3

제 3 문. 다음은 메소드(method)의 동적 바인딩(dynamic binding) 및 정적 바인딩(static binding)을 보여주는 Java와 C++ 프로그램이다. (총 10점)

<Java>

class A {

void p() {System.out.println("A.p");}

void q() {System.out.println("A.q");}

void f() { p(); q();}

}

class B extends A {

void p() {System.out.println("B.p");}

void q() {System.out.println("B.q"); super.q();}

}

public class VirtualEx {

public static void main(String[] arg) { A a = new B(); a.f();

} }

<C++>

#include <iostream.h>

class A {

public : void p() { cout<< "A.p\n";}

virtual void q() { cout<< "A.q\n";}

void f() {p(); q();}

};

class B : public A {

public : void p() { cout<< "B.p\n";}

void q() { cout<< "B.q\n";}

};

void main() { A a; B b;

b.f(); a = b; a.f();

}

1) 위 Java 프로그램의 실행 결과를 쓰고, 그 이유를 메소드의 호출 과정에서 메소드의 동적 바인딩과 정적 바인딩으로 구분하여 설명하시오. (5점)

2) 위 C++ 프로그램의 실행 결과를 쓰고, 그 이유를 메소드의 호출 과정에서 메소드의 동적 바인딩과 정적 바인딩으로 구분하여 설명하시오. (5점)

(3)

계산기 사용가능 여부 불가능

프로그래밍언어론 1 3

프로그래밍언어론

2010년 시행 행정고등고시(기술직) 제2차시험

응시번호 : 성명 :

제 1 문. 자료형(data type)과 관련된 다음 물음에 답하시오. (총 10점) 1) 프로그래밍 언어는 프로그램 내부에서 사용되는 모든 변수와 자료값에 자료형을

부여하는 방식에 따라 정적타이핑(static typing)을 쓰는 언어(예: C/C++, Fortran 등)와 동적타이핑(dynamic typing)을 쓰는 언어(예: Lisp, Scheme 등)로 나뉜다.

두 방식의 장․단점을 비교 설명하시오. (2점)

2) 정적타입검사(static type checking)와 동적타입검사(dynamic type checking) 방식의 장․단점을 비교 설명하시오. (2점)

3) 타입강제변환(coercion)의 개념과 타입강제변환이 가지는 장점을 설명하고, 타입강제변환을 지나치게 허용하는 경우의 문제점을 설명하시오. (3점)

4) 프로그래밍 언어는 강한 자료형 언어(strongly typed language)와 약한 자료형 언어(weakly typed language)로 분류될 수 있다. 이들의 차이점과 장․단점을 설명하고, C 프로그래밍 언어가 어느 쪽에 속하는지 설명하시오. (3점)

제 2 문. 프로그램과 관련하여 다음 물음에 답하시오. (총 10점) 1) 다음 C 프로그램의 실행결과를 쓰고, 이유를 설명하시오. (5점)

#include <stdio.h>

int fun(int* k) { *k += 4;

return 3*(*k)-1;

}

void main() {

int i = 10, j = 10, sum1, sum2;

sum1 = (i/2) + fun(&i);

sum2 = fun(&j) + (j/2);

printf("%d %d", sum1, sum2);

}

2) 다음 두 가지 경우에 대하여 아래의 C와 유사한 프로그램이 실행되었다고 가정할 때 x의 값을 각각 쓰고, 그 이유를 설명하시오. (5점)

① 피연산자가 왼쪽에서 오른쪽 순서로 평가되는 경우

② 피연산자가 오른쪽에서 왼쪽 순서로 평가되는 경우 int fun (int *i) {

*i += 5;

return 4;

}

void main() { int x = 3;

x = x + fun(&x);

}

참조

관련 문서

Pavlov 의 고전적 조건형성과 Skinner 의 조작적 조건형성에서 관찰되는 현상 중에 공통적 현상과 차이나는 현상을 기술하라. 다음 글을 읽고 물음에 답하시오. 가지

이처럼 상식화 되어가는 용어에 대한 명확한 의미를 이해하고 있지 못하는 경우가 많고 조직관리자 입장에서도 업무환경을 유지 개선 보호하기 위하여 위에 기술된 , , ,

유동현상해석을 위해 실험적 접근 방법이 시도되는데, 최소의 실험으로 최대의 정보를 얻기 위하여 차원해석(dimensional analysis)을 통하여 무차원

다음 세 가지 점토광물들에서 동형치환이 일어나는 위치를 비교하고, 이러한 동형치환의 위치 차이가 각 광물들의 비팽창성/팽창성, 양이온교환용량 및 식물에 대한