다라다라V
article thumbnail
728x90
반응형
본 글은 "황기태"님의 [명품 C++ Programming]의 연습 문제 답을 공유하고자 작성되었스며, 필자가 직접 문제를 풀며 작성한 것이기에 오류가 있을 수 있습니다. 댓글로 알려주시면 반영하도록 하겠습니다.

시리즈 보기
[C++] 명품 C++ Programming 1장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 1장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 2장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 2장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 3장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 4장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 4장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 5장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 6장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 7장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 8장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 8장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 9장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 9장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 10장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 10장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 11장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 11장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 12장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 12장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 13장 연습 문제 풀이 (이론 문제)

 

💡 01.

전문가들은 IT 분야에서 어떤 종류의 기업이 미래를 지배할 것이라고 예측하는가?

① 가전 기업

② 소프트웨어 기업

③ 증권사

④ 석유회사

 

[정답]  ②

(18쪽~19쪽) 4차 산업 기술의 핵심에는 소프트웨어가 있습니다. 소프트웨어가 이 시대의 IT, 자동차 금융, 의료 등 세계를 지배할 것이라고 전문가들은 예측하고 있습니다.

 

 

 

💡 02.

다음 설명 중에서 틀린 것은?

① 사람과 가장 친밀한 프로그래밍 언어가 고급 언어이다.

② CPU는 기계어만 이해하고 처리할 수 있다.

③ 고수준 언어를 저수준 언어로 번역할 컴파일러가 필요하다.

④ 기계어를 익혀서 프로그램을 작성하는 것이 좋은 개발자가 되는 지름길이다.

 

[정답]  ④번

(20쪽) 사람들이 이해하고 표현하기 쉬우며, 복잡한 알고리즘이나 다양한 프로그램 구조 및 자료를 효율적으로 표현하기 위해 고급언어가 만들어졌습니다. 고급언어의 컴파일러(compiler)가 기계어로 변환시켜주므로 개발자는 기계어를 익힐 필요가 없습니다.

 

 

💡 03.

다음 언어 중에서 계보가 다른 것은?

① Java

② C

③ C++

④ Fortran

 

[정답]  ④번

(22쪽) Fortran은 1954년 어셈블리어에서 파생된 언어입니다.

           C언어는 BCPL을 기반으로 1972년 만들어 졌으며, C++(1979), JAVA(1995)로 계보가 이어졌습니다.

 

 

💡 04.

다음 중 객체 지향 언어가 아닌 것은?

① Java

② C

③ C++

④ C#

 

[정답]  ②번

(29쪽) C언어는 절차 지향 언어로 실행하고자 하는 절차대로 일련의 명령어를 나열하여 프로그래밍합니다.

 

 

💡 05.

객체 지향 언어가 태동하게 된 원인이 아닌 것은?

① 소프트웨어의 크기가 점점 커지게 되어 관리의 어려움을 극복하기 위해

② 소프트웨어의 생명 주기가 짧아지게 됨에 따라 빠른 소프트웨어 작성이 요구되어

③ 운영체제 독립적인 프로그램 작성이 필요해서

④ 실세계의 문제를 모델링 하는데 객체의 개념이 적합해서

 

[정답]  ③번

(29쪽~30쪽) 실제 세계는 일련의 과정 외에도 각 물체간의 관계, 상호 작용등 복잡하게 구현되어있습니다. 이러한 절차지향 언어의 단점을 극복하여 세상의 물체를 객체로 표현한 것이 객체 지향 언어입니다.

 

 

💡 06.

다음 중 객체 지향 개념에 포함되지 않는 것은?

① 상속

② 흐름도

③ 캡슐화

④ 다형성

 

[정답]  ②번

(25쪽~27쪽) 일련의 과정을 나열한 것으로 흐름도는 객체 지향 언어와 관련있습니다.

 

 

💡 07.

C++ 언어가 C 언어의 문법적 체계를 계승 받음으로써 좋은 점은?

① C 언어로 작성된 프로그램과 호환성을 가질 수 있다.

② C 언어처럼 빠르게 실행될 수 있다.

③ C 언어처럼 절차 지향 프로그래밍도 할 수 있다.

④ 전역 변수를 만들어서 여러 함수에서 공유할 수 있다.

 

[정답]  ①번

(21쪽) C++ 언어는 C 언어의 모든 기능을 가지고 있기 때문에 이미 작성된 C 소스 코드를 조금 수정하여 재사용하거나, 컴파일된 C 목적 코드도 C++. 프로그램에 링크하여 사용할 수 있습니다.

 

 

💡 08.

C++ 언어가 C 언어의 문법적 체계를 계승 받음으로써 나타난 문제점은?

① 개발 과정이 복잡해졌다.

② 프로그램 관리가 어려워졌다.

③ C 라이브러리를 사용할 수 없게 되어 불편하다.

④ 전역 변수가 존재하게 되어 캡슐화의 원칙이 무너졌다.

 

[정답]  ④번

(30쪽~31쪽) C++ 언어에서는 C언어로 구성된 프로그램을 수용하기 위해 C++ 클래스 밖에서 함수나 전역 변수를 만들도록 허용하였습니다. 그것으로 인하여 객체 지향의 핵심인 캡슐화의 원칙이 무너졌습니다.

 

 

💡 09.

다음 빈칸에 적절한 단어를 기입하라.

C++는 ______언어와의 호환성을 목표로 하여 설계되었으며 객체 지향 개념을 추가하였다. 그러나 클래스 바깥에 전역 변수나 함수들을 선언하게 됨으로써 객체 지향의 핵심 개념인 _______의 원칙이 무너지게 되었다.

[정답]  C, 캡슐화

 

 

💡 10.

C++ 표준으로 C++ 프로그램을 작성할 때의 장점은?

① 화장성

② 호환성

③ 실행 성능

④ 개발 용이성

 

[정답]  ②번

7번 해설 참고.

 

 

💡 11.

C++의 객체 지향 특징이 아닌 것은?

① 상속

② 함수 중복

③ 인라인 함수

④ 클래스

 

[정답]  ③번

인라인 함수의 경우 절차 지향 언어의 특징입니다.

 

 

💡 12.

C++ 언어가 가지고 있는 3가지 객체 지향 특성을, 주어진 예를 이용하여 설명하라.

⑴ 캡슐화 : (예) TV 객체로 캡슐화를 설명하라.

⑵ 다형성 : (예) > 연산자로 다형성을 설명하라.

⑶ 상속성 : (예) '메뚜기는 생물이다'라는 문구로 상속성을 설명하라.

 

[정답] 

( 생략 )

 

 

💡 13.

C++에서는 C 언어와 달리 다음 3개의 함수를 함께 작성하고 구분하여 호출할 수 있다. 어떤 객체 지향 특성을 말하는가?

int big(int a, int b);
int big(int a[], int size);
int big(int a, int b, int c);HTML

[정답] 

(26쪽~27쪽) 위의 3가지 방법은 하나의 함수가 여러 형태로 존재하는 다형성의 특징을 보여줍니다. 같은 이름의 함수가 매개 변수의 개수나 타입이 다르면 다른 함수로 인식되는 함수 중복의 사례입니다.

 

 

💡 14.

C++ 언어가 C 언어에 추가한 내용이 아닌 것은?

① delete 연산자

② 함수 중복

③ 참조에 의한 호출

④ 타입 변환

 

[정답]  ④번

타입 변환은 C언어에서도 있던 기능입니다.

 

 

💡 15.

C와 C++ 언어에 대해 말한 것 중 틀린 것은?

① C++ 코드는 객체 지향 개념의 도입에 따라 C 코드에 비해 실행 속도가 떨어질 우려가 있다.

② C++ 표준에 따라 소스 프로그램을 작성하면 높은 호환성으로 인해 거의 모든 종류의 C++ 컴파일러에 의해 컴파일 가능하다.

③ C++ 프로그램은 C 소스 프로그램을 수용하여 사용할 수 있지만, 이미 컴파일된 C언어 목적 파일은 링크시켜 사용할 수 없다.

④ C 소스 파일의 표준 확장자는 .c 이고 C++ 소스 파일의 표준 확장자는 .cpp이다.

 

[정답]  ③번

7번 해설 참고.

 

 

💡 16.

C++ 프로그램에 대해 다음 중 틀린 것은?

① C++ 소스 파일은 텍스트 파일이 아니라 바이너리 파일이다.

② C++ 소스 파일의 표준 확장자는. cpp이지만 컴파일에 따라 .cc .CC .c++ 등의 확장자를 갖기도 한다.

③ C++ 파일은 컴파일 목적 파일의 확장자는 .obj 혹은 .o와 같이 운영체제에 따라 다를 수 있다.

④ C++ 프로그램의 디버깅이란 실행 파일( exe 파일)을 실행할 때 나타나는 오류를 발견하고 수정하는 과정이다.

 

[정답]  ①번

(31쪽) C++ 소스 프로그램은 표준확장자가 cpp인 텍스트 파일이므로 텍스트 편집기를 통해 작성이 가능합니다.

 

 

💡 17.

링킹에 대한 설명 중 바른 것은?

① C++ 소스 파일을 컴파일하여 생긴 목적 파일(obj 파일)은 기계어로 이루어져 있기 때문에 바로 실행 가능하다.

② 링킹 후 생성되는 실행 파일(exe 파일)을 컴퓨터에서 실행시키기 위해서는 목적 파일(obj 파일)도 함께 필요하다.

③ 링킹은 C++ 프로그램 개발 과정에서 실행 파일을 만들기 위해 반드시 필요하다.

④ 링킹을 통해 실행 파일(exe 파일)과 다른 실행 파일을 합쳐서 하나의실행 파일 (exe 파일)을 만들 수 있다.

 

[정답]  ③번

①번 : (34쪽) 목적 파일이 생성되었더라도 목적 파일은 바로 실행될 수 없습니다. 링킹 과정이 반드시 필요합니다.

②번 : (35쪽) 링킹 과정에 의해 생성된 실행 파일(exe 파일)은 컴퓨터에서 바로 실행 가능합니다.

④번 : (34쪽) 링킹은 어떤 목적 파일의 참조하는 C++ 표준 라이브러리나 다른 목적 파일 속에 있는 함수, 객체, 데이터를 포함하여 실행에 필요한 모든 기계어 코드를 확보하여 하나의 실행파일을 만드는 것입니다.

 

 

💡 18.

다음 그림에서 링킹의 의미를 구체적으로 설명하라.

[정답]

(34쪽) 링킹(Linking)은 어떤 목적 파일의 참조하는 C++ 표준 라이브러리나 다른 목적 파일 속에 있는 함수, 객체, 데이터를 포함하여 실행에 필요한 모든 기계어 코드를 확보하여 하나의 실행파일을 만드는 것입니다. 목적 파일은 온전한 실행파일이 아니므로 링킹 과정을 통해 실행 가능한 파일이 됩니다.

 

 

💡 19.

C++ 프로그램의 확장자에 대한 설명 중 틀린 것은?

① C++ 소스 파일의 확장자는 .cpp, .cxx, .c++ 등 운영체제에 따라 다양하다.

② 비주얼 C++에서 .c 확장자를 가진 파일은 C 컴파일러가, .cpp 확장자를 가진 파일은 C++ 컴파일러가 자동으로 컴파일한다.

③ 목적 파일의 확장자는 .obj나 .o 등 운영체제에 따라 다르다.

④ 실행 파일의 확장자는 운영체제에 관계없이 .exe로 표준화되어 있다.

 

[정답]  ④번

(35쪽) 윈도우 운영체제에서는 .exe이며 유닉스에는 정해진 확장자가 없고 개발자가 마음대로 사용하면 됩니다.

 

 

💡 20.

C++ 표준 라이브러리에 포함되지 않는 것은?

① C++ 통신 라이브러리

② C++ 입출력 라이브러리

③ STL 라이브러리

④ C 라이브러리

 

[정답]  ①번

(37쪽) C++ 통신 라이브러리는 표준 라이브러리에 포함되지 않는다.

 

 

💡 21.

다음 빈칸에 적잘한 단어를 기입하라.

최근에 동일한 프로그램 코드에 구체적인 타입을 적용할 수 있도록 함수나 클래스를 일반화시킨 ______ 함수와 ______ 클래스를 이용하여 프로그램을 작성하는 새로운 프로그래밍 패러다임인 __________이 활발히 사용되고 있다. 이것은 흐름도를 중심으로 작업의 실행 순서에 따라 프로그램을 작성하는 ________ 프로그래밍 기법에서, 객체 사이의 상호 작용과 관계를 중심으로 프로그램을 작성하는 ________ 프로그그래밍 기법 이후에 도입된 것이다.

[정답]

(30쪽, 46쪽) 제너릭,  제너릭, 제너릭 프로그래밍, 절차지향, 객체지향

 

 

💡 22.

C++ 통합 개발 환경이란 무엇을 말하는가?

[정답]

통합 개발 환경은 IDE(Integrated Development Environment)라고 불립니다. IDE는 소스코드 작성 및 컴파일, 디버깅 기능을 가집니다. C언어나 C++은 비주얼 스튜디오라는 IDE를 이용하고, JAVA는 eclipse를 IDE로 이용합니다.

반응형
profile

다라다라V

@DaraDaraV

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!