반응형

알고리즘과 DB 일부 문제만 정리하였습니다.

 

최근 기출문제(2019년부터)는 하단 링크를 참고해 주세요.

 

정보처리산업기사 실기 출제 유형 및 최근 기출 문제 정리(19년 1회부터 21년 1회)

정보처리 산업기사 실기 시험은 2017년 한 번 개정되고 내년에 NCS로 다시 개정을 앞두고 있습니다. 이 글에서는 2019년 1회부터 가장 최근에 있었던 2021년 1회까지 어떤 문제가 출제되었는지 정리

developer-rooney.tistory.com

 

알고리즘 - Java

 

다음 Java 프로그램을 실행했을 때 나오는 출력을 쓰시오.(5점)

 

public class Exam {

    static void initFunc(int[][] a) {
        for(int i = 0; i < a.length; i++) {
            for(int j = 0; j < a[i].length; j++) {
                a[i][j] = 0;
            }
        }
    }

    static void fillFunc(int[][] a) {
        int n = 1;
        for(int i = 0; a.length; i++) {
            for(int j = i; j < a[i].length; j++) {
                a[i][j] = n;
                n = n + 1;
            }
        }
    }
    
    static void printFunc(int[][] a) {
        for(int i = 0; i < a.length; i++) {
            for(int j = 0; j < a[i].length; j++) {
                if(a[i][j] != 0) {
                    System.out.printf("%3d", a[i][j]);
                }else {
                    System.out.print("   ");
                }
            }
            System.out.println();
        }
    }
    
    public static void main(String[] args) {
        int[][] M = new int[5][5];
        
        initFunc(M);
        fillFunc(M);
        printFunc(M);
    }
}

 

정답 

 

1  2  3  4  5

   6  7  8  9

      10 11 12

          13 14

              15

 

해설

 

계단을 출력하는 문제입니다. main 메소드에서 실행된 메소드들을 먼저 살펴보고 위에서 어떻게 정의되었는지 살펴봅니다. 모든 메소드에는 매개변수로 2차원 배열을 받고 있고, 반환 값은 없으니 실행만 하면 됩니다.

 

initFunc는 2차원 배열 값을 모두 0으로 초기화합니다.

 

fillFunc는 2중 for문을 사용하여 정수 n을 1씩 증가시키며 넣어주는데 바깥 for문에서는 정수 i는 0부터 a.length 전까지, 즉 4까지 반복되고, 안쪽 for문에서는 정수 j가 i의 값부터 a[i].length까지 반복하기 때문에 i가 0일 때는 0부터, 1일 때는 1부터 .. 4까지 반복되며 1씩 증가하는 n값을 넣어줍니다.

 

마지막 메소드 printFunc는 매개변수로 들어온 2차원 배열을 출력해주는 역할을 하니 위의 정답처럼 적으시면 됩니다.

* 문제에서 "%3d"가 있는데 시험에서는 띄어쓰기를 확인 안 하기 때문에 굳이 세 칸을 정확하게 확보할 필요가 없습니다.

 

 

알고리즘 - C언어

 

다음 C언어 프로그램을 실행할 경우, 아래와 같이 출력된다. C언어 프로그램상의 빈 줄에 들어갈 적절한 코드를 입력하시오.

 

<출력결과>

 

5

11

23

47

95

 

<코드>

#include <stdio.h>

void main() {
    recursive(5);
}

int recursive(int n) {

    int i;
    if (n < 1) {
        return 2;
    }else {
        i = ( 2 * ________ ) + 1;
        printf("%d\n", i);
        return i;
    }

}

정답

 

recursive(n-1)

 

해설

 

재귀함수에 관한 문제입니다. 재귀함수 관련 풀이는 하단 링크의 2017년도 문제를 참고해 주세요.

 

정보처리산업기사 실기 2017년 제1회 기출문제 정리

알고리즘과 DB 일부 문제만 정리하였습니다. 최근 기출 문제(2019년부터)는 하단 링크를 참고해 주세요. 정보처리산업기사 실기 출제 유형 및 최근 기출 문제 정리(19년 1회부터 21년 1회) 정보처리

developer-rooney.tistory.com

 

 

데이터베이스

 

1. SQL은 관계 데이터베이스에서 사용되는 대표적인 언어로 SQL에는 크게 DDL, DML, DCL로 나누어진다. 아래 보기에 나열되어 있는 명령어 중 DML과 DDL에 해당하는 명령어를 선택하시오.

 

<보기>

CREATE, SELECT, ALTER, INSERT, COMMIT, DELETE, GRANT, ROLLBACK, UPDATE, REVOKE, DROP

 

1) DML :

2) DDL :

 

정답

 

1) DML : SELECT, INSERT, DELETE, UPDATE 

2) DDL : CREATE, ALTER, DROP

 

해설

 

정의, 조작, 제어어를 구분하는 문제입니다.

 

 

2. 다음 데이터베이스와 관련된 설명과 부합하는 빈 칸 (1) ~ (5)에 알맞은 용어를 적으시오.(15점)

 

관계 데이터 모델은 자료의 저장 형태를 2차원 구조의 표(테이블)로 표현하는 방법을 말한다. 관계 데이터 모델에서 (1)(은)는 속성들로 구성된 표 구조로 표현된다. (1)(을)를 구성하는 각 열을 속성이라고 하고 (1)의 한 행을 구성하는 속성들의 집합을 튜플이라고 한다. 하나의 속성이 가질 수 있는 값의 범위를 (2)(이)라 하며, (2)(은)(는) (1)(을)를 만들 때 속성의 값으로 올 수 있는 범위를 제한함으로써 범위 외의 값은 올 수 없도록 해야 한다. 예를 들어, '학년' 속성의 경우 속성값의 범위를 1, 2, 3, 4로 제한하며, '학년' 속성에는 그 외의 값은 입력될 수 없다.

 

다음은 '학번', '이름', '학년', '수강과목', '점수' 속성으로 구성된 (1)(을)를 SQL문을 통해 <성적>테이블로 구현한 것이다.

 

<성적>

* 속성만으로 풀 수 있어 테이블은 생략하겠습니다.

 

위와 같이 생성된 <성적>테이블을 대상으로 <지시사항>을 실행하는 SQL문은 다음과 같다.

 

<지시사항 및 SQL문>

* <성적>테이블에서 '데이터베이스' 과목을 수강하는 학생 중 점수가 80점 이상인 학생의 이름을 출력하시오.

→ SELECT 이름 FROM 성적 WHERE 수강과목 = '데이터베이스' (3) 점수 >= 80;

 

* <성적>테이블에서 수강과목별 점수의 평균이 85점 이상인 수강과목을 출력하시오.

→ SELECT 이름 FROM 성적 GROUP BY 수강과목 = (4) AVG(점수) >= 85;

 

* <성적>테이블에서 '빅데이터개론'을 수강한 학생의 점수를 모두 0으로 바꾸시오.

→ UPDATE 성적 (5) 점수 = 0 WHERE 수강과목 = '빅데이터개론';

 

정답

 

(1) 릴레이션

(2) 도메인

(3) AND

(4) HAVING

(5) SET

 

해설

 

데이터베이스의 개념과 SQL문에 관한 문제입니다. (3)은 WHERE절의 조건을 여러 개 입력할 때 연결을 위한 AND가 들어가게 되고 (4)는 GROUP BY절에서 조건을 넣는 HAVING 키워드가 들어갑니다. (5)는 UPDATE문의 문법에 맞게 SET이 입력되어야 합니다.

반응형

+ Recent posts