20241

20문제 · 2024-1

  1. #1·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 코드에서 알맞은 출력 값을 작성하시오.

    class Connection {
        private static Connection _inst = null;
        private int count = 0;
        static public Connection get() {
            if (_inst == null) {
                _inst = new Connection();
            }
            return _inst;
        }
        public void count() { count++; }
        public int getCount() { return count; }
    }
    
    public class Main {
        public static void main(String[] args) {
            Connection conn1 = Connection.get();
            conn1.count();
            Connection conn2 = Connection.get();
            conn2.count();
            Connection conn3 = Connection.get();
            conn3.count();
            conn1.count();
            System.out.print(conn1.getCount());
        }
    }
    
  2. #2·코드 추적·난이도 어려움·쪼잔함 4 (화병)프로그래밍C언어

    다음 C언어 코드에서 알맞은 출력 값을 작성하시오.

    #include <stdio.h>
    int main() {
    
        int v1 = 0, v2 = 35, v3 = 29;
    
        if(v1 > v2 ? v2 : v1) {
            v2 = v2 << 2;
        } else {
            v3 = v3 << 2;
        }
    
        printf("%d", v2 + v3);
    }
    
  3. #3·단답형·난이도 보통·쪼잔함 5 (현타)소프트웨어공학

    다음 응집도(Cohesion)를 높은 순서대로 나열하시오.

    ㄱ. 기능적 응집도 ㄴ. 통신적(교환적) 응집도 ㄷ. 우연적 응집도 ㄹ. 시간적 응집도

  4. #4·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍C언어

    다음 C언어 코드의 출력 결과를 쓰시오.

    #include <stdio.h>
    #include <string.h>
    
    void reverse(char *str) {
        int len = strlen(str);
        char *p1 = str;
        char *p2 = str + len - 1;
        char temp;
        while(p1 < p2) {
            temp = *p1;
            *p1 = *p2;
            *p2 = temp;
            p1++;
            p2--;
        }
    }
    
    int main(int argc, char* argv[]) {
        char str[100] = "ABCDEFGH";
        reverse(str);
        printf("%s", str);
        return 0;
    }
    
  5. #5·단답형·난이도 ·쪼잔함 3 (욕 나옴)네트워크TCP/IP

    다음 [보기]의 네트워크에서 라우터를 통해 할당 가능한 4번, 5번의 IP를 작성하시오.

    [보기]

    • 192.168.35.3/24
    • 192.168.36.0/24
    • 192.168.36.249/24
    • 129.200.16.22/24
    • 129.200.8.249/24
  6. #6·단답형·난이도 어려움·쪼잔함 4 (화병)데이터베이스정규화

    다음 표에서 어떤 정규형이 위반되었는지 쓰시오.

    고객이름강좌명강좌번호
    한지수토익P001
    한지수전기기사P002
    한지수토익P001
    한지수정보처리기사P003
    한지수전기기사P002
  7. #7·단답형·난이도 보통·쪼잔함 3 (욕 나옴)네트워크

    다음에서 설명하는 네트워크 용어를 영문 약자로 쓰시오.

    • 대표적인 링크 상태 라우팅 프로토콜이다.
    • 이것은 인터넷에서 연결된 링크의 상태를 감시하여 최적의 경로를 선택한다.
    • 단일 자율 시스템 내에서 라우팅 정보를 배포하는 데 사용되는 내부 게이트웨이 프로토콜이다.
    • 모든 대상에 도달하기 위한 최단 경로를 구축하고 계산하며 최단 경로는 Dijkstra 알고리즘을 사용하여 계산한다.
  8. #8··난이도 어려움·쪼잔함 4 (화병)데이터베이스SQL

    다음 각 설명에 해당하는 용어를 쓰시오.

    구분세타 조인 (Theta Join)동등 조인 (Equi Join)자연 조인 (Natural Join)
    정의연산자 <, >, =, <=, >=, <>를 사용하여 조인하는 조인등호(=)를 기준으로 조인하는 조인공통 속성 이름을 기준으로 자동으로 조인하는 조인
    결과조건에 맞는 모든 튜플 결합조건에 맞는 튜플 결합공통 속성은 한 번 나타나고, 조건에 맞는 튜플 결합
  9. #9·단답형·난이도 어려움·쪼잔함 2 (짜증)운영체제

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

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

  10. #10·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍Java

    아래 JAVA 언어 코드의 실행 순서를 중복 없이 작성하시오.

    실행순서: 5 > () > () > () > () > ()

    class Parent {
        int x, y;
    
        Parent(int x, int y) {  // ①
            this.x = x;
            this.y = y;
        }
    
        int getT() { // ②
            return x * y;
        }
    }
    
    class Child extends Parent {
        int x;
    
        Child(int x) { // ③
            super(x + 1, x);
            this.x = x;
        }
    
        int getT(int n) { // ④
            return super.getT() + n;
        }
    }
    
    class Main {
        public static void main(String[] args) { // ⑤
            Parent parent = new Child(3); // ⑥
            System.out.println(parent.getT()); // ⑦
        }
    }
    
  11. #11·코드 추적·난이도 ·쪼잔함 2 (짜증)프로그래밍C언어

    다음 C 언어의 알맞은 출력값을 작성하시오.

    #include <stdio.h>
    typedef struct {
        int accNum;
        double bal;
    } BankAcc;
    
    double sim_pow(double base, int year) {
        int i;
        double r = 1.0;
        
        for(int i = 0; i < year; i++) { 
            r *= base;
        }
    
        return r;
    }
    
    void initAcc(BankAcc *acc, int x, double y) {
        acc->accNum = x;
        acc->bal = y;
    }
    
    void xxx(BankAcc *acc, double *en) {
        if(*en > 0 && *en < acc->bal) {
            acc->bal = acc->bal - *en;
        } else { 
            acc->bal = acc->bal + *en;
        }
    }
    
    void yyy(BankAcc *acc) {
        acc->bal = acc->bal * sim_pow((1+0.1),3);
    }
    
    int main() {
        BankAcc myAcc;
        initAcc(&myAcc, 9981, 2200.0);
        double amount = 100.0;
        xxx(&myAcc, &amount);
        yyy(&myAcc);
        printf("%d and %.2f", myAcc.accNum, myAcc.bal);
        return 0;
    }
    
  12. #12·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍Python

    다음 파이썬 코드에 대한 알맞은 출력 값을 작성하시오.

    a = ["Seoul", "Kyeonggi", "Incheon", "Daejun", "Dae-gu", "Pusan"]
    str = "S"
    
    for i in a:
        str = str + i[1]
    
    print(str)
    
  13. #13·코드 추적·난이도 보통·쪼잔함 1 (그럭저럭)데이터베이스SQL

    아래 SQL 문과 테이블을 참고하여 출력 값을 표로 작성하시오.

    SELECT B
    FROM T1
    WHERE C IN (SELECT C FROM T2 WHERE D = 'k');
    

    T1

    ABC
    1ax
    2bx
    1cw
    3dw

    T2

    CDE
    xk3
    uk3
    zs2
  14. #14·빈칸 채우기·난이도 어려움·쪼잔함 4 (화병)소프트웨어공학테스트

    아래는 애플리케이션 테스트 관리 내용이다. 설명하는 답을 보기에서 골라 작성하시오.

    보기

    ㄱ. 구문 커버리지 ㄴ. 결정 커버리지 ㄷ. 조건 커버리지 ㄹ. 변경 조건/결정 커버리지 ㅁ. 다중 조건 커버리지 ㅂ. 경로 커버리지

    설명

    • 모든 분기와 조건의 조합을 고려하나 모든 조합을 테스트하지 않고 테스트가 필요한 중요한 조합을 찾는다는 점이 특징이다.
  15. #15·단답형·난이도 보통·쪼잔함 2 (짜증)보안

    다음 내용을 보고 보기에서 알맞은 용어를 골라 작성하시오.

    • 공격자의 존재를 숨기면서 이 공격자에게 시스템에 대한 무제한 접근 권한을 부여하는 악성 프로그램이다.
    • 해커가 자신의 존재를 숨기면서 허가되지 않은 소프트웨어에 접근할 수 있도록 설계된 도구이다.
    • 일반적으로 펌웨어, 가상화 계층 등의 다양한 시스템 영역에서 작동하며, 운영체제의 시스템콜을 해킹하여 악성코드의 실행 여부를 숨겨 안티바이러스 탐지를 우회할 수 있다.

    보기

    ㄱ. Worm ㄴ. Trojan horse ㄷ. Backdoor ㄹ. Virus ㅁ. Ransomware ㅂ. Spyware ㅅ. Rootkit

  16. #16·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 코드를 보고 출력 값을 작성하시오.

    class classOne {
        int a, b;
        public classOne(int a, int b) { // ③
            this.a = b;
            this.b = a;
        }
        public void print() { // ⑥
            System.out.println(a + b);
        }
    }
    
    class classTwo extends classOne {
        int po = 3;
        public classTwo(int i) { // ④
            super(i, i + 1);
        }
        public void print() { // ⑦
            System.out.println(po * po);
        }
    }
    
    public class main {
        public static void main(String[] args) { // ①
            classOne one = new classTwo(10); // ②
            one.print(); // ⑤
        }
    }
    
  17. #17·단답형·난이도 보통·쪼잔함 2 (짜증)보안

    다음 내용을 보고 알맞은 용어를 쓰시오.

    • 불특정 다수가 아닌 명확한 표적을 정하여 지속적인 정보를 수집 후 공격 감행할 수 있다.
    • 시스템에 직접 침투하는 것뿐 아니라 표적 내부직원들이 이용하는 다양한 단말을 대상으로 한다.
    • 한가지 기술만이 아닌 Zero-day 취약점, 악성코드 등을 이용하는 다양한 보안 기술을 사용한다.
    • 일반적으로 공격은 침투, 검색, 수집 및 유출의 4단계로 실행되며, 각 단계별로 다양한 공격 기술을 사용한다.
  18. #18·코드 추적·난이도 보통·쪼잔함 1 (그럭저럭)데이터베이스SQL

    아래의 SQL 코드와 테이블을 참고하여 결과 값을 작성하시오.

    TABLE

    E_NOSAL
    11000
    23000
    31500
    SELECT COUNT(*)
    FROM TABLE
    WHERE E_NO > 1 AND (SAL >= 3000 OR E_NO = 2)
    
  19. #19·코드 추적·난이도 ·쪼잔함 4 (화병)프로그래밍C언어

    다음 C 언어 코드의 알맞은 출력 값을 작성하시오.

    #include <stdio.h>
    #include <ctype.h>
    
    int main() {
        char *p = "it is 8";
        char result[100];
        int i;
        for(i = 0; p[i] != '\0'; i++) {
            if(isupper(p[i]))
                result[i] = (p[i] - 'A' + 5) % 26 + 'A';
            else if(islower(p[i]))
                result[i] = (p[i] - 'a' + 10) % 26 + 'a';
            else if(isdigit(p[i]))
                result[i] = (p[i] - '0' + 3) % 10 + '0';
            else
                result[i] = p[i];
        }
        result[i] = '\0';
        printf("%s\n", result);
        return 0;
    }
    
  20. #20·단답형·난이도 보통·쪼잔함 2 (짜증)소프트웨어공학디자인패턴

    다음 내용을 보고 알맞은 용어를 쓰시오.

    • 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴이다.
    • 연관성이 있는 객체군이 여러개 있을 경우 이들을 묶어 추상화하고, 어떤 구체적인 상황이 주어지면 팩토리 객체에서 집합으로 묶은 객체 군을 구현하는 생성 패턴이다.
    • 관련성 있는 여러 종류의 객체를 일관된 방식으로 생성하는 경우에 유용하다. kit라고도 불린다.