1. 아래는 C언어의 2차원 배열 형태이다. 결과는 2차원 배열 형태로 출력된다. 출력값을 적으시오.

void main{

field {{0,1,0,1},{0,0,0,1},{1,1,1,0},{0,1,1,1}};
mines {{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};

int w = 4, h = 4;
  for(y=0; y<h; y++) {
    for(x=0; x<w; x++) {
    if(field[y][x] == 0) continue;

      for(i=y-1; i<=y+1; i++) {
        for(j=x-1; j<=x+1; j++) {
          if(calculate(w,h,j,i) == 1) {
            mines[i][j] += 1;
          }
        }
      }
    }
  }
  for(y=0; y<h; y++){
    for(x=0; x<w; x++)
      printf("%d", mines[y][x]);
      printf("n");
  }

}

int calculate(w,h,j,i) {
  if (i >= 0 && i < h && j >= 0 && j < w) return 1;
  return 0;
}

2. 다음 관계 대수 항목에 대해 괄호안에 들어갈 기호를 쓰시오.

Untitled

\

3. 다음은 디자인 패턴에 대한 설명이다. 괄호안에 알맞는 답을 작성하시오.

(   1   )은/는 기능을 처리하는 클래스와 구현을 담당하는 추상 클래스로 구별한다.
구현뿐 아니라 추상화도 독립적 변경이 필요할 때 (   1   ) 패턴을 사용한다.
기존 시스템에 부수적인 새로운 기능들을 지속적으로 추가할 때 사용하면 유용하며,
새로운 인터페이스를 정의하여 기존 프로그램의 변경 없이 기능을 확장할 수 있다.

(   2   )은/는 한 객체의 상태가 변화하면 객체에 상속되어 있는 다른 객체들에게 변화된 상태를 전달해주는 패턴이다.
일대다 관계를 가지며, 주로 분산된 시스템 간에 이벤트를 생성·발행(Publish)하고, 이를 수신(Subscribe)해야 할 때 이용한다.

4. 아래 코드에 대한 출력 값을 작성하시오.

void main{

int []result = int[5];
int []arr = [77,32,10,99,50];

  for(int i = 0; i < 5; i++) {
    result[i] = 1;
    for(int j = 0; j < 5; j++) {
      if(arr[i] <arr[j]) result[i]++;
    }
  }

  for(int k = 0; k < 5; k++) {
    printf(result[k]);
  }
}

5. 192.168.1.0/24인 네트워크를 FLSM 4개로 분할하였다. 두번째 네트워크 브로드캐스드 IP를 10진수로 변환한 값을 작성하시오.

6. 다음과 같이 점수에 따른 금액을 출력하는 알고리즘이 있다. 테스트 입력값을 보고 이와 같은 테스트의 명칭을 적으시오.

[입출력]
점수: 90~100 → 금액: 700만원
점수: 80~89 → 금액: 500만원
점수: 70~79 → 금액: 300만원
점수: 0~69 → 금액: 0만원

[테스트 입력값]
-1, 0, 1, 69, 70, 71, 79, 80, 81, 89, 90, 91, 99, 100, 101

7. 아래와 같은 테이블에 SQL 명령어를 적용할 경우 알맞는 출력값을 작성하시오.

CREATE TABLE 부서(

   부서코드 int, 부서명 varchar(50)

   PRIMARY KEY(부서코드)

   FORELGN KEY(부서코드)
   REFERENCES 직원(부서코드)

   ON DELETE CASCADE

);

CREATE TABLE 직원(

직원코드 int, 부서코드 int

PRIMARY KEY(직원코드)

FORELGN KEY(부서코드) PEFERENCES 부서(부서코드)

);

 

insert into 부서 (부서코드, 부서명) value ('10', '영업부');

insert into 부서 (부서코드, 부서명) value ('20', '기획부');

insert into 부서 (부서코드, 부서명) value  ('30', '개발부');

insert into 직원 (직원코드, 부서코드) value ('1000', '10');
insert into 직원 (직원코드, 부서코드) value ('2000', '10');
insert into 직원 (직원코드, 부서코드) value ('3000', '20');
insert into 직원 (직원코드, 부서코드) value ('4000', '20');
insert into 직원 (직원코드, 부서코드) value ('5000', '20');
insert into 직원 (직원코드, 부서코드) value ('6000', '30');
insert into 직원 (직원코드, 부서코드) value ('7000', '30');

SELECT DISTINCT COUNT(직원코드) FROM 직원 WHERE 부서코드 = '20';

DELETE FROM 부서 WHERE 부서코드 = '20';
SELECT DISTINCT COUNT(직원코드) FROM 직원;