기타/정보처리기사
[2023년도 2회] 정보처리기사 정처기 | 실기 기출 | 회차별 정리
YUNI Heo
2024. 1. 7. 17:54
반응형
⭕ [2023년도 2회] 정보처리기사 정처기 | 실기 기출 | 회차별 정리
➡️ 1. [C 언어 코드] 괄호 안에 알맞은 코드를 작성하시오.
[조건]
입력값이 54321일 경우 출력값이 43215로 출력되어야 한다.
#include <stdio.h>
int main(void) {
int n[5];
int i;
for (i = 0; i < 5; i++) {
printf("숫자를 입력해주세요 : ");
scanf("%d", &n[i]);
}
for (i = 0; i < 5; i++) {
printf("%d", ( a ));
}
return 0;
}
정답
n[(i + 1) % 5]
해설
➡️ 2. [JAVA 코드] 괄호 안에 알맞은 코드를 작성하시오.
[조건]
- 예시: 4620원
- 1000원, 500원, 100원, 10원의 지폐 및 동전을 이용
- 변수: m
- 연산자: /, %
- 괄호: [ ], ( )
- 정수: 1000, 500, 100, 10
public class Main {
public static void main(String[] args) {
int m = 4620;
int q = ( a );
int w = ( b );
int e = ( c );
int r = ( d );
System.out.println(q);
System.out.println(w);
System.out.println(e);
System.out.println(r);
}
}
정답
a) m / 1000
b) (m % 1000) / 500
c) (m % 500) / 100
d) (m % 100) / 10
해설
➡️ 3. [C 언어 코드] 알맞은 출력 값을 작성하시오.
입력값은 홍길동, 김철수, 박영희 순서로 주어진다.
#include <stdio.h>
#include <stdlib.h>
char n[30];
char *test() {
printf("입력하세요: ");
gets(n);
return n;
}
int main() {
char *test1;
char *test2;
char *test3;
test1 = test();
test2 = test();
test3 = test();
printf("%s\n", test1);
printf("%s\n", test2);
printf("%s", test3);
return 0;
}
정답
박영희
박영희
박영희
해설
➡️ 4. [SQL] 알맞은 SQL문을 작성하시오.
[테이블 생성]
CREATE TABLE 학생 (
학번 INT,
이름 VARCHAR(20),
학년 INT,
전공 VARCHAR(30),
전화번호 VARCHAR(20)
);
[조건]
- 데이터를 테이블에 삽입하기 위한 SQL문을 작성함
- 문자열일 경우 작은따음표
[결과]
+--------+--------+----+----------+--------------+
| 학번 | 이름 | 학년 | 전공 | 전화번호 |
+--------+--------+----+----------+--------------+
| 1234 | 홍갈동 | 4 | 컴퓨터공학 | 01012341234 |
+--------+--------+----+----------+--------------+
정답
INSERT INTO 학생 (학번, 이름, 학년, 전공, 전화번호)
VALUES (1234, '홍갈동', 4, '컴퓨터공학', '01012341234');
해설
➡️ 5. [C 언어 코드] 알맞은 출력 값을 작성하시오.
#include <stdio.h>
int main() {
int n[3] = {73, 95, 82};
int sum = 0;
for (int i = 0; i < 3; i++) {
sum += n[i];
}
switch (sum / 30) {
case 10:
case 9:
printf("A");
break;
case 8:
printf("B");
break;
case 7:
case 6:
printf("C");
break;
default:
printf("D");
}
return 0;
}
정답
BCD
해설
➡️ 6. [용어] 다음 설명에 대한 테스트 커버리지를 고르시오,
- 프로그램 내에 있는 결정포인트 내의 모든 각 개별 조건식에 대한 모든 가능한 결과(참/거짓)에 대해 적어도 한번 수행한다.
- 소프트웨어 테스트 수행시 소스코드를 어느 수준까지 수행하였는가를 나타내는 기준을 나타낸다.
- 실제 업무에서는 다양한 툴을 사용하여 테스팅 수행한다.
- True/False에충분한 영향을 줄 수 없는 경우가 발생 가능한 한계점을 지닌다.
[보기]
a) 구문 커버리지
b) 경로 커버리지
c) 조건/결정 커버리지
d) 변형 조건/결정 커버리지
e) 다중 조건 커버리지
f) 결정 커버리지
g) 조건 커버리지
정답
g) 조건 커버리지
해설
➡️ 7. [C 언어 코드] 알맞은 출력 값을 작성하시오.
#include <stdio.h>
int main() {
int leapYearCount = 0;
for (int year = 1; year <= 2023; year++) {
if (year % 4 == 0) {
leapYearCount++;
}
}
printf("%d", leapYearCount);
return 0;
}
정답
505
해설
➡️ 8. [용어] 다음 설명에 대한 기술 용어를 작성하시오.
- 소프트웨어가 불법으로 변경되면 워터마크 삭제와 같은 방법으로 소프트웨어의 정상 수행을 방해하는 기술이다.
- 소프트웨어 변조를 막기 위해 프로그램에 변조검증코드를 추가하는 것도 방어 전략 중 하나이다.
- 변조검증코드의 목적은 프로그램 변경 여부를 감지하고, 변경이 감지되면 프로그램 실행을 막는 것이다.
- 소프트웨어의 위변조 방지 기술은 디지털 콘텐츠 산업, 전자상거래, 소프트웨어 보호가 필요한 다양한 산업 분야에 적용된다.
정답
템퍼프루핑
해설
➡️ 9. [C 언어 코드] 알맞은 출력 값을 작성하시오.
#include <stdio.h>
#define MAX_SIZE 10
int stack[MAX_SIZE];
int top = -1;
void push(int num) {
if (top >= MAX_SIZE - 1)
printf("Full");
stack[++top] = num;
}
int pop() {
if (isEmpty() == 1)
printf("Empty");
return stack[top--];
}
int isEmpty() {
if (top == -1)
return 1;
return 0;
}
int isFull() {
if (top == MAX_SIZE - 1)
return 1;
return 0;
}
int main(int argc, char const *argv[]) {
int element;
push(5);
push(2);
while (!isEmpty()) {
printf("%d", pop());
push(4);
push(1);
printf("%d", pop());
push(3);
printf("%d", pop());
printf("%d", pop());
push(6);
printf("%d", pop());
printf("%d", pop());
}
return 0;
}
정답
213465
해설
➡️ 10. 데이터베이스 설계 순서를 보기를 활용하여 작성하시오.
a > b > c > d > e
[보기]
구현
개념적 설계
논리적 설계
물리적 설계
요구조건 분석
정답
a) 요구조건 분석
b) 개념적 설계
c) 논리적 설계
d) 물리적 설계
e) 구현
해설
➡️ 11. [용어] 다음 설명에 대한 디자인 패턴 용어를 고르시오,
a)
- 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다.
- 주로 공통된 객체를 여러개 생성해서 사용하는 DBCP(DataBase Connection Pool)와 같은 상황에서 많이 사용한다.
b)
- 호스트 객체의 내부 상태에 접근할 수 있는 방법을 제공하여 호스트 객체에 연산을 추가할 수 있도록 한다.
- 이 패턴은 보통 합성 구조의 원소들과 상호 작용하는 데 사용되며, 기존 코드를 변경하지 않고 새로운 기능을 추가하는 방법이다.
[보기]
생성패턴 | 구조패턴 | 행위패턴 |
Singleton | Adapter | Observer |
Factory Method | Bridge | Strategy |
Builder | Decorator | Visitor |
정답
a) Singleton
b) Visitor
해설
➡️ 12. [용어] 다음 설명에 대한 용어를 고르시오,
a)
- Code는 Bell 연구소의 Hamming에 의해 고안된, 1 비트의 에러를 정정할 수 있는 오류 정정 부호의 일종이다.
- 이는 선형 블록 부호 및 순회 부호에 속한다.
b)
- 송신측이 전송할 문자나 프레임에 부가 정보(Redundancy)를 첨가하여 전송하고, 수신측은 이 부가 정보를 이용하여 에러 검출 및 에러 정정을 하는 방식이다.
c)
- 상대방이 금전을 보내거나 기밀 회사 정보를 누설하도록 유도하는 사이버 범죄의 한 형태인 전자 메일 공격이다.
- 공격자는 신뢰할 수 있는 인물로 가장한 다음 가짜 청구서의 지불을 요청하거나 다른 사기에서 사용할 중요한 데이터를 요구한다.
d)
- 데이터가 저장 장치 내의 한 장소에서 다른 장소로 이동되거나 컴퓨터 간에 전송될 때, 데이터가 유실 또는 손상되었는지 여부를 점검하는 기술과 관련된 용어이다.
e)
- 데이터를 네트워크 등을 통해 전송할 때 전송된 데이터에 오류가 있는지를 확인하기 위한 체크값을 결정하는 방식을 말한다.
[보기]
EAC
FEC
hamming
CRC
PDS
parity
BEC
정답
a)
b)
해설
➡️ 13. [용어] 다음 설명에 대한 용어를 고르시오,
a)
- 프레임은 Seq, Next, P/F의 필드를 가지며, 맨 처음 비트는 0으로 설정된다.
- Seq는 송신용 순서번호를 나타내며, Next는 응답용 순서번호를 가진다.
- P/F는 P가 1로 설정된 경우 주국에서 종국으로 데이터 전송을 허용하고, F가 1로 설정된 경우 종국에서 주국으로 데이터 전송을 수행한다.
b)
- 프레임의 첫 번째 필드가 1로 설정되어 있어 정보 프레임이 아님을 나타내며, 다음 비트는 0이다.
- Type 필드는 2비트를 가지고 있어 4가지 종류로 나뉜다.
- 데이터를 보내는 역할이 아닌 응답 기능을 수행하므로 Seq 값은 필요하지 않고, 다음 프레임을 요구하는 Next만이 존재한다.
c)
- 프레임은 순서 번호가 없는 것을 의미하며, 첫 번째와 두 번째 비트가 모두 1로 설정된다.
- 다양한 종류를 가지고 있으며, Type의 2비트와 Modifier의 3비트를 합쳐 5비트로 종류를 구분한다.
d)
- 두 호스트는 모두 혼합국으로 동작하며, 양쪽에서 명령과 응답을 전송할 수 있다.
e)
- 불균형 모드에서는 주국의 허락 없이 종국에서 데이터를 전송할 수 있다.
[보기]
ㄱ) 연결제어
ㄴ) 감독
ㄷ) 정보
ㄹ) 양방향응답
ㅁ) 익명
ㅂ) 비번호
ㅅ) 릴레이
ㅇ) 동기균형
ㅈ) 동기응답
ㅊ) 비동기균형
ㅋ) 비동기응답
정답
a - ㄷ
b - ㄴ
c - ㅂ
d - ㅊ
e - ㅋ
해설
➡️ 14. [JAVA 코드] 알맞은 출력 값을 작성하시오.
public class Main {
public static void main(String[] args) {
String str1 = "Programming";
String str2 = "Programming";
String str3 = new String("Programming");
System.out.println(str1 == str2);
System.out.println(str1 == str3);
System.out.println(str1.equals(str3));
System.out.print(str2.equals(str3));
}
}
정답
true
false
true
true
해설
➡️ 15. 다음 보기는 암호화 알고리즘에 대한 내용이다. 대칭키와 비대칭키를 구분하여 작성하시오.
[보기]
DES
RSA
AES
ECC
PKI
ARIA
SEED
정답
대칭키) DES, AES, ARIA, SEED
비대칭키) RSA, ECC
해설
➡️ 16. [용어] 다음 설명에 대한 용어를 작성하시오.
- ( a )란 임의의 크기를 가진 데이터(Key)를 고정된 크기의 데이터(Value)로 변화시켜 저장하는 것이다.
- 키에 대한 ( a ) 값을 사용하여 값을 저장하고 키-값 쌍의 갯수에 따라 동적으로 크기가 증가한다.
- ( a ) 값 자체를 index로 사용하기 때문에 평군 시간복잡도가 O(1) 로 매우 빠르다
- ( a ) 함수는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다.
- ( a ) 함수는 큰 파일에서 중복되는 레코드를 찾을 수 있기 때문에 데이터베이스 검색이나 테이블 검색의 속도를 가속할 수 있다.
정답
해시
HASH
해설
➡️ 17. [SQL] SQL에 알맞은 단어를 작성하시오.
DROP VIEW 학생 ( a )
[조건]
학생 테이블을 참조하는 다른 VIEW나 제약 조건까지 모두 삭제되어야 한다.
정답
a) CASCADE
해설
➡️ 18. [C 언어 코드] 괄호 안에 알맞은 코드를 작성하시오.
[조]
선택정렬
#include <stdio.h>
int main() {
int arr[] = {64, 25, 12, 22, 11};
int size = sizeof(arr) / sizeof(arr[0]);
int outerIndex = 0;
do {
int innerIndex = outerIndex + 1;
do {
if (arr[outerIndex] ( a ) arr[innerIndex]) {
int temp = arr[outerIndex];
arr[outerIndex] = arr[innerIndex];
arr[innerIndex] = temp;
}
innerIndex++;
} while (innerIndex < size);
outerIndex++;
} while (outerIndex < size - 1);
for (int i = 0; i < size; i++)
printf("%d ", arr[i]);
return 0;
}
[보기]
<
<=
=>
>
==
/
%
정답
a) >
해설
➡️ 19. [Python 코드] 알맞은 출력 값을 작성하시오.
a = "engineer information processing"
b = a[:3]
c = a[4:6]
d = a[28:]
e = b + c + d
print(e)
정답
engneing
해설
➡️ 20. [용어] 다음 설명에 대한 모듈을 작성하시오.
a)
- 하향식 테스트 시, 상위 모듈은 존재하지만 하위 모듈이 없을 때 사용되는 임시 모듈이다.
- 특별한 목적의 소프트웨어를 개발하거나 테스트할 때 활용된다.
- 서버-클라이언트 구조에서 서버만 구현된 상태로 테스트하고자 할 때, 값을 넘겨주는 가상 클라이언트를 생성하여 사용할 수 있다.
b)
- 상향식 테스트 시, 상위 모듈 없이 하위 모듈이 존재할 때 사용되는 제어 모듈(소프트웨어)이다.
- 서버-클라이언트 구조에서 클라이언트만 구현된 상태로 테스트하고자 할 때, 간단한 기능을 하는 가상 서버를 만들어 사용할 수 있다.
- 이 모듈은 하위 모듈 구동 시 자료 입출력을 제어하는데 활용된다.
정답
a) 스텁
b) 드라이브
해설
반응형