포스트

모의고사 27회

Q. 네트워크상에서 자신이 아닌 다른 상대방들의 패킷 교환을 엿듣는 행위로, 공격 대상에게 직접 공격을 하지 않고 데이터만 몰래 들여다보는 수동적 공격 기법을 무엇이라고 하는가?

스니핑(Sniffing)

  • 스니핑은 네트워크상에서 자신이 아닌 다른 상대방들의 패킷 교환을 엿듣는 행위로, 공격 대상에게 직접 공격을 하지 않고 데이터만 몰래 들여다보는 수동적 공격 기법이다.

Q. CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치에 예외상황이 발생하여 처리가 필요할 경우, CPU가 처리하던 프로그램을 중단하고, 문제를 해결하도록 보내지는 제어 신호를 무엇이라 하는가?

인터럽트(interrupt)

  • CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치에 예외상황이 발생하여 처리가 필요할 경우, CPU가 처리하던 프로그램을 중단하고, 문제를 해결하도록 보내지는 제어 신호는 인터럽트이다.

Q. ( ① )은/는 CAD 프로그램으로 설계한 파일, 산업용 스캐너, 의료용 스캐너, 비디오 게임 등의 3차원 설계 데이터로 기반으로 실물모형, 프로토타입, 툴 및 부품 등을 손으로 만질 수 있는 실제 물체로 만들어 내는 기술이고, ( ② )은/는 인간의 개입 없이 특정 시간이나 환경 조건이 갖춰지면 스스로 형태를 변화시키거나 제조되는 자가 조립 기술이 적용된 프린팅 기술로 다중적 ( ① )을/를 통해 복합물질을 형성하고, 자가 변환이라는 새로운 기능이 추가된 기술이다. () 안에 들어갈 용어를 쓰시오.

3D 프린팅, 4D 프린팅

  • 3D 프린팅 기술과 4D 프린팅 기술은 다음과 같다.

    기술설명
    3D 프린팅CAD 프로그램으로 설계한 파일, 산업용 스캐너, 의료용 스캐너, 비디오 게임 등의 3차원 설계 데이터를 기반으로 실물모형, 프로토타입, 툴 및 부품 등을 손으로 만질 수 있는 실제 물체로 만들어 내는 기술
    4D 프린팅인간의 개입 없이 특정 시간이나 환경 조건이 갖춰지면 스스로 형태를 변화시키거나 제조되는 자가 조립 기술이 적용된 프린팅 기술로 다중적 3D 프린팅을 통해 복합물질을 형성하고, 자가 변환이라는 새로운 기능이 추가된 기술

Q. 다음은 보안 공격 관련 용어에 대한 설명이다. () 안에 들어갈 올바른 용어를 쓰시오.

그레이웨어(Grayware)

()은/는 바이러스나 명백한 악성 코드를 포함하지 않는 합법적 프로그램이면서도 사용자를 귀찮게 하거나 위험한 상황에 빠뜨릴 수 있는 프로그램이다. 즉 평범한 소프트웨어인지, 바이러스인지 구분하기 어려운 중간 영역에 존재하는 프로그램으로 스파이웨어, 애드웨어, 장난 프로그램, 원격 액세스 도구 등 사용자가 원하지 않는 프로그램을 총칭하는 이름이다.

  • 보안 공격관련 용어 중 사회공학과 그레이웨어는 다음과 같다.
    • 사회공학(Social Engineering)
      • 컴퓨터 보안에 있어서, 인간 상호작용의 깊은 신뢰를 바탕으로 사람들을 속여서 정상 보안 절차를 깨뜨리기 위한 비기술적 시스템 침입 수단
      • 사례로는 상대방의 자만심이나 권한을 이용하는 공격 및 도청 등이 있음
    • 그레이웨어(Grayware)
      • 바이러스나 명백한 악성 코드를 포함하지 않는 합법적 프로그램이면서도 사용자를 귀찮게 하거나 위험한 상황에 빠뜨릴 수 있는 프로그램
      • 평범한 소프트웨어인지, 바이러스인지 구분하기 어려운 중간 영역에 존재하는 프로그램으로 스파이웨어, 애드웨어, 장난 프로그램, 원격 액세스 도구 등 사용자가 원하지 않는 프로그램을 총칭하는 이름

Q. 다음과 같이 ‘상품’ 테이블이 존재할 때, 가격이 50000원보다 크거나 같고 100000원보다 작거나 같으면서 모델명이 L로 시작하는 상품의 모델명, 가격을 출력하는 쿼리를 작성하시오.

1
2
3
4
SELECT 모델명, 가격
FROM 상품
WHERE 가격 BETWEEN 50000 AND 100000
			AND 모델명 LIKE 'L%';

[상품]

제품번호모델명가격
100L101-00250000
200L111-01080000
300C222-01120000
400L201-003110000
500P200-001180000
600L301-005150000
  • 모델명, 가격을 출력해야 하므로 SELECT절에 작성한다.
  • WHERE절에서 범위를 나타내는 BETWEEN을 활용하여 값의 범위를 지정하고, 패턴을 추출할 수 있는 LIKE를 사용하여 모델명이 L로 시작하는 값을 ‘L%’을 통해 출력한다.
  • WHERE절 조건은 다음과 같다.
    • 비교
      • =: 값이 같은 경우 조회
      • <>, !=: 값이 다른 경우 조회
      • <, <=, >, >= : 비교 연산에 해당하는 데이터 조회
    • 범위
      • BETWEEN
        • 값1보다 크거나 같고, 값2보다 작거나 같은 데이터 조회
        1
        
          컬럼 BETWEEN 1 AND 2
        
        • 다음과 동일한 결과
        1
        
          컬럼 >= 1 AND 컬럼 <= 2
        
    • 집합
      • IN
        • 컬럼이 IN 안에 포함된 경우의 데이터 조회
        1
        
          컬럼 IN( 1, 2, ...)
        

        이미지

      • NOT IN
        • 컬럼이 IN 안에 포함되어 있지 않은 경우의 데이터 조회
        1
        
          컬럼 NOT IN (1, 2, ...)
        
    • 패턴
      • LIKE
        • 컬럼이 패턴에 포함된 경우의 데이터 조회
        1
        
          컬럼 LIKE 패턴
        
        %0개 이상의 문자열과 일치
        []1개의 문자와 일치
        [^]1개의 문자와 불일치
        _특정 위치의 1개의 문자와 일치
    • NULL
      • IS NULL
        • 컬럼이 NULL인 데이터 조회
        1
        
          컬럼 IS NULL
        
      • IN NOT NULL
        • 컬럼이 NULL이 아닌 데이터 조회
        1
        
          컬럼 IS NOT NULL
        
    • 복합조건
      • AND
        • 조건1과 조건2를 모두 만족하는 데이터 조회
        1
        
          조건1 AND 조건2
        
      • OR
        • 조건1과 조건2 둘 중 하나를 만족하는 데이터 조회
        1
        
          조건1 OR 조건2
        
      • NOT, !
        • 조건에 해당하지 않는 데이터 조회
        1
        
          NOT 조건
        

Q. 다음은 파이썬 코드이다. 출력 결과를 쓰시오.

8

1
2
num = [2, 4, 5, 6, 8, 10]
num[len(num) - num.index(5)]
  • 리스트 num에 [2, 4, 5, 6, 8, 10]로 초기화한다.
  • len(num)은 리스트의 개수이므로 6이 된다. num.index(5)는 5의 인덱스인 2가 된다.
  • num[6-2]이므로 num[4]인 8이 화면에 출력된다.

Q. 요구사항 개발 단계 중에서 소프트웨어가 해결해야할 문제를 이해하고, 고객으로부터 제시되는 추상적 요구에 대해 관련 정보를 식별하고 수집 방법 결정, 수집된 요구사항을 구체적으로 표현하는 단계는 무엇인가?

요구사항 도출 단계

  • 요구사항 개발 프로세스는 다음과 같다.
프로세스설명
요구사항 도출소프트웨어가 해결해야 할 문제를 이해하고, 고객으로부터 제시되는 추상적 요구에 대해 관련 정보를 식별하고 수집 방법 결정, 수집된 요구사항을 구체적으로 표현하는 단계
요구사항 분석도출된 요구사항에 대해 충돌, 중복, 누락 등의 분석을 통해 완전성과 일관성을 확보하는 단계
요구사항 명세체계적으로 검토, 평가, 승인될 수 있는 문서를 작성하는 단계
요구사항 확인 및 검증분석가가 요구사항을 이해했는지 확인(Validation)하고, 요구사항 문서가 회사의 표준에 적합하고 이해 가능하며, 일관성 있고, 완전한지 검증(Verification)하는 단계

Q. 지속적으로 증가하고 있는 공격 기법인 APT에 대하여 서술하시오.

APT 공격은 특정 타깃을 목표로 하여 다양한 수단을 통한 지속적이고 지능적인 맞춤형 공격 기법이다.

  • 보안 관련 용어는 다음과 같다.
    • 스피어피싱(Spear Phishing)
      • 사회 공학의 한 기법으로, 특정 대상을 선정한 후 그 대상에게 일반적인 이메일로 위장한 메일을 지속적으로 발송하여, 발송 메일의 본문 링크나 첨부된 파일을 클릭하도록 유도하여 사용자의 개인정보를 탈취하는 공격 기법
    • 스미싱(Smishing)
      • SMS(문자메시지)와 피싱(Phishing)의 합성어
      • 문자메시지를 이용하여 신뢰할 수 있는 사람 또는 기업이 보낸 것처럼 가장하여 개인 비밀정보를 요구하거나 핸드폰 소액 결제를 유도하는 피싱 공격
    • 큐싱(Qshing)
      • QR 코드와 피싱(Phishing)의 합성어
      • 스마트폰을 이용하여 금융 업무를 처리하는 사용자에게 인증 등이 필요한 것처럼 속여 QR 코드(Quick Response Code)를 통해 악성 앱을 내려받도록 유도하고 금융 정보 등을 빼내는 피싱 공격
    • 봇넷(Botnet)
      • 악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터가 네트워크로 연결된 형태
    • APT 공격(Advanced Persistent Threat)
      • 특정 타깃을 목표로 하여 다양한 수단을 통한 지속적이고 지능적인 맞춤형 공격 기법

Q. [급여] 테이블에서 ‘이름’이라는 컬럼에 ‘홍길동’이라는 이름을 가진 직원의 ‘호봉’ 컬럼의 값이 15가 되도록 변경하는 쿼리를 작성하시오.

1
2
~~-- UPDATE 급여(호봉) SET 15 WHERE 이름 = '홍길동';~~ 
UPDATE 급여 SET 호봉 = 15 WHERE 이름 = '홍길동';
  • DML 문법 중 UPDATE는 SET과 함께 쓰인다.

    갱신UPDATE ~ SET
    삭제DELETE FROM
    삽입INSERT INTO

    이미지

    이미지


Q. 병행 제어 개념에 대해서 서술하시오.

병행 제어는 다수 사용자 환경에서 여러 트랜잭션을 수행할 때, 데이터베이스 일관성 유지를 위해 상호작용을 제어하는 기법이다.

  • 병행 제어는 다수 사용자 환경에서 여러 트랜잭션을 수행할 때, 데이터베이스 일관성 유지를 위한 상호작용을 제어하는 기법이다.
  • 병행 제어의 목적은 다음과 같다.
    • 데이터베이스의 공유를 최대화한다.
    • 시스템의 활용도를 최대화한다.
    • 데이터베이스의 일관성을 유지한다.
    • 사용자에 대한 응답시간을 최소화한다.

Q. 다음은 자바 코드이다. 출력 결과를 쓰시오.

ParentChild

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Parent {
	Parent() {
		System.out.print("Parent");
	}
}
class Child extends Parent {
	Child() {
		System.out.print("Child");
	}
}
public class Soojebi {
	public static void main(String[] args) {
		new Child();
	}
}
  • Parent 클래스를 Child 클래스는 extends 키워드를 이용하여 상속한다.
  • main 메서드에서 new Child(); 구문을 실행하면 Child 클래스의 생성자가 호출된다. new 연산자는 힙 메모리에 할당하는 역할을 하며 생성자 메서드를 호출하기 위해 사용된다.
  • Child 클래스와 Parent 클래스는 상속관계에 있기 때문에 부모 클래스의 생성자인 Parent() 메서드가 먼저 호출이 된다. 그리고 자식 클래스인 Child 클래스의 생성자가 호출된다.

Q. 다음은 UI 시나리오 문서 작성의 요건이다. () 안에 들어갈 가장 정확한 용어을 쓰시오.

완전성(Complete), 이해성(Understandable)

  • ( ① ): UI 시나리오는 누락이 없어야 하고, 최대한 빠짐없이 가능한 한 상세하게 기술하고, 시스템 기능보다는 사용자의 태스크에 초점을 맞춰서 기술해야 한다는 원칙
  • ( ② ): 처음 접하는 사람도 이해하기 쉽도록 구성하고 설명해야 하고, 이해하지 못하는 추상적인 표현이나 이해하기 어려운 용어는 사용하지 않아야 한다는 원칙
  • UI 시나리오 문서의 작성 요건은 다음과 같다.
    • 완전성(Complete)
      • UI 시나리오 누락이 없어야 하고, 최대한 빠짐없이 가능한 한 상세하게 기술
      • 시스템 기능보다 사용자의 태스크에 초점을 맞춰 기술
    • 일관성(Consistent)
      • 서비스에 대한 목표, 시스템 및 사용자의 요구사항이 일관성이 있어야 하고, 모든 문서의 UI 스타일(Flow 또는 Layout)을 일관적으로 구성
    • 이해성(Understandable)
      • 처음 접하는 사람도 이해하기 쉽도록 구성하고 설명해야 하고, 이해하지 못하는 추상적인 표현이나 이해하기 어려운 용어는 사용하지 않아야 함
    • 가독성(Readable)
      • 문서를 쉽게 읽을 수 있어야 하고(문서 템플릿과 타이포그래피), 표준화된 템플릿을 작성하여 적용
      • 버전의 넘버링은 v1.0, v2.0 등과 같이 일관성 있게 하고, 시각적인 효과를 위한 하이라이팅은 일관성 있게 활용
    • 추적 용이성(Traceable)
      • 쉽게 추적이 가능해야 하고, 변경 사항들이 언제, 어디서, 어떤 부분들이, 왜 발생하였는지 추적이 쉬워야 함
    • 수정 용이성(Modifiable)
      • 쉽게 변경이 가능해야 하고, 수정 또는 개선 사항을 시나리오에 반영하는 데 있어 쉽게 적용할 수 있어야 함
      • 동일한 수정 사항을 위해 여러 문서를 편집하지 않도록 함

Q. 공개키는 누구나 알 수 있지만, 그에 대응하는 비밀키는 키의 소유자만이 알 수 있도록, 공개키와 비밀키를 사용하는 알고리즘은 무엇인가?

비 대칭키 암호화 알고리즘

  • 주요 암호화 알고리즘은 다음과 같다. [대비해]
    • 대칭 키 암호화 알고리즘
      • 암호화 알고리즘의 한 종류로, 암/복호화에 같은 암호 키를 쓰는 알고리즘을 의미
      • ARIA 128, 192, 256, SEED
    • 비대칭 키 암호화 알고리즘
      • 공개키는 누구나 알 수 있지만, 그에 대응하는 비밀키는 키의 소유자만이 알 수 있도록, 공개키와 비밀키를 사용하는 알고리즘
      • RSA, ECC, ECDSA
    • 해시 암호화 알고리즘
      • 해시값으로 원래 입력 값을 찾아낼 수 없는 일방향성의 특성을 가진 알고리즘
      • SHA-256/384/512, HAS-160

Q. 모듈 내부의 각 구성요소가 연관이 없을 경우의 응집도이며, 가장 낮은 응집도를 무엇이라 하는가?

우연적 응집도(Coincidental Cohesion)

  • 응집도는 모듈의 독립성을 나타내는 정도로, 모듈 내부 구성요소 간 연관 정도이다.
  • 응집도의 유형은 다음과 같다.
    • 우연적 응집도(Coincidental Cohesion)
      • 모듈 내부의 각 구성요소가 연관이 없을 경우의 응집도
    • 논리적 응집도(Logical Cohesion)
      • 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우의 응집도
    • 시간적 응집도(Temporal Cohesion)
      • 연관된 기능이라기보다는 특정한 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우의 응집도
    • 절차적 응집도(Procedural Cohesion)
      • 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우의 응집도
    • 통신적 응집도(Communication Cohesion)
      • 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우의 응집도
    • 순차적 응집도(Sequential Cohesion)
      • 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우의 응집도
    • 기능적 응집도(Functional Cohesion)
      • 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 응집도

    이미지


Q. 다음 중 [급여] 테이블에서 부서의 직원들 급여 평균이 500 이상이면서 연차 평균이 10 이상인 부서명을 구하는 쿼리를 작성하시오.

1
2
3
4
SELECT 부서, AVG(연차) AS 연차평균, AVG(급여) AS 급여평균
FROM 급여
GROUP BY 부서
HAVING AVG(연차) >= 10 AND AVG(급여) >= 500;
1
2
3
4
SELECT 부서, AVG(연차) AS 연차평균, AVG(급여) AS 급여평균
FROM 급여
GROUP BY 부서
HAVING 연차평균 >= 10 AND 급여평균 >= 500;

[급여]

이름부서연차급여
민준영업202000
서준영업161600
주원영업121200
예준전산121200
시우전산101000
준서전산5500

[결과]

부서연차평균급여평균
영업161600
  • HAVING절은 GROUP BY에 의해 분류한 후 그룹에 대한 조건을 지정한다.
  • GROUP BY절의 속성값에 해당하는 값들끼리 그룹을 형성하고, AVG(연차), AVG(급여)를 통해서 그룹별 평균을 구할 수 있다.
  • GROUP BY절과 AVG(연차), AVG(급여)를 통해서 그룹별 합계가 계산된 이후에 HAVING절을 통해 그룹별 연차평균이 10 이상, 급여평균이 500 이상인 조건을 사용할 수 있다.

Q. 서로 다른 시스템에 있는 두 개체 간의 데이터 교환을 원활히 하기 위한 일련의 통신규약인 프로토콜에는 세 가지 기본 요소가 있다. ( ① )은/는 시스템 간의 정보 전송을 위한 데이터 형식, 코딩, 신호 레벨 등의 규정이고, ( ② )은/는 시스템 간의 정보 전송을 위한 제어 정보로 조정과 에러 처리를 위한 규정이다. 또한 ( ③ )은/는 시스템 간의 정보 전송을 위한 속도 조절과 순서 관리 규정이다. () 안에 들어갈 프로토콜의 기본 요소를 쓰시오.

구문(Syntax), 의미(Semantic), 타이밍(Timing)

  • 프로토콜의 기본 요소는 다음과 같다.

    기본 요소설명
    구문(Syntax)시스템 간의 정보 전송을 위한 데이터 형식, 코딩, 신호 레벨 등의 유정
    의미(Semantic)시스템 간의 정보 전송을 위한 제어 정보로 조정과 에러 처리를 위한 규정
    타이밍(Timing)시스템 간의 정보 전송을 위한 속도 조절과 순서 관리

Q. 다음은 데이터베이스 무결성의 종류에 대한 설명이다. () 안에 들어갈 용어를 쓰시오.

개체 무결성, 참조 무결성

  • ( ① ): 한 엔터티에서 같은 기본 키(PK)를 가질 수 없거나, 기본 키(PK)의 속성이 NULL을 허용할 수 없는 무결성으로 기본 키(Primary Key), 유니크 인덱스(Unique Index)가 있음
  • ( ② ): 외래 키가 참조하는 다른 개체의 기본 키에 해당하는 값이 기본 키 값이거나 NULL이어야 하는 무결성으로 외래 키(Foreign Key)가 있음
  • 데이터베이스 무결성 종류는 다음과 같다.
    • 개체 무결성
      • 한 엔터티에서 같은 기본 키(PK)를 가질 수 없거나, 기본 키(PK)의 속성이 NULL을 허용할 수 없음
      • 기본 키(Primary Key), 유니크 인덱스(Unique Index)
    • 참조 무결성
      • 외래 키가 참조하는 다른 개체의 기본 키에 해당하는 값이 기본 키값이거나 NULL이어야 함
      • 외래 키(Foreign Key)
    • 속성 무결성
      • 속성의 값은 기본값, NULL 여부, 도메인(데이터 타입, 길이)이 지정된 규칙을 준수해야 함
      • 체크(CHECK), NULL / NOT NULL, 기본 값(DEFAULT)
    • 사용자 무결성
      • 사용자의 의미적 요구사항을 준수해야 함
      • 트리거(Trigger), 사용자 정의 데이터 타입(User Defined Data Type)
    • 키 무결성
      • 한 릴레이션에 같은 키 값을 가진 튜플들을 허용할 수 없음
      • 유니크(Unique)

Q. 다음은 해싱함수의 유형이다. () 안에 들어갈 해싱 함수의 유형을 쓰시오.

제곱법, 폴딩법

  • ( ① ): 레코드 키값을 제곱한 후에 결괏값의 중간 부분에 잇는 몇 비트를 선택하여 해시 테이블의 홈주소로 사용하는 방식
  • ( ② ): 레코드 기를 여러 부분으로 나누고 나눈 부분의 각 숫자를 더하거나 XOR 한 값을 홈 주소로 사용하는 방식
  • 해싱함수의 유형은 다음과 같다.

    함수설명
    제산법나머지 연산자(%)를 사용하여 테이블 주소를 계산하는 방식
    제곱법제곱법은 레코드 키값을 제곱한 후에 결괏값 중간 부분에 있는 몇 비트를 선택하여 해시 테이블의 홈 주소로 사용하는 방식
    숫자 분석법레코드 키를 구성하는 수들이 모든 키들 내에서 자리별로 어떤 분포인지를 조사하여 비교적 고른 분포를 나타내는 자릿수를 필요한 만큼 선택하여, 레코드의 홈 주소로 사용하는 방법
    폴딩법레코드 키를 여러 부분으로 나누고, 나눈 부분의 각 숫자를 더하거나 XOR 한 값을 홈 주소로 사용하는 방식
    기수변환법어떤 진법으로 표현된 주어진 레코드 키를 다른 진법으로 간주하고 키를 변환하여 홈 주소를 얻는 방식(어떤 키값이 16진법으로 표현되어 있다면 이를 10진법으로 표현된 것으로 간주하고 키값을 변환하여 홈 주소를 계산)
    무작위방법난수를 발생시켜 각 레코드 키의 홈 주소를 결정하는 방식

Q. IPv4 CLASS에서 ( ① ) 클래스는 멀티캐스트 용도로 예약된 주소로 224.0.0.0~239.255.255.255의 범위를 가지고, ( ② ) 클래스는 연구를 위해 예약된 주소로 240.0.0.0~255.255.255.255의 범위를 가진다. () 안에 들어갈 CLASS 구분 기호를 쓰시오.

D, E

  • IPv4 CLASS는 다음과 같다.
    • A 클래스
      • A 클래스는 가장 높은 단위의 클래스로서, 1~126(0, 127로 시작된 IP는 예약됨) 범위의 IP 주소를 가짐
      • 두 번째, 세 번째, 네 번째 단위의 세 숫자는 A Class가 자유롭게 네트워크 사용자에게 부여가 가능한 IPdla
      • 범위: 0.0.0.0 ~ 127.255.255.255
    • B 클래스
      • B 클래스는 두 번째로 높은 단위의 클래스로서, 첫 번째 단위의 세 숫자는 128~191 가운데 하나를 가짐
      • 두 번째 단위의 세 숫자는 B Class가 접속할 수 있는 네트워크를 지시
      • 범위: 128.0.0.0 ~ 191.255.255.255
    • C 클래스
      • C 클래스는 최하위의 클래스로서, 아이피 구성에서 첫 번째 단위의 세 숫자는 192 ~223 가운데 하나를 가짐
      • 두 번째와 세 번째 단위의 세 숫자는 C Class가 접속할 수 있는 네트워크를 지시
      • C Class가 자유로이 부여할 수 있는 아이피는 마지막 네 번째 단위의 254개(2개는 예약)
      • 범위: 192.0.0.0 ~ 223.255.255.255
    • D 클래스
      • 멀티캐스트 용도로 예약된 주소
      • 범위: 224.0.0.0 ~ 239.255.255.255
    • E 클래스
      • 연구를 위해 예약된 주소
      • 범위: 240.0.0.0 ~ 255.255.255.255

Q. 다음은 C언어 코드이다. 출력 결과를 쓰시오.

50

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>

int num(int a, int b) {
	if(a > b) {
		return a;
	}
	else {
		return b;
	}
}

void main() {
	printf("%d\n", num(10, 20) + num(30, 20));
}
  • num 사용자 정의 함수는 파라미터 a와 b를 전달받아 a와 b를 비교하여 a가 더 크면 a를 리턴, 아닐 경우 b를 리턴한다.
  • printf(“%d\n”, num(10, 20) + num(30, 20));에서 num(10, 20) 값과 num(30, 20) 값을 더한 값을 화면에 출력한다. num(10, 20) 값은 20, num(30, 20) 값은 30이 리턴되므로 20+30인 50이 화면에 출력된다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.