카테고리 없음

2024년 3회 정보처리기사 실기 복원 문제

blogger847 2025. 4. 11. 22:29

문제 1. [Java] 코드 출력 값 (문자열 비교)

다음은 Java 코드에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력 값을 작성하시오.

public class Main{
    static String[] s = new String[3];

    static void func(String[]s, int size){
        for(int i=1; i < size; i++){ 
            if(s[i-1].equals(s[i])){ 
                System.out.print("O");
            }else{
                System.out.print("N");
            }
        }
        for (String m : s){
            System.out.print(m);
        }
    }

    public static void main(String[] args){
        s[0] = "A";
        s[1] = "A";
        s[2] = new String("A");

        func(s, 3);
    }
}
    

문제 2. [Python] 코드 출력 값 (리스트 연산)

다음은 파이썬에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력 값을 작성하시오.

def func(lst):
    for i in range(len(lst) // 2):
        lst[i], lst[-i-1] = lst[-i-1], lst[i]

lst = [1, 2, 3, 4, 5, 6]
func(lst)

print(sum(lst[::2]) - sum(lst[1::2]))
    

문제 3. [SQL] JOIN 및 서브쿼리 결과

아래의 employee 테이블과 project 테이블을 참고하여 보기의 SQL명령어에 알맞는 출력 값을 작성하시오.

[employee] 테이블

no first_name last_name project_id
1 John Doe 10
2 Jim Carry 20
3 Rachel Redmond 10

[project] 테이블

project_id name
10 Alpha
20 Beta
10 Gamma

보기 (SQL 명령어)

SELECT count(*)
FROM employee AS e
    JOIN project AS p
    ON e.project_id = p.project_id
WHERE p.name IN (
    SELECT name FROM project p WHERE p.project_id IN (
       SELECT project_id FROM employee GROUP BY project_id HAVING count(*) < 2
    )
);
    

문제 4. [운영체제] LRU 페이지 교체 알고리즘

다음은 운영체제 페이지 순서를 참고하여 할당된 프레임의 수가 3개일 때, LRU 알고리즘의 페이지 부재 횟수를 작성하시오.

페이지 참조 순서 : 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1


문제 5. [네트워크 보안] 공격 유형 용어

다음은 네트워크 취약점에 대한 문제이다. 아래 내용을 보고 알맞는 용어를 작성하시오.

  • IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크의 일부를 불능 상태로 만드는 공격이다.
  • 여러 호스트(또는 네트워크)가 특정 대상(희생자)에게 대량의 ICMP Echo Reply 를 보내게 하여 서비스 거부(DoS)를 유발시키는 보안 공격이다.
  • 공격 대상 호스트는 대량으로 유입되는 응답 패킷으로 인해 시스템 자원이 고갈되어 서비스 불능 상태에 빠진다.

문제 6. [SW설계] GoF 디자인 패턴 분류

다음은 GoF 디자인 패턴과 관련된 문제이다. 괄호안에 알맞는 용어를 작성하시오.

(   ) 패턴은 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴이다.
(   ) 패턴은 객체들 간의 통신 방법을 정의하고 알고리즘을 캡슐화하여 객체간의 결합도를 낮춘다.
(   ) 패턴은 Chain of Responsibility나 Command 또는 Observer 패턴이다.


문제 7. [C] 코드 출력 값 (static 변수)

다음은 C언어에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력 값을 작성하시오.

#include <stdio.h>

int func(){
    static int x = 0;
    x += 2;
    return x;
}

int main(){
    int x = 1;
    int sum = 0;
    for(int i = 0; i < 4; i++) {
        x++;
        sum += func();
    }
    printf("%d", sum);

    return 0;
}
    

문제 8. [DB] 무결성 제약조건 위반

다음은 무결성 제약조건에 대한 문제이다. 아래 표에서 어떠한 ( ) 무결성을 위반하였는지 작성하시오.

Student Name Age Major
101 Alice 20 Computer Science
102 Bob 21 Mathematics
101 David 23 Chemistry
NULL Eve 22 Biology

문제 9. [네트워크] URL 구조 매칭

다음은 URL 구조에 관한 문제이다. 아래 보기의 순서대로 URL에 해당하는 번호를 작성하시오.

보기
query : 서버에 전달할 추가 데이터
path : 서버 내의 특정 자원을 가리키는 경로
scheme : 리소스에 접근하는 방법이나 프로토콜
authority : 사용자 정보, 호스트 명, 포트 번호
fragment : 특정 문서 내의 위치

 

 


문제 10. [Python] 코드 출력 값 (타입 비교)

다음은 파이썬에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력 값을 작성하시오.

def func(value):
    if type(value) == type(100): 
        return 100
    elif type(value) == type(""): 
        return len(value) 
    else:
        return 20

a = '100.0' 
b = 100.0   
c = (100, 200) 

print(func(a) + func(b) + func(c))
    

문제 11. [Java] 상속과 다형성 출력 값

다음은 Java 코드에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력 값을 작성하시오.


public class Main{
    public static void main(String[] arge){
        Base a = new Derivate();
        Derivate b = new Derivate();

        System.out.print(a.getX() + a.x + b.getX() + b.x);
    }
}

class Base{
    int x = 3;

    int getX(){
        return x * 2;
    }
}

class Derivate extends Base{
    int x = 7;

    @Override
    int getX(){
        return x * 3;
    }
}
    

문제 12. [C] 코드 출력 값 (연결 리스트 조작)

다음은 C언어에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력 값을 작성하시오.


#include <stdio.h>
#include <stdlib.h>

struct Node {
 int value;
 struct Node* next;
};

void func(struct Node* node){
  while(node != NULL && node->next != NULL){
     int t = node->value;
     node->value = node->next->value;
     node->next->value = t;
     node = node->next->next;
  }
}

int main(){
  struct Node n1 = {1, NULL};
  struct Node n2 = {2, NULL};
  struct Node n3 = {3, NULL};

  n1.next = &n3;
  n3.next = &n2;

  func(&n1);

  struct Node* current = &n1;
  while(current != NULL){
    printf("%d", current->value);
    current = current->next;
 }

 return 0;
}
    

문제 13. [SW테스팅] 테스트 커버리지 유형

다음은 테스트 커버리지에 대한 문제이다. 아래 내용에 알맞는 답을 보기에서 골라 작성하시오.

a) 테스트를 통해 프로그램의 모든 문장(Statement)을 최소한 한번씩 실행 했는지를 측정
b) 프로그램 내의 모든 분기(조건문)의 각 분기(참/거짓 결과)를 최소한 한번씩 실행했는지를 측정
c) 복합 조건(예: A and B) 내의 각 개별 조건(A, B 각각)이 참과 거짓으로 평가되는 경우를 모두 테스트 했는지를 측정

보기
ㄱ. 조건 ㄴ. 경로 ㄷ. 결정 ㄹ. 분기 ㅁ. 함수 ㅂ. 문장 ㅅ. 루프


문제 14. [UML] 클래스 다이어그램 관계

아래는 UML 클래스의 관계에 관한 문제이다. 보기를 보고 알맞는 관계를 선택하여 작성하시오.

보기
ㄱ. 의존(Dependency) ㄴ. 연관(Association) ㄷ. 일반화(Generalization)


문제 15. [DB] 데이터베이스 키(Key) 유형

다음은 데이터베이스에 관한 문제이다. 아래 내용을 읽고 알맞는 답을 보기에서 찾아 골라 작성하시오.

  1. 다른 테이블의 기본 키를 참조하여 테이블 간의 관계를 맺는 데 사용되는 키
  2. 테이블의 각 행을 유일하게 구별할 수 있는 가장 작은 속성(들)의 묶음
  3. 테이블 내에서 행을 유일하게 구별할 수 있는 후보 키들 중에서, 기본 키로 뽑히지 않은 나머지 키들
  4. 테이블의 각 행을 유일하게 구별할 수 있는 모든 속성(들)의 묶음 (가장 작은 묶음이 아닐 수도 있음)

보기
ㄱ. 슈퍼키(Superkey) ㄴ. 외래키(Foreign Key) ㄷ. 대체키(Alternate Key) ㄹ. 후보키(Candidate Key)


문제 16. [C] 코드 출력 값 (이중 포인터)

다음은 C언어에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력 값을 작성하시오.


#include <stdio.h>

void func(int ** arr, int size){
    for(int i = 0; i < size; i++){
        *(*arr + i) = (*(*arr + i) + i) % size;
    }
}

int main(){
    int arr[] = {3, 1, 4, 1, 5};
    int* p = arr;
    int** pp = &p;
    int num = 6;

    func(pp, 5);
    num = arr[2];
    printf("%d", num);

    return 0;
}
    

문제 17. [네트워크] 네트워크 기술 용어

다음 아래 내용을 보고 알맞는 용어를 작성하시오.(3글자로 작성)

  • 공용 네트워크(예: 인터넷)를 통해 사설 네트워크를 안전하게 확장하는 기술이다.
  • 사용자의 실제 IP 주소를 숨기고, 암호화된 터널을 통해 통신하여 사용자가 어디에서 접속하는지를 추적하기 어렵게 만든다.
  • 구현 기술로는 IPsec 또는 SSL/TLS, L2TP 등이 있다.

문제 18. [Java] 예외 처리 (try-catch-finally)

다음은 Java 코드에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력 값을 작성하시오.


public class ExceptionHandling {
    public static void main(String[] args) {
        int sum = 0;
        try {
            func();
        } catch (NullPointerException e) {
            sum = sum + 1;
        } catch (Exception e) {
            sum = sum + 10;
        } finally {
            sum = sum + 100;
        }
        System.out.print(sum);
    }

    static void func() throws Exception {
        throw new NullPointerException();
    }
}
    

문제 19. [Java] 제네릭, 내부 클래스, 오버로딩

다음은 Java 코드에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력 값을 작성하시오.


class Main {

  public static class Collection<T>{
    T value;

    public Collection(T t){
        value = t;
    }

    public void print(){
       new Printer().print(value);
    }

   class Printer{
      void print(Integer a){
        System.out.print("A" + a);
      }
      void print(Object a){
        System.out.print("B" + a);
      }
      void print(Number a){
        System.out.print("C" + a);
      }
   }
 }

  public static void main(String[] args) {
      new Collection<>(0).print();
  }

}
    

문제 20. [네트워크] 네트워크 유형 용어

다음은 네트워크에 대한 문제이다. 아래 내용을 보고 알맞는 용어를 작성하시오.

  • 중앙 관리 지점(예: 공유기, 액세스 포인트)이나 미리 설치된 네트워크 기반 시설 없이, 필요할 때 임시로 장치들끼리 직접 연결하여 구성하는 네트워크이다.
  • 주로 무선 통신을 사용하여, 각 장치(노드)가 서로 직접 데이터를 주고받는 P2P(Peer-to-Peer) 방식으로 동작한다.
  • 기반 시설이 없는 재난 현장의 구조 활동, 회의실에서의 임시 파일 공유, 군사 작전 등에서 유용하게 사용될 수 있다.

보기
ㄱ. Infrastructure Network
ㄴ. Firmware Network
ㄷ. Peer-to-Peer Network
ㄹ. Ad-hoc Network
ㅁ. Mesh Network
ㅂ. Sensor Network
ㅅ. Virtual Private Network