본 글은 "황기태"님의 [명품 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.
C++ 응용프로그램이 실행을 시작하는 함수의 원형은 무엇인가?
[정답]
(55쪽) C언어와 마찬가지로 main( ) 함수는 C++ 프로그램의 실행 시작점입니다.
💡 02.
C++에서 main( ) 함수에 대한 설명 중 틀린 것은?
① C++ 표준에서 정한 main( ) 함수의 리턴 타입은 int이다
② void main( )으로 작성해도 대부분의 컴파일러에서는 처리된다.
③ main( ) 함수는 반드시 return 문을 가지고 있어야 한다.
④ main( ) 함수는 반드시 정수 0을 리턴할 필요가 없다.
[정답] ③번
(56쪽) int main( ) 함수는 정수를 리턴하는 return 문이 필요합니다 그러나 개발자의 편의를 위해 C++ 표준에서 main( ) 함수에 대해서만 예외적으로 return 문을 생략할 수 있습니다,
💡 03.
다음 소스에서 생략해도 되는 라인은 어디인가?
#incldue <iostream>
int main() {
std::cout << "I love C++\n";
std::cout << "I love Programming";
return 0;
}
[정답]
return 0;
(56쪽) C++ 의 main( ) 함수에서는 return문을 생략할 수 있습니다.
💡 04.
다음 코드는 C 컴파일러로 컴파일하면 컴파일 오류가 발생하지만 C++ 컴파일러로 컴파일하면 정상적으로 컴파일된다.
int a;
a = 4;
int square = a * a;
(1) C 컴파일러로 컴파일할 때 어떤 컴파일 오류가 발생하는가?
(2) C++ 컴파일러로 컴파일할 때 정상적으로 컴파일되는 것은 C++ 언어의 어떤 특성 때문인가?
(3) 이 특징이 가진 장단점은 무엇인가?
[정답]
(1)
실제로 저 파일을 컴파일하면 "error C2099: 이니셜라이저가 상수가 아닙니다."이라는 메시지가 뜹니다. C언어에서는 전역변수는 상수만 초기화하므로 전역 변수로 다른 변수의 값으로 초기화할 수 없습니다.
(2)
(68쪽) C++ 는 실행문 중간에 변수를 선언할 수 있습니다.
(3)
장점
- 변수를 사용하는 코드 바로 위에 변수를 선언할 수 있어 코드를 읽기 쉽게 만든다
- 변수 이름을 잘못 타이핑하는 실수를 줄일 수 있다.
단점
- 선언된 변수들이 코드 사이에 흩어져 있으므로 선언된 변수를 알아보기 어렵다.
- 변수를 잘못 타이핑하여도 컴파일이 정상적으로 되어 실수를 알 수 없다.
💡 05.
다음 프로그램의 실행 결과는 무엇인가?
#include <iostream>
int main(){
std::cout << "I love C++\n" << "I love programming";
return 0;
}
[정답]
"\n"은 개행 문자로 줄을 바꾸는 ENTER의 기능과 같습니다.
때문에 "I love C++"이 출력된 뒤 "I love programming"은 다음 줄에 출력됩니다.
💡 06.
다음 프로그램에 컴파일 오류가 발생하지 않도록 빈칸을 채워라.
(1)
#include <iostream>
_______________________
int main() {
int count = 0;
std::cin >> count;
cout << count + 1;
return 0;
}
[ 정답 ]
using std::cout;
(63쪽) std 이름 공간에 선언된 수 많은 이름을 사용할 때마다 std:: 접두어를 붙이는 것은 번거롭기 때문에 using 지시어를 사용하여 이름 공간 접두어를 생략할 수 있습니다.
(2)
#include <iostream>
_______________________
int main() {
cout << "I love C++" << endl;
cout << "I love programming";
return 0;
}HTML
[정답]
using namespace std;
(63쪽) 위의 코드와 달리 std 이름 공간에 선언된 모든 이름에 대해 std::를 생략하였습니다. 이는 namespace 키워드와 함게 using 지시어를 사용하면 됩니다. using std::cout을 하는 경우에는 endl 에서 문제가 생깁니다.
💡 07.
다음 C++ 프로그램 코드에서 틀린 부분을 수정하라.
(1) #include <iostream>;
(2) using namespace std
(3) std::cin << name;
(4) std:cout << 1 << 2 << 'a' << "hello" << '\n';
[정답]
(1) #include <iostream>
iostream은 헤더파일로 뒤에 ; (세미콜론)이 붙지 않습니다.
(2) using namespace std;
이 문장 뒤에는 ; (세미콜론)이 붙어야합니다.
(3) std::cin >> name;
cin은 >> 연산자를 이용하여 사용자로부터 키를 입력받습니다.
(4) std::cout << 1 << 2 << 'a' << "hello" << '\n';
범위지정 연산자인 :: 으로 이름 공간(std)에 정의된 이름(cout)에 접근할 수 있습니다.
💡 08.
다음 C++ 프로그램 코드에서 틀린 부분이 있으면 수정하라.
(1) using std::cin;
(2) int year = 1; //year은 년도를 나타낸다.
(3) int n=1; cout >> n+200;
(4) int year = 2014; cout << 2014+"년";
[정답]
(1) 틀린 부분 없음
(2) 틀린 부분 없음
(3) int n=1; cout << n+200;
(57쪽) cout은 C++ 표준 출력 스트림 객체로 스트림 삽입 연산자인 << 와 함께 사용됩니다.
(4) int year = 2014; cout << year << "년";
(57쪽) 한 줄에 여러 개의 << 연산자를 이용하여 여러 개의 데이터를 출력할 수 있습니다. << 연산자는 문자열 뿐만 아니라 C++ 기본 타입 데이터도 출력할 수 있습니다.
💡 09.
다음은 개발자가 작성한 myheader.h 파일의 소스이다.
#define MAX 100
#define MIN 0
다음 myprog.cpp 프로그램에서 빈칸에 적절한 라인을 삽입하라.
#include <iostream>
using namespace std;
_______________________ // 이 곳에 myheader.h를 include하는 문을 작성하라.
int main() {
cout << MAX << MIN;
return 0;
}
[정답]
#include "myheader.h"
(80쪽) #include 문에 해더 파일을 지정할 때는 헤더 파일의 존재 위치에 따라 <헤더 파일>과 "헤더 파일"로 달리 사용됩니다. 개발자가 직접 추가한 헤더파일을 사용할 경우에는 #include "헤더 파일"의 형태를 취합니다.
💡 10.
C++ 문자열에 대한 다음 질문에 O, X로 답하라.
(1) C-스트링이란 C언어에서 문자열을 다루는 방식이다. ( )
(2) C++에서 C-스트링 방식을 문자열이 사용된다. ( )
(3) C++에서는 문자열을 다루기 위한 string 클래스가 이용된다. ( )
(4) char name[ ]="C++";이 컴파일되면 name[ ] 배열의 크기가 3이 된다.( )
(5) char name[10]; cin >>name;를 실행하면 공백 문자를 포함하여 키보드로부터 최대 9개의 문자를 읽을 수 있다. ( )
[정답]
(1) O
(2) O
(3) O
(4) X
(70쪽) C-스트링 방식을 사용하면 널문자('\0')가 포함되므로 배열의 크기는 문자수보다 1 크게 설정됩니다.
(5) X
>>연산자는 공백 문자(white space character)를 만나면 그 전까지 입력된 문자들을 하나의 문자열로 인식합니다. 때문에 공백 문자를 제외하고 키보드로부터 최대 9개의 문자를 읽을 수 있습니다.
💡 11.
C-스트링을 다루기 위해, strcmp( ), strlen( ) 등의 함수를 사용하고자 할 때 include 해야 하는 표준 헤더 파일은 무엇인가?
[정답]
# include <cstring>
(71쪽) C++ 응용 프로그램은 C-스트링을 다루기 위해 C 라이브러리 함수들을 그대로 사용할 수 있습니다. <cstring>이나 <string.h> 헤더 파일을 include 하면 됩니다. <cstring>은 내부적으로 <string.h>를 include하지만 C++ 표준에 따라 <cstring> 헤더 파일을 incluede 하는 것이 바람직합니다.
💡 12.
다음 프로그램이 있다.
#include <iostream>
int main() {
char name[20];
std::cout << "이름을 입력하세요?";
std::cin >> name;
std:: cout << name << "님 환영합니다";
return 0;
}
(1) 프로그램을 실행하고 다음과 같이 키보드로 Kitae를 입력한 결과는 무엇인가?
이름을 입력하세요? Kitae
_______________________
[정답]
"Kitae님 환영합니다" 라는 문장이 출력됩니다.
(2) 프로그램을 실행하고 다음과 같이 키보드로 Kitae Hwang을 입력한 결과는 무엇인가?
이름을 입력하세요?Kitae Hwang
_______________________
[정답]
"Kitae님 환영합니다" 라는 문장이 출력됩니다. cin은 공백 문자를 입력받지 못하기 때문입니다.
💡 13.
cin.getline(buf, 100, ';')에 대한 설명으로 틀린 것은?
① buf는 아마 char buf[100];으로 선언되어 있을 것이다.
② 키보드로부터 최대 99개의 문자를 읽어 buf[ ] 배열에 저장한다.
③ 키보드 입력 도중 ';' 문자를 만나면 getline( ) 함수는 입력을 종료하고 끝에 '\0'를 삽입하고 리턴한다.
④ cin.getline(buf, 100);로 생략하여 써도 무관하다.
[정답] ④번
(74쪽~75쪽)
cin.getline(char buf[ ], int size, char delimitChar);
- buf : 키보드로부터 읽은 문자열을 저장할 배열
- size : buf[ ] 배열의 크기
- delimitChar : 문자열 입력 끝을 지정하는 구분 문자
cin.getline(buf, 100, ';') ;을 입력받으면 문자 입력을 종료합니다. ;을 생략하는 경우 delimitChar의 디폴트 값인 '\n' 설정되므로 cin.getline(buf, 100);은 cin.getline(buf, 100, '\n'); 과 같습니다.
💡 14.
char buf[100];가 선언되어 있다고 가정하고, 다음과 같이 <Enter> 키가 입력될 때까지 문자열을 읽는 코드로 잘못된 것은 무엇인가?
I love C++<Enter>
① cin >> buf;
② cin.getline(buf, 11);
③ cin.getline(buf, 20, '\n');
④ cin.getline(buf, 11, '.');
[정답] ①번
(74쪽) >> 연산자는 공백 문자를 만나면 그 전까지 입력된 문자들을 하나의 문자열로 인식합니다. 공백이 포함된 "I love C++"이라는 문장을 입력받기 위해서는 cin 객체의 getline( ) 멤버 함수를 이용해야합니다.
💡 15.
C++에서 여러 사람들이 나누어 프로그램을 개발할 때 동일한 이름의 변수나 클래스, 함수 등이 충돌하는 것을 막기 위해, 개발자가 자신만의 이름 공간을 생성할 수 있도록 새로 도입한 키워드(혹은 개념)는 무엇인가?
[정답]
namespace
(62쪽) 2003년 C++ 표준에서는 여러 프로젝트나 여러 사람들이 작성한 프로그램에서 변수, 함수, 클래스 등의 이름(identifier)이 충돌하는 것을 막기 위해 개발자 고유의 이름 공간을 생성하는 namespace 키워드를 도입했습니다.
💡 16.
C++ 표준 라이브러리가 모두 선언된 이름 공간은 무엇인가?
[정답]
std
(63쪽) std는 2003년 C++ 표준에서 정한 표준 이름 공간으로서, 모든 C++ 표준 라이브러리는 std 이름 공간에 만들어졌습니다.
💡 17.
C++ 표준에서 입출력을 위한 클래스, 함수, 객체들이 포함된 이름 공간은 무엇인가?
[정답]
std
💡 18.
C++ 표준에서 cin, cout 객체는 어떤 헤더 파일에 선언되어 있는가?
[정답]
<iostream>
(63쪽) C++ 표준에서 지원되는 모든 라이브러리는 std 이름 공간에 구현되어 있기 때문에 <iostream> 헤더 파일 내에 선언된 모든 클래스, 객체, 함수들을 사용할 때는 std::로 접근해야합니다.
💡 19.
다음 화면에 나이와 학과를 출력하는 main.cpp 프로그램을 작성한 사례이다. 빈칸에 적절한 코드를 삽입하라.
#include <iostream>
using namespace std;
int main() {
int age = 20;
const char* pDept = "컴퓨터 공학과";
_______________________
}
20 컴퓨터 공학과
[정답]
#include <iostream>
using namespace std;
int main() {
int age = 20;
const char* pDept = "컴퓨터 공학과";
cout << age << " " << pDept;
}
💡 20.
다음 출력 결과와 같은 코드를 작성하고자 한다. 다음 C++ 프로그램을 완성하라.
#include <iostream>
using namespace std;
int main() {
for(int n=0; n<4; n++){
_______________________
_______________________
_______________________
}
}
*
**
***
****
[정답]
#include <iostream>
using namespace std;
int main() {
for (int n = 0; n < 4; n++) {
for (int j = 0; j <= n; j++)
cout << "*";
cout << endl; //cout << '\n';
}
}
'대학교 > 명품 C++programming 문제' 카테고리의 다른 글
[C++] 명품 C++ Programming 4장 연습 문제 풀이 (이론 문제) (0) | 2022.11.10 |
---|---|
[C++] 명품 C++ Programming 3장 연습 문제 풀이 (이론 문제) (0) | 2022.10.29 |
[C++] 명품 C++ Programming 2장 연습 문제 풀이 (실습 문제) (0) | 2022.10.28 |
[C++] 명품 C++ Programming 1장 연습 문제 풀이 (실습 문제) (0) | 2022.10.25 |
[C++] 명품 C++ Programming 1장 연습 문제 풀이 (이론 문제) (1) | 2022.10.23 |