20232

20문제 · 2023-2

  1. #1·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)프로그래밍C언어

    다음은 C언어 코드의 문제이다. 보기의 조건에 맞도록 괄호 안에 알맞은 코드를 작성하시오.

    입력값이 54321인 경우 출력값이 43215로 출력되어야 한다.

    #include <stdio.h>
    
    int main(void) {
        int n[5];
        int i;
        for (i = 0; i < 5; i++) {
            scanf("%d", &n[i]); // ① 입력
        }
        for (i = 0; i < 5; i++) {
            printf("%d", n[(i + 1) % 5]); // ② 출력
        }
        return 0;
    }
    
  2. #2·빈칸 채우기·난이도 보통·쪼잔함 1 (그럭저럭)프로그래밍Java

    다음은 JAVA 코드 문제이다. 가지고 있는 돈이 총 4620원일 경우 1000원, 500원, 100원, 10원의 지폐 및 동전을 이용하여 보기의 조건에 맞춰 최소한의 코드를 통해 괄호를 작성하시오.

    public class Problem {
        public static void main(String[] args) {
            int m = 4620;
            int a = ( ① );
            int b = ( ② );
            int c = ( ③ );
            int d = ( ④ );
            System.out.println(a); // 천원짜리 4개
            System.out.println(b); // 오백원짜리 1개
            System.out.println(c); // 백원짜리 1개
            System.out.println(d); // 십원짜리 2개
        }
    }
    
  3. #3·빈칸 채우기·난이도 어려움·쪼잔함 4 (화병)프로그래밍C언어

    다음은 C언어의 코드이다. 보기의 조건에 맞추어 알맞은 출력을 작성하시오.

    입력값은 홍길동, 김철수, 박영희 순서로 주어진다.

    #include <stdio.h>
    #include <stdlib.h>
    
    char n[30];
    
    char *test() {
        gets(n); // ① ④ ⑦
        return n;
    }
    
    int main() {
        char *test1;
        char *test2;
        char *test3;
        test1 = test(); // ③
        test2 = test(); // ⑥
        test3 = test(); // ⑨
        printf("%s\n", test1);
        printf("%s", test3);
        return 0;
    }
    
  4. #4·단답형·난이도 보통·쪼잔함 1 (그럭저럭)데이터베이스SQL

    다음 테이블에 데이터를 삽입하기 위한 SQL문을 작성하시오.

    테이블: 학생

    학번이름학년전공전화번호
    041234스폰지밥3경영학010-1234-1234

    조건

    • 문자열인 경우 작은따옴표를 사용한다.
  5. #5·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음 C 코드의 실행 결과를 쓰시오.

    #include <stdio.h>
    
    void main() {
        int n[] = {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");
            case 8:
                printf("B");
            case 7:
            case 6:
                printf("C");
            default:
                printf("D");
        }
    }
    
  6. #6··난이도 보통·쪼잔함 4 (화병)소프트웨어공학테스트

    다음은 테스트 커버리지에 대한 내용이다. 보기에서 알맞은 기호를 고르시오.

    • 프로그램 내에 있는 결정포인트 내의 모든 각 개별 조건식에 대한 모든 가능한 값(참/거짓)에 대해 적어도 한 번 수행한다.
    • 소프트웨어 테스트 수행 시 소스 코드를 어느 수준까지 수행하였는지를 나타내는 기준을 나열한다.
    • 실제 업무에서는 다양한 툴을 사용하여 테스팅을 수행한다.
    • True / False에 충분한 양을 줄 수 없는 경우가 발생 가능한 한계를 지닌다.

    [보기] ㄱ. 구문 커버리지 ㄴ. 변형 조건/결정 커버리지 ㄷ. 조건/결정 커버리지 ㄹ. 결정 커버리지

    보기 펼치기

    ① ㄱ ② ㄴ ③ ㄷ ④ ㄹ

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

    다음은 소스코드의 알맞은 출력을 작성하시오.

    #include <stdio.h>
    int main() {
        int c = 0;
        for(int i = 1; i <= 2023; i++) {
            if(i % 4 == 0) c++;
        }
        printf("%d", c);
    }
    
  8. #8·단답형·난이도 어려움·쪼잔함 3 (욕 나옴)보안

    다음 내용에 알맞은 답을 작성하시오.

    • 소프트웨어에서 워터마크 삭제 등과 같이 소프트웨어가 불법으로 변경(unauthorized modifications)되었을 경우, 그 소프트웨어가 정상 수행되지 않게 하는 기법이다.
    • 소프트웨어 테스트 수행 시 소스 코드를 어느 수준까지 수행하였는지를 나타내는 기준을 나열한다.
    • 소프트웨어 변조 공격을 방지하기 위해 프로그램에 변조검증코드(tamper-proofing code)를 삽입하는 것도 한 방법으로 변조공격의 용도는 첫째 프로그램이 변경되었는지를 탐지하는 것이고, 둘째는 변조가 탐지되었다면 프로그램이 실행되지 않도록 하는 것이다.
    • 지적 콘텐츠의 관련 산업이나 전자상거래 또는 보호해야 할 소프트웨어가 있는 다양한 산업 분야에 적용된다.
  9. #9·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍C언어

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

    #include <stdio.h>
    #define MAX_SIZE 10
    
    int isWhat[MAX_SIZE];
    int point = -1;
    
    int isEmpty() {
        if (point == -1) return 1;
        return 0;
    }
    
    void into(int num) {
        if (point >= 10) printf("Full");
        else isWhat[++point] = num;
    }
    
    int take() {
        if (isEmpty() == 1) printf("Empty");
        else return isWhat[point--];
        return 0;
    }
    
    int main(int argc, const char *argv[]) {
        into(5);
        into(2);    
    
        while(!isEmpty()) {
            printf("%d", take());
    
            into(4); 
            into(1);
            printf("%d", take());
    
            into(3);
            printf("%d", take());
            printf("%d", take());
    
            into(6);
            printf("%d", take());
            printf("%d", take());
        }
        return 0;
    }
    
  10. #10·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)데이터베이스

    데이터베이스 설계 순서에 관한 내용이다. [보기]를 이용하여 괄호 안에 알맞은 내용을 작성하시오.

    A ( ) -> B ( ) -> C ( ) -> D ( ) - E ( )

    [보기] 구현, 요구조건 분석, 개념적 설계, 물리적 설계, 논리적 설계

  11. #11··난이도 보통·쪼잔함 4 (화병)소프트웨어공학

    다음은 디자인 패턴에 관한 문제이다. [보기]에서 알맞은 것을 작성하시오.

    ① 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. ② 알고리즘을 객체 구조에서 분리시키는 디자인 패턴으로 연산을 수행해야 할 요소의 수정이 없지 않고 새로운 연산을 추가 가능하게 하는 방법이다.

    보기 펼치기

    생성패턴, 구조패턴, 행위패턴, Singleton, Adapter, Observer, Factory Method, Bridge, Strategy, Builder, Decorator, Visitor

  12. #12·빈칸 채우기·난이도 어려움·쪼잔함 2 (짜증)네트워크

    데이터 전송 시 오류를 검출하고 수정하는 방법 중 ( ① )은 데이터 전송 과정에서 발생한 오류를 검출해 재전송 요구 없이 송신 측에서 스스로 수정하는 방식이고, ( ② ) 방식은 오류 발생 시 송신 측에 재전송을 요구하는 방식이다. ( ③ )의 종류에는 ( ④ ) 검사, ( ⑤ ) 검사가 있다.

    보기 펼치기

    ① hamming, ② FEC, ③ BEC, ④ parity, ⑤ CRC

  13. #13·빈칸 채우기·난이도 ·쪼잔함 4 (화병)네트워크

    다음은 HDLC 프로토콜에 대한 설명이다. 괄호 안에 알맞은 답을 [보기]에서 골라 작성하시오.

    • ( ① ) 프레임은 Seq, Next, P/F의 필드를 가진다. 또한 한 번 처음 비트를 0으로 준다. Seq는 송신 순서를 가진다. P/F를 1로 설정하고 Next는 주소에서 송신측에 데이터 전송을 하라는 의미이고 P/F로 설정된 경우 데이터 전송을 요구하는 것이 아니라 다음 비트가 0이냐 아니냐를 따진다. 데이터를 보내는 역할은 아니라 다음 응답의 기능을 수행하므로 Seq에 대한 필요가 없다고 다음 프레임을 요구하는 형태는 존재한다.
    • ( ④ )은/는 양호 모드 주로 주국과 하위 없이 종국에 데이터를 전송할 수 있다.
    보기 펼치기

    ㄱ. 연결제어, ㄴ. 감독, ㄷ. 의명, ㄹ. 비번호, ㅁ. 릴레이, ㅂ. 양방향 응답, ㅅ. 릴레이, ㅇ. 동기균형(SBM), ㅈ. 비동기균형(ABM)

  14. #14·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍Java

    다음은 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.println(str2.equals(str3)); // ④
        }
    }
    
  15. #15·단답형·난이도 쉬움·쪼잔함 3 (욕 나옴)보안

    [보기]의 암호화 알고리즘을 대칭키와 비대칭키로 나누시오.

    [보기] DES, RSA, AES, ECC, ARIA, SEED

  16. #16·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)데이터베이스

    다음 괄호 안에 알맞은 답을 작성하시오.

    • ( ㉠ )은 데이터의 크기를 가진 데이터(Key)를 고정된 크기의 데이터(Value)로 변환시켜 저장하는 것이다.
    • 키에 대한 ( ㉡ ) 값을 사용하여 데이터를 저장하고, 키 값의 개수에 따라 크기가 증가한다.
    • ( ㉢ ) 값을 index로 사용하기 때문에 평균 시간 복잡도가 O(1)로 매우 빠르다.
    • ( ㉣ )은 큰 파일에서 중복되는 레코드를 찾을 수 있기 때문에 데이터베이스 검색이나 테이블 검색의 속도를 가속할 수 있다.
  17. #17·단답형·난이도 보통·쪼잔함 3 (욕 나옴)데이터베이스SQL

    다음 [보기]의 SQL문에서 괄호 안에 알맞은 단어를 작성하시오.

    DROP VIEW 학생 ( )

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

    다음 코드는 선택형 구현에 관한 문제이다. 오름차순으로 정렬할 경우 빈칸에 알맞은 연산자를 [보기]에서 골라 작성하시오.

    #include <stdio.h>
    int main() {
        int E[] = {64, 25, 12, 22, 11};
        int n = sizeof(E) / sizeof(E[0]);
        do {
            int i = 0;
            do {
                if (E[i] ( ) E[i+1]) {
                    int tmp = E[i];
                    E[i] = E[i+1];
                    E[i+1] = tmp;
                }
                i++;
            } while (i < n - 1);
            n--;
        } while (n > 1);
    }
    

    [보기] <, <=, >, >=, ==, %

  19. #19·코드 추적·난이도 쉬움·쪼잔함 2 (짜증)프로그래밍Python

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

    a = "engineer information processing"
    b = a[:3]
    c = a[4:6]
    d = a[28:]
    e = b + c + d
    print(e)
    
  20. #20·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)소프트웨어공학테스트

    다음 설명에 대한 알맞은 답을 작성하시오.

    ① ( )

    • 하향식 테스트 시 상위 모듈은 존재하나 하위 모듈이 없는 경우의 테스트를 위해 임시 제공되는 모듈이다.
    • 특별한 목적의 소프트웨어를 구현하는 것으로 컴포넌트를 개발하거나 테스트할 때 사용된다.
    • 서버-클라이언트 구조에서 서버 구현된 상태로 테스트를 해보고 싶을 때 단순히 값만 넘겨주는 가상의 클라이언트를 만들어서 테스트할 수 있다.

    ② ( )

    • 상향식 테스트 시 상위 모듈 없이 하위 모듈이 존재할 때 하위 모듈 구동 시 자료 입출력을 제어하기 위한 제어 모듈(소프트웨어)이다.
    • 서버-클라이언트 구조에서 클라이언트만 구현된 상태로 테스트를 해보고 싶을 때 접속 인증 등의 간단한 기능만 하는 가상의 서버를 만들어서 테스트할 수 있다.