본문 바로가기
기타/정보처리기사

[2023년도 2회] 정보처리기사 정처기 | 실기 기출 | 회차별 정리

by YUNI Heo 2024. 1. 7.
반응형

 

⭕ [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) 드라이브

해설

 

반응형