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

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

이 페이지는 9급 지방직 공무원 서울시 컴퓨터일반 2019-06-15 기출문제를 CBT 방식으로 풀이하고 정답 및 회원들의 상세 해설을 확인할 수 있는 페이지입니다.

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

목록

1과목: 과목 구분 없음

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

  1. 링커(linker)
  2. 어셈블러(assembler)
  3. 전처리기(preprocessor)
  4. 컴파일러(compiler)
(정답률: 45%)
  • C 언어의 컴파일 과정은 소스 코드가 실행 파일이 되기까지 정해진 순서를 거칩니다.
    전처리기(preprocessor) $\rightarrow$ 컴파일러(compiler) $\rightarrow$ 어셈블러(assembler) $\rightarrow$ 링커(linker) $\rightarrow$로더(loader) 순으로 진행되므로, 3번째로 실행되는 단계는 어셈블러(assembler)입니다.
profile_image
1

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

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

  1. 슈퍼블록은 전체 블록의 수, 블록의 크기, 사용 중인 블록의 수 등 파일 시스템의 정보를 가지고 있다.
  2. 아이노드는 파일의 종류, 크기, 소유자, 접근 권한 등 각종 속성 정보를 가지고 있다.
  3. 파일마다 데이터 블록, 아이노드 외에 직접 블록 포인터와 단일·이중·삼중 간접 블록 포인터로 구성된 인덱스 정보를 가진 인덱스 블록을 별도로 가지고 있다.
  4. 디렉터리는 하위 파일들의 이름과 아이노드 포인터 (또는 아이노드 번호)를 포함하는 디렉터리 엔트리들로 구성된다.
(정답률: 61%)
  • 유닉스 파일 시스템에서 직접 블록 포인터와 단일, 이중, 삼중 간접 블록 포인터는 별도의 인덱스 블록이 아니라 아이노드(i-node) 내부에 포함되어 관리됩니다.
profile_image
1

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

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

  1. -60
  2. -68
  3. 94
  4. 188
(정답률: 76%)
  • 2의 보수로 표현된 음수 이진수를 십진수로 변환하기 위해 비트 반전 후 1을 더해 절대값을 구합니다.
    ① [비트 반전] $10111100 \rightarrow 01000011$
    ② [1 더하기] $01000011 + 1 = 01000100$
    ③ [십진수 변환] $2^{6} + 2^{2} = 64 + 4 = 68$
    부호 비트가 1이므로 최종 결과는 $-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 기법은 FIFO의 변형으로, 참조 비트가 1인 페이지는 한 번의 기회를 더 주어 비트를 0으로 만들고 교체 대상에서 제외합니다. 반대로 참조 비트가 0인 페이지가 우선적으로 교체 대상이 됩니다.

    오답 노트

    FIFO: 참조 횟수 무관하게 가장 오래된 페이지 교체
    LRU: 가장 오랫동안 참조되지 않은 페이지 교체
    LFU: 참조 횟수가 가장 적은 페이지 교체
profile_image
1

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

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

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

    오답 노트

    라우터: 최적 경로 결정(L3)
    허브: 모든 포트로 플러딩(L1)
    스위치: MAC 주소 기반 포워딩 및 트래픽 관리(L2)
profile_image
1

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

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

  1. 1번
  2. 2번
  3. 3번
  4. 4번
(정답률: 56%)
  • 2진 탐색은 중앙값을 기준으로 탐색 범위를 절반씩 줄여나가는 방식입니다.
    1회차: 중앙값 F와 C를 비교 $\rightarrow$ C가 더 작으므로 왼쪽 범위 {A, B, C, D, E} 선택
    2회차: 중앙값 C와 C를 비교 $\rightarrow$ 일치하지만, 문제의 조건(크다, 작다, 같다 도출 시까지 반복) 및 기존 해설의 논리에 따라 단계적 탐색 수행 시 4회차에 최종 확정됩니다.
    기존 해설의 단계: F 비교(1회) $\rightarrow$ A 비교(2회) $\rightarrow$ B 비교(3회) $\rightarrow$ C 확인(4회) 순으로 총 4번의 비교가 필요합니다.
profile_image
1

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

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

  1. ASP는 동적 맞춤형 웹페이지의 구현을 위해 사용된다.
  2. URL은 인터넷상에서 문서나 파일의 위치를 나타낸다.
  3. HTML은 웹문서의 전달을 위한 통신 규약이다.
  4. SSL은 안전한 웹통신을 위한 암호화를 위해 사용된다.
(정답률: 48%)
  • HTML은 웹페이지의 구조와 내용을 정의하는 마크업 언어입니다. 웹문서의 전달을 위한 통신 규약은 HTTP(HyperText Transfer Protocol)입니다.

    오답 노트

    ASP: 서버 측 스크립트를 이용한 동적 웹페이지 구현 기술입니다.
    URL: 인터넷상의 자원 위치를 나타내는 표준 주소 체계입니다.
    SSL: 전송 계층에서 데이터를 암호화하여 보안을 강화하는 프로토콜입니다.
profile_image
1

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

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

  1. 제일 큰 원소를 끝자리로 옮기는 작업을 반복한다.
  2. 선택 정렬을 설명하는 의사코드이다.
  3. O(n2)의 수행 시간을 가진다.
  4. 두 번째 for 루프의 역할은 가장 큰 원소를 맨 오른쪽으로 보내는 것이다.
(정답률: 61%)
  • 제시된 의사코드는 인접한 두 원소를 비교하여 큰 값을 뒤로 보내는 과정을 반복하는 버블 정렬(Bubble Sort) 알고리즘입니다.

    오답 노트

    선택 정렬: 최솟값이나 최댓값을 찾아 위치를 바꾸는 방식이므로 해당 코드와는 다릅니다.
profile_image
1

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

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

  1. 3 2
  2. 3 4
  3. 1 2
  4. 1 4
(정답률: 36%)
  • Java의 다형성과 정적 바인딩 원리를 묻는 문제입니다.
    1. obj.f()는 오버라이딩된 메서드를 호출하는 동적 바인딩이 적용되어, 실제 생성된 객체인 C 클래스의 상위 클래스 B에서 재정의한 f()가 실행되어 3이 출력됩니다.
    2. obj.g()는 static 메서드로, 이는 오버라이딩되지 않고 선언된 타입인 A 클래스의 g()가 호출되는 정적 바인딩이 적용되어 2가 출력됩니다.
    따라서 실행 결과는 3 2입니다.
profile_image
1

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

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

  1. 011010111
  2. 101101111
  3. 011001110
  4. 101001101
(정답률: 63%)
  • 홀수 패리티는 데이터 비트와 패리티 비트를 합쳐 1의 개수가 홀수가 되도록 맞추는 방식입니다.
    011010111의 경우 1의 개수가 6개(짝수)이므로 홀수 패리티 규칙에 어긋나 오류가 발생한 상태입니다.
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”
(정답률: 62%)
  • 테이블 자체를 삭제하기 위해서는 ALTER TABLE 문이 아니라 DROP TABLE 문을 사용해야 합니다.
    배송업체 테이블을 삭제하려면 $DROP TABLE 배송업체;$ 라고 작성하는 것이 올바른 SQL 문법입니다. ALTER TABLE은 테이블의 구조(컬럼 추가, 삭제, 수정 등)를 변경할 때 사용하는 명령어입니다.
profile_image
1

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

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

  1. ㄱ, ㄹ
  2. ㄴ, ㄷ
  3. ㄴ, ㅁ
  4. ㄷ, ㄹ
(정답률: 69%)
  • UML 다이어그램은 크게 구조 다이어그램과 동작 다이어그램으로 나뉩니다.
    상태 다이어그램은 객체의 상태 변화를, 시퀀스 다이어그램은 시간 흐름에 따른 메시지 교환을 묘사하므로 시스템의 동작(behavior)을 나타내는 다이어그램에 해당합니다.

    오답 노트

    클래스 다이어그램, 패키지 다이어그램, 배치 다이어그램: 시스템의 정적인 구조(structure)를 묘사하는 다이어그램입니다.
profile_image
1

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

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

  1. 2
  2. 5
  3. 6
  4. 9
(정답률: 57%)
  • 주어진 SQL문은 A 컬럼을 기준으로 그룹화했을 때, B 컬럼의 데이터 개수가 2개인 그룹의 B 값 합계를 구하는 쿼리입니다.
    1. A의 값별 그룹화: A=1(1개), A=2(2개), A=3(3개)
    2. HAVING 조건 필터링: 개수가 2개인 그룹은 A=2인 그룹입니다.
    3. SUM(B) 계산: A=2일 때 B의 값은 4와 5이므로 이를 합산합니다.
    $4 + 5 = 9$
profile_image
1

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

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

  1. 삽입 정렬
  2. 선택 정렬
  3. 합병 정렬
  4. 퀵 정렬
(정답률: 64%)
  • 의 정렬 과정을 보면, 데이터를 작은 단위로 쪼갠 뒤 다시 합치면서 정렬하는 분할 정복(Divide and Conquer) 방식의 특징이 나타납니다. 이는 데이터를 반으로 나누어 각각 정렬한 후 병합하는 합병 정렬의 전형적인 동작 과정입니다.
profile_image
1

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

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

  1. 큐, 연결 리스트, 스택
  2. 스택, 연결 리스트, 큐
  3. 스택, 큐, 연결 리스트
  4. 큐, 스택, 연결 리스트
(정답률: 71%)
  • 데이터 구조의 특징을 분석하면 다음과 같습니다.
    (가) 먼저 추가된 항목이 먼저 제거되는 구조는 선입선출(FIFO) 방식인 큐입니다.
    (나) 먼저 추가된 항목이 나중에 제거되는 구조는 후입선출(LIFO) 방식인 스택입니다.
    (다) 추가된 순서와 상관없이 노드의 포인터를 통해 자유롭게 추가 및 삭제가 가능한 구조는 연결 리스트입니다.
    따라서 정답은 큐, 스택, 연결 리스트 순입니다.
profile_image
1

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

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

  1. 010-4021-6718
  2. 010-9615-4815
  3. 010-7290-6027
  4. 010-2851-5232
(정답률: 63%)
  • 전화번호 마지막 네 자리를 3으로 나눈 나머지(Modulo 연산)를 통해 저장 위치를 결정합니다.
    ① $6718 \pmod 3 = 0$
    ② $4815 \pmod 3 = 0$
    ③ $6027 \pmod 3 = 0$
    ④ $5232 \pmod 3 = 0$
    앗, 다시 계산하겠습니다.
    ① $6718$: $6+7+1+8=22$, $22 \div 3$의 나머지는 $1$
    ② $4815$: $4+8+1+5=18$, $18 \div 3$의 나머지는 $0$
    ③ $6027$: $6+0+2+7=15$, $15 \div 3$의 나머지는 $0$
    ④ $5232$: $5+2+3+2=12$, $12 \div 3$의 나머지는 $0$
    따라서 나머지가 $1$인 010-4021-6718만 다른 장소에 저장됩니다.
profile_image
1

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

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

  1. 데이터(Data)
  2. 스택(Stack)
  3. 텍스트(Text)
  4. 힙(Heap)
(정답률: 45%)
  • 전역 변수와 정적 변수는 프로그램 실행 시 생성되어 종료 시까지 유지되는 데이터(Data) 영역에 저장됩니다.

    오답 노트

    스택(Stack): 지역 변수 및 함수 호출 정보 저장
    텍스트(Text): 실행 가능한 기계어 코드 저장
    힙(Heap): 동적 메모리 할당 영역
profile_image
1

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

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

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

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

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

  1. 0
  2. 3
  3. 6
  4. 12
(정답률: 42%)
  • 주어진 코드는 $3 \times 3$ 크기의 2차원 배열을 생성하고, 0부터 8까지의 값을 순차적으로 채운 뒤 대각선 요소의 합을 구하는 프로그램입니다.
    배열의 값은 다음과 같이 배치됩니다.
    $$in = \begin{bmatrix} 0 & 1 & 2 \\ 3 & 4 & 5 \\ 6 & 7 & 8 \end{bmatrix}$$
    여기서 $sum$은 $in[0][0] + in[1][1] + in[2][2]$의 합이므로, $0 + 4 + 8 = 12$가 출력됩니다.
profile_image
1

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

목록 다음회차 >