11장 C++ 입출력 시스템 (이론 문제 풀이)

6954 단어 C쁠쁠C쁠쁠

1. C++ 표준 입출력 스트림의 특징이 아닌 것은?
1) C++ 입력 스트림은 입력 장치에 연결하여 입력된 값을 프로그램에 전달하는 객체이다.
2) C++ 출력 스트림은 출력 장치와 프로그램을 연결한다.
3) C++ 표준 입출력 스트림은 GUI를 지원한다.
4) C++ 표준에서 입출력 스트림은 제네릭 클래스로 작성되어 있다.
답 : 3번


2. C++ 표준 입출력 스트림은 버퍼를 가지고 있다. 버퍼에 대한 설명 중에서 틀린 것은?
1) 키 입력 스트림 버퍼는 사용자가 입력 도중 입력된 키를 수정할 수 있게 한다.
2) 출력 스트림 버퍼는 장치 접근 횟수를 줄여 장치에 대한 접근이 효율적이다.
3) 입력된 키들은 키 입력 스트림 버퍼에 일단 저장되고, <.Enter> 키를 입력할 때 비로소 C++ 프로그램이 읽어 갈 수 있다.
4) cout.plush()는 cout 버퍼를 모두 화면에 출력하게 한다.
답 : 4번
풀이 : cout.flush()이다.


3. cin은 어떤 장치와 연결된 스트림 객체인가?
답 : 키보드


4. cout은 어떤 장치와 연결된 스트림 객체인가?
답 : 모니터


5. C++로 작성된 프로그램이 실행을 시작하면 자동으로 생성되는 C++ 표준 스트림 객체들에는 어떤 것들이 있는가?
답 : cin, cout, cerr, clog


6. 다음에서 템플릿으로 선언된 클래스가 아닌 것은?
1) basic_ios
2) istream
3) vector
4) list
답 : 2번


7. 현재 C++ 표준 입출력 라이브러리가 모두 재네릭 클래스로 작성된 가장 주된 이유는 무엇인가?
1) 다국어 문자의 입출력을 지원하기 위해
2) 템플릿으로 작성하여 코드의 중복을 줄이려고
3) 제네릭 프로그래밍이 추세이므로
4) 입출력 속도 향상을 위해
답 : 1번


8. 빈칸에 적절한 말을 채워라

ios, istream, ostream 클래스는 basic_ios, basic_istream, basic_ostream 템플릿의
제네릭 타입을 ___ 타입으로 구체화시킨 클래스이다.
답 : char


10. 다음에서 get()과 getline()의 가장 큰 차이점은 무엇인가?

char address[100];
cin.get(address, 100);
cin.getline(address, 100);

답 : 버퍼에 '\n'의 남아있는 지에 대한 여부


11. "Happy Birthday" 문자열을 입력받는 코드로 잘못된 것은?

char tmp[100];

1) cin >> tmp;
2) cin.get(tmp, 100);
3) cin.get(tmp, 100, '\n');
4) cin.getline(tmp, 100);
답 : 1번
풀이 : cin >> tmp는 공백을 입력하는 순간 공백 전까지만 입력받기 때문이다. Happy 까지만 입력 받을 수 있다.


12. 다음 프로그램을 실행하고 키보드로 Happy Birthday</Enter/> 키를 입력하였다. 실행 결과는 무엇인가?

char line[80];
cin.getline(line, 80);
cout << cin.gCount();

답 : 15
풀이 : getline은 엔터키까지 개수에 포함하기 때문에 다 더하면 15개이다.


13. 다음 중 사용자가 입력하는 <.Enter> 키, 즉 '\n' 문자를 변수 ch나 buf 배열에 읽어들일 수 있는 것은? 복수 개로 답하라.
1) char ch; cin >> ch;
2) int ch; ch = cin.get();
3) char ch; cin.get(ch);
4) char buf[10]; cin.get(buf, 10);
답 : 2, 3번
풀이 : 4번이 안되는 이유는 엔터키를 입력하면 입력이 종료됨과 동시에 '\n'은 버퍼에 남아있기 때문이다.


14. C++에서 포맷 입출력 방법이 아닌것은?
1) 포맷 플래그를 설정하는 setf() 함수 이용
2) 출력 포맷을 지정하는 width() 함수 이용
3) endl 등과 같은 조작자 이용
4) flush() 함수 이용
답 : 4번


15. 다음 중에서 조작자가 아닌 것은?
1) hex
2) left
3) endl
4) put
답 : 4번


16. 다음 프로그램의 실행 결과는 무엇인가?

cout.width(12);
cout.fill('%');
cout << "C++";

답 : %%%%%%%%%C++


17. 다음 프로그램의 실행 결과는 무엇인가?

cout.width(10);
cout.percision(4);
cout << setfill('~') << left << 2./3.;

답 : 0.6667


18. 다음 문장을 사용하고자 할 때 필요한 헤더 파일은 무엇인가?

cout << setw(10) << "hello";

답 : <,iomanip> 헤더파일


20. 조작자에 대해 잘못 말한 것은?
1) 조작자는 함수이다.
2) 조작자는 반드시 << 나 >> 와 함께 사용된다.
3) 사용자는 자신만의 조직자를 만들 수 있다.
4) 조작자는 ostream이나 istream의 멤버 함수이다.
답 : 4번

좋은 웹페이지 즐겨찾기