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

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

by GO, EUNJUNG / ΛΙΙΛ™ 2024. 9. 6.
0-썸네일-C++프로그래밍-기말-17-2-1
0-썸네일-C++프로그래밍-기말-17-2-1
2017 학년도  2 학기  1 학년  25 문항
C++프로그래밍
시험종류   :기말시험
출제위원   :방송대 이병래
출제범위   :교재 3~8장 (해당 멀티미디어강의 포함)
자료출처   :한국방송통신대학교
웹앱제작   :올에이클래스 김현수
C++ 코드 중 문장 이해에 문제가 없는 부분은 ……으로 생략하였음
(36~37) 배열에 저장된 값의 최솟값을 찾는 다음 함수에 대한 질문에 답하라.
int findMax ( ( ㄱ ) int arr[], int n)
{
int max = arr[0];
for (int i=1; i<n; i++)
if (max < arr[i]) max = arr[i];
( ㄴ );
}
36이 함수에서 arr에 저장된 값을 변경하지 않도록 하기 위해 (ㄱ)에 넣을 적절한 단어는? (2점)
해설)
37이 함수를 완성하기 위해 (ㄴ)에 넣을 적절한 문장은? (2점)
해설)
38함수 f의 원형이 다음과 같을 때 이 함수에 대한 올바른 설명은? (2점)
void f(int &x, int y, int z=100);
해설)
39다음 중 함수 다중정의에 대한 올바른 설명은? (4점)
해설)
(40~43) 원을 나타내는 다음 클래스에 대한 질문에 답하라.
class Circle {
(  ㄱ  ):// Circle의 멤버함수에서만 사용 가능한 멤버
double cs, cy, radius; // 중심 x, y 좌표 및 반경
(  ㄴ  ):// Circle 외부의 함수에서도 사용할 수 있는 멤버
(  ㄷ  )
void scale(double s) ( a ) { radius *= s; }
double area() ( b ) { // 면적 계산
return radius * radius * 3.14159;
}
double circumference() ( c ) { // 원주 길이 계산
return 2.0 * 3.14159 * radius;
}
};

int main() {
// 중심좌표 (1, 2), 반경 5인 Circle 객체 c 선언
Circle c(1, 2, 5);
(  ㄹ  )
}
40cx, cy, radius는 소속 클래스의 멤버함수에서만 사용할 수 있도록 하려고 하고, scale, area, circumference 등은 클래스 외부에서도 자유롭게 사용할 수 있게 하려고 한다. (ㄱ)과 (ㄴ)에 넣을 적절한 단어는? (3점)
해설)
41main함수의 c와 같이 Circle 클래스의 생성자를 선언하기 위해 (ㄷ)에 넣을 적절한 선언문은? (4점)
해설)
42(a)~(c) 중 'const'를 넣을 곳을 모두 나열한 것은? (2점)
해설)
43다음 중 (ㄹ)에서 사용할 수 있는 문장은? (4점)
해설)
44다음 중 소멸자에 대한 설명으로 적절한 것은? (3점)
해설)
45ClassA라는 클래스에서 복사생성자를 선언할 때 생성자의 원형으로 올바른 것은? (2점)
해설)
(46~48) 다음 클래스에 대한 질문에 답하라.
class ClassB {
……
(   ㄱ   );
ClassB opeerator + (const ClassB& b) const; // (ㄴ)
};
ClassB ( ㄷ ) operator + (const ClassB& b) const {
(   ㄹ   )
}
46ClassB에 전위표기 ++ 연산자를 다중정의하려고 한다. 다음 중 (ㄱ)에 넣을 적절한 원형은? (2점)
해설)
47(ㄴ)의 + 연산자의 다중정의를 클래스 선언문 외부에 작성하려고 할 때 (ㄷ)에 넣을 적절한 내용은? (3점)
해설)
48(ㄹ)의 내용을 작성하는 것과 관련한 설명으로 올바른 것은? (2점)
해설)
49Class2의 private 멤버를 Class1의 멤버함수에서 액세스할 수 있도록 허용하려고 한다. (ㄱ)에 넣을 적절한 단어는? (3점)
class Class2 {
( ㄱ ) class Class1;
……
};
해설)
50클래스의 static 멤버에 대한 설명으로 올바른 것은? (2점)
해설)
(51~54) 클래스 Person과 Person의 파생 클래스인 Athlete에 대한 질문에 답하라.
class Person {
(  ㄱ  )
string name;
public:
Person(const string& n):name(n) {}
string getName() const { return name; }
( ㄴ ) void print() const { cout << name; }
};

int main()
{
Person *pP1 = new Person("홍길동");
Athlete *pA = new Athlete("박철수", "승리구단");
Person *pP2 = pA;

pP1->print();   cout << " ";
pA->print();   cout << " ";
pP2->print();   cout << endl;
delete pP1;    delete pP2;
return 0;
}
51Person의 public 멤버가 Athlete의 public 멤버로 상속되도록 하기 위해 (ㄷ)에 넣을 내용은? (4점)
해설)
52Person의 멤버 name을 (ㄹ)의 문장처럼 Athlete의 멤버함수에서 사용할 수 있고, main함수에서는 name을 직접 사용할 수 없도록 하려면 (ㄱ)에 어떠한 내용이 필요한가? (3점)
해설)
53(ㄴ)이 공란일 경우 main의 출력 결과는? (3점)
해설)
54(ㄴ)에 virtual 이라는 단어를 넣었을 때 main의 출력 결과는? (3점)
해설)
55다음 클래스에 대한 설명으로 올바른 것은? (4점)
class absClass {
……
virtual int funcA(int a) = 0;
};
해설)
56다음과 같이 선언된 클래스 템플릿을 이용하여 int형 값을 10개 저장하는 컨테이너 a를 정의하는 문장은? (2점)
template <class T, int size> class Array [
T buf[size];
……
};
해설)
57다음 STL 컨테이너 중 배열과 같이 활용할 수 있으며, 필요에 따라 그 크기를 확장할 수 있는 것은? (3점)
해설)
58STL에서 반복자(iterator)의 용도는 무엇인가? (3점)
해설)
(59~60) 다음 클래스에 대한 질문에 답하라.
double g(double x) {
if (x <= 0)
throw 0;
return sqrt(x);
}

void f(double a) {
( ㄱ ) {
cout << g(a) << endl;
}
catch (  ㄴ  ) {
cout << "예외 발생" << endl;
}
}
59예외 처리를 위해 (ㄱ)에 넣을 적절한 단어는 무엇인가? (3점)
해설)
60함수 g()에서 예외가 발생할 경우 "예외 발생"이라고 출력하기 위해 (ㄴ)에 넣을 내용은? (2점)
해설)
문제답안
4232142331132441231234124

댓글