정보처리기사_필기/[4과목] 프로그래밍 언어 활용

[프로그래밍 언어 활용] 기출문제-2021-05-15

LeeDaniel 2021. 8. 11. 17:27

[정보처리기사 - 프로그래밍 언어 활용]

기출문제 2021-05-15

✔정답은 문제 오른쪽 영역 드래그


61. 다음 설명에 해당하는 방식은? 3

◼무선랜에서 데이터 전송시, 매체가 비어 있음을 확인한 뒤

  충돌을 회피하기 위해 임의시간을 기다린 후 데이터를 전송하는 방법

◼네트워크에 데이터의 전송이 없는 경우라도

   동시전송에 의한 충돌에 대비하여 확인신호를 전송

 

1️⃣STA

2️⃣Collision Domain

3️⃣CSMA/CA

4️⃣CSMA/CD

Collision Domain : 충돌 발생을 검출할 수 있는 브리지 간 혹은 다른 계층 장치 간의 이더넷 세그먼트 범위
CSMA/CD : 이더넷에서 각 단말이 정송 공유 매체에 규칙있게 접근하기 위한 매체 엑세스 제어 방식

62. 다음 중 가장 약한 결합도(Coupling)는? 4

1️⃣Common Coupling

2️⃣Content Coupling

3️⃣External Coupling

4️⃣Stamp Coupling

[ 결합도 세기 ]
내용(content) > 공통(common) > 외부(external) > 제어(control) > 스탬프 (stamp) > 자료 (data)

63. 다음 C언어 프로그램이 실행되었을 때의 결과는?

#include <stdio.h>

int main(int argc, char *argv[]){
  int a = 4;
  int b = 7;
  int c = a | b;
  
  printf("%d", c);
  return 0;
}

1️⃣3

2️⃣4

3️⃣7

4️⃣10

a = 4 = 00000100
b = 7 = 00000111
or 연산자는 둘 중 하나만 1이어도 1로 나타내므로, 00000111 = 7

and 연산자일 경우 and 00000100 = 4가 됩니다

64. 다음 파이썬(Python) 프로그램이 실행되었을 때의 결과는? 4

class FourCal:
  def setdata(sel, fir, sec):
    sel.fir = fir
    sel.sec = sec
  def add(sel)
    result = sel.fir + sel.sec
    return result
a = FourCal()
a.setdata(4, 2)
print(a.add())

1️⃣0

2️⃣2

3️⃣4

4️⃣6


65. 교착상태의 해결 방법 중 은행원 알고리즘(Banker's Algorithm)이 해당되는 기법은? 2

1️⃣Detection

2️⃣Avoidance

3️⃣Recovery

4️⃣Prevention

Detection(탐지) : 교착상태 발생을 허용하고 발생 시 원인을 규명하여 해결 (ex 자원할당 그래프)
Avoidance (회피) : 교착상태 가능성을 배제하지 않고 적절하게 피해나가는 방법 (ex 은행원 알고리즘)
Recovery (복구) : 교착상태 발견 후 현황대기를 배제시키거나
                           자원을 중단하는 메모리 할당 기법 (ex 선점, 프로세스 중지(희생자 선택)

Prevention(예방) : 교착상태의 필요조건을 부정함으로써
                            교착상태가 발생하지 않도록 미리 예방하는 방법
                            (ex 환형대기, 비선점, 점유와 대기, 상호배제 4가지 부정)


66. CIDR(Classless Inter-Domain Routing) 표기로 203.241.132.82/27과 같이 사용되었다면

     ,해당 주소의 서브넷 마스크(subnet mask)는? 2

1️⃣255.255.255.0

2️⃣255.255.255.224

3️⃣255.255.255.240

4️⃣255.255.255.248

Ipv4는 32bit로 이루어져 있습니다
ip주소/서브넷마스크로 표기합니다
서브넷마스크숫자대로 앞에서부터 1을채워서 8개씩 끊어 계산하시면됩니다(2진수)
11111111.11111111.11111111.11100000 = 1의 개수가 27개
     255   .    255    .     255   .    224

67. 다음 JAVA 프로그램이 실행되었을 때의 결과는? 1

public class Operator{
  public static void main(String[] args){
    int x=5, y=0, z=0;
    y = x++;
    z = --x;
    System.out.println(x + ", " + y + ", " + z);
  }
}

1️⃣5, 5, 5

2️⃣5, 6, 5

3️⃣6, 5, 5

4️⃣5, 6, 4

Y 먼저 5 대입 그후 X 값 1증가 X=6 , Y=5
X값 먼저 1 감소 후 Z 대입 X=5 ,Z=5

68. 프로세스 적재 정책과 관련한 설명으로 틀린 것은? 3

1️⃣반복, 스택, 부프로그램은 시간 지역성(Temporal Locality)과 관련이 있다

2️⃣공간 지역성(Spatial Locality)은 프로세스가 어떤 페이지를 참조했다면

    이후 가상주소공간상 그 페이지와 인접한 페이지들을 참조할 가능성이 높음을 의미한다

3️⃣일반적으로 페이지 교환에 보내는 시간보다

    프로세스 수행에 보내는 시간이 더 크면 스레싱(Thrashing)이 발생한다

4️⃣스레싱(Thrashing) 현상을 방지하기 위해서는 각 프로세스가 필요로 하는 프레임을 제공할 수 있어야 한다

Trashing : 일방적으로 페이지수행 시간보다 교환시간이 커질 때 발생하는것

69. 프레임워크(Framework)에 대한 설명으로 옳은 것은? 1

1️⃣소프트웨어 구성에 필요한 기본 구조를 제공함으로써 재사용이 가능하게 해준다

2️⃣소프트웨어 개발 시 구조가 잡혀 있기 때문에 확장이 불가능하다

3️⃣소프트웨어 아키텍처(Architecture)와 동일한 개념이다

4️⃣모듈화(Modularity)가 불가능하다

[ 소프트웨어 프레임워크의 특징 ]
모듈화

재사용성
확장성
제어의 역 흐름

70. 다음 JAVA 프로그램이 실행되었을 때의 결과는? 1

public class TestArray{
  public static void main(String[] args){
  
    int cnt = 0;
    
    do{
      cnt++;
    }while(cnt<0);
    
    if(cnt == 1)
      cnt++;
    else
      cnt = cnt + 3;
      
    System.out.println("%d", cnt);
    
  }
}

1️⃣2

2️⃣3

3️⃣4

4️⃣5

[ 데이터베이스 정규화 ]
비정규형 →
[도메인 분해 →] 제1정규형
[부분 함수 종속 제거 →] 제2정규형
[이행 함수 종속 제거 →] 제3정규형
[결정자가 후보키가 아닌 함수 종속 제거 →] 보이스 코드 정규형(BCNF)
[다중치 종속 제거 →] 제4정규형
[조인 종속제거 →] 제5정규형

앞글자만 따서 '도부이결다조'로 암기

71. 리눅스 Bash 쉘(Shell)에서 export와 관련한 설명으로 틀린 것은? 1

1️⃣변수를 출력하고자 할 때는 export를 사용해야 한다

2️⃣export가 매개변수 없이 쓰일 경우 현재 설정된 환경변수들이 출력된다

3️⃣사용자가 생성하는 변수는 export 명령어 표시하지 않는 한 현재 쉘에 국한된다

4️⃣변수를 export 시키면 전역(Global)변수처럼 되어 끝까지 기억된다

리눅스에서 변수 출력 : echo $변수명

72. 다음 C언어 프로그램이 실행되었을 때의 결과는? 3

#include <stdio.h>
int main(int argc, char *argv[]){
  char a;
  a = 'A' + 1;
  printf("%d", a);
  return 0;
}

1️⃣1

2️⃣11

3️⃣66

4️⃣98

ascii code talbe을 참조하면

A는 10진수로 나타냈을 때, 65
a는 10진수로 나타냈을 때, 97
부터 알파벳이 시작한다.

73. 다음 C언어 프로그램이 실행되었을 때의 결과는? 3

#include <stdio.h>
int main(int argc, char *argv[]){
  int a[2][2] = {{11, 22), (44, 55}};
  int i, sum = 0;
  int *p;
  p= a[0];
  for(i=1; i<4; i++)
  sum += *(p+i);
  printf("%d", sum);
  return 0;
}

1️⃣55

2️⃣77

3️⃣121

4️⃣132

2차원 배열의 시작순서는 11> 22> 44> 55
도식화 하면
11 / 22
44 / 55
*는 포인터를 의미. 포인터는 주소값.
*p 포인터 p변수에 a배열의 [0]주소값을 넣어줌.
그러나 (p+i)에서 p는 a배열의 [0] 주소값을 가지고 있으나 i = 1로 설정했기때문에
a[1]주소값을 뜻한다. 즉, *p는 첫 for문에서 a[1]주소값을 뜻한다.
22+44+55 = 121이다

74. 페이징 기법에서 페이지 크기가 작아질수록 발생하는 현상이 아닌 것은? 4

1️⃣기억장소 이용 효율이 증가한다

2️⃣입·출력 시간이 늘어난다

3️⃣내부 단편화가 감소한다

4️⃣페이지 맵 테이블의 크기가 감소한다

[ 페이징 기법 : 컴퓨터가 메인 메모리에서 사용하기 위해 데이터를 저장하고 검색하는 메모리 관리 기법 ]
페이징기법을 통해 물리적 메모리는 연속적으로 할당되어 존재할 필요가 없음
페이징기법을 통해 비연속적 메모리를 연속적 메모리처럼 만들 수 있음

[ 페이지 크기가 작은 경우 ]
더 많은 페이징 사상테이블 필요
내부 단편화 감소
페이지의 집합을 효율적으로 운영가능
기억장치의 효율이 좋음
총 입출력 시간 증가

[ 페이지 크기가 클 경우 ]
주기억 장치 공간 절약
참조되는 정보와 무관한 양의 정보가 주기억 장치에 남게 됨
테이블이 복잡하지 않아 관리 용이

75. 다음 중 가장 강한 응집도(Cohesion)는? 1

1️⃣Sequential Cohesion

2️⃣Procedural Cohesion

3️⃣Logical Cohesion

4️⃣Coincidental Cohesion

응집도 : 모듈내부의 기능적인 응집 정도 ]
응집도의 순서 : 1(작음) ➡ 7(큼) ]
1. 우연적(Coincidental)응집도
2. 논리적(Logical) 응집도
3. 시간적 응집도(Temporal)
4. 절차적(Procedural) 응집도
5. 교환적(Communication) 응집도
6. 순차적(Sequential) 응집도
7. 기능적(Functional) 응집도

76. TCP 프로토콜과 관련한 설명으로 틀린 것은? 1

1️⃣인접한 노드 사이의 프레임 전송 및 오류를 제어한다

2️⃣흐름 제어(Flow Control)의 기능을 수행한다

3️⃣전이 중(Full Duplex) 방식의 양방향 가상회선을 제공한다

4️⃣전송 데이터와 응답 데이터를 함께 전송할 수 있다

1번은 데이터 링크 계층에 해당하는 설명이다.

77. C언어에서 연산자 우선순위가 높은 것에서 낮은 것으로 바르게 나열된 것은? 1

보기

1️⃣㉠, ㉥, ㉣, ㉢, ㉡, ㉤

2️⃣㉠, ㉣, ㉥, ㉢, ㉡, ㉤

3️⃣㉠, ㉣, ㉥, ㉢, ㉤, ㉡

4️⃣㉠, ㉥, ㉣, ㉤, ㉡, ㉢

연산자의 우선 순위 ]
우선순위 높음 우선순위 낮음

증감 연산자( ++ -- ) → 산술 연산자( * / % ) → 산술 연산자( +   - ) → 시프트 연산자( << >> ) → 관계 연산자(=< => < > ) → 관계 연산자( == != ) → 비트 연산자( & ^ | ) → 논리 연산자( && ||) → 조건연산자(?:) → 대입연산자(= += *= /= %= <<= >>=) → 순서 연산자( , )

78. C언어 라이브러리 중 stdlib.h에 대한설명으로 옳은 것은? 1

1️⃣문자열을 수치 데이터로 바꾸는 문자 변환함수와 수치를 문자열로 바꿔주는 변환함수 등이 있다

2️⃣문자열 처리 함수로 strlen()이 포함되어 있다

3️⃣표준 입출력 라이브러리이다

4️⃣삼각 함수, 제곱근, 지수 등 수학적인 함수를 내장하고 있다

[ stdlib.h 라이브러리 ]
C언어의 표준 라이브러리로, 문자열 변환, 사 난수 생성, 동적 메모리 관리 등의 함수들을 포함

strlen() 함수 → string.h 에 포함

표준 입출력 라이브러리 → stdio.h
삼각 함수, 제곱근, 지수 등 수학적인 함수 → math.h에 내장

79. 자바스크립트(JavaScript)와 관련한 설명으로 틀린 것은? 2

1️⃣프로토타입(Prototype)의 개념이 존재한다

2️⃣클래스 기반으로 객체 상속을 지원한다

3️⃣Prototype Link와 Prototype Object를 활용할 수 있다

4️⃣객체지향 언어이다

문제 오류로 가답안 발표시 2번으로 발표되었지만
확정 답안 발표시 모두 정답처리 되었습니다

80. OSI 7계층 중 네트워크 계층에 대한 설명으로 틀린 것은? 2

1️⃣패킷을 발신지로부터 최종 목적지까지 전달하는 책임을 진다

2️⃣한 노드로부터 다른 노드로 프레임을 전송하는 책임을 진다

3️⃣패킷에 발신지와 목적지의 논리 주소를 추가한다

4️⃣라우터 또는 교환기는 패킷 전달을 위해 경로를 지정하거나 교환 기능을 제공한다

한 노드에서 다른 노드로 프레임을 전송하는 책임을 갖는 층(Layer)은 데이터 링크 계층

 

반응형