9급 지방직 공무원 서울시 컴퓨터일반 필기 기출문제복원 (2019-06-15)

9급 지방직 공무원 서울시 컴퓨터일반
(2019-06-15 기출문제)

목록

1. C 프로그램을 컴파일하면 <보기>와 같은 것들이 실행 된다. 이 중 3번째로 실행되는 것은?

  1. 링커(linker)
  2. 어셈블러(assembler)
  3. 전처리기(preprocessor)
  4. 컴파일러(compiler)
(정답률: 45%)
  • 3번째로 실행되는 것은 "어셈블러(assembler)"입니다. 이는 컴파일러가 생성한 어셈블리 코드를 기계어 코드로 변환하는 작업을 수행하기 때문입니다. 어셈블러는 어셈블리 코드를 읽어들이고, 기계어 코드로 변환하여 오브젝트 파일을 생성합니다. 이후 링커가 오브젝트 파일들을 결합하여 실행 파일을 생성합니다. 따라서 어셈블러는 컴파일 과정에서 중요한 역할을 수행합니다.
profile_image
1

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

2. 유닉스 파일 시스템에 대한 설명으로 가장 옳지 않은 것은?

  1. 슈퍼블록은 전체 블록의 수, 블록의 크기, 사용 중인 블록의 수 등 파일 시스템의 정보를 가지고 있다.
  2. 아이노드는 파일의 종류, 크기, 소유자, 접근 권한 등 각종 속성 정보를 가지고 있다.
  3. 파일마다 데이터 블록, 아이노드 외에 직접 블록 포인터와 단일·이중·삼중 간접 블록 포인터로 구성된 인덱스 정보를 가진 인덱스 블록을 별도로 가지고 있다.
  4. 디렉터리는 하위 파일들의 이름과 아이노드 포인터 (또는 아이노드 번호)를 포함하는 디렉터리 엔트리들로 구성된다.
(정답률: 64%)
  • 가장 옳지 않은 설명은 "파일마다 데이터 블록, 아이노드 외에 직접 블록 포인터와 단일·이중·삼중 간접 블록 포인터로 구성된 인덱스 정보를 가진 인덱스 블록을 별도로 가지고 있다." 입니다. 이는 오히려 옳은 설명입니다. 유닉스 파일 시스템은 파일의 데이터 블록과 아이노드 외에도 인덱스 블록을 가지고 있으며, 이 인덱스 블록은 파일의 데이터 블록에 대한 포인터 정보를 담고 있습니다. 이를 통해 파일의 데이터 블록에 빠르게 접근할 수 있습니다.
profile_image
1

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

3. <보기>는 8비트에 부호 있는 2의 보수 표현법으로 작성한 이진수이다. 이에 해당하는 십진 정수는?

  1. -60
  2. -68
  3. 94
  4. 188
(정답률: 79%)
  • 이진수에서 가장 왼쪽 비트는 부호를 나타내는 비트이다. 이진수에서 1로 표시되면 음수, 0으로 표시되면 양수이다. 이진수의 부호 비트가 1이므로 이 수는 음수이다. 나머지 비트들은 2의 보수 표현법으로 작성되어 있으므로, 이진수를 2의 보수에서 10진수로 변환하면 -68이 된다. 따라서 정답은 "-68"이다.
profile_image
1

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

4. <보기>가 설명하는 것은?

  1. 명령어 레지스터
  2. 프로그램 카운터
  3. 데이터 레지스터
  4. 주소 레지스터
(정답률: 68%)
  • 보기에서 "프로그램 카운터"는 다음에 실행될 명령어의 주소를 가리키는 레지스터로 설명되고 있습니다. 따라서, 프로그램 카운터가 정답인 이유는 컴퓨터가 다음에 실행할 명령어의 위치를 가리키는 중요한 역할을 하기 때문입니다.
profile_image
1

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

5. 운영체제에서 가상 메모리의 페이지 교체 기법에 대한 설명으로 가장 옳지 않은 것은?

  1. FIFO 기법에서는 아무리 참조가 많이 된 페이지라도 교체될 수 있다.
  2. LRU 기법을 위해서는 적재된 페이지들의 참조된 시간 또는 순서에 대한 정보가 필요하다.
  3. Second-chance 기법에서는 참조 비트가 0인 페이지는 교체되지 않는다.
  4. LFU 기법은 많이 참조된 페이지는 앞으로도 참조될 확률이 높을 것이란 판단에 근거한 기법이다.
(정답률: 65%)
  • Second-chance 기법에서는 참조 비트가 0인 페이지는 교체되지 않는다는 설명이 옳지 않습니다. 참조 비트가 0인 페이지도 교체될 수 있습니다. Second-chance 기법은 참조 비트를 이용하여 페이지를 교체하는데, 참조 비트가 1인 페이지는 참조가 최근에 일어난 페이지로 간주하여 교체를 미루고, 참조 비트가 0인 페이지는 참조가 오래된 페이지로 간주하여 교체 대상으로 삼을 수 있습니다. 따라서, 참조 비트가 0인 페이지도 교체될 수 있습니다.
profile_image
1

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

6. 네트워킹 장비에 대한 설명으로 가장 옳지 않은 것은?

  1. 라우터(router)는 데이터 전송을 위한 최선의 경로를 결정한다.
  2. 허브(hub)는 전달받은 신호를 그와 케이블로 연결된 모든 노드들에 전달한다.
  3. 스위치(switch)는 보안(security) 및 트래픽(traffic) 관리 기능도 제공할 수 있다.
  4. 브리지(bridge)는 한 네트워크 세그먼트에서 들어온 데이터를 그의 물리적 주소에 관계없이 무조건 다른 세그먼트로 전달한다.
(정답률: 65%)
  • "브리지(bridge)는 한 네트워크 세그먼트에서 들어온 데이터를 그의 물리적 주소에 관계없이 무조건 다른 세그먼트로 전달한다." 이 설명이 가장 옳지 않은 것은, 실제로는 브리지는 데이터를 물리적인 주소를 기반으로 필터링하여 다른 세그먼트로 전달할지 말지 결정한다는 것이다. 즉, 브리지는 물리적인 주소를 기반으로 데이터를 전달하는 것이다.
profile_image
1

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

7. 다음의 정렬된 데이터에서 2진탐색을 수행하여 C를 찾으려고 한다. 몇 번의 비교를 거쳐야 C를 찾을 수 있는가? (단, 비교는 ‘크다’, ‘작다’, ‘같다’ 중의 하나로 수행되고, ‘같다’가 도출될 때까지 반복된다.)

  1. 1번
  2. 2번
  3. 3번
  4. 4번
(정답률: 59%)
  • 2진탐색은 데이터가 정렬되어 있을 때 사용하는 탐색 알고리즘이다. 이 알고리즘은 중간값을 선택하여 찾고자 하는 값과 비교하고, 찾고자 하는 값이 중간값보다 작으면 중간값의 왼쪽 부분을, 크면 오른쪽 부분을 다시 중간값을 선택하여 탐색하는 방식으로 진행된다.

    따라서, 위의 데이터에서 2진탐색을 수행하면 다음과 같이 진행된다.

    1. 중간값: F, 찾고자 하는 값: C, C < F, 왼쪽 부분 탐색
    2. 중간값: B, 찾고자 하는 값: C, C > B, 오른쪽 부분 탐색
    3. 중간값: D, 찾고자 하는 값: C, C < D, 왼쪽 부분 탐색
    4. 중간값: C, 찾고자 하는 값: C, C = C, 탐색 종료

    따라서, C를 찾기 위해서는 4번의 비교가 필요하다. 따라서 정답은 "4번"이다.
profile_image
1

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

8. 인터넷 서비스 관련 용어들에 대한 설명으로 가장 옳지 않은 것은?

  1. ASP는 동적 맞춤형 웹페이지의 구현을 위해 사용된다.
  2. URL은 인터넷상에서 문서나 파일의 위치를 나타낸다.
  3. HTML은 웹문서의 전달을 위한 통신 규약이다.
  4. SSL은 안전한 웹통신을 위한 암호화를 위해 사용된다.
(정답률: 44%)
  • 정답: "HTML은 웹문서의 전달을 위한 통신 규약이다."

    설명: HTML은 웹문서를 작성하기 위한 마크업 언어이며, 웹문서의 전달을 위한 통신 규약은 HTTP이다. HTTP는 클라이언트와 서버 간의 통신을 위한 프로토콜로, HTML 문서를 전송하는 데 사용된다.
profile_image
1

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

9. <보기>의 배열 A에 n개의 원소가 있다고 가정하자. 다음 의사코드에 대한 설명으로 가장 옳지 않은 것은?

  1. 제일 큰 원소를 끝자리로 옮기는 작업을 반복한다.
  2. 선택 정렬을 설명하는 의사코드이다.
  3. O(n2)의 수행 시간을 가진다.
  4. 두 번째 for 루프의 역할은 가장 큰 원소를 맨 오른쪽으로 보내는 것이다.
(정답률: 60%)
  • 선택 정렬을 설명하는 의사코드이다.
profile_image
1

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

10. <보기>의 Java 프로그램의 실행 결과는?

  1. 3 2
  2. 3 4
  3. 1 2
  4. 1 4
(정답률: 41%)
  • 이유는 다음과 같습니다.

    1. 배열 arr의 크기는 4이므로, for문은 0부터 3까지 4번 반복됩니다.
    2. 첫 번째 반복에서 i는 0이므로, arr[0]은 "3 2"를 나타냅니다.
    3. split() 메소드를 사용하여 "3"과 "2"로 나눈 후, Integer.parseInt() 메소드를 사용하여 각각 정수형으로 변환합니다.
    4. 따라서, x는 3, y는 2가 됩니다.
    5. 두 번째 반복에서 i는 1이므로, arr[1]은 "3 4"를 나타냅니다.
    6. 위와 같은 방법으로 x는 3, y는 4가 됩니다.
    7. 세 번째 반복에서 i는 2이므로, arr[2]는 "1 2"를 나타냅니다.
    8. 위와 같은 방법으로 x는 1, y는 2가 됩니다.
    9. 네 번째 반복에서 i는 3이므로, arr[3]은 "1 4"를 나타냅니다.
    10. 위와 같은 방법으로 x는 1, y는 4가 됩니다.
    11. 마지막으로, System.out.println(x + " " + y)를 실행하여 x와 y의 값을 출력합니다.
    12. 따라서, 출력 결과는 "3 2"가 됩니다.
profile_image
1

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

11. 어떤 시스템은 7비트의 데이터에 홀수 패리티 비트를 최상위 비트에 추가하여 8비트로 표현하여 저장한다. 다음과 같은 데이터를 저장 장치에서 읽어 왔을 때 오류가 발생한 경우는?

  1. 011010111
  2. 101101111
  3. 011001110
  4. 101001101
(정답률: 61%)
  • 패리티 비트는 데이터 비트의 개수 중에서 1의 개수가 홀수가 되도록 설정하는 것이다. 예를 들어, "1011"이라는 데이터가 있을 때, 1의 개수가 2개이므로 패리티 비트는 0이 된다. 따라서, "10110"이라는 6비트 데이터에 홀수 패리티 비트를 추가하면 "0101100"이 된다.

    이 문제에서는 7비트의 데이터에 홀수 패리티 비트를 추가하여 8비트로 표현하고 있다. 따라서, 데이터 비트는 7개이고 패리티 비트는 1개이다. 이를 이용하여 주어진 데이터를 검사해보면,

    - "011010111" : 1의 개수가 5개이므로 패리티 비트는 1이 되어야 한다. 따라서, 이 데이터는 정상적으로 저장되었다.
    - "101101111" : 1의 개수가 7개이므로 패리티 비트는 0이 되어야 한다. 하지만, 패리티 비트가 1로 설정되어 있으므로 이 데이터는 오류가 발생한 것이다.
    - "011001110" : 1의 개수가 4개이므로 패리티 비트는 0이 되어야 한다. 따라서, 이 데이터는 정상적으로 저장되었다.
    - "101001101" : 1의 개수가 4개이므로 패리티 비트는 1이 되어야 한다. 하지만, 패리티 비트가 0으로 설정되어 있으므로 이 데이터는 오류가 발생한 것이다.

    따라서, 정답은 "011010111"이다.
profile_image
1

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

12. 고객, 제품, 주문, 배송업체 테이블을 가진 판매 데이터 베이스를 SQL을 이용해 구축하고자 한다. 각 테이블이 <보기>와 같은 속성을 가진다고 가정할 때, 다음 중 가장 옳지 않은 SQL문은? (단, 밑줄은 기본키를 의미한다.)

  1. 고객 테이블에 가입 날짜를 추가한다.→ “ALTER TABLE 고객 ADD 가입 날짜 DATE;”
  2. 주문 테이블에서 배송지를 삭제한다.→ “ALTER TABLE 주문 DROP COLUMN 배송지”
  3. 고객 테이블에 18세 이상의 고객만 가입 가능하다는 무결성 제약 조건을 추가한다. → “ALTER TABLE 고객 ADD CONSTRAINT CHK_AGE CHECK(나이>=18)”
  4. 배송업체 테이블을 삭제한다.→ “ALTER TABLE 배송업체 DROP”
(정답률: 61%)
  • 배송업체 테이블을 삭제하는 SQL문은 옳지 않다. 이유는 판매 데이터베이스에서 배송업체 정보가 필요하기 때문이다. 따라서, 해당 테이블을 삭제하면 데이터베이스의 완성도가 떨어지게 된다.
profile_image
1

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

13. <보기>의 UML 다이어그램 중 시스템의 구조(structure) 보다는 주로 동작(behavior)을 묘사하는 다이어그램들만 고른 것은?

  1. ㄱ, ㄹ
  2. ㄴ, ㄷ
  3. ㄴ, ㅁ
  4. ㄷ, ㄹ
(정답률: 69%)
  • 정답은 "ㄴ, ㄷ"입니다.

    - "ㄱ, ㄹ": 클래스 다이어그램과 컴포넌트 다이어그램은 시스템의 구조를 묘사하는 다이어그램으로, 시스템의 구성요소와 그들 간의 관계를 보여줍니다.
    - "ㄴ, ㄷ": 유즈케이스 다이어그램과 시퀀스 다이어그램은 시스템의 동작을 묘사하는 다이어그램으로, 시스템이 수행하는 기능과 그 기능을 수행하는 객체들 간의 상호작용을 보여줍니다.
    - "ㄴ, ㅁ": 상태 다이어그램은 시스템의 동작을 묘사하는 다이어그램으로, 시스템이 가질 수 있는 상태와 상태 간의 전이를 보여줍니다.
    - "ㄷ, ㄹ": 배치 다이어그램과 활동 다이어그램은 시스템의 구조와 동작을 모두 묘사하는 다이어그램으로, 배치 다이어그램은 시스템의 구성요소들이 물리적으로 배치되는 방식을 보여주고, 활동 다이어그램은 시스템이 수행하는 작업의 흐름을 보여줍니다.
profile_image
1

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

14. <보기 1>의 테이블 R에 대해 <보기 2>의 SQL을 수행한 결과로 옳은 것은?

  1. 2
  2. 5
  3. 6
  4. 9
(정답률: 59%)
  • 보기 2의 SQL은 R 테이블에서 A가 1인 행들의 B값을 모두 더한 값을 구하는 쿼리이다. 따라서 R 테이블에서 A가 1인 행들은 (1,2)와 (1,3)이며, 이들의 B값을 모두 더하면 9가 된다. 따라서 정답은 "9"이다.
profile_image
1

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

15. <보기>는 데이터가 정렬되는 단계를 일부 보여준 것이다. 어떤 정렬 알고리즘을 사용하면 이와 같은 데이터의 자리 교환이 일어나겠는가? (단, 제일 위의 행이 주어진 데이터이고, 아래로 내려갈수록 정렬이 진행되는 것이다.)

  1. 삽입 정렬
  2. 선택 정렬
  3. 합병 정렬
  4. 퀵 정렬
(정답률: 59%)
  • 보기에서는 인접한 두 수를 비교하여 작은 수를 앞으로 이동시키는 자리 교환 방식으로 정렬이 이루어지고 있습니다. 이러한 방식은 삽입 정렬과 선택 정렬에서 사용됩니다. 하지만 보기에서는 이미 정렬된 부분이 있기 때문에 삽입 정렬은 아닙니다. 또한 선택 정렬은 최솟값을 찾아서 맨 앞으로 이동시키는 방식이기 때문에 보기와는 다릅니다. 따라서 보기에서 사용된 정렬 알고리즘은 합병 정렬입니다. 합병 정렬은 분할 정복 방식으로 작동하며, 주어진 데이터를 반으로 나누어 각각 정렬한 후 병합하는 방식으로 정렬을 수행합니다. 이러한 방식은 보기에서 인접한 두 수를 비교하여 정렬하는 방식과는 다르기 때문에 합병 정렬이 정답입니다.
profile_image
1

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

16. <보기>의 각 설명과 일치하는 데이터 구조로 바르게 짝지어진 것은? (순서대로 ㈎, ㈏, ㈐)

  1. 큐, 연결 리스트, 스택
  2. 스택, 연결 리스트, 큐
  3. 스택, 큐, 연결 리스트
  4. 큐, 스택, 연결 리스트
(정답률: 68%)
  • ㈎ : 큐는 FIFO(First In First Out) 구조로, 먼저 들어온 데이터가 먼저 나가는 구조입니다. 그림에서도 데이터가 왼쪽에서 들어오고 오른쪽으로 나가는 것을 볼 수 있습니다.

    ㈏ : 스택은 LIFO(Last In First Out) 구조로, 나중에 들어온 데이터가 먼저 나가는 구조입니다. 그림에서도 데이터가 위에서 들어오고 위에서 나가는 것을 볼 수 있습니다.

    ㈐ : 연결 리스트는 데이터를 노드라는 단위로 나누어 각 노드가 다음 노드를 가리키는 구조입니다. 그림에서도 각 노드가 다음 노드를 가리키는 것을 볼 수 있습니다.
profile_image
1

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

17. 전화번호의 마지막 네 자리를 3으로 나눈 나머지를 해싱(hashing)하여 데이터베이스에 저장하고자 한다. 나머지 셋과 다른 저장 장소에 저장되는 것은?

  1. 010-4021-6718
  2. 010-9615-4815
  3. 010-7290-6027
  4. 010-2851-5232
(정답률: 59%)
  • 정답은 "010-7290-6027"이다.

    전화번호의 마지막 네 자리를 3으로 나눈 나머지는 0부터 2까지의 값을 가질 수 있다. 따라서 이 값을 해싱하여 저장할 때, 값이 0인 전화번호와 값이 1인 전화번호, 값이 2인 전화번호를 따로 저장해야 한다.

    보기에서 "010-4021-6718"의 마지막 네 자리를 3으로 나눈 나머지는 2이다. 따라서 이 전화번호는 해싱하여 값이 2인 저장 장소에 저장된다.

    "010-9615-4815"의 마지막 네 자리를 3으로 나눈 나머지는 1이고, "010-2851-5232"의 마지막 네 자리를 3으로 나눈 나머지는 2이다. 따라서 이 두 전화번호도 값이 1인 저장 장소와 값이 2인 저장 장소에 저장된다.

    마지막으로, "010-7290-6027"의 마지막 네 자리를 3으로 나눈 나머지는 0이다. 따라서 이 전화번호는 값이 0인 저장 장소에 저장된다.
profile_image
1

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

18. 다음 메모리 영역 중 전역 변수가 저장되는 영역은?

  1. 데이터(Data)
  2. 스택(Stack)
  3. 텍스트(Text)
  4. 힙(Heap)
(정답률: 36%)
  • 전역 변수는 프로그램 실행 중에 항상 메모리에 상주하며, 프로그램의 어느 곳에서나 접근 가능한 변수입니다. 이러한 특성 때문에 전역 변수는 데이터 영역에 저장됩니다. 따라서 정답은 "데이터(Data)"입니다.
profile_image
1

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

19. UML(Unified Modeling Language)에 대한 설명으로 가장 옳지 않은 것은?

  1. UML은 방법론으로, 단계별로 어떻게 작업해야 하는지 자세하게 나타낸다.
  2. UML은 소프트웨어의 구성요소와 그것들의 관계 및 상호작용을 시각화한 것이다.
  3. UML은 객체지향 소프트웨어를 모델링하는 표준 그래픽 언어로, 심벌과 그림을 사용해 객체지향 개념을 나타낼 수 있다.
  4. UML은 소프트웨어 개발의 중요한 작업인 분석, 설계, 구현의 정확하고 완벽한 모델을 제공한다.
(정답률: 33%)
  • "UML은 방법론으로, 단계별로 어떻게 작업해야 하는지 자세하게 나타낸다."가 가장 옳지 않은 설명입니다. UML은 방법론이 아니라 객체지향 소프트웨어를 모델링하는 표준 그래픽 언어입니다. UML은 객체지향 개념을 시각화하고 소프트웨어의 구성요소와 그것들의 관계 및 상호작용을 나타내는데 사용됩니다. 또한 UML은 소프트웨어 개발의 분석, 설계, 구현 단계에서 모델링을 통해 정확하고 완벽한 모델을 제공합니다.
profile_image
1

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

20. <보기>의 C 프로그램을 실행했을 때, 화면에 출력되는 값은? (단, 프로그램의 첫 번째 열의 숫자는 행 번호이고 프로그램의 일부는 아님.)

  1. 0
  2. 3
  3. 6
  4. 12
(정답률: 38%)
  • 프로그램은 0부터 3씩 증가하는 i값을 출력하고, i가 9일 때 3을 더해 12를 출력하고 종료합니다. 따라서 출력되는 값은 0, 3, 6, 12입니다.
profile_image
1

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

목록 다음회차 >