정보처리기사 실기 시험에서 100점 만점 중 45~50점의 압도적 배점을 차지하는 파트는 ‘프로그래밍 언어 활용(C, Java, Python)’ 영역입니다. 특히 수험생들이 가장 많은 오답을 내며 과락으로 이어지는 유형은 C언어 포인터 연산자 우선순위와 자바(Java) 부모 참조변수를 통한 자식 오버라이딩 객체 호출입니다. 기출 빈출 3대 함정 코드를 확실히 정복하는 풀이법을 제시합니다.
1. 정처기 프로그래밍 빈출 3대 함정 문법 요약표
사소한 괄호 하나와 상속 키워드 차이로 출력 결과가 완전히 뒤바뀝니다.
| 출제 언어 | 핵심 함정 코드 문법 | 수험생 흔한 착각 | 정확한 실행 결과 원리 |
|---|---|---|---|
| C언어 포인터 | *p++ vs (*p)++ |
둘 다 가리키는 값을 1 증가시킨다고 오해 | *p++는 주소 이동, (*p)++는 값 1 증가 |
| 자바 상속 다형성 | Parent p = new Child(); |
부모 클래스의 메서드가 호출된다고 답안 작성 | 오버라이딩된 '자식 클래스의 메서드'가 동적 호출됨 |
| 파이썬 슬라이싱 | arr[3:0:-1] 음수 스텝 |
0번 인덱스까지 포함하여 출력 | 끝 인덱스 0은 미포함(인덱스 3, 2, 1만 역순 추출) |
2. 시험장에서 1초 만에 정답을 적어내는 3단계 실전 풀이법
- C언어 포인터 연산자 우선순위 암기 공식: 후위 증감 연산자(
++)가 참조 연산자(*)보다 결합 우선순위가 높습니다. 따라서*p++는 '현재 p가 가리키는 값을 먼저 반환한 뒤 p의 주소를 다음 칸으로 이동'하는 반면, 괄호가 쳐진(*p)++는 '현재 가리키는 변수 안의 데이터 값을 1 증가'시킵니다. 시험지에 화살표를 그려 주소 이동인지 값 증가인지 구분하십시오. - 자바 다형성 생성자 호출과 오버라이딩 계층 구조:
Child객체가 생성될 때는super()에 의해 부모 클래스의 생성자가 먼저 실행된 후 자식 생성자가 실행됩니다. 그러나 인스턴스 메서드를 호출할 때는 런타임에 실제 할당된 자식 클래스의 오버라이딩 메서드가 우선권을 가집니다. 단, 자식 전용으로 새로 추가된 메서드는 부모 타입 참조변수로는 접근할 수 없습니다. - 파이썬 슬라이싱
[start:stop:step]의 stop 미포함 원칙: 파이썬 슬라이스에서 stop 인덱스는 '그 직전까지'만 실행됩니다. 음수 스텝이 붙었을 때도 마찬가지로stop+1위치까지만 가져옵니다. 빈칸 채우기나 출력 결과 작성 시 마지막 원소를 포함시키는 실수를 방지해야 5점을 지킬 수 있습니다.