본문 바로가기

정보처리기사/실기

정보처리기사 실기 기출 - 2021년 1회

반응형

- 필답형 -

1. 보기에서 설명하는 것은?

[보기]

물리주소(MAC 주소)로 IP 주소를 찾는 프로토콜

정답

RARP

 

2. 보기에서 설명하는 것은?

[보기]

(  1  )은 DBMS의 특성 및 성능을 고려하여 데이터베이스 저장 구조로 변환하는 과정. 결과물로는 테이블 정의서, 명세서 등이 있음

(  2  )은 현실세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 과정. 결과물로는 E-R 다이어그램이 있음

(  3  )은 목표DBMS에 맞는 스키마 설계, 트랜잭션 인터페이스를 설계하는 정규화 과정을 수행

정답

(1) 물리적 설계

(2) 개념적 설계

(3) 논리적 설계

 

3. 보기에서 설명하는 것은?

[보기]

웹서비스명, 제공위치, 메시지 포맷, 프로토콜 정보 등 웹 서비스에 대한 상세 정보가 기술되어 있으며, XML 형식으로 구현되어 있는 언어는?

정답

WSDL

 

4. 보기의 빈칸에 들어갈 용어는?

ㄱ. (  1  ) 요구사항은 시스템이 제공하는 기능 또는 서비스에 대해 상세하게 기술한다.

ㄴ. (  2  ) 요구사항은 시스템에 의해 제공되는 서비스나 기능, 속성에 대한 제약사항에 대해 기술한다.

정답

(1) 기능적

(2) 비기능적

 

5. 보기에서 설명하는 것은?

[보기]

시스템의 성능 향상, 개발 과정의 편의성 등을 위해 정규화된 데이터 모델을 분할, 통합, 추가하는 과정으로, 의도적으로 정규화를 위배하는 행위는?

정답

반정규화

 

6. 보기에서 설명하는 것은?

[보기]

아래는 블랙박스 테스트의 종류를 설명한다.

ㄱ. 0<=x<=10일때, -1, 0, 10, 11을 검사

ㄴ. 입력 데이터의 영역을 유사한 도메인별로 유효값과 무효값을 나누어 검사

정답

ㄱ. 경계값 분석 테스트

ㄴ. 동치 분할 테스트

 

7. 보기에서 설명하는 것은?

[보기]

ㄱ. (  1  )은/는 개별 모듈, 서브루틴이 정상적으로 실행되는지 확인하는 테스트

ㄴ. (  2  )은/는 인터페이스 간 시스템이 정상적으로 실행되는지 확인하는 테스트

정답

(1) 단위 테스트

(2) 통합 테스트

 

8. 보기에서 설명하는 것은?

[보기]

ㄱ. IPv6는 (  1  )비트 길이를 가진다

ㄴ. IPv4는 길이 32비트, (  2  )비트씩 4분할 한다.

정답

(1) 128

(2) 8

 

9. 보기에서 설명하는 것은?

[보기]

공유메모리, 소켓, 세마포어가 포함된 프로세스간 인터페이스

정답

IPC 메소드

 

10. 보기에서 설명하는 것은?

[보기]

서로 다른 플랫폼 간의 연계, 통합, Point to Point, Hub&Spoke, Message Bus등이 있는 것은?

정답

EAI

 

11. 보기 테이블의 카디널리티와 차수의 갯수는?

[보기]

학번 이름 학과 연락처
2011053003 강수미 농기계학과 010-1234-5678
2011011005 김철수 컴퓨터공학과 017-304-1234
2013011025 황동수 컴퓨터공학과 010-4556-1235
2013015004 김민수 통계학과 010-5555-1111
2014015005 나영훈 통계학과 010-6666-7777

정답

카디널리티 : 5

차수 : 4

 

12. 보기에서 설명하는 것은?

[보기]

ㄱ. 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로써, 데이터베이스를 조작하는 기본 도구

ㄴ. 개체 데이터 모델에서는 (  1  )을/를 이용하여 실제 데이터를 처리하는 작업에 대한 명세를 나타내는데, 논리 데이터 모델에서는 (  2  )을/를 어떻게 나타낼 것인지를 표현함.

ㄷ. (  3  )은/는 데이터 무결성 유지를 위한 DB의 보편적 방법으로 릴레이션의 특정 칼럼에 설정하는 제약을 의미하며, 개체 무결성과 참조 무결성 등이 있다.

정답

(1) 연산

(2) 구조

(3) 제약조건

 

13. 보기에서 설명하는 것은?

[보기]

시스템 객체의 접근을 개인 또는 그룹의 식별자에 기반을 둔 방법. 어떤 종류의 접근 권한을 가진 사용자가 다른 사용자에 자신의 판단에 따라 권한을 허용하는 접근제어 방식

정답

임의적 접근 통제(DAC, Discretionary Access Control)

 

14. 보기에서 설명하는 것은?

[보기]

ㄱ. (  1  )은/는 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우의 결합도

ㄴ. (  2  )은/는 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우의 결합도

ㄷ. (  3  )은/는 파라미터가 아닌 모듈 밖에 선언된 전역 변수를 참조하고 전역 변수를 갱신하는 방식으로 상호작용 하는 경우의 결합도

정답

(1) 내용 결합도

(2) 스탬프 결합도

(3) 공통 결합도

 

15. 보기에서 설명하는 것은?

[보기]

(   )은/는 '세션을 가로채다.' 라는 의미로 정상적 연결을 RST 패킷을 통해 종료시킨 후 재연결 시 희생자가 아닌 공격자에게 연결함.

(   )은/는 세션 관리 취약점을 이용한 공격 기법

정답

세션 하이재킹

 

 

 

- DB -

1. 다음 명령문의 결과는?

[급여]

EMPNO SAL
100 1000
200 3000
300 1500

[명령문]

SELECT COUNT(*) FROM 급여 WHERE EMPNO>100 AND SAL>=3000 OR EMPNO=200;

정답

1

해설

- SELECT COUNT(*) FROM 급여 를 이용해 급여 테이블에서 행의 수를 추출한다.

- 급여 테이블에서 EMPNO가 100 초과이고, SAL이 3000이상이거나 EMPNO가 200인 행의 수를 추출한다.

 

 

 

- 프로그래밍 -

1. C

#include <stdio.h>

struct insa {
	char name[10];
	int age;
}

void main() {
	a[] = {"kim", 28, "lee", 38, "park", 41, "choi", 30);

	struct insa *p;
	p=a;
	p++;
    
	printf("%s", p->name);
	printf("%d", p->age);
}

정답

lee

38

해설

#include <stdio.h>


// insa라는 이름의 구조체를 선언한다.
struct insa {
	// 11칸짜리 name 배열은 char 자료형을 가진다.
	char name[10];
	// 정수형 변수인 age 선언
	int age;
}

void main() {
	// 배열 a에 값 삽입
	a[] = {"kim", 28, "lee", 38, "park", 41, "choi", 30);
	// 구조체 insa에 포인터 변수를 선언한다.
	struct insa *p;
	// 포인터 변수에 a를 대입
	p=a;
	// 포인터 변수에 +1
	p++;
	// 포인터변수에 있는 값을 name 변수에 집어넣고, 문자열 자료형으로 출력한다.
	printf("%s", p->name);
	// 포인터 변수에 있는 값을 age 변수에 집어넣고, 정수 자료형으로 출력한다.
	printf("%d", p->age);
}

- p++ 부분에서 포인터 변수에 1을 더해주기 때문에, 첫번째 배열이 아니라 두번째 배열이 출력된다

- 화살표 연산자(->)로 구조체 멤버에 접근할 수 있다.

 

 

2. JAVA

public class good {
		public static void main(String[] args) {
		int i, j;
        
		for(j=0, i=0; i<=5; i++) {
			j+=i;
			System.out.print(i);
        
			if(i==5) {
				System.out.print("=");
				System.out.print(j);
			} 
			else {
				System.out.print("+");
			}
		}
	}
}

정답

0+1+2+3+4+5=15

해설

public class good {
		public static void main(String[] args) {
		// 정수형 변수 i, j 선언
		int i, j;
        
		// j에 0대입, i=0부터 4까지, 1씩 증가시키면서 반복
		for(j=0, i=0; i<=5; i++) {
			// j=j+i
			j+=i;
			// i를 출력한다.
			System.out.print(i);
        
			// 만약 i가 5라면 명령문 실행
			if(i==5) {
				// 문자 =을 출력한다.
				System.out.print("=");
				// j를 출력한다.
				System.out.print(j);
			} 
			else {
				System.out.print("+");
			}
		}
	}
}

 

 

3. Python

class arr:
	a = ["Seoul", "Kyeonggi", "Inchoen", "Daejoen", "Daegu", "Pusan"]

str01 = ' '

for i in arr.a:
	str01 = str01 + i[0]
print(str01)

정답

SKIDDP

해설

// arr 클래스 선언
class arr:
	// 배열 a 선언
	a = ["Seoul", "Kyeonggi", "Inchoen", "Daejoen", "Daegu", "Pusan"]

// 변수 str01 선언
str01 = ' '

// arr클래스의 배열 a의 값을 순서대로 i에 대입, 반복
for i in arr.a:
	// str01의 값은 str01의 기존 값 + i의 첫번째 값이다.
	str01 = str01 + i[0]
print(str01)

- i[0]을 이용해 i에 순서대로 대입되는 a의 요소들 중 첫번째 문자만 뽑아낸다.

- str01 = str01+i[0]이므로 첫번째 문자들을 순서대로 더해준다.

 

 

4. JAVA

public class Bebsae{
	public static void main(String[] args) {
    	int a[][]= {{45, 50, 75}, {89}};
        System.out.println(a[0].length);
        System.out.println(a[1].length);
        System.out.println(a[0][0]);
        System.out.println(a[0][1]);
        System.out.println(a[1][0]);
	}
}

정답

3

1

45

50

89

해설

public class Bebsae{
	public static void main(String[] args) {
		// 정수형 2차원 배열 a를 선언하고, 값을 대입한다.
    	int a[][]= {{45, 50, 75}, {89}};
		// a의 첫번째 행의 길이를 출력한다.
        System.out.println(a[0].length);
		// a의 두번째 행의 길이를 출력한다.
        System.out.println(a[1].length);
		// a의 1행1열의 값을 출력한다.
        System.out.println(a[0][0]);
		// a의 1행2열의 값을 출력한다.
        System.out.println(a[0][1]);
		// a의 2행1열의 값을 출력한다.
        System.out.println(a[1][0]);
	}
}
반응형