cyphen156

Chapter1 과제 본문

프로그래밍/C언어

Chapter1 과제

cyphen156 2022. 12. 22. 13:47

개인 문제풀이임으로 오답이 있을 수 있습니다.

  1. 컴파일러, 어셈블러, 링커, 로더의 차이점을 설명하라.
    컴파일러 : 특정 프로그래밍 언어로 작성된 소스 코드를 저급 언어인 어셈블리언어로 바꿔 목적 코드를 생성해주는 소프트웨어이다
    어셈블러 : 목적 코드를 컴퓨터가 이해할 수 있는 기계어로 변환시켜주는 소프트웨어이다.
    링커 : 함수와 함수 또는 여러 개의 목적 코드 연결시켜 실행파일을 만들어주는 소프트웨어이다.
    로더 : 실행파일을 컴퓨터가 실행시켰을 때 주 메모리에 적재시켜 프로그램을 실행시켜주는 프로그램이다.

  2. 소스 파일, 오브젝트 파일, 실행 파일의 차이점을 설명하라.
    소스 파일 : 프로그래밍 언어로 작성된 원시 코드
    오브젝트 파일 : 원시 코드를 컴파일러가 기계어와 매칭시키기 위해 어셈블리어로 변환시킨 파일/목적 파일
    실행 파일 : 프로그램 실행을 위해  링커가 오브젝트 파일들을 연결시켜 만들어준 파일

  3. 리턴 타입, 함수명, 함수 본체, 리턴 값 등의 용어를 설명하라.
    리턴 타입 : 함수 정의시 리턴 값에 따라 명시된 자료형
    함수명 : 특정 기능을 수행하기 위한 명령어의 집합의 이름
    함수 본체 : 함수를 호출했을 때 수행되는 명령어가 작성된 부분
    리턴 값 : 함수 실행 결과 돌려주는 값

  4. 문법 오류, 의미상 오류, 논리 오류의 차이점을 설명하라.
    문법 오류 : 프로그래밍 언어의 작성 규칙에 맞지 않는 명령어를 작성한 경우 발생한다.
    의미상 오류 : 문법은 알맞게 작성하였지만 작성된 명령어가 프로그래머의 의도와 컴퓨터가 이해한 것이 서로 달라 오류가 발생한 경우
    논리 오류 : 프로그램을 잘못 설계한 경우 발생한다.

  5. 지시어와 명령어의 차이점을 설명하라.
    지시어 : 컴파일러가 프로그램을 번역하기 전에 먼저 전처리기가 수행해야 하는 언어, 주로 주석을 제거하고, 컴파일 환경을 조성해준다.
    명령어 : 컴파일러가 번역하여 실제 프로그램 실행시 수행되야 하는 부분

  6. 라면을 끓이는 알고리즘을 단계별로 설명하되 10줄 이상의 [각주:1]의사 코드를 써서 설명하라.
    1. 냄비를 꺼낸다.
    2. 꺼낸 냄비를 인덕션 위에 올린다.
    3. 냄비에 물을 붓는다.
    4. 라면 봉지를 뜯어 분말 스프와 후레이크를 냄비에 넣는다.
    5. 인덕션을 켜서 물을 끓인다.
    6. 물이 끓기 시작하면 라면을 넣고 같이 끓인다.
    7. 취향에 따라 계란과 치즈 등 여러가지 부재료를 넣고 끓인다.
    8. 라면이 다 끓으면 인덕션을 끈다
    9. 끓은 라면을 식탁으로 옮겨 반찬과 같이 먹는다
    10. 다먹었으면 설거지를 한다.
  7. 일상의 문제점을 하나 선택하여 그것을 해결하기 위한 알고리즘을 의사 코드로 설명하라.


  8. 같은 크기의 공이 아홉개 있다. 그 중 여덟 개는 무게가 같고 하나만 더 무겁다. 천칭(Balance)을 써서 무게를 재되 단 두 번만 재어 더 무거운 공을 찾아내는 알고리즘을 의사 코드로 써 보라.
    1. 공 아홉개를 3개씩 나눠 3개의 그룹으로 나눈다.(A, B, C)
    2. 이 중 두 개의 그룹(A, B)을 각각 저울에 재본다.
      1. 저울에 재본 두 그룹(A, B)의 무게가 같은 경우(C를 재본다)
        1. 저울에 재보지 않은 나머지 그룹(C)중 한 개씩 두 개를 재본다. 
          1) 저울에 재본 두 개의 무게가 같은 경우
          무게를 재지 않은 남은 1개가 무거운 경우이다.

          2) 저울에 재본 두 개의 무게가 다른 경우 
          더 무거운 쪽으로 기운 것이 무게가 다른 경우이다.
      2. 저울에 재본 두 그룹의 무게가 다른 경우
        1. 더 무거운 쪽으로 기운 것들 중 두 개를 골라 다시 재본다.
          1. 무게를 잰 두 개의 무게가 서로 같은 경우나머지 1개만 무게가 무거운 경우이다.

          2. 무게를 잰 두 개의 무게가 서로 다른 경우
            더 무거운 쪽으로 기운 것이 무게가 다른 경우이다.

//모든 예제 소스는 한빛 미디어홈페이지에서 찾으실 수 있습니다.

IT CookBook, 전공자를 위한 C 언어 프로그래밍 (hanbit.co.kr)

또는 cyphen156/Work-space: Studying (github.com)에서 찾으실 수 있습니다.

 

 

 

 

 

  1. 의사코드 : 실제 프로그램 언어가 아닌 사람의 언어를 통해 프로그램이 해야 할 일을 작성하는 예시 명령어 [본문으로]

'프로그래밍 > C언어' 카테고리의 다른 글

Chapter3 과제  (0) 2023.02.03
Chapter3 변수와 상수, 대입문과 연산  (0) 2023.02.01
Chapter2 과제  (0) 2023.01.05
Chapter2 C언어의 자료형과 표준 입출력 함수  (0) 2023.01.04
Chapter1 C언어와 컴파일러  (0) 2022.12.22