본문으로 바로가기
728x90
반응형

40p. Exercise


9. 다음 중에서 C언어를 개발한 사람은 누구인가?

① Dennis Ritchie

② Kernighan  

③ Niklaus Wirth

④ Bjarne Stroustrup

답 : ① Dennis Ritchie


10. 컴퓨터에서 십진법이 아닌 이진법이 사용되는 이유를 설명하여라.

답 : 0과 9까지를 사용하는 십진법에 비하여 0과 1만을 사용하는 이진법이 표현하기가 쉽기 때문이다. 즉 이진법은 간단한 스위치를 이용하여 0과 1을 표현할 수 있다. 이 스위치들은
전자 회로를 이용하여 간단하게 구현할 수 있다.


11. 인텔의 CPU에서 사용되는 명령(instruction)에서 3가지를 선택하여 무슨일을 하는 명령어인지를 조사하여라.

답 : * MOV(Move): 데이터 이동 (전송)
* XCHG( Exchange Register/memory with Register ): 첫 번째 오퍼랜드와 두 번째 오
퍼랜드 교환
* IN( Input from AL/AX to Fixed port ): 오퍼랜드로 지시된 포트로부터 AX에 데이터
입력


12. 주판, 계산자, 계산판 등의 고대의 계산하는 기계들하고 현대의 컴퓨터와 결정적인 차이점은 무엇인가?

답 : 고대의 기계들은 정해진 기능만을 수행하는 반면에, 현대의 컴퓨터는 범용적인 기계로서 프로그램만 변경하면 다양한 기능을 수행할 수 있다.


13. 컴퓨터를 이용하여 문제를 해결할 때, 문제를 해결하는 방법을 인간이 구체적으로 고안하여 알려주어야 한다면, 왜 컴퓨터를 사용하는 것인가?

인간이 직접하는 편이 낫지 않을까? 컴퓨터를 사용하는 경우의 장점을 들어라.

답 : 인간이 문제를 해결하는 방법을 고안하여 한번만 알려주면 컴퓨터는 반복하여 불평없이 작업을 할 수 있기 때문이다.


14. 임베디드 시스템이란 어떤 것인가? 인터넷에서 자료를 찾아서 정리하여라.

답 : 미리 정해진 특정 기능을 수행하기 위해 컴퓨터의 하드웨어와 소프트웨어가 조합된 전자 제어 시스템을 말한다.

예를들면 영사기 안에 들어있는 시스템이라던가.. 시계에 들어있는 시스템이라던가..


15. 주어진 두 수의 평균을 구하는 알고리즘을 작성하여라.

답 : 사용자에게 두수를 입력받는다.-> 두수를 더하여 합을 sum에 저장한다.-> sum을 2로 나누어서 화면에 표시한다.


16. 사용자로부터 원의 반지름을 입력받고, 반지름에 2를 곱하여 지름을 구하고, 여기에 3.14를 곱하여 원주를 구하는 알고리즘을 순서도를 이용하여 기술하여라.





17. 사용자에게 입력받은 5개의 정수 중에서 최솟값을 찾는 문제에 대한 알고리즘을 작성하여라.

답 : 첫 번째 숫자와 두 번째 숫자를 서로 비교하여 더 작은 숫자를 구한다 -> 이것을 세번째 숫자와 비교하여 더 작은 숫자를 구한다. ->이것을 네 번째 숫자와 비교하여 더 작은
숫자를 구한다. ->이것을 다섯 번째 숫자와 비교하여 최소값을 구한다.


18. 1부터 10까지의 숫자들이 있다. 이들 숫자들은 순서대로 되어 있지 않다. 이들 숫자들을 크기 순서대로 정렬시키는 알고리즘을 생각할 수 있는가?

답 : 10개의 숫자 중 가장 작은 숫자를 제일 첫 번째 있는 숫자와 위치를 바꾼다. -> 첫 번째 숫자를 제외하고 두 번째부터 10번째까지의 숫자 중 가장 작은 숫자를 두 번째 숫자와
위치를 바꾼다. -> 3번째부터 10번째까지 숫자 중 가장 작은 숫자를 3번째 숫자와 위치를바꾼다. ->...-> 9번째부터 10번째까지 숫자 중 작은 숫자를 9번째 숫자와 위치를 바꾼다.


19. 두 개의 숫자 중에서 큰 수를 반환하는 연산만 지원되는 컴퓨터가 있다. 이 컴퓨터에서 3개의 숫자 중에서 제일 큰 수를 찾으려고 하면 어떤 알고리즘을 사용하여야 하는가? 순서도로 그려보아라.



20. 두 개의 컵에 우유와 주스가 각각 담겨 있다. 우유와 주스를 교호나하기 위한 알고리즘을 고안하여라. 사용가능한 세 번째 컵이 있다고 가정하여라.

답 : 첫 번째 컵에 우유가 담겨져 있고 두 번째 컵에 주스가 담겨져 있다고 가정한다. ->첫 번째 컵에 있는 것을 세 번째 컵에 옮긴다. -> 두 번째 컵에 있는 것을 첫 번째 컵에옮긴다. -> 세 번째 있는 것을 두 번째 컵에 옮긴다.


21. 소스파일, 오브젝트 파일, 실행 파일의 차이점을 설명하여라.

답 : * 소스 파일 : 알고리즘을 프로그래밍 언어의 문법에 맞추어 기술한 것
* 오브젝트 파일 : 소스 프로그램을 컴파일러가 기계어로 변환한 것
* 실행 파일 : 컴파일된 오브젝트 프로그램에 라이브러리를 링크한 것


22. 컴파일러와 링커가 하는 일을 정리하여라.

답 : * 컴파일러 : 소스 프로그램을 기계어로 변환하여 오브젝트 파일을 생성
* 링커 : 컴파일된 오브젝트 파일에 라이브러리를 연결시켜 실행 프로그램을 생성


23. 영어의 문장을 예로 들어서 문법적인 오류와 논리적인 오류를 설명하여라.

답 : * 문법적인 오류 : The boy, whom(->who) was thought to be absent-minded,
really had a very active mind.
* 논리적인 오류 : Humans are perfect.


24. 다음 소스에는 많은 오류가 있다. 오류를 찾아내서 수정하여라.

/* 첫 번째 프로그램 * / 

 include <stdio.h>

 int Main(void);

 {

      printf("Hello World! \n")

      return 0;

 }


답 :

/* 첫 번째 프로그램 * / 

 #include <stdio.h>

 int main(void)

 {

      printf("Hello World! \n");

      return 0;

 }






1장을 끝내면서...


이렇게 이론적인건 어쩔수없이 솔루션을 구해다가 그대로 써놨어요 ㅡㅜ

혹시라도 풀이가 필요하시면 요청해주시믄 얼마든지 해드릴게요 ~

728x90
반응형