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

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

by GO, EUNJUNG / ΛΙΙΛ™ 2024. 9. 6.
0-썸네일-C++프로그래밍-기말-14-2-1
0-썸네일-C++프로그래밍-기말-14-2-1
2014 학년도  2 학기  1 학년  25 문항
C++프로그래밍
시험종류   :기말시험
출제위원   :방송대 이병래
출제범위   :교재 3~8장 (해당 멀티미디어강의 포함)
자료출처   :한국방송통신대학교
웹앱제작   :올에이클래스 김현수
(1~3) 크기가 n인 int형 배열에 저장된 값들 중 최솟값과 최댓값을 구하는 다음 함수에 대한 질문에 답하라.
( ㄱ ) minmax (( ㄴ ), ( ㄷ ), int n) {
min = max = arr[0];
for (int i=1 ; i < n ; i++)
if (arr[i] > max) max = arr[i];
else if (arr[i] < min) min = arr[i];
}
01(ㄱ)에 넣을 적절한 단어는? (2점)
해설)
02배열을 arr이라는 형식 매개변수를 통해 받고자 한다. 함수 안에서 arr에 전달되는 실 매개변수의 값을 변경할 수 없도록 하려면 (ㄴ)에 어떠한 내용이 필요한가? (2점)
해설)
03이 함수에서 구한 최솟값과 최댓값이 실 매개변수에 저장되도록 하려면 (ㄷ)에 어떠한 내용이 필요한가? (3점)
해설)
04다음 중 C++에서 함수를 정의하고 호출하는 것과 관련하여 올바르게 설명한 것은? (4점)
해설)
05다중정의된 함수들 중에서 어느 함수를 호출하는가를 결정하는 것은 다음 중 무엇인가? (3점)
해설)
(6~8) 다음 Counter 클래스의 선언문에 대한 질문에 답하라.
class Counter {
int value;
public:
(  ㄱ  )
void reset() (  ㄴ  ) { value = 0; }
void count() (  ㄷ  ) { ++value; }
int getValue() (  ㄹ  ) { return value; }
};
06데이터멤버 value의 가시성은 무엇인가? (3점)
해설)
07(ㄱ)에 생성자를 선언하고자 한다. value의 값을 0으로 초기화하도록 올바르게 작성한 문장은? (4점)
해설)
08(ㄴ)~(ㄹ) 중 const를 넣는 것이 바람직한 곳은? (2점)
해설)
09다음 중 소멸자에 대해 적절히 설명하고 있는 문장은? (4점)
해설)
(10~11) 다음 클래스 선언문에 대한 질문에 답하라.
class Copycat {
char *name;
public:
Copycat(const char *n) {
name = new char[strlen(n)+1];
strcpy(name, n);
}
(  ㄱ  ) {
name = new char[strlen(cc.name)+1];
strcpy(name, cc.name);
}
(  ㄴ  )
……
};
10복사 생성자를 선언하기 위해 (ㄱ)에 필요한 내용은? (3점)
해설)
11(ㄴ)에 넣을 소멸자를 적절하게 작성한 것은? (3점)
해설)
12a가 ClassA의 객체이고 b가 ClassB의 객체일 때 다음 수식을 사용할 수 있게 하려면 어느 클래스에서 += 연산자를 다중정의 해야 하는가? (2점)
a += b;
해설)
13ClassC의 선언문 안에서 후위표기 ++ 연산자를 다중정의하고자 한다. 원형을 올바르게 작성한 것은? (2점)
해설)
(14~15) static 멤버를 포함하는 다음 클래스 선언문에 대한 질문에 답하라.
class SObj {
int x, id;
double y;
static int nID;
public:
SObj(int a, double b):x(a), y(b) { id = ++ nID; }
void display() const
{ cout << "ID:" << id << " x, y:"
<< x << ", " << y << endl; }
static int f() { (  ㄱ  ) }
};
(  ㄴ  )
14이 클래스 선언을 완성하기 위해 (ㄴ)에 필요한 내용은? (2점)
해설)
15다음 중 (ㄱ)에서 사용할 경우 문법에 맞는 명령은? (2점)
해설)
(16~20) 클래스 상속과 관련한 다음 선언문에 대한 질문에 답하시오. (가)에는 기초 클래스의 id를 s1, att를 s2로 초기화하는 문장이, (나)에는 이와 더불어 x를 n으로 초기화하는 문장이 포함된다. (가상함수 사용에 주의하라.)
class BClass {
( ㄱ ):
string id;
public:
BClass(const string& s):id(s) {}
virtual void action() const { cout << id << endl; }
string getID() const { return id; }
};
class DClass1:public BClass {
string att;
public:
DClass1(const string& s1, const string& s2)
(  가  )
string getAtt() const { return att; }
void action() const
{ cout << getID() << " " << att << endl; } // (ㄴ)
};
class DClass2:public DClass1 {
int x;
public:
DClass2(const string& s1, const string& s2, int n)
(  나  )
void action() const {
cout << getID() << " " << getAtt() << " "
<< x << endl;
}
};
void f() {
DClass1* pDC1 = new DClass2("ab", "cd", 10);
BClass* pBC = pDC1;
pBC->action(); // (다)
pDC1->action(); // (라)
……
}
16(ㄴ)에서 getID()를 호출하는 대신 id를 직접 액세스 할 수 있도록 하려면 (ㄱ)에 어떠한 문구를 넣어야 하는가? (2점)
해설)
17DClass1의 생성자를 완성하기 위해 (가)에 넣을 문장은? (2점)
해설)
18(다)의 문장에 의해 출력되는 결과는? (3점)
해설)
19(라)의 문장에 의해 출력되는 결과는? (3점)
해설)
20pB가 BClass의 포인터이고, pD2가 DClass2의 포인터일 때 pB가 가리키는 객체를 pD2가 가리키게 하려고 한다. 다음 중 만일 pB가 가리키고 있는 객체가 DClass2의 객체라면 pD2에 포인터가 복사되고, 그렇지 않으면 pD2에 NULL이 저장되도록 하는 문장은? (3점)
해설)
21다음 중 추상 클래스에 대한 설명으로 적절한 것은? (4점)
해설)
22다음 중 표준 템플릿 라이브러리(STL)의 순차 컨테이너에 해당되는 것은? (2점)
해설)
23다음 중 배열의 개념을 구현한 것으로, 필요에 따라 크기를 확장할 수 있는 STL의 컨테이너는 무엇인가? (3점)
해설)
(24~25) 다음 함수에 대한 질문에 답하라.
double f(double x)
{
if (x == 0)
throw "div by zero";
return 1.0/x;
}
void g() {
( ㄱ ) {
double a = f(0.0);
cout << a << endl;
}
catch (const char* str)
{ cout << str << endl; }
catch (...)
{ cout << ".." << endl; }
cout << "done" << endl;
}
24예외 처리를 위해 (ㄱ)에 넣을 단어는? (4점)
해설)
25함수 g()를 실행하였을 때 출력되는 내용은? (3점)
해설)
문제답안
1324124314312134233414223

댓글