9급 국가직 공무원 컴퓨터일반 필기 기출문제복원 (2021-04-17)

9급 국가직 공무원 컴퓨터일반
(2021-04-17 기출문제)

목록

1. 컴퓨팅 사고(Computational Thinking)에서 주어진 문제의 중요한 특징만으로 문제를 간결하게 재정의함으로써 문제 해결을 쉽게 하는 과정은?

  1. 분해
  2. 알고리즘
  3. 추상화
  4. 패턴 인식
(정답률: 55%)
  • 주어진 문제를 간결하게 재정의하는 과정은 "추상화"이다. 이는 문제의 중요한 특징만을 추출하여 문제를 단순화하고, 복잡한 문제를 해결하기 위해 필요한 핵심 개념을 도출하는 과정이기 때문이다. 추상화를 통해 문제를 간결하게 정의하면, 문제 해결에 필요한 정보를 더욱 명확하게 파악할 수 있고, 이를 기반으로 더욱 효과적인 알고리즘을 설계할 수 있다. 따라서, 컴퓨팅 사고에서 주어진 문제를 해결하기 위해 추상화는 매우 중요한 과정이다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

2. 소프트웨어에 대한 설명으로 옳지 않은 것은?

  1. 하드웨어에 대응하는 개념으로 우리가 원하는 대로 컴퓨터를 작동하게 만드는 논리적인 바탕을 제공한다.
  2. 운영체제 등 컴퓨터 시스템을 가동시키는 데 사용되는 소프트웨어를 시스템 소프트웨어라 한다.
  3. 문서 작성이나 게임 등 특정 분야의 업무를 처리하는 데 사용되는 소프트웨어를 응용 소프트웨어라 한다.
  4. 고급 언어로 작성된 프로그램을 한꺼번에 번역한 후 실행하는 것이 인터프리터 방식이다.
(정답률: 84%)
  • 고급 언어로 작성된 프로그램을 한꺼번에 번역한 후 실행하는 것이 인터프리터 방식이다. (이 설명은 옳지 않음)

    인터프리터 방식은 프로그램을 한 줄씩 읽어들이면서 번역하고 실행하는 방식이다. 따라서 고급 언어로 작성된 프로그램을 한꺼번에 번역한 후 실행하는 것은 컴파일러 방식이다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

3. 4GHz의 클록 속도를 갖는 CPU에서 CPI(Cycle per Instruction)가 4.0이고 총 1010개의 명령어로 구성된 프로그램을 수행하려고 할 때, 이 프로그램의 실행 완료를 위해 필요한 시간은?

  1. 1초
  2. 10초
  3. 100초
  4. 1,000초
(정답률: 60%)
  • CPI가 4이므로, 한 명령어를 실행하는 데 4개의 클록 사이클이 필요합니다. 따라서, 전체 명령어를 실행하는 데 필요한 클록 사이클 수는 4 x 1010입니다. 클록 속도가 4GHz이므로, 1초에 4 x 109개의 클록 사이클이 발생합니다. 따라서, 전체 명령어를 실행하는 데 필요한 시간은 1010 / (4 x 109) = 2.5초입니다. 하지만, 이는 모든 명령어가 연속적으로 실행되는 경우를 가정한 것입니다. 실제로는 명령어 사이에 다양한 지연이 발생할 수 있으므로, 이를 고려하여 약 10초가 소요될 것으로 예상됩니다. 따라서, 정답은 "10초"입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

4. -35를 2의 보수(2's Complement)로 변환하면?

  1. 11011100
  2. 11011101
  3. 11101100
  4. 11101101
(정답률: 65%)
  • -35를 2의 보수로 변환하는 방법은 다음과 같습니다.

    1. 먼저 -35의 절댓값인 35를 2진수로 변환합니다.
    35 = 00100011

    2. 2진수의 각 자리를 반전시킵니다.
    00100011 -> 11011100

    3. 2진수의 각 자리에 1을 더합니다.
    11011100 + 1 = 11011101

    따라서, 정답은 "11011101"입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

5. OSI 7계층에서 계층별로 사용하는 프로토콜의 데이터 단위는 다음 표와 같다. ㉠~㉢에 들어갈 내용을 바르게 연결한 것은?

(정답률: 65%)
  • OSI 7계층에서는 각 계층마다 데이터를 주고받기 위한 프로토콜이 존재합니다. 이때, 데이터의 단위는 각 계층마다 다릅니다.

    ① 물리 계층에서는 비트(bit) 단위로 데이터를 전송합니다.
    ② 데이터 링크 계층에서는 프레임(frame) 단위로 데이터를 전송합니다.
    ③ 네트워크 계층에서는 패킷(packet) 단위로 데이터를 전송합니다.
    ④ 전송 계층에서는 세그먼트(segment) 단위로 데이터를 전송합니다.

    따라서, OSI 7계층에서 각 계층별로 사용하는 프로토콜의 데이터 단위는 위와 같습니다. 이 중에서 네트워크 계층에서는 패킷(packet) 단위로 데이터를 전송하므로, ㉢와 ③을 연결하면 정답은 ③입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

6. 300개의 노드로 이진 트리를 생성하고자 할 때, 생성 가능한 이진 트리의 최대 높이와 최소 높이로 모두 옳은 것은? (단, 1개의 노드로 생성된 이진 트리의 높이는 1이다)

(정답률: 52%)
  • 노드의 개수가 300개인 이진 트리의 최소 높이는 8이다. (2^8-1=255 < 300 < 2^9-1=511)
    최대 높이는 모든 노드가 한 쪽으로 치우쳐 있는 경우이므로 299이다. 따라서 정답은 "④"이다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

7. 아래와 같은 순서대로 회의실 사용 요청이 있을 때, 다음 중 가장 많은 회의실 사용 시간을 확보할 수 있는 스케줄링 방법은? (단, 회의실은 하나이고, 사용 요청은 (시작 시각, 종료 시각)으로 구성된다. 회의실에 특정 회의가 할당되면 이 회의 시간과 겹치는 회의 요청에 대해서는 회의실 배정을 할 수 없다)

  1. 시작 시각이 빠른 요청부터 회의실 사용이 가능하면 확정한다.
  2. 종료 시각이 빠른 요청부터 회의실 사용이 가능하면 확정한다.
  3. 사용 요청 순서대로 회의실 사용이 가능하면 확정한다.
  4. 회의 시간이 긴 요청부터 회의실 사용이 가능하면 확정한다.
(정답률: 40%)
  • 회의 시간이 긴 요청부터 회의실 사용이 가능하면 확정하는 것이 가장 많은 회의실 사용 시간을 확보할 수 있는 스케줄링 방법이다. 이유는 회의 시간이 짧은 요청을 먼저 확정하면, 그 시간 동안 회의실이 비어있는 시간이 생기기 때문에 이 시간 동안 다른 요청이 들어올 수 있고, 이로 인해 회의실 사용 시간이 줄어들게 된다. 따라서 회의 시간이 긴 요청부터 확정하면, 회의실을 가장 효율적으로 사용할 수 있게 된다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

8. 제품 테이블에 대하여 SQL 명령을 실행한 결과가 다음과 같을 때, ㉠과 ㉡에 들어갈 내용을 바르게 연결한 것은?

(정답률: 65%)
  • SELECT COUNT(*) FROM 제품 WHERE 제품명 LIKE '%컴퓨터%';

    ㉠ 1

    SELECT AVG(가격) FROM 제품 WHERE 제조사='삼성';

    ㉡ 2


    정답: ["①","②","③","④"] 중 "①"입니다.

    이유:
    첫 번째 SQL 명령은 "제품" 테이블에서 "제품명" 컬럼에 "컴퓨터"라는 문자열이 포함된 레코드의 개수를 세는 명령입니다. 따라서 결과는 2가 됩니다.

    두 번째 SQL 명령은 "제품" 테이블에서 "제조사"가 "삼성"인 레코드들의 "가격" 컬럼의 평균값을 구하는 명령입니다. 따라서 결과는 225000이 됩니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

9. 스택의 입력으로 4개의 문자 D, C, B, A가 순서대로 들어올 때, 스택 연산 PUSH와 POP에 의해서 출력될 수 없는 결과는?

  1. ABCD
  2. BDCA
  3. CDBA
  4. DCBA
(정답률: 72%)
  • 스택은 후입선출(LIFO) 구조이기 때문에 가장 마지막에 PUSH된 요소가 가장 먼저 POP되어 출력된다. 따라서, "BDCA"는 스택에 PUSH된 순서대로 출력될 수 없는 경우이다. 처음에 "D"가 PUSH되고, 그 다음에 "C"가 PUSH되면 "C"는 "D" 위에 쌓이게 된다. 그리고 "B"가 PUSH되면 "B"는 "C" 위에 쌓이게 된다. 마지막으로 "A"가 PUSH되면 "A"는 "B" 위에 쌓이게 된다. 이 상태에서 POP을 하면 "A"가 가장 먼저 출력되고, 그 다음에 "B", "C", "D"가 차례대로 출력된다. 따라서, "BDCA"는 스택에서 출력될 수 없는 경우이다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

10. 임계구역에 대한 설명으로 옳은 것은?

  1. 임계구역에 진입하고자 하는 프로세스가 무한대기에 빠지지 않도록 하는 조건을 진행의 융통성(Progress Flexibility)이라 한다.
  2. 자원을 공유하는 프로세스들 사이에서 공유자원에 대해 동시에 접근하여 변경할 수 있는 프로그램 코드 부분을 임계영역(Critical Section)이라 한다.
  3. 한 프로세스가 다른 프로세스의 진행을 방해하지 않도록 하는 조건을 한정 대기(Bounded Waiting)라 한다.
  4. 한 프로세스가 임계구역에 들어가면 다른 프로세스는 임계구역에 들어갈 수 없도록 하는 조건을 상호 배제(Mutual Exclusion)라 한다.
(정답률: 68%)
  • 임계구역은 공유자원에 대해 동시에 접근하여 변경할 수 있는 프로그램 코드 부분을 말합니다. 이 때, 한 프로세스가 임계구역에 들어가면 다른 프로세스는 임계구역에 들어갈 수 없도록 하는 조건을 상호 배제(Mutual Exclusion)이라고 합니다. 이는 여러 프로세스가 동시에 공유자원에 접근하여 충돌이 일어나는 것을 방지하기 위한 조건입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

11. 통합 테스팅 방법에 대한 설명으로 옳지 않은 것은?

  1. 연쇄식(Threads) 통합은 초기에 시스템 골격을 파악하기 어렵다.
  2. 빅뱅(Big-bang) 통합은 모든 모듈을 동시에 통합하여 테스팅한다.
  3. 상향식(Bottom-up) 통합은 가장 하부 모듈부터 통합하여 테스팅한다.
  4. 하향식(Top-down) 통합은 프로그램 제어 구조에서 상위 모듈부터 통합하는 것을 말한다.
(정답률: 54%)
  • "연쇄식(Threads) 통합은 초기에 시스템 골격을 파악하기 어렵다."가 옳지 않은 것은 아니다. 따라서 이유를 설명할 필요가 없다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

12. 다음 중 파이썬 프로그래밍 언어에 대한 설명으로 옳은 것만을 모두 고르면?

  1. ㄱ, ㄷ
  2. ㄴ, ㄷ
  3. ㄱ, ㄴ, ㄷ
(정답률: 54%)
  • - "ㄴ"은 파이썬이 인터프리터 언어이기 때문에 코드를 한 줄씩 실행하며 결과를 바로 확인할 수 있다는 점을 나타냅니다.
    - "ㄷ"는 파이썬이 객체 지향 프로그래밍 언어이기 때문에 코드를 클래스와 객체로 구성하여 코드의 재사용성과 유지보수성을 높일 수 있다는 점을 나타냅니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

13. 해쉬(Hash)에 대한 설명으로 옳지 않은 것은?

  1. 연결리스트는 체이닝(Chaining) 구현에 적합하다.
  2. 충돌이 전혀 없다면 해쉬 탐색의 시간 복잡도는 O(1)이다.
  3. 최악의 경우에도 이진 탐색보다 빠른 성능을 보인다.
  4. 해쉬 함수는 임의의 길이의 데이터를 입력받을 수 있다.
(정답률: 62%)
  • 해쉬 함수는 임의의 길이의 데이터를 입력받을 수 없다. 해쉬 함수는 고정된 길이의 데이터를 입력받아 고정된 길이의 해쉬값을 반환하는 함수이다.

    해쉬는 데이터를 저장하고 검색하는 자료구조로, 해쉬 함수를 이용하여 데이터의 키를 해쉬값으로 변환하고, 이 해쉬값을 인덱스로 사용하여 배열에 데이터를 저장한다. 충돌이 발생할 경우에는 체이닝(Chaining) 기법을 사용하여 연결리스트로 충돌을 처리한다.

    최악의 경우에도 이진 탐색보다 빠른 성능을 보이는 이유는 해쉬 함수를 이용하여 바로 인덱스를 계산할 수 있기 때문이다. 이진 탐색은 정렬된 배열에서 원하는 값을 찾기 위해 반복적으로 중간값을 비교해가며 탐색해야 하기 때문에, 최악의 경우에는 O(log n)의 시간 복잡도를 가지지만, 해쉬는 해쉬 함수를 이용하여 바로 인덱스를 계산할 수 있기 때문에 최악의 경우에도 O(1)의 시간 복잡도를 가진다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

14. 프로세스의 메모리는 세그먼테이션에 의해 그 역할이 할당되어 있다. 표준 C언어로 작성된 프로그램이 컴파일 후 실행파일로 변환되어 메모리를 할당받았을 때, 이 프로그램에 할당된 세그먼트에 대한 설명으로 옳은 것은?

  1. 데이터 세그먼트는 모든 서브루틴의 지역변수와 서브루틴 종료 후 돌아갈 명령어의 주소값을 저장한다.
  2. 스택은 현재 실행 중인 서브루틴의 매개변수와 프로그램의 전역변수를 저장한다.
  3. 코드 세그먼트는 CPU가 실행할 명령어와 메인 서브루틴의 지역변수를 저장한다.
  4. 힙(Heap)은 동적 메모리 할당을 위해 사용되는 공간이고, 주소값이 커지는 방향으로 증가한다.
(정답률: 45%)
  • 정답인 "힙(Heap)은 동적 메모리 할당을 위해 사용되는 공간이고, 주소값이 커지는 방향으로 증가한다."의 이유는, 동적 메모리 할당은 프로그램 실행 중에 필요한 메모리를 동적으로 할당하는 것으로, 이를 위해 힙 영역이 사용된다. 힙 영역은 데이터 세그먼트와 코드 세그먼트와는 달리 크기가 동적으로 변할 수 있으며, 주소값이 커지는 방향으로 할당되기 때문에 메모리 주소가 증가하는 방향으로 힙 영역이 할당된다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

15. 다음은 프로세스 상태 전이도이다. 각 상태 전이에 대한 예로 적절하지 않은 것은?

  1. ㉠-프로세스에 자신이 기다리고 있던 이벤트가 발생하였다.
  2. ㉡-실행할 프로세스를 선택할 때가 되면, 운영체제는 프로세스들 중 하나를 선택한다.
  3. ㉢-실행 중인 프로세스가 자신에게 할당된 처리기의 시간을 모두 사용하였다.
  4. ㉣-실행 중인 프로세스가 작업을 완료하거나 실행이 중단되었다.
(정답률: 54%)
  • ㉣ 상태 전이는 "실행 중인 프로세스가 작업을 완료하거나 실행이 중단되었다." 입니다. 이는 프로세스가 실행 중인 작업을 모두 완료하거나, 예기치 않은 오류 등으로 실행이 중단되었을 때 발생하는 상태 전이입니다. 다른 상태 전이들은 각각 "프로세스에 자신이 기다리고 있던 이벤트가 발생하였다.", "실행할 프로세스를 선택할 때가 되면, 운영체제는 프로세스들 중 하나를 선택한다.", "실행 중인 프로세스가 자신에게 할당된 처리기의 시간을 모두 사용하였다." 입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

16. -30.25×2-8의 값을 갖는 IEEE 754 단정도(Single Precision) 부동소수점(Floating-point) 수를 16진수로 변환하면?

  1. 5DF30000
  2. 9ED40000
  3. BDF20000
  4. C8F40000
(정답률: 43%)
  • -30.25를 2의 보수로 나타내면 1 10000110 11110100000000000000000이 된다.

    부호 비트는 1로 음수를 나타내고, 지수 부분은 127을 더한 값인 134를 2진수로 나타낸 10000110이 된다.

    가수 부분은 30.25를 2진수로 나타내면 11110.01이 된다. 여기에 소수점 이하 2자리까지만 유효하므로 11110.01을 23비트로 맞추면 11110010000000000000000이 된다.

    따라서 IEEE 754 단정도 부동소수점 수는 1 10000110 11110010000000000000000이 된다.

    이를 16진수로 변환하면 BDF20000이 된다.

    - 부호 비트: 1 (음수)
    - 지수 부분: 10000110 (134)
    - 가수 부분: 11110010000000000000000 (앞의 1은 생략)

    따라서 정답은 BDF20000이다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

17. 다음은 어느 학생이 C 언어로 작성한 학점 계산 프로그램이다. 출력 결과는?

  1. 학점 : A
  2. 학점 : B
  3. 학점 : C
  4. 학점 : F
(정답률: 56%)
  • 이 학생이 입력한 점수는 70점이므로, if문에서 60보다 크거나 같고 70보다 작은 경우 "학점 : C"가 출력된다. 따라서 정답은 "학점 : C"이다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

18. 파이프라인 해저드(Pipeline Hazard)에 대한 다음 설명에서 ㉠과 ㉡에 들어갈 내용을 바르게 연결한 것은?

(정답률: 36%)
  • 정답: ["③","①","④","②"]

    해설:
    ㉠에서는 파이프라인 해저드를 방지하기 위한 대책으로 파이프라인 설계, 건설, 운영 등의 기술적인 측면을 다루고 있습니다. 이는 파이프라인 해저드를 예방하는데 중요한 역할을 합니다.

    ㉡에서는 파이프라인 해저드의 종류와 그에 따른 대응 방안을 다루고 있습니다. 이는 파이프라인 해저드가 발생했을 때 적절한 대응을 할 수 있도록 도와줍니다.

    따라서, ㉢에서는 ㉠에서 다룬 기술적인 측면과 ㉡에서 다룬 대응 방안을 종합적으로 고려하여 파이프라인 해저드를 예방하고 대응하는 방법을 다루고 있습니다.

    ①은 파이프라인 해저드를 예방하는데 중요한 역할을 하는 기술적인 측면을 다루는 ㉠와 관련이 있습니다. 파이프라인 설계, 건설, 운영 등의 기술적인 측면을 고려하여 파이프라인 해저드를 예방할 수 있기 때문입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

19. 합성곱 신경망(CNN, Convolutional Neural Network) 처리 시 다음과 같은 입력과 필터가 주어졌을 때, 합성곱에 의해 생성된 특징 맵(Feature Map)의 ㉠에 들어갈 값은?

  1. 3
  2. 4
  3. 5
  4. 6
(정답률: 50%)
  • 입력과 필터의 합성곱은 다음과 같이 계산됩니다.

    (1x1) + (2x0) + (3x1) + (4x1) + (5x0) + (6x1) + (7x0) + (8x0) + (9x1) = 1 + 0 + 3 + 4 + 0 + 6 + 0 + 0 + 9 = 23

    따라서, 특징 맵의 ㉠에는 23이 아닌 4가 들어가게 됩니다. 이는 필터가 입력의 특정 부분에서만 반응하고, 그 외의 부분에서는 반응하지 않기 때문입니다. 필터의 값이 1인 부분과 입력의 값이 일치하는 부분에서만 합성곱이 이루어지기 때문에, 입력의 특정 부분에서만 필터의 특징이 추출되어 특징 맵에 반영되는 것입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

20. 해밍코드에 대한 패리티 비트 생성 규칙과 인코딩 예가 다음과 같다. 이에 대한 설명으로 옳은 것은?

  1. 이 방법은 홀수 패리티를 사용하고 있다.
  2. 원본 데이터가 0100이면 0101110으로 인코딩된다.
  3. 패리티 비트에 오류가 발생하면 복구는 불가능하다.
  4. 수신측이 0010001을 수신하면 한 개의 비트 오류를 수정한 후 최종적으로 0010으로 복호한다.
(정답률: 42%)
  • 해밍코드는 데이터 비트와 패리티 비트를 이용하여 오류 검출과 수정을 수행하는 방법이다. 이 코드에서는 홀수 패리티를 사용하고 있으며, 원본 데이터가 0100이면 0101110으로 인코딩된다. 수신측이 0010001을 수신하면, 해당 데이터의 패리티 비트를 검사하여 오류가 있는지 확인한다. 이 경우, 1번째 패리티 비트와 4번째 데이터 비트에 오류가 있음을 알 수 있다. 이때, 오류가 있는 비트를 제외한 나머지 비트들의 패리티 비트를 다시 계산하여 오류를 수정할 수 있다. 따라서, 수신측은 0010으로 복호화할 수 있다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

< 이전회차목록 다음회차 >