본문 바로가기

정보처리기사/실기

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

반응형

- 약술형 -

1. 원자성

정답

모두 반영되거나, 아니면 모두 반영되지 않아야 함

 

 

 

- 필답형 -

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

[보기]

네트워크 장치가 필요없고, 멀티 홉 라우팅 기능을 가지고 있으며, 군사 네트워크에 사용됨

정답

Ad-hoc

 

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

[보기]

ㄱ. 제품과 시스템, 서비스 등을 사용자가 직접적, 간접적으로 경험하면서 느끼고 생각하는 총체적 경험

ㄴ. 사용자와 시스템 사이에서 의사소통할 수 있도록 고안된 물리적인 가상 매개체로, 예를들면 CLI가 있음

정답

ㄱ. UX

ㄴ. UI

 

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

[보기]

부분 함수적 종속성을 제거하여 완전 함수적 종속을 만족하는 정규형

정답

제2정규형

 

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

미국 국립 표준 기술 연구소에서 DES를 대체하기 위해 개발하였으며, 128비트의 블록 크기, 128, 192, 256 비트의 키 크기를 갖고 있다. 대칭키 암호를 사용한다.

정답

AES

 

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

보기는 화이트 박스 테스트 검증 기준을 설명한 것

[보기]

ㄱ. 최소 한번은 모든 문장을 수행

ㄴ. 결정 검증 기준이라고도 하고, 조건 별로 True/False일 때 수행

ㄷ. ㄴ.과 달리 전체 조건식에 상관없이 개별 조건식의 True/False에 대해 수행

정답

ㄱ. 구문 커버리지

ㄴ. 결정 커버리지

ㄷ. 조건 커버리지

 

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

[보기]

ㄱ. 입출력 간 연관성은 없으나, 순서에 따라 수행할 필요 있음

ㄴ. 동일한 입출력 사용

ㄷ. 하나의 기능에 모두 기여하고, 밀접하게 관련됨

정답

ㄱ. 절차적

ㄴ. 교환적

ㄷ. 기능적

 

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

보기는 패킷 교환 방식에 대한 설명한 것.

[보기]

ㄱ. 목적지 호스트와 미리 연결 후 통신하는 연결형 교환 방식

ㄴ. 헤더에 붙여서 개별적으로 전달하는 비연결형 교환 방식

정답

ㄱ. 가상 회선 방식

ㄴ. 데이터 그램 방식

 

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

[보기]

(   ) 패턴은 반복적으로 사용되는 객체들의 상호작용을 패턴화한 것으로 클래스나 객체들이 상호작용하는 방법. 알고리즘 등과 관련된 패턴으로 interpreter, observer, command 등을 예로 들 수 있다.

정답

행위

 

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

[보기]

접근한 데이터에 대한 연산을 모두 마칠 때 까지 상호배제 하는 것

정답

로킹

 

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

보기는 럼바우 데이터 모델링을 설명한 것.

[보기]

ㄱ. 입력값이 출력값일 때

ㄴ. 시간에 따라 변하는 것

ㄷ. 구조

정답

ㄱ. function

ㄴ. dynamic

ㄷ. information

 

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

보기는 모듈 통합 테스트 중 테스트 하네스를 설명한 것.

[보기]

상향식은 테스트 드라이버, 하향식은 테스트 (   )

정답

스텁

 

 

 

- DB -

1. 다음 결과를 출력 가능 한 명령문을 완성하시오

[결과]

성적 90>=일 때 학점을 'A'로 수정

[명령문]

(   ) 학생 (   ) 학점 = 'A' WHERE 성적>=90;

정답

UPDATE, SET

해설

- UDATE 테이블 SET 컬럼 = '변경할 값' WHERE 컬럼조건; 구조를 사용한다.

 

2. 다음 결과를 출력하는 명령문을 완성하시오

[학생정보]

학번 이름 학과
2011035001 김길동 기계
2011035009 도상오 기계
2011007004 김진수 컴퓨터

[학과정보]

학과 학생수
기계 30
컴퓨터 40

[결과]

이름
김길동
김진수

[명령문]

SELECT 이름 FROM 학생정보 a JOIN 학과정보 b (  1  ) a.학과 = b.(  2  )

정답

(1) ON

(2) 학과

해설

- JOIN은 테이블을 결합할 때 사용함.

- a와 b는 테이블의 별칭

 

3. 다음 결과를 출력하는 명령문을 완성하시오

[수강생]

이름 과목 수강료
김강수 컴활 20
곽철용 컴활 20
이시영 워드 10
이지수 컴활 20

[실행 결과]

이름 과목 수강료
이지수 컴활 20
이시영 워드 10

[명령문]

SELECT * FROM 수강생 WHERE 이름 LIKE '(  1  )' ORDER BY 수강료 (  2  );

정답

(1) 이%

(2) DESC

해설

- 성이 '이'씨인 사람만 출력했기 때문에 만능 문자인 %를 이용하여 이씨를 추출

- DESC를 이용하여 내림차순으로 정렬

- ASC는 오름차순

 

 

- 프로그래밍 -

1. Python

a=100
i=0
result=0

for i in range(1, 3):
	result = a>>i
	result += 1
print(result)

정답

26

해설

// 변수 a를 선언하고 100을 대입
a=100
// 변수 result를 선언하고 0을 대입
result=0

// 1~2를 순서대로 i에 대입하며 반복
for i in range(1, 3):
	// 오른쪽 비트시프트 하여 가장 왼쪽에 0(양의 정수이므로)을 추가하고, 가장 오른쪽의 1비트는 소실
	result = a>>i
	// result = result + 1
	result += 1
// result를 출력
print(result)

- 비트시프트를 하면 2배가 되거나 절반으로 줄어듦

- 100의 비트를 1번 오른쪽으로 시프트 하고, 1을 더하면 51이 됨

- 100의 비트를 2번 오른쪽으로 시프트하고, 1을 더하면 26이 됨

 

 

2. C

int bebsae(int base, int exp);

int main() {
	int res;
	res = bebsae(2, 10);
	print("%d", res);
	return 0;
}

int bebsae(int base, int exp);
	int res = 1;
	for(int i=0; i<exp; i++) {
		res = res*base;
	}
	return res;
}

정답

1024

해설

int bebsae(int base, int exp);

int main() {
	// 정수형 변수 res 선언
	int res;
	// res에 메소드 bebsae를 대입
	res = bebsae(2, 10);
	// res값을 출력
	print("%d", res);
	return 0;
}

// 함수 정의
int bebsae(int base, int exp);
	// 정수형 변수 res에 1 대입
	int res = 1;
	// i=0 부터 exp-1까지 1씩 증가하며 반복
	for(int i=0; i<exp; i++) {
		res = res*base;
	}
	// res값을 반환
	return res;
}

- i=0, 1 * 2 = 2

- i=1, 2 * 2 = 4

- i=2, 4 * 2 = 8

- ...

- i=9, 512 * 2 = 1024

 

 

3. JAVA

public class test {
	public static void main(String[] args) {
		System.out.print(test.check(1));
	}
	( ) String check(int num) {
		return (num >= 0) ? "positive" : "negative";
	}
}

처리 결과

positive

정답

static

해설

public class test {
	public static void main(String[] args) {
		// 클래스.메소드 형태이므로 클래스를 객체화 하지 않고 메소드 check(1)의 값을 바로 출력
		System.out.print(test.check(1));
	}
	// 정수형 변수 num을 매개변수로 가지는 정적 메소드 check를 선언
	( ) String check(int num) {
		// num이 0과 같거나 크다면, 
		return (num >= 0) ? "positive" : "negative";
	}
}

- static 메소드는 클래스 내에서 객체 생성 없이 사용할 수 있는 메소드를 의미함

- [조건 ? 수식1 : 수식2] 형태는, 조건이 참이면 수식1 실행, 거짓이면 수식2 실행

 

 

4. C

int main() {
	int ary[3];
	int s = 0;
	*(ary + 0) = 1;
	ary[1] = *(ary + 0) + 2;
	ary[2] = *ary + 3;
	for(int i = 0; i < 3; i++) {
		s = s + ary[i];
	}
	printf("%d", s);
}

정답

8

해설

int main() {
	// 3칸짜리 정수형 배열 ary를 선언
	int ary[3];
	// 정수형 변수 s에 0을 대입
	int s = 0;
	// ary의 첫번째 위치에 포인터 변수 선언 후 해당 위치에 1을 대입
	*(ary + 0) = 1;
	// ary 배열의 두번째 위치에, ary의 첫번째 위치에 있는 값에 2를 더한 값을 대입
	ary[1] = *(ary + 0) + 2;
	// ary 배열의 세번째 위치에, 포인터 변수가 위치해 있는 값에 3를 더한 값을 대입
	ary[2] = *ary + 3;
	// i=0부터 2까지 1씩 증가하며 반복
	for(int i = 0; i < 3; i++) {
		s = s + ary[i];
	}
	printf("%d", s);
}

- i=0, s=0+ary[0]=1

- i=1, s=1+ary[1]=4

- i=2, s=4+4=8

 

 

5. JAVA

public class ovr1 {
	public static void main(String[] args) {
		ovr1 a1 = new ovr1();
		ovr2 a2 = new ovr2();
		System.out.println(a1.sun(3, 2) + a2.sun(3, 2));
	}
	int sun(int x, int y) {
		return x + y;
	}
}

class ovr2 extends ovr1 {
	int sun(int x, int y) {
		return x - y + super.sun(x, y);
	}
}

정답

11

 

해설

public class ovr1 {
	public static void main(String[] args) {
		// 생성자를 이용해 객체 변수 생성
		ovr1 a1 = new ovr1();
		ovr2 a2 = new ovr2();
		// a1.sun은 3+2=5를 출력
		// a2.sun은 3-2+3+2=6을 출력
		// 최종적으로 5+6=11을 출력
		System.out.println(a1.sun(3, 2) + a2.sun(3, 2));
	}
	// 정수형 메소드 sun을 선언
	int sun(int x, int y) {
		// 매개변수 x와 y값을 더한 값을 출력
		return x + y;
	}
}

// 부모 클래스를 상속받는 자식 클래스 선언
class ovr2 extends ovr1 {
	int sun(int x, int y) {
		// x-y연산 후 super를 이용하여 부모 클래스의 함수 값 출력
		return x - y + super.sun(x, y);
	}
}
반응형