총 100문항 · 문제·정답·해설·개념 무료 학습
이 회차는 100문항입니다. 자료를 읽고 푸는 문항이 42문항입니다. 풀이가 붙은 문항이 100문항입니다.
▶ CertLab에서 풀어보기대표적인 반도체 메모리인 DRAM과 SRAM에 대한 설명으로 옳지 않은 것은?
정답 1번
SRAM도 전원이 끊기면 내용을 잃는 휘발성 메모리이므로 비휘발성이라고 한 1번이 옳지 않다.
정렬 알고리즘 중 최악의 경우를 가정할 때 시간복잡도가 다른 것은?
정답 4번
힙 정렬은 최악의 경우에도 시간복잡도가 O(n log n)이고 나머지 셋은 O(n²)이므로 4번이 해당한다.
기계 학습에서 지도 학습과 비지도 학습에 대한 설명으로 옳은 것은?
정답 4번
비지도 학습은 정답이 없는 데이터에서 유용한 패턴을 찾는 방식이므로 4번이 옳다.
무선주파수를 이용하며 반도체 칩이 내장된 태그와 리더기로 구성된 인식시스템은?
정답 1번
무선주파수로 태그와 리더기가 통신하는 인식시스템은 RFID이므로 1번이 해당한다.
클라우드 컴퓨팅에 대한 설명으로 옳지 않은 것은?
정답 4번
소프트웨어 설치와 유지보수 비용 절감은 서비스형 소프트웨어의 장점이므로 인프라형 서비스에 붙인 4번이 옳지 않다.
C 언어에서 함수 호출 시 매개변수 전달 방법에는 값에 의한 호출(Call by Value)과 참조에 의한 호출(Call by Reference)이 있다. C 프로그램 코드가 다음과 같을 때 설명으로 옳지 않은 것은?
int get_average(int score[], int n) { int i, sum; for(i = 0; i < n; i++) sum += score[i]; return sum / n; } void main(void) { int score[3] = { 1, 2, 5 }; printf(“%d\n”, get_average(score, 3)); }
정답 4번
배열 이름을 넘기면 첫 원소의 주소가 전달되어 참조처럼 처리되므로 값에 의한 호출이라고 한 4번이 옳지 않다.
다음 C 프로그램에서 밑줄 친 코드의 실행 결과와 동일한 결과를 출력하는 코드로 옳은 것만을 모두 고르면?
#include
int main()
{
int ary[5] = {10, 11, 12, 13, 14};
int *ap;
ap = ary;
printf(“%d”, ary[1]);
return 0;
}
ㄱ. printf("%d", ary+1);
ㄴ. printf("%d", *ap+1);
ㄷ. printf("%d", *ary+1);
ㄹ. printf("%d", *ap++);
정답 2번
밑줄 친 코드는 ary[1]인 11을 출력하며 같은 결과를 내는 것은 ㄴ과 ㄷ이므로 정답은 2번이다.
자료 흐름의 방향과 동시성 여부에 따라 분류한 통신 방식 중 다음에서 설명하는 통신 방식으로 옳은 것은? (단, DTE(Data Terminal Equipment)는 컴퓨터, 휴대폰, 단말기 등과 같이 통신망에서 네트워크의 끝에 연결된 장치들을 총칭하는 용어이다)
통신하는 두 DTE가 시간적으로 교대로 데이터를 교환하는 방식의 통신으로, 한 DTE가 명령을 전송하면 다른 DTE가 이를 처리하여 그에 대한 응답을 전송하는 트랜잭션(Transaction) 처리 시스템에서 볼 수 있다.
정답 2번
두 장치가 교대로 데이터를 주고받는 방식은 반이중 통신이므로 2번이 해당한다.
다음 라우팅 테이블에 대한 설명으로 옳지 않은 것은?
목적지 네트워크 서브넷마스크 인터페이스 128.50.30.0 255.255.254.0 R1 128.50.28.0 255.255.255.0 R2 Default R3
정답 1번
두 패킷은 모두 서브넷 마스크 255.255.254.0에 속하는 같은 네트워크이므로 다른 인터페이스로 간다고 한 1번이 옳지 않다.
3단계 데이터베이스 구조에서 개념 스키마에 대한 설명으로 옳은 것만을 모두 고르면?
ㄱ. 데이터베이스를 운영하는 기관에 소속되어 있는 모든 응용시스템 또는 사용자들이 필요로 하는 데이터를 통합하여 정의한 조직 전체 데이터베이스의 논리 구조를 말한다.
ㄴ. 개념 스키마와 외부 스키마 사이에는 논리적 데이터 독립성이 있어야 한다.
ㄷ. 데이터베이스 내에는 하나의 개념 스키마만 존재한다.
ㄹ. 데이터에 대한 접근권한, 제약조건 등에 대한 정의도 포함한다.
정답 4번
개념 스키마의 네 설명이 모두 옳으므로 정답은 4번이다.
TCP(Transmission Control Protocol) 기반 응용 프로토콜에 해당하지 않는 것은?
정답 4번
SNMP은 전송 계층에서 UDP를 쓰므로 TCP 기반 응용 프로토콜이 아닌 4번이 해당한다.
운영체제에서 프로세스의 정보를 관리하는 프로세스 제어블록(Process Control Block)의 포함 요소로 옳지 않은 것은?
정답 2번
프로세스 제어블록에는 그 프로세스 하나에 딸린 정보만 담기고 시스템 전체의 인터럽트 정보는 담기지 않으므로 2번이 옳지 않다.
SSD(Solid-State Drive)에 대한 설명으로 옳지 않은 것은?
정답 3번
SSD는 기계적 장치가 없어 빠른 것이므로 기계적 장치를 쓴다고 한 3번이 옳지 않다.
다음 후위 표기 식을 전위 표기 식으로 변환하였을 때 옳은 것은?
3 1 4 1 - * +
정답 3번
후위식 3 1 4 1 − * +를 식으로 풀면 3 + 1 * (4 − 1)이고 이를 전위로 바꾸면 + 3 * 1 − 4 1이므로 3번이 해당한다.
운영체제의 세마포어(Semaphore)에 대한 설명으로 옳지 않은 것은?
정답 3번
세마포어 연산은 나눌 수 없는 단위로 실행되어 도중에 인터럽트되지 않으므로 3번이 옳지 않다.
소프트웨어에 대한 ISO/IEC 품질 표준 중에서 프로세스 품질 표준으로 옳은 것은?
정답 2번
소프트웨어 생명주기 프로세스를 정한 표준은 국제표준 12207이므로 2번이 해당한다.
블록체인(Block Chain)에 대한 설명으로 옳지 않은 것은?
정답 3번
블록체인은 중앙 서버 없이 노드들이 블록을 직접 검증하므로 중앙 서버를 거친다고 한 3번이 옳지 않다.
아래의 고객 릴레이션에서 등급이 gold이고 나이가 25 이상인 고객들을 검색하기 위해 기술한 관계대수 표현으로 옳은 것은?
고객 고객아이디 이름 나이 등급 직업 hohoho 이순신 29 gold 교사 grace 홍길동 24 gold 학생 mango 삼돌이 27 silver 학생 juce 갑순이 31 gold 공무원 orange 강감찬 23 silver 군인
고객아이디 이름 나이 등급 직업 hohoho 이순신 29 gold 교사 juce 갑순이 31 gold 공무원
정답 2번
선택 연산자 σ 뒤에 조건을 쓰고 괄호에 릴레이션을 적은 2번이 등급 gold이고 나이 25 이상인 행을 뽑으므로 해당한다.
(가)에 들어갈 어드레싱 모드로 옳은 것은?
(가) 는 명령어가 피연산자의 주소를 가지고 있는 레지스터를 지정한다. 즉, 선택된 레지스터는 피연산자 그 자체가 아니라 피연산자의 주소이다. 일반적으로 이 모드를 사용할 때에 프로그래머는 이전의 명령어에서 레지스터가 피연산자의 주소를 가졌는지를 확인해 보아야 한다.
정답 1번
명령어가 가리킨 레지스터에 피연산자의 주소가 들어 있는 방식은 레지스터 간접 모드이므로 1번이 해당한다.
디스크 큐에 다음과 같이 I/O 요청이 들어와 있다. 최소탐색시간우선(SSTF) 스케줄링 적용 시 발생하는 총 헤드 이동 거리는? (단, 추가 I/O 요청은 없다고 가정한다. 디스크 헤드는 0부터 150까지 이동 가능하며, 현재 위치는 50이다)
큐: 80, 20, 100, 30, 70, 130, 40
정답 2번
최소탐색시간우선은 헤드에서 가장 가까운 요청을 먼저 처리하므로 40, 30, 20, 70, 80, 100, 130 순이고 총 이동 거리는 140이라 2번이 해당한다.
병렬 처리를 수행하는 기법으로 옳지 않은 것은?
정답 1번
블루레이 디스크는 저장 매체일 뿐 병렬 처리 기법이 아니므로 1번이 옳지 않다.
인터넷 통신에서 IP 주소를 동적으로 할당하는 데 사용되는 것은?
정답 4번
인터넷에서 IP 주소를 자동으로 나누어 주는 프로토콜은 DHCP이므로 4번이 해당한다.
UDP 프로토콜에 대한 설명으로 옳지 않은 것은?
정답 2번
UDP는 순서 보장과 재전송을 하지 않는 비신뢰 전송이므로 순차 전송으로 전송을 보장한다고 한 2번이 옳지 않다.
플린(Flynn)의 분류법에 따른 병렬 프로세서 구조 중 MIMD(Multiple Instruction stream, Multiple Data stream) 방식에 속하지 않는 것은?
정답 4번
배열 프로세서는 하나의 명령어로 여러 데이터를 처리하는 SIMD이므로 MIMD에 속하지 않는 4번이 해당한다.
컴퓨터의 구성요소에 대한 설명으로 옳은 것만을 모두 고르면?
ㄱ. 입출력장치는 기계적 동작을 수반하기 때문에 동작 속도가 주기억장치보다 빠르다.
ㄴ. 중앙처리장치는 명령어 실행단계에서 제어장치, 내부 레지스터, 연산기를 필요로 한다.
ㄷ. 중앙처리장치는 명령어 인출단계에서 인출된 명령어를 저장하기 위한 명령어 레지스터와 다음에 실행할 명령어가 있는 기억장치의 주소를 저장할 프로그램 카운터를 필요로 한다.
ㄹ. 입출력장치는 중앙처리장치와 직접 데이터를 교환할 수 있으며, 데이터 교환은 반드시 중앙처리장치의 입출력 동작 제어에 의해서만 가능하다.
정답 3번
ㄴ과 ㄷ은 옳고 ㄱ과 ㄹ은 옳지 않으므로 정답은 3번이다.
유닉스 시스템 신호에 대한 설명으로 옳은 것은?
정답 4번
SIGCHLD는 자식 프로세스의 종료나 중지를 부모에게 알리는 시그널이므로 4번이 옳다.
다음 설명에 해당하는 페이지 테이블 기술은?
물리 메모리의 프레임당 단 한 개의 페이지 테이블 항목을 할당함으로써 페이지 테이블이 차지하는 공간을 줄이는 기술
정답 3번
물리 메모리 프레임당 하나의 항목만 두어 테이블 공간을 줄이는 기법은 역 페이지 테이블이므로 3번이 해당한다.
다음 C 프로그램의 출력 결과는?
#include
void main() {
int x = 0x15213F10 >> 4;
char y = (char) x;
unsigned char z = (unsigned char) x;
printf("%d, %u", y, z);
}
정답 3번
0x15213F10을 4비트 오른쪽으로 옮기면 0x015213F1이고 하위 바이트 0xF1이 char로는 -15, unsigned char로는 241이므로 3번이 옳다.
인터넷 계층에서 동작하는 프로토콜로서 오류보고, 상황보고, 경로제어정보 전달 기능이 있는 프로토콜은?
정답 1번
인터넷 계층에서 오류 보고, 상황 보고, 경로 제어 정보 전달을 하는 프로토콜은 ICMP이므로 1번이 해당한다.
CPU의 제어장치에 해당하지 않는 것은?
정답 3번
시프트 레지스터는 연산장치에서 쓰이는 구성 요소이므로 제어장치에 해당하지 않는 3번이 해당한다.
시간적으로 연속적인 아날로그 신호에 대해 일정한 시간 간격으로 아날로그 신호 값을 추출하는 과정은?
정답 1번
연속적인 아날로그 신호에서 일정한 시간 간격으로 값을 추출하는 과정은 표본화이므로 1번이 해당한다.
다음 C 프로그램의 실행 결과는?
#include
int funa(int);
void main() {
printf("%d, %d", funa(5), funa(6));
return 0;
}
int funa(int n) {
if(n > 1)
return (n + (funa(n-2)));
else
return (n % 2);
}
정답 2번
funa(5)는 5+3+1=9, funa(6)은 6+4+2+0=12이므로 실행 결과가 9, 12인 2번이 옳다.
다음에서 설명하는 해시 함수는?
탐색키 값을 여러 부분으로 나눈 후 각 부분의 값을 더하거나 XOR(배타적 논리합) 연산하여 그 결과로 주소를 취하는 방법
정답 4번
탐색키를 여러 부분으로 나누어 더하거나 배타적 논리합으로 주소를 구하는 방법은 폴딩 함수이므로 4번이 해당한다.
(가) ~ (다)에 해당하는 말을 바르게 연결한 것은?
(가) 컴퓨터가 데이터를 통해 스스로 학습하여 예측이나 판단을 제공하는 기술 (나) 인간의 지적 능력을 컴퓨터를 통해 구현하는 기술 (다) 인공 신경망을 활용하는 개념으로, 여러 계층의 신경망을 구성해 학습을 효과적으로 수행하는 기술 (가) (나) (다)
정답 3번
컴퓨터가 데이터로 스스로 학습하는 기술은 머신러닝, 인간의 지능을 구현하는 기술은 인공지능, 여러 층의 신경망을 쓰는 기술은 딥러닝이므로 3번이 해당한다.
구조적 개발 방법론에서 사용자 요구사항을 분석한 후 결과를 표현할 때 사용되는 도구에 대한 설명으로 옳은 것은?
정답 4번
소단위 명세서를 작성하는 도구에는 구조적 언어와 의사결정표 등이 있으므로 4번이 옳다.
다음 내용에 해당하는 법칙은?
주식회사의 주가를 보면 일일 가격은 급격히 변동할 수 있다. 하지만 긴 기간의 움직임을 보면 상승, 하락 또는 변동 없는 추세를 보인다.
정답 1번
주가가 단기적으로 변동해도 장기적으로는 추세를 보이는 것은 프로그램의 진화가 스스로 통제되는 자기 통제의 법칙이므로 1번이 해당한다.
그림과 같이 S 테이블과 T 테이블이 있을 때, SQL 실행 결과는?
SELECT S.a, S.b, T.d FROM S LEFT JOIN T ON S.b = T.c
정답 2번
LEFT JOIN 결과는 1,가,NULL과 2,나,X와 3,다,Y이며 이 값을 그대로 담은 1번과 2번이 모두 옳으나 이 시험의 확정 정답은 2번이므로 정답은 2번이다.
운영체제 시스템 호출에 대한 설명으로 옳지 않은 것은?
정답 2번
fork()로 만든 자식 프로세스는 부모와 별도의 주소 공간을 가지므로 메모리 위치가 동일하다고 한 2번이 옳지 않다.
SQL 뷰에 대한 설명으로 옳은 것은?
정답 1번
뷰는 복잡한 질의를 간단하게 표현하게 해 주므로 1번이 옳다.
다음 C 프로그램의 실행 결과는?
#include
int C(int v) {
printf("%d ", v);
return 1;
}
int main() {
int a = -2;
int b = !a;
printf("%d %d %d %d ", a, b, a&&b, a||b);
if(b && C(10))
printf("A ");
if(b & C(20))
printf("B ");
return 0;
}
정답 1번
b는 !(-2)로 0이라 a&&b는 0이고 a||b는 1이며 b&&C(10)은 C를 호출하지 않고 b&C(20)은 C(20)을 호출하므로 -2 0 0 1 20이 출력되어 1번이 옳다.
컴퓨터에서 사용하는 정보량의 단위를 크기가 작은 것부터 큰 것 순서대로 바르게 나열한 것은?
정답 4번
정보량 단위는 GB, TB, PB, EB 순으로 1024배씩 커지므로 4번이 옳다.
다음 논리회로도에서 출력 F가 0이 되는 입력 조합을 바르게 연결한 것은?
X Y Z
정답 3번
F는 X와 Y와 Z의 배타적 논리합의 논리합이라 F가 0이 되려면 X가 0이고 Y와 Z가 같아야 하므로 3번이 해당한다.
암호화 및 복호화를 위하여 개인키와 공개키가 필요한 비대칭키 암호화 기법은?
정답 3번
공개키와 개인키를 함께 쓰는 비대칭키 암호화 기법은 RSA이므로 3번이 해당한다.
OSI 모형의 네트워크 계층 프로토콜에 속하지 않는 것은?
정답 4번
SLIP은 데이터 링크 계층의 프로토콜이라 네트워크 계층에 속하지 않는 4번이 해당한다.
클라우드 컴퓨팅 서비스에서 애플리케이션을 구축, 테스트, 설치할 수 있도록 통합환경을 제공하는 것은?
정답 3번
클라우드에서 애플리케이션을 구축, 테스트, 설치할 수 있는 통합 환경을 제공하는 것은 PaaS이므로 3번이 해당한다.
10진수 뺄셈 (7 - 12)를 2의 보수를 이용하여 계산한 결과는? (단, 저장 공간은 8비트로 한다)
정답 4번
7-12는 7에 12의 2의 보수를 더한 값이며 -5는 8비트 2의 보수로 1111 1011이므로 4번이 해당한다.
RAID(Redundant Array of Inexpensive Disks) 레벨에 대한 설명으로 옳지 않은 것은?
정답 2번
RAID 레벨 1은 패리티가 아니라 같은 데이터를 두 디스크에 복사하는 미러링이므로 2번이 옳지 않다.
RISC와 비교하여 CISC의 특징으로 옳지 않은 것은?
정답 2번
CISC는 명령어 길이가 가변적이고 RISC가 고정적이므로 CISC의 명령어 길이가 고정적이라고 한 2번이 옳지 않다.
다음 파이썬 코드는 이진 탐색을 이용하여 자연수 데이터를 탐색하는 함수이다. (가), (나)에 들어갈 내용을 바르게 연결한 것은? (단, ds는 오름차순으로 정렬된 중복 없는 자연수 리스트이고, key는 찾고자 하는 값이다)
def binary(ds, key): low = 0 high = len(ds) - 1 while low <= high: mid = (low+high) // 2 if key == ds[mid]: return mid elif key < ds[mid]: (가) else: (나) return (가) (나)
정답 2번
키가 가운데보다 작으면 왼쪽 절반으로 high=mid-1, 크면 오른쪽 절반으로 low=mid+1이므로 2번이 해당한다.
3개의 페이지 프레임으로 구성된 기억장치에서 다음과 같은 참조열 순으로 페이지가 참조될 때, 페이지 부재 발생 횟수가 가장 적은 교체 방법은? (단, 초기 페이지 프레임은 비어 있으며, 페이지 교체 과정에서 사용 빈도수가 동일한 경우는 가장 오래된 것을 먼저 교체한다)
참조열: 2 1 2 3 1 4 5 1 4 3
정답 3번
LRU는 부재가 6번, FIFO·LFU·MFU는 7번이므로 부재가 가장 적은 3번이 해당한다.
교착상태(deadlock)가 발생하기 위한 필요조건에 해당하지 않는 것은?
정답 2번
교착상태의 필요조건은 상호 배제, 점유와 대기, 비선점, 순환 대기이므로 선점을 넣은 2번이 해당하지 않는다.
다음 CPU 스케줄링 알고리즘 중 비선점형 알고리즘만을 모두 고르면?
ㄱ. FCFS(First Come First Served) 스케줄링
ㄴ. HRN(Highest Response-ratio Next) 스케줄링
ㄷ. RR(Round Robin) 스케줄링
ㄹ. SRT(Shortest Remaining Time) 스케줄링
정답 1번
FCFS와 HRN은 실행 중인 프로세스를 빼앗지 않는 비선점형이므로 ㄱ과 ㄴ이 옳아 정답은 1번이다.
네트워크 접속 형태 중 트리형 토폴로지(topology)에 대한 설명으로 옳지 않은 것은?
정답 2번
트리형 토폴로지는 상위 노드에 트래픽이 몰려 병목이 생기므로 병목이 없다고 한 2번이 옳지 않다.
IPv4 주소를 클래스별로 분류했을 때, B 클래스에 해당하는 것은?
정답 3번
첫 바이트가 128~191이면 B 클래스이므로 128.128.128.128인 3번이 해당한다.
다음 설명에 해당하는 모듈의 결합도는?
한 모듈이 다른 모듈의 내부 기능 및 자료를 직접 참조하거나 사용하는 경우로, 한 모듈에서 다른 모듈의 내부로 제어가 이동하는 경우도 이에 해당한다.
정답 2번
한 모듈이 다른 모듈의 내부를 직접 참조하는 결합도는 가장 강한 내용 결합도이므로 2번이 해당한다.
다음 를 이용하여 아래에 주어진 을 차례대로 수행한 후의 스택 상태는?
○ Create(s, n): 스택을 위한 크기 n의 비어 있는 배열 s를 생성하고, top의 값을 -1로 지정한다.
○ Push(s, e): top을 1 증가시킨 후, s[top]에 요소 e를 할당한다.
○ Pop(s): s[top]의 요소를 삭제한 후, top을 1 감소시킨다.
Create(s, 4); Push(s, 'S'); Push(s, 'T'); Pop(s); Push(s, 'R'); Push(s, 'P'); Push(s, 'Q'); Pop(s);
정답 1번
Push와 Pop을 차례로 적용하면 S, R, P가 남고 top은 P를 가리키므로 1번이 해당한다.
다음은 전체 버킷 개수가 11개이고 버킷당 1개의 슬롯을 가지는 빈 해시 테이블이다. 입력키 12, 33, 13, 55, 23, 83, 11을 순서대로 저장하였을 때, 입력키 23이 저장된 버킷 번호는? (단, 해시 함수는 h(k) = k mod 11이고, 충돌 해결은 선형 조사법을 사용한다)
정답 4번
h(k)=k mod 11에서 12는 1, 33은 0, 13은 2, 55는 0이 차 있어 3, 23은 1이 차 있어 선형 조사로 4에 저장되므로 4번이 해당한다.
다음 파이썬 코드는 std 변수에 저장된 각각의 Student 객체에 대해 학생 id 및 국어, 영어 성적의 평균을 출력한다. (가) ~ (다)에 들어갈 내용을 바르게 연결한 것은?
class Student: def __init__(self, id, kor, eng): self.id = id self.kor = kor self.eng = eng def sum(self): return self.kor + self.eng def avg(self): return (가) std = [ Student("ok", 90, 100), Student("pk", 80, 90), Student("rk", 80, 80) ] for to in (나) : print( (다) ) (가) (나) (다)
정답 1번
(가)는 self.sum()/2, (나)는 std 리스트, (다)는 to.id와 to.avg()이므로 1번이 해당한다.
DBMS에서의 병행 수행 및 병행 제어에 대한 설명으로 옳은 것은?
정답 1번
2단계 로킹은 직렬 가능성을 보장하지만 교착상태가 발생할 수 있으므로 1번이 옳다.
다음 C 프로그램의 출력 결과는?
#include
int recursive(int n) {
int sum;
if (n > 2) {
sum = recursive(n-1) + recursive(n-2);
printf("%d ", sum);
}
else
sum = n;
return sum;
}
int main(void) {
int result;
result = recursive(5);
printf("%d", result);
return 0;
}
정답 4번
recursive(5)는 안쪽부터 3, 5, 3, 8을 출력하고 마지막에 result 8을 출력하므로 4번이 옳다.
사용자가 언제 어디서나 필요한 컴퓨팅 자원(하드웨어/소프트웨어)에 접근하여 활용할 수 있는 유연한 환경을 의미하는 기술은?
정답 4번
언제 어디서나 필요한 컴퓨팅 자원을 빌려 쓰는 유연한 환경은 클라우드 컴퓨팅이므로 4번이 해당한다.
스택을 이용하여 구현할 수 있는 것이 아닌 것은?
정답 4번
은행 대기열은 먼저 온 사람을 먼저 처리하는 선입선출이라 후입선출인 스택으로 구현하지 않으므로 4번이 해당한다.
블록체인의 특징이 아닌 것은?
정답 2번
블록체인은 거래를 모든 참여자가 볼 수 있도록 공유하므로 거래 당사자만 확인할 수 있다고 한 2번이 특징이 아니어서 해당한다.
기억장치에 저장될 데이터 또는 기억장치로부터 읽은 데이터가 일시적으로 저장되는 CPU 내부 레지스터는?
정답 4번
기억장치와 주고받는 데이터를 잠시 담아 두는 CPU 내부 레지스터는 메모리 버퍼 레지스터이므로 4번이 해당한다.
언어 번역 프로그램에 해당하지 않는 것은?
정답 4번
워드프로세서는 문서를 작성하는 응용 프로그램이므로 언어 번역 프로그램이 아니라 4번이 해당한다.
데이터베이스 정규화에 대한 설명으로 옳지 않은 것은?
정답 3번
BCNF는 모든 결정자가 후보키여야 하는데 슈퍼키라고 한 3번이 옳지 않다.
다음 프로세스 메모리 배치에 대한 설명으로 옳은 것만을 모두 고르면?
ㄱ. 전역 변수는 스택(stack) 영역에 할당된다.
ㄴ. 프로그램 코드는 텍스트(text) 영역에 적재된다.
ㄷ. 힙(heap) 영역은 프로세스 실행 중 동적으로 할당된 메모리이다.
ㄹ. 함수의 매개변수, 복귀 주소 및 지역변수는 데이터(data) 영역에 할당된다.
정답 3번
ㄴ과 ㄷ은 옳고 ㄱ과 ㄹ은 옳지 않으므로 정답은 3번이다.
다음 TCP와 UDP의 공통 설명으로 옳은 것만을 모두 고르면?
ㄱ. 연결 지향 프로토콜이다.
ㄴ. 헤더에 근원지(source)와 목적지(destination) 포트 번호가 존재한다.
ㄷ. 네트워크에서 손실된 패킷에 대한 재전송 기능이 있다.
ㄹ. 체크섬(checksum)이 헤더에 존재한다.
ㅁ. 헤더 크기가 동일하다.
정답 2번
TCP와 UDP는 헤더에 포트 번호와 체크섬이 있는 것이 공통이므로 ㄴ과 ㄹ을 고른 정답은 2번이다.
다음과 같이 접근 시간이 주어졌을 때, 캐시 적중률은? (단, 캐시 적재 시간과 캐시 적중 여부 검사 시간은 제외한다)
○ 평균 기억장치 접근 시간 = 2.5 ms
○ 주기억 장치 접근 시간 = 11.5 ms
○ 캐시 기억장치 접근 시간 = 1.5 ms
정답 3번
평균 접근 시간 2.5는 1.5h+11.5(1-h)이므로 h가 0.9여서 3번이 해당한다.
다음 그림은 TCP 기반 서버와 클라이언트 간 소켓 통신을 위한 함수 호출 관계를 나타낸다. (가) ~ (다)에 들어갈 내용을 바르게 연결한 것은?
(가) (나) (다)
정답 3번
(가)는 listen, (나)는 accept, (다)는 데이터 송수신이므로 3번이 해당한다.
프로세스 간 통신에 대한 설명으로 옳지 않은 것은?
정답 2번
지명 파이프는 부모와 자식 관계가 없는 프로세스끼리도 통신할 수 있으므로 부모-자식 관계가 반드시 필요하다고 한 2번이 옳지 않다.
파이프라이닝 기법에 대한 설명으로 옳지 않은 것은?
정답 4번
제어 해저드는 분기 명령으로 명령의 흐름이 바뀔 때 생기고 장치를 동시에 쓰려는 충돌은 구조 해저드이므로 4번이 옳지 않다.
원형 연결 리스트에 대한 설명으로 옳은 것은?
정답 1번
원형 연결 리스트는 마지막 노드가 첫 노드를 가리켜 어느 노드에서든 모든 노드에 접근할 수 있으므로 1번이 옳다.
다음 파이썬(Python) 프로그램의 출력 결과는?
a = [1, 3, 5, 7] b = {1, 3, 5, 7} c = (1, 3, 5, 7) a.append(3) b.add(3) print(len(a) + len(b) + len(c))
정답 3번
리스트 a는 append로 5개, 집합 b는 이미 있는 3을 add해도 4개, 튜플 c는 4개이므로 합이 13이어서 3번이 해당한다.
외부 인터럽트(External Interrupt)의 요인에 해당하지 않는 것은?
정답 2번
오버플로는 연산 결과가 범위를 넘을 때 CPU 안에서 생기는 내부 인터럽트이므로 외부 인터럽트가 아닌 2번이 해당한다.
컴퓨터의 버스에 대한 설명으로 옳지 않은 것은?
정답 4번
데이터 버스는 CPU와 기억장치·입출력장치 사이에서 양방향으로 데이터를 전달하므로 단방향이라고 한 4번이 옳지 않다.
NoSQL의 특징으로 옳지 않은 것은?
정답 3번
NoSQL은 빠르게 늘어나는 대용량 데이터를 분산 처리하는 데 적합하므로 적합하지 않다고 한 3번이 옳지 않다.
힙(Heap)에 대한 설명으로 옳지 않은 것은?
정답 1번
힙에 삽입할 때는 마지막 위치에 넣고 부모와 비교하며 올라가므로 시간 복잡도가 O(log n)이라 O(1)이라고 한 1번이 옳지 않다.
운영체제 구조에 대한 설명으로 옳지 않은 것은?
정답 4번
시스템 호출은 응용 프로그램이 커널의 기능을 요청하는 인터페이스이므로 커널을 거치지 않고 하드웨어에 접근하게 한다고 한 4번이 옳지 않다.
다음 제시된 표에서 (가) ~ (라)에 들어갈 애플리케이션 계층 프로토콜 및 하위 전송 계층 프로토콜을 바르게 연결한 것은?
프로토콜 애플리케이션 애플리케이션 계층 프로토콜 하위 전송 계층 프로토콜 전자메일 (가) (나) 원격접속 (다) (라) (가) (나) (다) (라)
정답 1번
이메일은 SMTP에 TCP, 원격 접속은 Telnet에 TCP를 쓰므로 1번이 해당한다.
기억장치를 접근 속도가 빠른 것부터 순서대로 바르게 나열한 것은?
정답 2번
기억장치의 접근 속도는 레지스터, 캐시, 주기억장치 순으로 느려지므로 2번이 해당한다.
CPU의 연산을 처리하기 위한 데이터의 기본 단위로서 CPU가 한 번에 처리할 수 있는 데이터 크기를 나타내는 것은?
정답 3번
CPU가 한 번에 처리할 수 있는 데이터 크기를 나타내는 기본 단위는 워드이므로 3번이 해당한다.
특정 환경에서 선택 가능한 행동들 중 보상(reward)을 최대화하는 행동을 선택하는 머신러닝(machine learning) 기법은?
정답 2번
환경에서 보상을 최대화하는 행동을 스스로 찾아 배우는 기법은 강화 학습이므로 2번이 해당한다.
10진수 연산 (-25 + 4)를 2의 보수를 이용하여 계산한 결과를 2진수로 표현한 것은? (단, 저장 공간은 8비트로 한다)
정답 4번
-25+4는 -21이고 8비트 2의 보수로 나타내면 1110 1011이므로 4번이 해당한다.
네트워크 시스템을 관리하기 위한 UDP 기반의 프로토콜은?
정답 1번
네트워크를 관리하는 UDP 기반 프로토콜은 SNMP이므로 1번이 해당한다.
레지스터에 저장된 10진수 정수 29를 2비트만큼 논리적 우측 시프트(logical right shift)한 결과에 해당하는 10진수의 값은?
정답 2번
29를 2비트 논리 우측 시프트하면 4로 나눈 몫 7이 되므로 2번이 해당한다.
다음 설명에 해당하는 소프트웨어 개발 프로세스 모델은?
초기 요구분석 후 프로토타입을 개발하기 이전에 위험 분석 단계를 거친다. 이렇게 만들어진 프로토타입을 사용자가 평가하고, 개발자는 추가 요구사항을 반영하여 다시 위험 분석을 거쳐 2차 프로토타입을 만든다. 이 과정을 반복하면서 사용자의 요구사항이 충분히 반영된 최종 제품을 완성해 나간다.
정답 1번
위험 분석을 거쳐 프로토타입을 반복하며 개선하는 모델은 나선형 모델이므로 1번이 해당한다.
메모리에 대한 설명으로 옳은 것만을 모두 고르면?
ㄱ. 플래시 메모리는 NAND형과 NOR형이 있다.
ㄴ. SRAM은 DRAM에 비해 접근 속도가 빠른 편이다.
ㄷ. ROM은 휘발성 메모리로 전원 없이 데이터를 유지할 수 없다.
ㄹ. EPROM은 자외선 등을 사용하여 여러 번 저장된 내용을 지우고 다른 내용을 기록할 수 있다.
정답 4번
ㄱ, ㄴ, ㄹ은 옳고 ㄷ은 ROM이 비휘발성이라 옳지 않으므로 정답은 4번이다.
모듈의 응집도(cohesion) 및 결합도(coupling)에 대한 설명으로 옳지 않은 것은?
정답 4번
복잡한 자료 구조를 인터페이스로 주고받는 것은 스탬프 결합도이고 데이터 결합도는 단순한 값을 주고받는 것이므로 4번이 옳지 않다.
다음 C 프로그램의 출력 결과는?
#include
void func(int *p, int *q) {
if (p > q) return;
printf("%d ", *p + *q);
func(p + 1, q - 1);
}
int main(void) {
int a[] = { 3, 1, 4, 1, 5 };
func(a, a + 4);
return 0;
}
정답 3번
func는 양 끝의 합 3+5, 1+1, 4+4를 출력하고 두 포인터가 엇갈리면 끝나므로 8 2 8이라 3번이 해당한다.
데이터베이스 뷰(view)에 대한 설명으로 옳지 않은 것은?
정답 2번
뷰를 제거할 때는 DELETE가 아니라 DROP VIEW 명령을 쓰므로 2번이 옳지 않다.
2진 소수로 변환하면 무한 순환 소수가 되는 10진 소수는?
정답 3번
분모가 2의 거듭제곱이 아닌 십진 소수는 이진수로 무한 순환하는데 0.4는 2/5라서 3번이 해당한다.
다음 릴레이션에서 속성 A ~ D의 함수 종속을 화살표(→)로 표현할 때 옳은 것은? (단, 아래 투플을 기준으로 판단하며, 새로운 투플은 추가되지 않는다고 가정한다)
A B C D 1 2 7 7 2 8 5 6 2 6 5 6 4 8 7 2
정답 4번
C, D의 값이 같은 두 투플의 A가 같고 다른 조합은 성립하지 않으므로 C, D → A인 4번이 해당한다.
FIFO 페이지 교체 알고리즘을 사용하는 가상메모리에서 프로세스 P가 다음과 같은 페이지 번호 순서대로 페이지에 접근할 때, 페이지 부재(page-fault) 발생 횟수는? (단, 프로세스 P가 사용하는 페이지 프레임은 총 3개이고, 빈 상태에서 시작한다)
8 1 2 3 1 4 5 3 4 1 4 3
정답 3번
FIFO에서 프레임 3개일 때 8 1 2 3 1 4 5 3 4 1 4 3을 따라가면 페이지 부재가 8번이므로 3번이 해당한다.
IPv4 주소의 첫 번째 바이트와 각 바이트에 해당하는 클래스가 옳게 짝지어지지 않은 것은?
정답 1번
첫 바이트 00010011은 0으로 시작해 A 클래스이므로 C 클래스라고 한 1번이 옳게 짝지어지지 않아 해당한다.
다음 Java 프로그램의 출력 결과는?
class ClassA {
ClassA() {
System.out.print("1");
}
static {
System.out.print("4");
}
}
public class ClassB extends ClassA {
ClassB() {
System.out.print("2");
}
public static void main(String[] args) {
System.out.print("3");
new ClassB();
}
}
정답 4번
ClassA의 static 블록이 클래스 로딩 때 먼저 4를 출력하고 main이 3, 부모 생성자 1, 자식 생성자 2를 출력하므로 4312라 4번이 해당한다.
교착상태(deadlock)에 대한 설명으로 옳은 것만을 모두 고르면?
ㄱ. 교착상태 발생의 필요조건은 상호 배제, 선점, 점유와 대기, 선형 대기이다.
ㄴ. 프로세스를 강제로 종료해서 교착상태 문제를 처리하는 것은 교착상태 회복 기법에 해당한다.
ㄷ. 어떤 제약을 가하지 않고 자원 할당 그래프를 지속적으로 모니터링하면서 교착상태 발생 여부를 살펴보는 것은 교착상태 예방 기법에 해당한다.
ㄹ. 은행원 알고리즘(banker’s algorithm) 등을 이용하여 안전(safe) 상태를 유지할 수 있는 범위 내에서 자원을 할당하는 것은 교착상태 회피 기법에 해당한다.
정답 3번
ㄴ과 ㄹ은 옳고 ㄱ과 ㄷ은 옳지 않으므로 정답은 3번이다.
다음 파이썬 코드로 작성된 partition() 함수를 이용하여, 주어진 배열을 퀵 정렬(quick sort)로 오름차순 정렬하고자 한다. 정렬 과정에서 단계별 정렬 순서로 나타날 수 없는 것은? (단, 피벗(pivot)은 정렬하고자 하는 대상의 마지막 원소로 선택한다)
# 정렬하고자 하는 대상인 A[first]…A[last]를 # 피벗(A[last]) 기준으로 분할하는 함수 def partition(A, first, last): p = A[last] low = first high = last while low A[low] and low < high: low += 1 while p <= A[high] and low < high: high -= 1 if low < high: A[low], A[high] = A[high], A[low] A[low], A[last] = A[last], A[low] return low 배열 7 3 2 19 13 5 11 17
정답 2번
첫 분할은 7 3 2 11 13 5 17 19, 두 번째는 2 3 5 11 13 7 17 19, 세 번째는 2 3 5 7 13 11 17 19이므로 2번은 나타날 수 없어 2번이 해당한다.
디스크 스케줄링 기법 중 SSTF를 사용하여 다음과 같은 작업 대기 큐(디스크 큐)의 작업을 처리하고자 하는 경우, 처리되는 트랙의 순서를 바르게 나열한 것은? (단, 추가 I/O 요청은 없다고 가정한다)
○ 작업 대기 큐: 15, 4, 8, 120, 65, 70, 105
○ 헤드 시작 위치: 50
정답 1번
SSTF는 현재 위치에서 가장 가까운 트랙을 먼저 처리하므로 65, 70, 105, 120, 15, 8, 4 순이며 1번이 해당한다.
다음 C 프로그램의 출력 결과는?
#include
void rotate(int *a, int n, int k) {
k %= n;
while (k--) {
int first = a[0];
int i;
for (i = 0; i < n - 1; i++) {
a[i] = a[i + 1];
}
a[n - 1] = first;
}
}
int main(void) {
int arr[] = {1, 2, 3, 4, 5};
rotate(arr, 5, 7);
int i;
for (i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
return 0;
}
정답 2번
k를 n으로 나눈 나머지 2만큼 왼쪽으로 한 칸씩 돌리므로 3 4 5 1 2가 출력되어 2번이 옳다.