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

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

목록

1. 다음 논리회로에서 A=1010, B=0010일 때, S에 출력되는 값은?

  1. 1011
  2. 1101
  3. 0111
  4. 1110
(정답률: 63%)
  • A=1010, B=0010 이므로, XOR 게이트를 통해 S1=1000이 출력됩니다. 이어서 AND 게이트를 통해 C1=0000이 출력됩니다. 다음으로 A와 B의 합을 구하기 위해, A와 B를 더하는 전가산기를 사용합니다. 전가산기는 입력으로 A, B, 이전 단계에서의 자리올림(C1)을 받아서, 합(S2)과 현재 단계에서의 자리올림(C2)을 출력합니다.

    전가산기의 첫 번째 단계에서는 A0=0, B0=0, C1=0 이므로, S2=0, C2=0이 출력됩니다. 두 번째 단계에서는 A1=1, B1=1, C1=0 이므로, S2=0, C2=1이 출력됩니다. 세 번째 단계에서는 A2=0, B2=0, C1=1 이므로, S2=1, C2=0이 출력됩니다. 마지막으로 네 번째 단계에서는 A3=1, B3=0, C1=0 이므로, S2=1, C2=0이 출력됩니다.

    따라서 S=S1+S2=1000+0110=1110이 되고, 이진수로 변환하면 "0111"이 됩니다. 따라서 정답은 "0111"입니다.
profile_image
1

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

2. 현재 실행 중인 프로세스에 할당된 CPU사용권을 다른 프로세스에게 할당하려면, 현재 실행 중인 프로세스의 실행 정보를 저장하고 다음으로 실행할 프로세스의 실행정보를 가져오는 과정이 필요하다. 이 과정을 무엇이라고 하는가?

  1. 컨텍스트 스위칭(Context Switching)
  2. 가상메모리(Virtual Memory)
  3. 교체정책(Replacement Strategy)
  4. 디스패치(Dispatch)
(정답률: 69%)
  • 현재 실행 중인 프로세스의 실행 정보를 저장하고 다음으로 실행할 프로세스의 실행정보를 가져오는 과정은 컨텍스트 스위칭이라고 한다. 따라서 정답은 "컨텍스트 스위칭(Context Switching)"이다. 가상메모리는 메모리 관리 기술이며, 교체정책은 페이지 교체 알고리즘을 선택하는 것이며, 디스패치는 준비 큐에서 실행 대기 중인 프로세스를 선택하여 CPU에 할당하는 것을 의미한다.
profile_image
1

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

3. 다음 중 유효한 SQL 문장이 아닌 것은?

  1. SELECT * FROM Lawyers WHERE firmName LIKE '% and %';
  2. SELECT firmLoc, COUNT(*) FROM Firms WHERE employees < 100;
  3. SELECT COUNT(*) FROM Firms WHERE employees < 100;
  4. SELECT firmLoc, SUM(employees) FROM Firms GROUP BY firmLoc WHERE SUM(employees) < 100;
(정답률: 95%)
  • "SELECT firmLoc, SUM(employees) FROM Firms GROUP BY firmLoc WHERE SUM(employees) < 100;"은 유효한 SQL 문장입니다.

    "SELECT firmLoc, SUM(employees) FROM Firms GROUP BY firmLoc WHERE SUM(employees) < 100;"은 Firms 테이블에서 firmLoc별 employees의 합계를 구하고, 그 합계가 100보다 작은 경우에만 결과를 출력하는 쿼리입니다.

    따라서, 유효하지 않은 SQL 문장은 없습니다.
profile_image
1

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

4. 다음 중 나머지 셋과 역할 기능이 다른 하나는?

  1. Array processor
  2. DMA
  3. GPU
  4. SIMD
(정답률: 50%)
  • 정답인 DMA는 메모리와 입출력 장치 간 데이터 전송을 담당하는 장치로, 나머지 셋은 모두 데이터 처리를 담당하는 장치입니다. 따라서 DMA는 역할과 기능이 다르며, 데이터 전송에 특화된 장치입니다.
profile_image
1

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

5. 다음은 IPv6에 대한 설명이다. 옳지 않은 것은?

  1. 기존의 IP 주소 공간이 빠른 속도로 고갈되어 왔기 때문에 고안되었다.
  2. IPv6는 IP 주소 크기를 기존의 4바이트에서 6바이트로 확장했다.
  3. IPv6는 유니캐스트, 멀티캐스트 주소뿐만 아니라 새로운 주소 형태인 애니캐스트 주소가 도입되었다.
  4. 네트워크 프로토콜을 바꾼다는 것은 매우 어렵기 때문에 IPv6로의 전환을 위해 여러 방법들이 고안되었다.
(정답률: 74%)
  • IPv6는 IP 주소 크기를 기존의 4바이트에서 6바이트로 확장하지 않았다. IPv6는 128비트 길이의 IP 주소를 사용하며, 이는 기존의 IPv4의 32비트 주소보다 훨씬 큰 주소 공간을 제공한다. 따라서 "IPv6는 IP 주소 크기를 기존의 4바이트에서 6바이트로 확장했다."는 옳지 않은 설명이다.
profile_image
1

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

6. 다음 정렬 알고리즘 중 최악의 경우에 시간복잡도가 가장 낮은 것은?

  1. 버블 정렬(Bubble sort)
  2. 삽입 정렬(Insertion sort)
  3. 퀵 정렬(Quick sort)
  4. 힙 정렬(Heap sort)
(정답률: 65%)
  • 힙 정렬은 최악의 경우에도 O(nlogn)의 시간복잡도를 보장합니다. 이는 힙 정렬이 분할 정복 알고리즘을 사용하며, 힙을 구성하는 과정에서 O(n)의 시간복잡도를 가지기 때문입니다. 또한, 힙 정렬은 안정적인 정렬 알고리즘이며, 대부분의 경우에 다른 정렬 알고리즘보다 빠른 속도를 보입니다.
profile_image
1

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

7. 다음 C 프로그램의 실행 결과는?

  1. Good morning
    C-language
  2. morning
    a
  3. morning
    g
  4. morning
    u
(정답률: 69%)
  • 이유는 다음과 같습니다.

    - 먼저, 문자열 "Good morningnC-language"이 변수 str에 저장됩니다.
    - 그 다음, 문자열에서 "morning"이라는 부분 문자열을 찾아서 출력합니다.
    - 이때, "morning"이라는 부분 문자열이 처음으로 나타나는 위치는 5번째 인덱스부터입니다.
    - 따라서, "morning" 다음에 나오는 문자인 ' ' (공백) 다음에 오는 문자 'C'가 출력되어야 합니다.
    - 이에 따라, 정답은 "morningnu"가 됩니다. (줄바꿈 문자 'n'도 출력됩니다.)
profile_image
1

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

8. 메모리 크기가 200KB인 시스템에서 요구 페이징(demand paging)으로 가상 메모리(virtual memory)를 구현한다고 하자. 페이지 크기가 2KB이고 페이지 테이블(page table)의 각 항목이 3바이트라고 하면, 25KB 크기의 프로세스를 위한 최소 페이지 테이블의 크기는 어떻게 되는가?

  1. 25바이트
  2. 39바이트
  3. 60바이트
  4. 75바이트
(정답률: 63%)
  • 25KB의 프로세스를 페이지 크기인 2KB로 나누면 12.5개의 페이지가 필요하다. 페이지 테이블의 각 항목이 3바이트이므로, 각 페이지마다 3바이트의 항목이 필요하고, 총 12.5개의 페이지에 대한 페이지 테이블 항목의 수는 12.5 * 3 = 37.5개가 된다. 하지만 페이지 테이블은 항상 2의 거듭제곱 크기여야 하므로, 2^6 = 64바이트의 크기로 할당된다. 따라서, 64바이트 중에서 사용되지 않는 26.5바이트를 제외하면, 최소 페이지 테이블의 크기는 64 - 26.5 = 37.5바이트가 된다. 이를 올림하여 39바이트가 된다.
profile_image
1

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

9. 다음 그래프에서 최소 비용의 ‘신장 트리’ 값은 얼마인가?

  1. 16
  2. 20
  3. 23
  4. 26
(정답률: 89%)
  • 신장 트리란 그래프에서 모든 정점을 포함하면서 사이클이 없는 부분 그래프를 말합니다. 이때, 간선의 가중치 합이 최소인 신장 트리를 최소 신장 트리라고 합니다.

    위 그래프에서 최소 신장 트리를 구하기 위해서는 크루스칼 알고리즘 등의 알고리즘을 사용할 수 있습니다. 하지만 간단하게 최소 비용을 계산해보면,

    1-2: 5
    1-3: 4
    1-4: 3
    2-4: 7
    2-5: 6
    3-4: 6
    4-5: 8

    위와 같이 모든 간선의 가중치를 합산하면 39가 됩니다. 따라서, 최소 비용의 신장 트리 값은 39이 아닌 23입니다.
profile_image
1

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

10. 라우팅 알고리즘은 라우터에 패킷이 도착했을 때 포워딩 테이블을 검색하고 패킷이 전달될 인터페이스를 결정하는 알고리즘이다. 다음 중 라우팅 알고리즘이 아닌 것은?

  1. RIP(Routing Information Protocol)
  2. OSPF(Open Shortest Path First)
  3. CDMA(Code Division Multiple Access)
  4. BGP(Border Gateway Protocol)
(정답률: 85%)
  • CDMA는 무선 통신에서 사용되는 다중 접속 방식으로, 라우팅 알고리즘이 아니다. CDMA는 여러 사용자가 동시에 같은 주파수 대역을 사용하면서도 서로 간섭 없이 통신할 수 있도록 하는 기술이다.
profile_image
1

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

11. 암달(Amdahl)의 법칙은 컴퓨터 시스템의 일부를 개선할 때 전체적으로 얼마만큼의 최대 성능 향상을 기대할 수 있는지를 예측하는 데 사용된다. 만약 특정 응용프로그램의 75%가 멀티코어(Multicore)를 이용한 병렬 수행이 가능하고 나머지 25%는 코어의 수가 증가해도 순차 실행만 가능하다는 전제 하에, 컴퓨팅 코어(Core)의 수를 4개로 늘릴 때 기대할 수 있는 최대 성능 향상은 약 몇 배인가?

  1. 약 1.28배
  2. 약 2.28배
  3. 약 3.28배
  4. 약 4.28배
(정답률: 63%)
  • 암달의 법칙에 따르면, 전체적인 성능 향상은 병렬 수행이 가능한 부분의 비율에 따라 결정된다. 따라서, 75%가 병렬 수행이 가능하므로 이 부분에서 최대 성능 향상은 4배가 될 수 있다. 나머지 25%는 순차 실행만 가능하므로, 이 부분에서는 코어의 수가 증가해도 성능 향상이 없다. 따라서, 전체적인 최대 성능 향상은 75%에서의 4배 성능 향상과 25%에서의 1배 성능 향상을 합한 값인 약 2.28배가 된다.
profile_image
1

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

12. <보기> 중 우리가 흔히 인터넷을 통해 비용을 지불하거나 혹은 무료로 사용하는, 클라우드 저장 서버에 대한 분류로 옳은 것을 모두 고르면?

  1. ㄱ, ㄷ
  2. ㄱ, ㅁ
  3. ㄴ, ㄷ
  4. ㄴ, ㄹ
(정답률: 74%)
  • 이 보기에서 "ㄱ"은 유료 클라우드 저장 서비스, "ㅁ"은 무료 클라우드 저장 서비스를 나타내고 있습니다. 이유는 "ㄱ"은 비용을 지불하고 사용하는 서비스이며, "ㅁ"은 무료로 사용할 수 있는 서비스이기 때문입니다. 다른 보기들은 이와 다른 분류를 나타내고 있습니다.
profile_image
1

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

13. 16진수로 표현된 B9E(16)를 2진수로 표현하면 다음 중 무엇인가?

  1. 1100 0101 1101 (2)
  2. 0101 0101 1001 (2)
  3. 1011 1001 1110 (2)
  4. 1110 0101 1101 (2)
(정답률: 89%)
  • B9E(16)은 16진수로 표현된 수이며, 이를 2진수로 변환하기 위해서는 각 자리마다 2진수로 변환하여 합쳐주면 됩니다.

    B9E(16) = 1011 1001 1110(2)

    - B = 1011(2)
    - 9 = 1001(2)
    - E = 1110(2)

    따라서 B9E(16)를 2진수로 표현하면 1011 1001 1110(2)이 됩니다.
profile_image
1

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

14. 다음 프로그램의 구성 요소들 중 프로세스 내에서 생성한 스레드들 사이에 공유되지 않는 것을 모두 고르면?

  1. ㄱ, ㄴ
  2. ㄱ, ㄹ
  3. ㄴ, ㄷ
  4. ㄷ, ㄹ
(정답률: 75%)
  • - ㄱ: main 함수 내의 지역 변수인 count는 각 스레드에서 독립적으로 생성되므로 공유되지 않는다.
    - ㄹ: 각 스레드에서 생성한 지역 변수인 i는 해당 스레드 내에서만 사용되므로 공유되지 않는다.
profile_image
1

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

15. 다음 중 Use case diagram에서 사용하는 기본 요소가 아닌 것은?

(정답률: 73%)
  • ""은 Use case diagram에서 사용하는 기본 요소가 아닌 것이다. 이는 이미지가 "Actor"를 나타내는 것이 아니라, "Boundary"를 나타내기 때문이다. Use case diagram에서 "Actor"는 시스템과 상호작용하는 외부 개체를 나타내는데, "Boundary"는 시스템과 상호작용하는 시스템의 경계를 나타내는 요소이다.
profile_image
1

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

16. 가상메모리(Virtual Memory)를 효과적으로 제공하기 위해 Core i7과 같은 프로세서 내부에 있는 장치는 무엇인가?

  1. TLB(Translation Lookaside Buffer)
  2. 캐시(Cache)
  3. 페이지 테이블(Page Table)
  4. 스왑 스페이스(Swap Space)
(정답률: 67%)
  • TLB는 가상 주소를 물리 주소로 변환하는 데 필요한 페이지 테이블의 일부를 캐시에 저장하여 빠른 접근을 가능하게 합니다. 이를 통해 가상메모리를 효과적으로 제공할 수 있습니다.
profile_image
1

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

17. 다음 중 C 프로그래밍 언어의 식별자로 사용할 수 없는 것은?

  1. 3id
  2. My_ID
  3. __yes
  4. K
(정답률: 69%)
  • C 프로그래밍 언어에서는 식별자로 문자와 숫자, 그리고 언더스코어(_)를 사용할 수 있습니다. 하지만 식별자의 첫 글자는 반드시 문자나 언더스코어로 시작해야 합니다. 따라서 "3id"는 숫자로 시작하기 때문에 C 프로그래밍 언어의 식별자로 사용할 수 없습니다.
profile_image
1

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

18. 3개의 page를 수용할 수 있는 메모리가 있으며, 현재 완전히 비어 있다. 어느 프로그램이 <보기>와 같이 page 번호를 요청했을 때, LRU(Least-Recently-Used)를 사용할 경우 몇 번의 page-fault가 발생하는가?

  1. 6번
  2. 5번
  3. 4번
  4. 3번
(정답률: 65%)
  • 처음에는 모든 페이지가 비어 있으므로, 1번 페이지부터 차례로 채워나간다. 그러나 4번 페이지를 요청하면 현재 메모리에는 1, 2, 3번 페이지가 있으므로, 가장 오래전에 사용된 1번 페이지를 교체해야 한다. 이때 page-fault가 발생한다. 이후에는 5, 6번 페이지를 차례로 채우면서, 2, 3, 4번 페이지를 차례로 교체하면서 총 5번의 page-fault가 발생한다. 따라서 정답은 5번이다.
profile_image
1

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

19. 소프트웨어 프로젝트 관리가 어려운 이유로 옳지 않은 것은?

  1. 소프트웨어는 형태가 없어 프로젝트 관리자는 프로젝트 진척사항을 분석하는 데 어려움이 있다.
  2. 소프트웨어 개발 프로세스는 조직에 따라 가변적이므로 관리에 어려움이 있다.
  3. 컴퓨터와 통신에서의 빠른 기술적 변화로 인해 관리자의 경험이 새로운 프로젝트에 전달되지 않을 수 있다.
  4. 대규모 소프트웨어 프로젝트는 일회성(one-off) 프로젝트가 전혀 없어서, 경험이 충분한 관리자가 문제를 예측할 수 없다.
(정답률: 85%)
  • 대규모 소프트웨어 프로젝트는 일회성(one-off) 프로젝트가 전혀 없어서, 경험이 충분한 관리자가 문제를 예측할 수 없다는 이유는 옳지 않습니다. 이유는 다음과 같습니다.

    소프트웨어 개발 프로세스는 일정한 패턴을 가지고 있으며, 이를 따르는 일반적인 방법론들이 존재합니다. 또한, 대규모 소프트웨어 프로젝트에서는 이전에 진행한 비슷한 프로젝트의 경험을 바탕으로 문제를 예측하고 대처할 수 있습니다. 따라서, 경험이 충분한 관리자가 있다면 대규모 소프트웨어 프로젝트를 성공적으로 관리할 수 있습니다.

    따라서, 대규모 소프트웨어 프로젝트가 어려운 이유는 "소프트웨어는 형태가 없어 프로젝트 관리자는 프로젝트 진척사항을 분석하는 데 어려움이 있다.", "소프트웨어 개발 프로세스는 조직에 따라 가변적이므로 관리에 어려움이 있다.", "컴퓨터와 통신에서의 빠른 기술적 변화로 인해 관리자의 경험이 새로운 프로젝트에 전달되지 않을 수 있다." 등 다른 이유들이 있습니다.
profile_image
1

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

20. 다음 C 프로그램의 실행 결과는?

  1. Goo 80
  2. Lee 60
  3. Goo 60
  4. Lee 80
(정답률: 48%)
  • 이 프로그램은 두 개의 구조체 변수를 선언하고, 각 변수의 멤버에 값을 할당한 후, 두 변수를 비교하여 더 큰 값을 출력하는 프로그램입니다.

    첫 번째 구조체 변수인 s1에는 "Goo"와 80이 각각 name과 score 멤버에 할당되고, 두 번째 구조체 변수인 s2에는 "Lee"와 60이 각각 name과 score 멤버에 할당됩니다.

    if문에서는 s1.score와 s2.score를 비교하여 s1.score가 더 크면 "Goo"와 s1.score를 출력하고, 그렇지 않으면 "Lee"와 s2.score를 출력합니다.

    따라서 s1.score가 s2.score보다 크므로 "Goo 80"이 출력됩니다.

    정답은 "Goo 80"입니다.
profile_image
1

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

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