자격증 요약/정보처리기사

[20년 3회] 정보처리기사 실기 문제 풀이

문성 2026. 2. 27. 11:00


1. 리팩토링의 목적에 대하여 서술하시오.

답: 복잡한 코드의 단순화, 소스의 가독성을 통해 유지보수성 향상, 유연한 시스템, 생산성 향상, 품질 향상이 있다.

 

 

2. 다음은 C언어 소스 코드이다. 출력 결과를 쓰시오.

#include <stdio.h>
void main() {
    int i = 0, c = 0;
    while (i < 10) {
        i++;
        c *= i;
    }
    printf("%d", c);
}
답: 0
                               

void main() {
    int i = 0, c = 0;
→ 변수 정의

    while (i < 10) {
        i++;
        c *= i;
while (i < 10) : i 가 10보다 작으면, 아래의 코드를 반복해라.
i++ : i 에 1을 더해라
c *= i : c * i 를 해서 c 값에 넣어라.

 

 

3. 대표적인 내부 라우팅 프로토콜로 다익스트라 알고리즘을 이용한 대규모 네트워크에 적합한 링크 상태 라우팅 프로토콜로 불리는 라우팅 프로토콜은 무엇인가?

답: OSPF(Open Shortest Path First)

 

 

4. 형상 통제를 설명하시오.

답: 형상 항목의 버전 관리를 위해서 변경 여부와 변경 활동을 통제하는 활동

 

 

5. 심리학자 톰 마릴은 컴퓨터가 메세지를 전달하고, 메세지가 제대로 도착했는지 확인하며, 도착하지 않았을 경우 메세지를 재전송하는 일련의 방법을 '기술적 은어'를 뜻하는 (     )이라는 용어로 정의했다. 괄호 (     ) 안에 들어갈 용어를 쓰시오.

답: 프로토콜

 

 

6. TCP/IP에서 오류가 발생하면 (     ) 메세지를 보내서 오류가 발생했음을 알린다. 괄호 (     )안에 들어갈 용어를 쓰시오.

답: ICMP(Internet Control Message Protocol)

 

 

7. 다음 아래 제어 흐름 그래프가 분기 커버리지를 만족하기 위한 테스팅 순서를 쓰시오.

답: 1234561, 124567  or 1234567, 124561

 

 

8. 다음 조건을 만족하면서, 과목별 점수의 평균이 90이상인 과목이름, 최소점수, 최대점수를 구하는 SQL문을 작성하시오. 

[조건]
- 대소문자를 구분하지 않는다.
- WHERE 구분을 사용하지 않는다.
- GROUP BY, HAVING구문을 반드시 사용한다.
- 세미콜론(;)은 생략 가능하다.
- 별칭(AS)을 사용해야 한다.
답:
SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수
FROM 성적
GROUP BY 과목이름 HAVING AVG(점수) >= 90;
                               

과목별 점수의 평균이 90이상인 과목이름, 최소점수, 최대점수를 구하는 SQL


[결과]에서 나온 것을 토대로 SELECT문을 작성한다.
과목이름, 최소점수, 최대점수 : SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수
 - MIN(점수) 에서 점수는 [성적] 테이블에서 가져올 항목이다.

불러올 테이블을 작성한다.
FROM 성적

조건에서 GROUP BY절을 쓰라고 했으므로, 조건식은 GROUP BY절을 사용한다.
과목별 : GROUP BY 과목이름
점수의 평균이 90이상 : HAVING AVG(점수) >= 90

 

 

9. 학생 테이블에서 이름이 민수인 튜플을 삭제하는 SQL문을 작성하시오

답: DELETE FROM 학생 WHERE 이름 = '민수';
                               

학생 테이블에서 이름이 민수인 튜플을 삭제
삭제 : DELECT

학생 테이블 : FROM 학생
이름이 민수 : WHERE 이름 = '민수'

 

 

10. 릴레이션 A, B가 있을 때 릴레이션 B 조건에 맞는 것들만 릴레이션 A에서 튜플을 꺼내 프로젝션하는 관계 대수의 기호는 무엇인가?

답: ÷

 

 

11. 다음 중 헝가리안 표기법(Hungarian Case)에 대해서 서술하시오.

답: 헝가리안 표기법은 식별자 표기 시 접두어에 자료형을 붙이는 표기법

 

 

12. 테스트의 종류 중, 둥치분할 테스트, 경계값 분석 테스트 등의 종류가 있는 테스트 기법을 쓰시오.

답: 블랙박스 테스트 (명세 기반 테스트)

 

 

13. 다음은 C언어 소스 코드이다. 출력 결과를 쓰시오.

#include <stdio.h>
int r1() {
    return 4;
}
int r10() {
    return (30 + r1());
}
int r100() {
    return (200 + r10());
}
int main() {
    printf("%d\n", r100());
    return 0;
}
답: 234
                               

 

 

14. DB스키마에 대해서 서술하시오.

답: 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조

 

 

15. 다음은 자바 코드이다. 출력 결과를 쓰시오.

abstract class vehicle {
    private String name;
    abstract public String getName(String val);
    public String getName() {
        return "vehicle name:" + name;
    }
    public void setName(String val) {
        name = val;
    }
}
class Car extends Vehicle {
    public Car(String val) {
        setName(val);
    }
    public String getName(String val) {
        return "Car name : " + val;
    }
    public String getName(byte val[]) {
        return "Car name : " + val;
    }
}
public class good {
    public Static void main(String[] args) {
        Vehicle obj = new Car("Spark");
        System.out.print(obj.getName());
    }
}
답: Vehicle name : Spark
                               

 

 

16. UI 설계 원칙 중 직관성에 대해서 쓰시오.

답: 누구나 쉽게 이해하고, 쉽게 사용할 수 있어야 하고,쉬운 검색, 쉬운 사용성, 일관성이 부특성을 가지고 있는 UI설계 원칙

 

 

17. 다음은 자바 코드이다. 출력 결과를 쓰시오.

public class good {
    public static void main(String[] args) {
        int i = 0;
        int sum = 0;
        while (i < 10) {
            i++;
            if (i % 2 == 1)
                continue;
            sum += i;
        }
        System.out.println(sum);
    }
}
답: 30
                               

    public static void main(String[] args) {

        int i = 0;
        int sum = 0;
→ 변수 정의

        while (i < 10) {
            i++;
while (i < 10) : i 가 10보다 작은 동안 반복
i++ : i 의 값을 1 올린다.

            if (i % 2 == 1)
                continue;
            sum += i;
if (i % 2 == 1) : i 의 값을 2로 나눈 나머지가 1이면 continue, 아니면 sum + i 값을 해서 sum 에 넣는다.
continue : 하게 되면, 위의 while (i < 10) 문으로 돌아간다.

        System.out.println(sum);
→ 계산된 sum 값을 출력하고 엔터(ln) 친다.

 

 

18. EAI 유형에는 메세지 버스(Message bus), 하이브리드(Hybrid), ( 1 ), ( 2 ) 4가지가 있다.

답:
(1) 포인트 투 포인트(Point-to-point)
(2) 허브 앤 스포크(Hub & Spoke)

 

 

19. C++에서 생성자란 무엇인지 쓰시오.

답: 해당 클래스의 객체가 생성될 때 자동으로 호출되는 특수한 종류의 메서드

 

 

20. 학생 테이블에 주소 속성을 추가하는 SQL문을 작성하시오.

( 1 ) TABLE 학생 ( 2 ) 주소 VARCHAR(20);
답: (1) ALTER  (2) ADD