정보처리기사/실기 기출문제 풀이
2025년 실기 복원 문제
2025년 정보처리기사 실기 시험 복원 문제 모음
1회차
C언어 아스키 코드
- 첫 번째 출력
"%d\n"→ 정수형 출력 및 줄바꿈 문자Data[3] - Data[1]→ 아스키 코드 연산으로 결과는4(69('D') - 65('A'))
- 첫 번째
for문- 아스키 코드 비교 연산을 통해
i=2일 때'C' < 'D'이므로break구문 실행
- 아스키 코드 비교 연산을 통해
- 배열 요소 교체
temp에'D'를 할당하고Data[2]를'C'로 교체 후i는3으로 증가
- 두 번째
fortemp2에Data[i](현재 순회 요소)를 저장하고temp를 해당 인덱스 요소로 교체하는 것을 반복
Java try ... catch
java.lang.ArithmeticException
정수형(int) 연산에서 0 으로 나누면 발생하는 런타임 예외에 해당하며, 컴파일은 잘 되지만 실행 중에 프로그램이 중단된다.
| 예외 클래스 | 설명 |
|---|---|
ArithmeticException | 0으로 나누기 |
NullPointerException | null 객체 접근 |
ArrayIndexOutOfBoundsException | 배열 인덱스 초과 |
Exception | 모든 예외의 최상위 클래스 |
Java static
static
static 키워드는 자바에서 클래스 단위로 공유되는 멤버를 선언할 때
사용하며, 객체 생성과 관계 없이 메모리에 한 번 만들어지고 모든 객체가
공유한다. 자식 클래스도 동일.
클래스의 자동 호출 규칙
자바에서 자식 클래스 생성자가 호출되면 반드시 부모 생성자가 먼저
호출된다. 즉, 자식 생성자 첫 줄에서 암묵적으로 super() 가 삽입되어
실행되는 것과 같다.
만약 부모 생성자에 매개변수가 있다면, 자식 생성자에서 명시적으로 super(인자) 호출을 해야 한다. 명시적 호출이 없다면 컴파일 에러가 발생한다.
- 역순으로 코드 해석 진행
Child기본 생성자 호출- 부모 클래스인
Parent의 생성자가 우선적으로 자동 호출
- 부모 클래스인
Parent기본 생성자 호출total에2(++v)를 더해total은2- 이후
showValue()를 실행하는데 자식 클래스인Child에서 재정의했으므로 자식 클래스의showValue()를 실행하여2 += 2 * 2가 되어total은6
Child생성자 진입v += 2를 통해v는12가 됨total += (v++)를 통해total에12가 더해져18이 되고v는 다음 줄에13이 됨- 이후
showValue()를 실행하여total += total * 2가 실행되어18 = 18 * 2이고 최종적으로total은54
- 마지막으로 정적 변수를 출력하여
54출력
Java 재귀함수
- 재귀함수는 호출 구조와 탈출 조건을 명확히 파악해야 한다.
a[2] + Math.max(a[1] + Math.max(a[0], 0), a[3])(탈출 처리된Math.max제외)- 각 인덱스 요소로 변환하면
8 + Math.max(5 + 3, 12) - 최종적으로 반환 값은
20
Java 오버로딩
오버로딩(Overloading)
같은 이름의 여러 메서드를 매개변수의 타입이나 개수로 구분하여 정의하는 것
String타입의 인자를 받는 두 번째calc메서드 실행 →calc("5")=calc(4) + calc(2)- 다음부터는 인자 타입이 숫자이기에 첫 번째
calc메서드 실행- 두 번째
calc()재귀 규칙은 최종적으로 인자인value - 1반환
- 두 번째
- 최종적으로 반환값은
4
Python Tree
파이썬 삼항연산자
- 각 노드로 구성된 트리 객체를 만드는 함수
tree tree(li)의 반환값은Node(3)이다calc함수는 삼항연산자를 포함하며, 아래와 같이 해석된다.level이 짝수인 경우0 + sum(calc(n, level +1) for n in node.children)를 실행하라children배열의 노드들로level을 증가시켜 재귀 실행0 +는 단순 숫자로 만들기 위함
level이 홀수인 경우node.value반환- 뒤에 있는
if node else 0은node가 거짓인 경우이기에 노드가 있으면 무조건 반환
- 이후 흐름은 다음과 같다.
calc(Node(3), 0)는level이 짝수이기에calc(Node(5), 1) + calc(Node(8), 1)이다.- 이때
level은 홀수기에 각node.value를 더하면13
C언어 구조체와 연결리스트
Last updated on