제4과목: 프로그래밍 언어 활용 (61~80번)

| 정보처리기사 필기 기출문제 | |||||
| 24년 3회 | 1과목 | 2과목 | 3과목 | 4과목 | 5과목 |
| 24년 2회 | 1과목 | 2과목 | 3과목 | 4과목 | 5과목 |
| 24년 1회 | 1과목 | 2과목 | 3과목 | 4과목 | 5과목 |
| 23년 3회 | 1과목 | 2과목 | 3과목 | 4과목 | 5과목 |
| 23년 2회 | 1과목 | 2과목 | 3과목 | 4과목 | 5과목 |
| 23년 1회 | 1과목 | 2과목 | 3과목 | 4과목 | 5과목 |
61. 한 개의 통신 회선에 여러 대의 단말장치가 연결되어 있는 형태를 가진 네트워크 토폴로지는 어떤 형인가?
① 그물형
② 십자형
③ 버스형
④ 링형
| 네트워크 설치구조 성형 (Star, 중앙 집중형) - 중앙에 중앙 컴퓨터가 있고 이를 중심으로 단말장치들이 연결되는 중앙 집중식의 네트워크 구성 형태 - 포인트 투 포인트(Point-to-Point) 방식으로 회선을 연결함 링형 (Ring, 루프형) - 컴퓨터와 단말장치들을 서로 이웃하는 것끼리 포인트 투 포인트(Point-to-Point) 방식으로 연결된 형태 - 분산 및 집중 제어 모두 가능함 - 데이터는 단방향 또는 양방향으로 전송할 수 있으며, 단방향 링의 경우 컴퓨터, 단말장치, 통신 회선 중 어느 하나라도 고장나면 전체 통신에 영향을 미침 버스형 (Bus) - 하나의 통신 선로에 여러 대의 단말장치가 연결되어 있는 형태 - 물리적 구조가 간단하고 단말장치의 추가와 제거가 용이함 - 단말장치가 고장 나더라도 통신망 전체에 영향을 주지 않기 때문에 신뢰성을 높일 수 있음 ![]() 계층형 (Tree, 분산형) - 중앙 컴퓨터와 일정 지역의 단말장치까지는 하나의 통신선으로 연결시키고, 이웃하는 단말장치는 일정 지역 내에서 독립적으로 단말장치로부터 다시 연결시키는 형태 망형 (Mesh) - 모든 지점의 컴퓨터와 단말장치를 서로 연결한 형태로, 노드의 연결성이 높음 - 많은 단말장치로부터 많은 양의 통신을 필요로 하는 경우에 유리함 - 보통 중요한 데이터 통신망에서 사용되며, 통신 신뢰성이 높음 - 모든 노드를 망형으로 연결하려면 노드의 수가 n개일 때, n(n-1)/2개의 회선이 필요함 답: 3번 |
62. C언어에서 산술 연산자가 아닌 것은?
① %
② *
③ <<
④ /
| 산술 연산자 - 일반 연산자 : + (덧셈), - (뺄셈), * (곱셉), / (나눗셈), % (나머지) - 증감 연산자 : ++ (증가 연산자), -- (감소 연산자) 관계 연산자 : == (같다), != (같지 않다), > (크다), >= (크거나 같다), < (작다), <= (작거나 같다) 비트 연산자 : & (and, 모든 비트가 1일때만 1) ^ (xor, 모든 비트가 같으면 0, 하나라도 다르면 1) | (or, 모든 비트 중 한 비트라도 1이면 1) ~ (not, 각 비트의 부정, 0이면 1, 1이면 0 << (왼쪽 시프트, 비트를 왼쪽으로 이동) >> (오른쪽 시프트, 비트를 오른쪽으로 이동) 논리 연산자 ! (not, 부정) && (and, 모두 참이면 참) || (or, 하나라도 참이면 참) 답: 3번 |
63. IPv6에 대한 설명으로 틀린 것은?
① 128비트의 주소 공간을 제공한다.
② 인증 및 보안 기능을 포함하고 있다.
③ 패킷 크기가 64Kbyte로 고정되어 있다.
④ IPv6 확장 헤더를 통해 네트워크 기능 확장이 용이하다.
| IPv6 (Internet Protocol version 6) - 현재 사용하고 있는 IP 주소 체계인 IPv4의 주소 부족 문제를 해결하기 위해 개발 - 128비트의 긴 주소를 사용하여 주소 부족 문제를 해결할 수 잇으며, IPv4에 비해 자료 전송 속도가 빠르다. - 인증성, 기밀성, 데이터 무결성의 지원으로 보안 문제를 해결할 수 있다. - IPv4와 호환성이 뛰어나다. - 주소의 확장성, 융통성, 연동성이 뛰어나며, 실시간 흐름 제어로 향상된 멀티미디어 기능을 지원한다. - 패킷 크기를 확장할 수 있으므로 패킷 크기에 제한이 없다. IPv6 의 구성 - 16비트씩 8부분, 총 128비트로 구성 - 각 부분을 16진수로 표현하고, 콜론(;)으로 구분한다. IPv6의 주소 체계 - 유니캐스트 : 단일 송신자와 단일 수신자 간의 통신(1대1통신에 사용) - 멀티캐스트 : 단일 송신자와 다중 수신자 간의 통신(1대다 통신에 사용) - 애니캐스트 : 단일 송신자와 가장 가까이 있는 단일 수신자 간의 통신(1대1통신에 사용) 답: 3번 패킷 크기를 확장할 수 잇으므로 64Kbyte로 고정되어있다는 틀린 설명 ※ 128비트', 'IPsec 내장', '유니캐스트/애니캐스트/멀티캐스트 주소 체계' → IPv6 ※ IPv6에는 브로드캐스트가 없다 |
64. 다음 설명의 ( ) 안에 들어갈 내용으로 옳은 것은?
- 가상기억장치의 일반적인 구현 방법에는 프로그램을 고정된 크기의 일정한 블록으로 나누는 ( ) 기법과 가변적인 크기의 블록으로 나누는 ( ) 기법이 있다.
① Paging, Segmentation
② Segmentation, Allocation
③ Segmentation, Compaction
④ Paging, Linking
| 페이징(Paging) 기법 - 핵심 키워드: 고정 크기, 물리적 단위, 내부 단편화 발생 - 프로그램을 똑같은 크기(Fixed Size)로 나눈 블록을 '페이지(Page)'라고 부르고, 이 페이지를 물리 메모리의 '프레임(Frame)'에 배치하는 방식 - 논리적으로 프로그램을 나누는 것이 아니라 단순히 크기로만 자르기 때문에 관리가 용이 - 페이지 크기보다 프로세스의 마지막 조각이 작을 경우 공간이 남는 내부 단편화(Internal Fragmentation)가 발생할 수 있음. - 주소 변환을 위해 페이지 맵 테이블(Page Map Table)이 필요합니다. 세그먼테이션(Segmentation) 기법 - 핵심 키워드: 가변 크기, 논리적 단위, 외부 단편화 발생 - 프로그램을 배열, 함수, 모듈 등 논리적 의미를 가진 단위(Variable Size)로 나누는 방식. 이 단위를 '세그먼트(Segment)'라고 함. - 기억공간을 효율적으로 사용할 수 있고 공유 및 보호가 쉽습니다. - 세그먼트들의 크기가 서로 다르기 때문에 메모리에 적재되고 비워지는 과정에서 중간중간 못 쓰는 공간이 생기는 외부 단편화(External Fragmentation)가 발생할 수 있습니다. - 주소 변환을 위해 세그먼트 맵 테이블(Segment Map Table)이 필요 답: 1번 ※ 고정 크기 = 페이징 (고페) ※ 가변 크기 / 논리적 단위 = 세그먼테이션 (가세) ※ 내부 단편화 발생 = 페이징 ※ 외부 단편화 발생 = 세그먼테이션 |
65. JAVA에서 변수와 자료형에 대한 설명으로 틀린 것은?
① 변수는 어떤 값을 주기억장치에 기억하기 위해서 사용하는 공간이다.
② char 자료형은 한 개의 문자를 저장하고자 할 때 사용한다.
③ 실수형 자료형에는 float, short, byte가 있다.
④ boolean 자료형은 조건이 참인지 거짓인지 판단하고자 할 때 사용한다.
![]() 답: 3번 short, byte 는 정수형 |
66. 프로세스 적재 정책과 관련한 설명으로 틀린 것은?
① 반복, 스택, 부프로그램은 시간 지역성(Temporal Locality)과 관련이 있다.
② 공간 지역성(Spatial Locality)은 프로세스가 어떤 페이지를 참조했다면 이후 가상주소 공간상 그 페이지와 인접한 페이지들을 참조할 가능성이 높음을 의미한다.
③ 일반적으로 페이지 교환에 보내는 시간보다 프로세스 수행에 보내는 시간이 더 크면 스레싱(Thrashing)이 발생한다.
④ 스레싱(Thrashing) 현상을 방지하기 위해서는 각 프로세스가 필요로 하는 프레임을 제공할 수 있어야 한다.
| Locality (국부성/지역성) - 프로세스가 실행될 때 특정 부분의 프로그램 코드나 데이터를 집중적으로 참조하는 현상입니다. - 시간 구역성(최근 쓴 거 또 씀)과 공간 구역성(근처에 있는 거 씀)이 있습니다. 워킹 셋은 이 Locality 이론을 바탕으로 만들어진 개념입니다. 시간 구역성 (Temporal Locality) : 최근에 참조된 기억 장소가 가까운 미래에 다시 참조될 가능성이 높은 특성입니다. - 루프(Loop): for, while 문처럼 같은 코드를 반복 실행. - 서브루틴(Subroutine): 호출된 함수를 다시 호출. - 스택(Stack): 가장 최근에 넣은 데이터를 다시 꺼내 쓰는 구조. - 집계(Counting)용 변수: i = i + 1처럼 계속 재사용되는 변수. 공간 구역성 (Spatial Locality) : 하나의 기억 장소가 참조되면 그 부근의 장소가 계속 참조될 가능성이 높은 특성입니다. - 배열 순회: A[0], A[1], A[2] 순차적 접근. - 순차적 코드 실행: 명령어가 위에서 아래로 차례대로 실행됨. - 관련 변수들의 집중: 비슷한 위치에 선언된 변수들. Thrashing (스레싱) - 페이지 부재가 너무 자주 발생하여, CPU가 실제 일을 하는 시간보다 페이지를 교체하는 데 보내는 시간이 더 많아지는 현상입니다. (시스템 성능이 급격히 저하됨) - 워킹 셋을 유지하거나 페이지 부재 빈도(PFF)를 조절, 프레임 제공으로 방지할 수 있습니다. 답: 3번 '페이지 교환 시간'이 '프로세스 수행 시간'보다 더 커질 때 스레싱이 발생한다. 보기는 반대로 되어있다. |
67. 다음 C언어 프로그램이 실행되었을 때의 결과는?
#include <stdio.h>
int main(void) {
int n = 4;
int *pt = NULL;
pt = &n;
printf("%d", &n + *pt - *&pt + n);
return 0;
}
① 0
② 4
③ 8
④ 12
| int n = 4; → n의 초기값 4 int *pt = NULL; → *pt가 가리키는 값 NULL pt = &n; → pt 는 n의 주소를 가진다. printf("%d", &n + *pt - *&pt + n); → &n + *pt - *&pt + n → 주소 + pt가 가리키는 값 - pt가 가진 주소 + n의 값 ※ 주소는 주소끼리, 값은 값끼리 = 주소 - 주소 + 4 + 4 = 8 return 0; → 종료 ※ & (주소 연산자): 변수가 저장된 메모리의 주소값을 가져옵니다. ※ * (참조 연산자): 포인터 변수가 가리키는 주소에 저장된 실제 값을 가져옵니다. ※ &와 &*의 관계: 이 둘은 서로 상쇄되는 관계입니다. ※ *&n : n의 주소에 가서 값을 가져와라 → 결국 n 그 자체입니다. 답: 3번 |
68. 은행가 알고리즘(Banker's Algorithm)은 교착상태의 해결 방법 중 어떤 기법에 해당하는가?
① Avoidance
② Detection
③ Prevention
④ Recovery
| 교착상태 : 상호 배제에 의해 나타나는 문제점으로, 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상을 의미 교착상태 발생의 필요 충분 조건 상호 배제 (Mutual Exclusion) - 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 함 점유와 대기 (Hold and Wait) - 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함 비선점 (Non-Preemption) - 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함 환형 대기 (Circular Wait) - 공유 자원과 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 함 교착상태의 해결 방법 예방 기법 (Prevention) - 교착상태가 발생하지 않도록 사전에 시스템을 제어하는 방법으로, 교착상태 발생의 네 가지 조건 중에서 어느 하나를 제거(부정)함으로써 수행됨 - 자원의 낭비가 가장 심한 기법 회피 기법 (Aviodance) - 교착상태가 발생할 가능성을 배제하지 않고 교착상태가 발생하면 적절히 피해나가는 방법으로, 주로 은행원 알고리즘(Banker's Algorihm)이 사용됨 - 은행원 알고리즘(Banker's Algorihm) : E. J. Dijkstra가 제안한 것으로, 은행에서 모든 고객의 요구가 충족되도록 현금을 할당하는 데서 유래한 기법 발견 기법 (Detection) - 시스템에 교착상태가 발생했는지 점검하여 교착상태에 있는 프로세스와 자원을 발견하는 것을 의미 - 교착상태 발견 알고리즘과 자원 할당 그래프 등을 사용할 수 있음 회복 기법 (Recovery) - 교착상태를 일으킨 프로세스를 종료하거나 교착 상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복하는 것을 의미함 답: 1번 |
69. 3개의 페이지 프레임을 갖는 시스템에서 페이지 참조 순서가 1, 2, 1, 0, 4, 1, 3 일 경우 FIFO 알고리즘에 의한 페이지 교체의 경우 프레임의 최종 상태는?
① 1, 2, 0
② 2, 4, 3
③ 1, 4, 2
④ 4, 1, 3
| 페이지 교체 알고리즘 OPT (OPTimal replacement, 최적 교체) - 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법 - 벨레이디(Belady)가 제안한 것으로, 페이지 부재 횟수가 가장 적게 발생하는 가장 효율적인 알고리즘 FIFO (First In First Out) - 각 페이지가 주기억장치에 적재될 때마다 그때의 시간을 기억시켜 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법 - 이해하기 쉽고, 프로그래밍 및 설계가 간단함 ![]() ※ 가장 먼저 들어온 1이 없어지고 4가 들어간다. LRU (Least Recently Used) - 최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법 - 각 페이지마다 계수기(Counter)나 스택(Stack)을 두어 현 시점에서 가장 오랫동안 사용하지 않은, 즉 가장 오래 전에 사용된 페이지를 교체함 LFU (Least Frequently Used) - 사용 빈도가 가장 적은 페이지를 교체하는 기법 -활발하게 사용되는 페이지는 사용 횟수가 많아 교체되지 않고 사용됨 SCR (Second Chance Replacement, 2차 기회 교체) - 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 것으로, FIFO 기법의 단점을 보완하는 기법 NUR (Not Used Recently) - LRU와 비슷한 알고리즘으로, 최근에 사용하지 않은 페이지를 교체하는 기법 - 최근에 사용되지 않은 페이지는 향후에도 사용되지 않을 가능성이 높다는 것을 전제로, LRU에서 나타나는 시간적인 오버헤드를 줄일 수 있음 - 최근의 사용 여부를 확인하기 위해서 각 페이지마다 두 개의 비트, 즉 참조 비트와 변형 비트가 사용됨 답: 4번 |
70. TCP/IP 프로토콜에서 TCP가 해당하는 계층은?
① 데이터 링크 계층
② 네트워크 계층
③ 트랜스포트 계층
④ 세션 계층
| OSI 7계층 물리 계층 (Physical) - Bit - 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의 - 장비/프로토콜 : 리피터, 허브, 케이블 데이터 링크 계층 (Data Link) - Frame(프레임) - 두 개의 인접한 개방 시스템(노드와 노드)들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 시스템 간 연결 설정과 유지 및 종료를 담당함 - 송신 측과 수신 측의 속도 차이를 해결하기 위한 흐름 제어 기능을 함 - 프레임의 시작과 끝을 구분하기 위한 프레임의 동기화 기능을 함 - 오류의 검출과 회복을 위한 오류 제어 기능을 함 - 장비/프로토콜 : 브리지, 스위치, MAC 주소 네트워크 계층 (Network) : 경로 선택, 논리적 주소(IP) 관리 - Packet(패킷) - 개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능을 함 - 네트워크 연결을 설정, 유지, 해제하는 기능을 함 - 경로 설정(Routing), 데이터 교환 및 중계, 트래픽 제어, 패킷 정보 전송을 수행함 - 장비/프로토콜 : 라우터, IP, ICMP, ARP 전송 계층 (Transport) - Segment - 논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단 시스템(End-to-End) 간에 투명한 데이터 전송을 가능하게 함 - 종단 시스템(End-to-End) 간의 전송 연결 설정, 데이터 전송, 연결 해제 기능을 함 - 주소 설정, 다중화(분할 및 재조립), 오류 제어, 흐름 제어를 수행함 - 장비/프로토콜 : TCP, UDP, 게이트웨이 세션 계층 (Session) - Message / Data - 송수신 측 간의 관련성을 유지하고 대화 제어를 담당함 - 대화(회화) 구성 및 동기 제어, 데이터 교환 관리 기능을 함 - 장비/프로토콜 : 체크포인트(동기점) 표현 계층 (Presentation) - Message / Data - 응용 계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환하고, 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 기능을 함 - 서로 다른 데이터 표현 형태를 갖는 시스템 간의 상호 접속을 위해 필요한 계층 - 코드 변환, 데이터 암호화, 데이터 압축, 구문 검색, 정보 형식(포캣) 변환, 문맥 관리 기능을 함 - 장비/프로토콜 : 암호화, 압축 형식 응용 계층 (Application) - Message / Data - 사용자(응용 프로그램)가 OSI 환경에 접근할 수 있도록 서비스를 제공함 - 장비/프로토콜 : HTTP, FTP, SMTP, SNMP 답: 3번 |
71. 다음 C언어 프로그램의 결과로 옳은 것은?
#include <stdio.h>
main() {
int a = 3, b = 4, c = 5;
int r1, r2, r3;
r1 = a < 4 && b <= 4;
r2 = a > 3 || b <= 5;
r3 = !c;
printf("%d", r1 - r2 + r3);
}
① 0
② 1
③ 2
④ 3
| int a=3, b=4, c=2; int r1, r2, r3; → 초기값 정의 (r1, r2, r3은 빈값) r1 = a < 4 && b <= 4; → a < 4 인지 확인. 3 < 4 이므로 참. 1값 반환 → && (and) 이므로 다음도 확인한다. (뒤에 값이 거짓이면 거짓이되니까) → b <= 4 인지 확인. 4 <= 4 이므로 참. 1값 반환 → r1 = 1값 대입 || (or) 이므로, c는 확인할 필요 없다. (뒤에 값이 거짓이어도 참이니까) r2 = (a > 3) || (b <= 5); → a > 3 인지 확인. a > 3 이므로 거짓. 0값 반환 → || (or) 이므로, 다음도 확인한다. (뒤에 값이 참이면 참이되니까) → b <= 5 인지 확인. 4 <= 5 이므로 참. 1값 반환 → r2 = 1값 대입 r3 = !c; → !c 인지 확인. c = 5 참이므로 ! 해서 0값 1값 반환 (c언어에서 0이 아닌 모든 값은 참으로 간주) printf("%d", r1 - r2 + r3); → r1 - r2 + r3 = 1 - 1 + 0 = 0 return 0; → 종료 답: 1번 |
72. UNIX 시스템에서 파일의 권한 모드 설정에 관한 명령어는?
① cp
② chmod
③ cat
④ ls
| UNIX / LUNUS 기본 명령어 cat : 파일 내용 출력 ls : 디렉터리 목록 cp : 파일 복사 rm : 파일 삭제 find : 파일 검색 chdir(cd) : 디렉터리 이동 chmod : 파일 권한(permission) 변경 chown : 파일 소유자 변경 umask : 기본 권한 마스크 fork : 프로세스 복제, 자식 프로세스 생성 exec : 현재 프로세스를 새 프로그램으로 대체 wait : 자식 프로세스 종료 대기 fsck : 파일 시스템 검사 및 복구 mount : 파일 시스템 연결 umount : 파일 시스템 해제 uname : 시스템 정보 출력 답: 2번 |
73. UNIX에 대한 설명으로 틀린 것은?
① 상당 부분 C 언어를 사용하여 작성되었으며, 이식성이 우수하다.
② 사용자는 하나 이상의 작업을 백그라운드에서 수행할 수 있어 여러 개의 작업을 병행 처리할 수 있다.
③ 쉘(Shell)은 프로세스 관리, 기억장치 관리, 입출력 관리 등의 기능을 수행한다.
④ 두 사람 이상의 사용자가 동시에 시스템을 사용할 수 있어 정보와 유틸리티들을 공유하는 편리한 작업 환경을 제공한다.
| UNIX - 1960년대 AT&T 벨(Bell) 연구소, MIT, General Electric이 공동 개발한 운영체제 - 시분할 시스템(Time Sharing System)을 위해 설계된 대화식 운영체제로, 소스가 공개된 개방형 시스템(Open System) - 대부분 C언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높다. - 크기가 작고 이해하기가 쉽다. - 다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원한다. - 많은 네트워킹 기능을 제공하므로 통신망(Network) 관리용 운영체제로 적합하다. - 트리 구조의 파일 시스템을 갖는다. - 전문적인 프로그램 개발에 용이하다. - 다양한 유틸리티 프로그램들이 존재한다. UNIX 시스템의 구성 커널(Kernel) - UNIX의 가장 핵심적인 부분 - 컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하면서 실행 - 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할을 담당한다. - 프로세스(CPU 스케줄링) 관리, 기억장치 관리, 파일 관리, 입출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러가지 기능을 수행 쉘(Shell) - 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기 - 시스템과 사용자 간의 인터페이스를 담당한다. - DOS의 COMMAND.COM과 같은 기능을 수행한다. - 주기억장치에 상주하지 않고, 명령어가 포함된 파일 형태로 존재하며 보조 기억장치에서 교체 처리가 가능하다. - 파이프라인 기능을 지원하고 입출력 재지정을 통해 출력과 입력의 방향을 변경할 수 있다. - 공용 Shell(Bourne Shell, C Shell, Korn Shell)이나 사용자 자신이 만든 Shell을 사용할 수 있다. Utility Profram (유틸리티 프로그램) - 일반 사용자가 작성한 응용 프로그램을 처리하는 데 사용한다. - DOS에서의 외부 명령어에 해당된다. - 유틸리티 프로그램에는 에디터, 컴파일러, 인터프리터, 디버거 등이 있다. 답: 3번 |
74. 빈 기억공간의 크기가 20KB, 16KB, 8KB, 40KB 일 때 기억장치 배치 전략으로 "Best Fit"을 사용하여 17KB의 프로그램을 적재할 경우 내부 단편화의 크기는 얼마인가?
① 3KB
② 23KB
③ 64KB
④ 67KB
| 내부 단편화 : 공간에 프로그램을 넣고 남아서 버려지는 빈칸을 말합니다. ※ 계산: 선택된 공간(20KB) - 프로그램 크기(17KB) = 3KB 기억장치 관리 - 배치(Placement) 전략 최초 적합 (First Fit) : 프로그램 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치시키는 방법 최적 적합 (Best Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 적게 남기는 분할 영역에 배치시키는 방법 최악 적합 (Worst Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치시키는 방법 답: 1번 |
75. 192.168.1.0/24 네트워크를 FLSM 방식을 이용하여 4개의 Subnet으로 나누고 IP Subnet-zero를 적용했다. 이 때 Subnetting된 네트워크 중 4번째 네트워크의 4번째 사용 가능한 IP는 무엇인가?
① 192.168.1.192
② 192.168.1.196
③ 192.168.1.195
④ 192.168.1.198
| 단위 구하기: 256을 나눌 개수(4)로 나눕니다. - 256 / 4 = 64 시작점 찾기: 4번째 네트워크는 앞의 3개(64개씩 3번)를 건너뛰고 시작합니다. - 64 x 3 = 192 네트워크 주소: 192입니다. n번째 사용 가능한 IP: 네트워크 주소 + n을 합니다. - 192 + 4 = 196 답: 3번 |
76. 다음 C언어 프로그램에서 밑줄 친 부분(la && lb)과 동일한 의미를 가지는 것은 어떤 것인가?
#include <stdio.h>
main( ) {
int a, b;
for (a = 0; a < 2; a++)
for (b = 0; b < 2; b++)
printf("%d", !a && !b);
}
① !a || !b
② !(a || b)
③ a && b
④ a || b
| !a && !b ※ 법칙 1: !A && !B → !(A || B) ※ 법칙 2: !A || !B → !(A && B) 답: 2번 법칙을 몰라도 대입해보면 풀 수 있다. |
77. UNIX에서 새로운 프로세스를 생성하는 명령어는?
① ls
② cat
③ fork
④ chmod
| UNIX / LUNUS 기본 명령어 cat : 파일 내용 출력 ls : 디렉터리 목록 cp : 파일 복사 rm : 파일 삭제 find : 파일 검색 chdir(cd) : 디렉터리 이동 chmod : 파일 권한(permission) 변경 chown : 파일 소유자 변경 umask : 기본 권한 마스크 fork : 프로세스 복제, 자식 프로세스 생성 exec : 현재 프로세스를 새 프로그램으로 대체 wait : 자식 프로세스 종료 대기 fsck : 파일 시스템 검사 및 복구 mount : 파일 시스템 연결 umount : 파일 시스템 해제 uname : 시스템 정보 출력 답: 3번 |
78. 다음 C언어 프로그램이 실행되었을 때, 실행 결과는?
#include <stdio.h>
struct st {
int a;
int c[10];
};
int main(int argc, char *argv[]) {
int i = 0;
struct st ob1;
struct st ob2;
ob1.a = 0;
ob2.a = 0;
for (i = 0; i < 10; i++) {
ob1.c[i] = i;
ob2.c[i] = ob1.c[i] + i;
}
for (i = 0; i < 10; i = i + 2) {
ob1.a = ob1.a + ob1.c[i];
ob2.a = ob2.a + ob2.c[i];
}
printf("%d", ob1.a + ob2.a);
return 0;
}
① 30
② 60
③ 80
④ 120
| struct st { int a; int c[10]; }; → 초기값 설정 int main(int argc, char *argv[]) { int i = 0; struct st ob1; struct st ob2; ob1.a = 0; ob2.a = 0; → 초기값 설정 for (i = 0; i < 10; i++) { ob1.c[i] = i; ob2.c[i] = ob1.c[i] + i; } ![]() ※ ob1.c[i] = i 는 i값을' ob1.c[i]'에 대입한다고 생각 for (i = 0; i < 10; i = i + 2) { ob1.a = ob1.a + ob1.c[i]; ob2.a = ob2.a + ob2.c[i]; } → i = i + 2 : 짝수 인덱스 값만 가져온다. → ob1.a = 0 + 2 + 4 + 6 + 8 = 20 → ob2.a = 0 + 4 + 8 +12 + 16 = 40 printf("%d", ob1.a + ob2.a); → 20 + 40 = 60 답: 2번 |
79. 개발 환경 구성을 위한 빌드(Build) 도구에 해당하지 않는 것은?
① Ant
② Kerberos
③ Maven
④ Gradle
| 하드웨어 환경 클라이언트 (Client): 사용자가 사용하는 PC, 스마트폰 등 (요청을 보내는 기기) 웹 서버 (Web Server): 클라이언트의 요청을 받아 정적 콘텐츠(HTML, 이미지 등)를 제공합니다. (예: Apache, Nginx) WAS (Web Application Server): 동적인 데이터를 처리하고 로직을 수행합니다. 미들웨어 역할을 하며 DB와 연결됩니다. (예: Tomcat, Jeus) 데이터베이스 서버 (DB Server): 데이터를 저장하고 관리하는 서버입니다. (예: Oracle, MySQL 설치 장비) 파일 서버 (File Server): 대용량 하드 디스크를 장착하여 공유 파일을 저장하는 서버입니다. 소프트웨어(SW) 환경 운영체제(OS): 하드웨어와 소프트웨어 자원을 효율적으로 관리하는 기본 소프트웨어입니다. (예: Windows, Linux, UNIX) 미들웨어(Middleware): 운영체제와 애플리케이션 사이에서 매개 역할을 하는 소프트웨어입니다. (예: WAS도 미들웨어의 일종) DBMS: 데이터베이스를 관리하는 소프트웨어 시스템입니다. (예: Oracle, MySQL 소프트웨어 자체) 개발 도구: 개발자가 직접 사용하는 도구들입니다. - IDE(통합 개발 환경): 코드 작성, 컴파일, 디버깅을 한 번에 하는 도구 (예: Eclipse, VS Code, IntelliJ) - 빌드 도구: 작성한 코드를 배포 가능한 형태로 변환하는 도구 (예: Ant, Maven, Gradle) - 형상 관리 도구: 버전 관리를 위한 도구 (예: Git, SVN) 답: 2번 |
80. 다음 Python 프로그램이 실행되었을 때, 실행 결과는?
a = 100
list_data = ['a', 'b', 'c']
dict_data = {'a': 90, 'b': 95}
print(list_data[0])
print(dict_data['a'])

| a = 100 → a의 초기값 100 list_data = ['a', 'b', 'c'] → data 의 문자 리스트 ※ 'a' : a라는 문자. 위의 a값과는 다른 값이다 dict_data = {'a': 90, 'b': 95} ※ 딕셔너리(Key:Value) : 키 값으로 값을 호출할 수 있다. → 'a' 라는 키 값을 넣으면, 90이라는 값을 호출할 수 있다. → 'b' 라는 키 값을 넣으면, 95이라는 값을 호출할 수 있다. print(list_data[0]) → 0인덱스에 들어있는 a 문자값 호출 = a print(dict_data['a']) → 'a' 키 값을 넣었고, 그에 맞는 90이라는 값이 호출 됨 = 90 답: 1번 |
| 정보처리기사 필기 기출문제 | |||||
| 24년 3회 | 1과목 | 2과목 | 3과목 | 4과목 | 5과목 |
| 24년 2회 | 1과목 | 2과목 | 3과목 | 4과목 | 5과목 |
| 24년 1회 | 1과목 | 2과목 | 3과목 | 4과목 | 5과목 |
| 23년 3회 | 1과목 | 2과목 | 3과목 | 4과목 | 5과목 |
| 23년 2회 | 1과목 | 2과목 | 3과목 | 4과목 | 5과목 |
| 23년 1회 | 1과목 | 2과목 | 3과목 | 4과목 | 5과목 |
'자격증 요약 > 정보처리기사' 카테고리의 다른 글
| [25년 3회] 정보처리기사 실기 문제 풀이 (0) | 2026.02.23 |
|---|---|
| [정보처리기사] UML 다이어그램 정리 (0) | 2026.02.05 |
| [23년 2회 4과목] 정보처리기사 필기 문제 풀이 (0) | 2026.01.30 |
| [23년 3회 4과목] 정보처리기사 필기 문제 풀이 (0) | 2026.01.30 |
| [24년 1회 4과목] 정보처리기사 필기 문제 풀이 (0) | 2026.01.29 |




