Core C Programming
천정아 저
이 책은 C 문법서가 아니기 때문에, 각 장이 왜 이런 기능이 필요할까? 에서부터 시작하고 있습니다. 왜 이런 기능이 필요한지, 왜 그렇게 사용할 수밖에 없는지를 알고 나면 개념 을 받아들이고 이해하기 쉬워집니다. 또한, 이 책은 핵심을 꿰뚫는 풍부하고 다양한 그림 을 통해서 C의 기능들을 설명하고 있다. 개념 설명...
[Exercise]
1. 컴퓨터 하드웨어가 특정 기능을 수행할 수 있게 하는 것은?
① 소프트웨어 ② 입출력 장치 ③ 비즈니스 모델 ④ 인공지능
① 소프트웨어
2. 소프트웨어를 지칭하는 또 다른 용어를 모두 쓰시오.
응용 프로그램, 프로그램, 앱 애플리케이션
3. 프로그래밍 언어에 대한 설명 중 잘못된 것을 모두 쓰시오.
① 기계어로 작성된 프로그램은 특정 CPU에서만 실행될 수 있다. ② 0과 1로 되어 있는 명령어 대신 일대일로 대응된 니모닉 기호를 사용하는 것이 어셈블리어이다. ③ 어셈블리어를 이용하면 기계 독립적인 프로그램을 작성해야 한다. ④ 고급 언어를 사용하면 기계 종속적인 프로그램을 작성해야 한다. ⑤ 컴파일러는 고급 언어로 된 프로그램을 기계어로 번역한다.
③ 어셈블리어를 이용하면 기계 독립적인 프로그램[기계 종속적(machine-dependent)]을 작성해야 한다.
④ 고급 언어를 사용하면 기계 종속적인[기계 독립적인(machine-independent)] 프로그램을 작성해야 한다.
4. 어셈블리어로 작성된 프로그램을 기계어로 변역하는 프로그램을 무엇이라고 하는가?
어셈블러
5. 고급 언어로 작성된 소스 파일을 기계어로 번역하는 프로그램을 무엇이라고 하는가?
컴파일러(compiler)
6. C 언어를 배워야 하는 이유가 아닌 것은?
① C 언어는 프로그래머들 사잉에서 일종의 공용어 역할을 한다. ② C 언어로부터 파생된 고급 언어가 많으므로 C 언어를 알면 다른 언어를 배우는 것이 쉬워진다. ③ C 언어는 프로그래밍의 기본 개념을 이해하는 데도 도움이 된다. ④ C 언어를 사용하면 프로그램의 내부 동작 원리를 알 필요가 없다.
④ C 언어를 사용하면 프로그램의 내부 동작 원리를 알 필요가 없다.[이해하는 것이 쉬워진다.]
7. C 언어를 활용 분야에 대한 설명 중 잘못된 것은?
① C 언어는 이식성이 필수적인 시스템 프로그램을 개발하기에 적합하다. ② C 언어는 성능이 최우선시되는 프로그램을 개발하기에 적합하다. ③ 임베디드 시스템처럼 시스템 리소스가 충분한 환경에서 프로그램을 개발할 때 C 언어를 주로 사용한다. ④ C 언어는 그래픽이나 수치 해석 같은 고성능 라이브러리를 개발할 때 주로 사용된다.
③ 임베디드 시스템[임베디드 프로그램(embedded program)]처럼 시스템 리소스가 충분한 환경에서 프로그램을 개발할 때 C 언어를 주로 사용한다.
8. 다음 중 C 언어의 장점이 아닌 것은?
① C 언어는 구문이 간결하고, 프로그램 개발에 꼭 필요한 핵심적인 기능들을 제공한다. ② C 언어는 어셈블리어 수준의 기느응ㄹ 제공하면서도 기계-독립적인 프로그램을 작성할 수 있다. ③ C 언어는 배우기 쉽고 사용하는 데도 별다른 주의 사항이 없다. ④ C 언어는 개발자에게 최대한의 자유를 제공한다.
③ C 언어는 배우기 쉽고 사용하는 데도 별다른 주의 사항이 없다.[어렵고 사용하기도 어렵다.]
9. PC나 노트북처럼 범용 목적의 컴퓨터가 아니라 가전제품, 자동자, 네트워크 장비처럼 특수 목적의 컴퓨터를 내장하고 있는 장치에서 수행되는 프로그램을 무엇이라고 하는가?
① 모바일 앱 ② 데스크톱 응용 프로그램 ③ 웹 프로그램 ④ 임베디드 프로그램
④ 임베디드 프로그램
10. 다음은 일반적인 C 프로그램의 개발 과정이다. 그림의 ①과 ②에 각각 알맞은 단계는 무엇인지 쓰시오.
① 컴파일
② 링크
11. C 프로그램 개발 과정에 대한 설명 중 잘못된 것은?
① 소스 코드를 작성할 때는 일반적인 텍스트 편집기를 사용할 수 있다. ② 전처리기는 소스 파일을 컴파일하기 위해 준비한다. ③ 소스 파일이 여러 개일 때는 소스 파일마다 개별적으로 컴파일이 수행된다. ④ 링크 단계에서 라이브러리를 오브젝트 파일과 연결한다. ⑤ 전처리기는 C 문법에 따라 구분 분석을 한다.
⑤ 전처리기는 C 문법에 따라 구분 분석을 한다.다른 파일을 포함(include)하거나, 소스 파일 내의 특정 문자열을 다른 문자열로 대치(replace)하는 기능을 제공한다.
12. Visual Studio처럼 한 화면에서 소스 파일 편집, 컴파일 및 링크, 실행, 디버깅 등을 수행하는 프로그램을 무엇이라고 하는가?
통합 개발 환경(Inte-grated Development Environment, IDE)
13. Visual Studio의 프로젝트와 솔루션에 대한 설명 중 잘못된 것은?
① 디폴트로 프로젝트를 생성하면 솔루션이 함께 생성된다. ② 프로젝트는 반드시 솔루션에 포함되어야 한다. ③ 관련된 프로젝트를 여러 개 묶어서 솔루션에서 관리할 수 있다. ④ 솔루션과 프로젝트는 일대일로 대응된다. 즉, 프로젝트 하나당 솔루션이 하나이다.
④ 솔루션과 프로젝트는 일대일로 대응된다. 즉, 프로젝트 하나당 솔루션이 하나이다.[프로젝트들을 묶어서 관리하는 데 솔루션을 사용한다.]
14. C 컴파일러의 역할이 아닌 것은?
① 다른 파일을 포함하거나, 소스 파일 내의 특정 문자열을 다른 문자열로 대치해서 소스 파일을 컴파일하기 위해 준비한다. ② C 구문 분석을 수행한다. ③ 컴파일 에러가 없으면 오브젝트 코드를 생성한다. ④ 오브젝트 코드와 라이브러리를 링크한다. ⑤ 소스 파일을 분석해서 컴파일 에러를 자동으로 수정한다.
⑤ 소스 파일을 분석해서 컴파일 에러를 자동으로 수정한다.[메시지를 출력해준다.]
15. 컴파일 결과 생성된 오브젝트 파일과 라이브러리를 링크해서 최종 실행 파일을 생성하는 프로그램을 무엇이라고 하는가?
링커
16. 다음 중 컴파일 과정에서 발생하는 에러가 아닌 것은?
① 전처리기 에러 ② 컴파일 에러 ③ 링크 에러 ④ 실행 에러
④ 실행 에러
17. C 언어와 C++ 언어에 대한 설명 중 잘못된 것은?
① C 언어를 이어받아 객체지향성을 추가한 것이 C++ 언어이다. ② C++ 언어는 C 언어와의 호환성을 제공한다. ③ C로 작성된 프로그램을 C++로 변환하려면 소스 파일의 확장자를 .c에서 .cpp로 변경한다. ④ C 컴파일러와 C++ 컴파일러는 서로 다른 프로그램인 경우가 많다.
④ C 컴파일러와 C++ 컴파일러는 서로 다른 프로그램인 경우가 많다.[이다.]
18. Visual Studio가 제공하는 기능이 아닌 것은?
① 프로젝트를 생성하는 기능 ② 소스 파일 편집기 ③ 컴파일 및 링크 ④ 디버깅 ⑤ 소프트웨어 요구 분석
⑤ 소프트웨어 요구 분석
19. Visual Studio에서 컴파일 및 링크 기능을 무엇이라고 하는가?
① 문서 서식 ② 책갈피 ③ 빌드 ④ 디버깅
③ 빌드
사람이 여행을 하는 것은 도착하기 위해서가 아니라 여행하기 위해서이다.
- 괴테
'답안지 > Core C Programming' 카테고리의 다른 글
[Programming Assignment] 01 C 언어와 프로그래밍 개요 (0) | 2022.12.10 |
---|