본문 바로가기
GM Library/☆ 기말시험 Data

방송대 방통대 C++프로그래밍 기말시험 기출문제 2019년도 2학기 1학년 / 올에이클래스 모의고사

by GO, EUNJUNG / ΛΙΙΛ™ 2024. 9. 6.
0-썸네일-C++프로그래밍-기말-19-2-1
0-썸네일-C++프로그래밍-기말-19-2-1
2019 학년도  2 학기  1 학년  25 문항
C++프로그래밍
시험종류   :기말시험
출제위원   :방송대 이병래
출제범위   :교재 3~8장 (해당 멀티미디어강의 포함)
자료출처   :한국방송통신대학교
웹앱제작   :올에이클래스 김현수
C++ 코드 중 문장 이해에 문제가 없는 부분은 ……으로 생략하였음
(36~39) 데이터의 평균을 구하는 다음 함수에 대한 질문에 답하라.
double average(const int arr[], int n) {
int sum = 0;
for (int i=0 ; i < n ; i++)
sum += arr[i];
(   ㄱ   )
}
36이 함수의 몸체 블록에서 사용할 수 없는 문장은? (2점)
해설)
37다음 중 (ㄱ)에 넣을 가장 적절한 문장은? (2점)
해설)
38이 함수에 대한 원형을 올바르게 작성한 것은? (2점)
해설)
39이 함수가 정의되어 있을 때, 다중정의 할 수 있는 함수의 원형으로 적절하지 않은 것은? (3점)
해설)
40다음 중 함수 호출 위치에 함수의 처리 문장을 삽입하여 번역하도록 요청하기 위해 함수 선언문에 사용하는 단어는? (3점)
해설)
(41~44) 1씩 감소하는 계수를 할 수 있는 하향 계수기 클래스인 DnCounter에 대한 질문에 답하라.
class DnCounter {
int value;
public:
DnCounter(int v) (  ㄱ  ) // 생성자
void reset(int v) { value = v; }
void count() { --value; }
int getValue() const { return value; }
};
41value의 가시성은 무엇인가? (4점)
해설)
42생성자에서 형식 매개변수 v에 전달된 값으로 데이터멤버 value를 초기화하기 위해 (ㄱ)에 넣을 내용은? (2점)
해설)
43다음 중 DnCounter 클래스의 객체를 선언하는 문장으로 올바른 것은? (3점)
해설)
44다음 함수 안에서 사용할 수 있는 문장은 무엇인가? (2점)
void f(const DnCounter& c) {
……
}
해설)
45다음 중 소멸자에 대하여 설명한 문장으로 옳은 것은? (4점)
해설)
46ClassA라는 클래스의 이동 생성자를 선언하기 위한 머리부를 올바르게 작성한 것은? (3점)
해설)
47다음 중 클래스의 static 멤버에 대한 설명으로 올바른 것은? (2점)
해설)
(48~49) 다음 클래스에 대한 질문에 답하라.
class IClass {
int a;
public:
IClass(int n = 0) { a = n; }
IClass& operator ++ () {
++a;
return *this;
}
(  ㄱ  ) const { // + 연산자
return IClass(a + i.a);
}
int getValue() const { return a; }
( ㄴ ) ostream& operator<<(ostream&, const IClass&);
};
ostream& operator << (ostream& os, const IClass& i) {
return os << i.a; // (ㄷ)
}
48IClass 객체 사이의 덧셈을 하는 이항 연산자 +를 다중정의하기 위해 (ㄱ)에 넣을 적절한 문장은? (3점)
해설)
49<< 연산자가 IClass의 멤버는 아니지만 (ㄷ)과 같은 문장을 사용할 수 있게 하려면 (ㄴ)에 어떤 단어를 넣어야 하는가? (2점)
해설)
50다음 중 클래스의 상속에 대한 설명으로 올바른 것은? (4점)
해설)
(51~54) 다음 클래스 및 함수에 대한 질문에 답하라.
class A {
int a;
public:
A(int x) {
a = x;
cout << "A 생성 ";
}
virtual ~A() {
cout << "A 소멸 ";
}
virtual int f(int x) const {
return x + a;
}
void g(int x) { a += x; }
};
// A의 파생 클래스 선언
class B:( ㄱ ) {
int b;
public:
B(int x, int y) ( ㄴ ) {
cout << "B 생성 ";
}
~B() {
cout << "B 소멸 ";
}
// A의 f를 재정의
int f(int x) const {
return x + b;
}
};
int h() {
A* p = new B(10, 20);
int val = p->f(100);
delete p;
return val;
}
51main 함수에서 B의 객체 bObj를 만들었을 때 bObj.g(10)과 같이 A의 멤버함수 g를 호출하려고 한다. (ㄱ)에 넣을 내용은? (3점)
해설)
52B의 생성자에서 x는 클래스 A의 a, y는 B의 b에 초기화되게 하기 위해 (ㄴ)에 넣을 내용은? (3점)
해설)
53문제 52와 같이 생성자가 정의되었을 때, 함수 h()를 호출하면 반환되는 값은? (2점)
해설)
54함수 h()를 호출하였을 때 출력 결과는 무엇인가? (2점)
해설)
55다음과 같은 멤버가 포함되어 있는 클래스에 대한 설명으로 올바른 것은? (4점)
class ClassAbs {
……
virtual int f() = 0;
};
해설)
(56~57) 매개변수 T를 통해 지정된 자료형의 값을 sz개 저장하는 배열을 표현하는 클래스 템플릿에 대한 질문에 답하라.
( ㄱ ) < ( ㄴ ) T> class Array {
T* buf;
int sz;
public:
Array(int s):sz{ s }, buf{ new T[s] } {}
~Array() { delete[] buf; }
……
};
56(ㄱ)과 (ㄴ)에 넣을 적절한 단어는? (3점)
해설)
57double형 값을 100개 저장하는 Array 객체 a를 선언하는 문장으로 올바른 것은? (3점)
해설)
58다음 중 STL의 순차 컨테이너를 모아 놓은 것은? (2점)
해설)
59다음 함수에 대한 설명으로 올바른 것은? (4점)
void f() {
try { (  ㄱ  ) }
catch (int e) { (  ㄴ  ) }
catch (...) { (  ㄷ  ) }
(  ㄹ  )
}
해설)
60다음 함수에서는 예외 발생시 메모리가 소실되는 문제가 있는데, 이의 해결 방법으로 적절한 것은? (3점)
void g(int n) {
int* pt = new int[n];
……
if (pt[i] < pt[j]) throw "exception";
……
delete[] pt;"
}
해설)
문제답안
2431234123424111433422113

댓글