SlideShare a Scribd company logo
4
Most read
10
Most read
C++프로그래밍, 멀티미디어시스템 4-1
C++프로그래밍, 멀티미디어시스템
2014학년도 2 학기 1 학년 3 교시
※ 정답 하나만을 골라 반드시 컴퓨터용 사인펜으로 OMR 답안지에
표기할 것.
학 과 감독관 
학 번 성 명
1과목 C + + 프 로 그 래 밍 (1~25) 6. 데이터멤버 value의 가시성은 무엇인가? (3점)
① protected ② private
③ public ④ friend
7. (ㄱ)에 생성자를 선언하고자 한다. value의 값을 0으로 초기화
하도록 올바르게 작성한 문장은? (4점)
① void init() : value(0) { }
② int Counter() { value = 0; }
③ void Counter() { value = 0; return 0; }
④ Counter() : value(0) { }
8. (ㄴ)~(ㄹ) 중 const를 넣는 것이 바람직한 곳은? (2점)
① ㈁ ② ㈂
③ ㈃ ④ 모두
9. 다음 중 소멸자에 대해 적절히 설명하고 있는 문장은? (4점)
① 소멸자는 다중정의를 할 수 없다.
② 소멸자는 명시적으로 호출하여 실행한다.
③ 소멸자는 int형 값을 반환한다.
④ 소멸자는 형식 매개변수를 통해 필요한 값을 받을 수 있다.
※ (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점)
① void Copycat(Copycat cc)
② Copycat(Copycat cc)
③ void Copycat(const Copycat* cc)
④ Copycat(const Copycat& cc)
11. (ㄴ)에 넣을 소멸자를 적절하게 작성한 것은? (3점)
① Copycat() { delete [] name; }
② ~Copycat() { delete name; }
③ ~Copycat() { delete [] name; }
④ void ~Copycat() { delete name; }
12. a가 ClassA의 객체이고 b가 ClassB의 객체일 때 다음 수식을
사용할 수 있게 하려면 어느 클래스에서 += 연산자를 다중정의
해야 하는가? (2점)
a += b;
① ClassA ② ClassB
③ ClassA의 파생클래스 ④ 다중정의 할 수 없음
13. ClassC의 선언문 안에서 후위표기 ++ 연산자를 다중정의하고
자 한다. 원형을 올바르게 작성한 것은? (2점)
① ClassC operator ++ ();
② ClassC operator ++ (int);
③ int operator ++ (const ClassC& objC);
④ void operator ++ (const ClassC& objC);
출제위원:방송대 이병래
출제범위:교재 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];
}
1. (ㄱ)에 넣을 적절한 단어는? (2점)
① void ② int
③ int& ④ int*
2. 배열을 arr이라는 형식 매개변수를 통해 받고자 한다. 함수 안
에서 arr에 전달되는 실 매개변수의 값을 변경할 수 없도록 하
려면 (ㄴ)에 어떠한 내용이 필요한가? (2점)
① void arr[] ② int arr[]
③ const int arr[] ④ static int arr[]
3. 이 함수에서 구한 최솟값과 최댓값이 실 매개변수에 저장되도록
하려면 (ㄷ)에 어떠한 내용이 필요한가? (3점)
① int min, int max
② int& min, int& max
③ const int& min, const int& max
④ int* min, int* max
4. 다음 중 C++에서 함수를 정의하고 호출하는 것과 관련하여 올
바르게 설명한 것은? (4점)
① 함수의 이름은 모두 달라야 한다.
② 디폴트 인수는 매개변수 목록 중 앞에 위치해야 한다.
③ 순환호출을 포함하는 함수는 inline 함수로 컴파일된다.
④ 뒤에 정의된 함수를 호출하려면 먼저 그 함수의 원형을 선언
해야 한다.
5. 다중정의된 함수들 중에서 어느 함수를 호출하는가를 결정하는
것은 다음 중 무엇인가? (3점)
① 인수의 개수 및 자료형
② 함수가 반환하는 값의 자료형
③ 호출된 위치에서 가까운 곳에 정의된 함수
④ 지역변수의 개수
※ (6~8) 다음 Counter 클래스의 선언문에 대한 질문에 답하라.
class Counter {
int value;
public:
㈀
void reset() ㈁ { value = 0; }
void count() ㈂ { ++value; }
int getValue() ㈃ { return value; }
};
C++프로그래밍, 멀티미디어시스템 4-2
2014학년도 2 학기 1 학년 3 교시
※ (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점)
① int SObj::nID = 0; ② int nID = 1;
③ SObj = 0; ④ SObj::SObj = 0;
15. 다음 중 (ㄱ)에서 사용할 경우 문법에 맞는 명령은? (2점)
① cin >> x; ② cout << y;
③ --nID; ④ id += x;
※ (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점)
① private ② friend
③ static ④ protected
17. DClass1의 생성자를 완성하기 위해 (가)에 넣을 문장은? (2점)
① { id = s1; att = s2; }
② : BClass(s1), att(s2) {}
③ { getID() = s1; att = s2; }
④ : id(s1), att(s2) {}
18. (다)의 문장에 의해 출력되는 결과는? (3점)
① ab ② ab cd
③ ab cd 10 ④ 출력하지 않음
19. (라)의 문장에 의해 출력되는 결과는? (3점)
① ab ② ab cd
③ ab cd 10 ④ 출력하지 않음
20. pB가 BClass의 포인터이고, pD2가 DClass2의 포인터일 때
pB가 가리키는 객체를 pD2가 가리키게 하려고 한다. 다음 중
만일 pB가 가리키고 있는 객체가 DClass2의 객체라면 pD2에
포인터가 복사되고, 그렇지 않으면 pD2에 NULL이 저장되도
록 하는 문장은? (3점)
① pD2 = pB;
② pD2 = (DClass2*)pB;
③ pD2 = static_cast<DClass2*>(pB);
④ pD2 = dynamic_cast<DClass2*>(pB);
21. 다음 중 추상 클래스에 대한 설명으로 적절한 것은? (4점)
① 추상 클래스로 직접 객체를 정의할 수 없다.
② 기초 클래스가 1개인 클래스이다.
③ 가상함수를 포함하지 않는 클래스이다.
④ 추상 클래스는 파생 클래스를 가질 수 없다.
22. 다음 중 표준 템플릿 라이브러리(STL)의 순차 컨테이너에 해당
되는 것은? (2점)
① set ② map
③ multimap ④ list
23. 다음 중 배열의 개념을 구현한 것으로, 필요에 따라 크기를 확
장할 수 있는 STL의 컨테이너는 무엇인가? (3점)
① multiset ② vector
③ list ④ set
※ (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점)
① inline ② try
③ switch ④ enum
25. 함수 g()를 실행하였을 때 출력되는 내용은? (3점)
① 0 ② 0
div by zero done
done
③ div by zero ④ div by zero
done
C++ 프로그래밍 2014-2018년 기말시험 기출문제
C++ 프로그래밍 2014-2018년 기말시험 기출문제
2016학년도 2 학기 1 학년 1 교시
대학영어, C++프로그래밍 4-3
※ C++ 코드 중 문장 이해에 문제가 없는 부분은 ……으로 생략
하였음
※ (36∼37) 다음 함수에 대한 질문에 답하라.
1
2
3
4
5
6
7
8
9
10
11
㈀ f(const int a[], int n) {
for (int i=0 ; i < n ; i++)
cout << a[i] << endl;
cout << "최댓값=" << getMax(a, n) << endl;
}
int getMax(const int arr[], int n) {
int max = arr[0];
for (int i=1 ; i < n ; i++)
if (max < arr[i]) max = arr[i];
return max;
}
36. ㈀에 넣을 적절한 내용은 무엇인가? (2점)
① virtual
② int
③ void
④ 공란
37. 다음 중 함수 f에서 getMax를 호출 문장을 사용하기 위해 작성
할 함수 getMax의 원형과 그 위치가 올바른 것은? (3점)
① 1행의 앞, int getMax(const int arr[], int n);
② 1행과 2행 사이, int getMax();
③ 5행과 6행 사이, int getMax(const int [], int);
④ 6행과 7행 사이, int getMax() {}
38. 다음 중 함수 호출 위치에 함수의 처리 문장이 직접 삽입되도록
컴파일하기 위해 사용하는 키워드는? (2점)
① auto
② inline
③ const
④ static
39. C++의 함수에 대한 올바른 설명은? (2점)
① 함수에서 return 명령은 함수의 앞으로 되돌아가게 한다.
② 함수 안에서는 변수를 선언할 수 없다.
③ 함수에서 return 명령을 실행하면 프로그램이 종료된다.
④ 매개변수 값으로 사용할 디폴트 값이 있는 경우 함수에 그
값을 미리 지정하여 선언할 수 있다.
40. 다중정의된 함수들 중에서 함수를 구분하여 선택하는 기준이
될 수 있는 것은? (4점)
① 인수의 개수
② 함수 반환값의 자료형
③ 함수의 크기
④ 함수가 포함된 파일
41. 클래스 멤버의 가시성 키워드 중 소속 클래스 및 친구 클래스의
멤버함수, 친구 함수에서만 액세스할 수 있도록 하는 것은? (4점)
① public
② protected
③ private
④ friend
※ (42∼45) 다음은 상향 계수와 하향 계수를 할 수 있는 상하향
계수기를 표현한 클래스이다. 계수기 객체를 생성할 때는 계수를
할 수 있는 최댓값과 계수기의 초깃값을 지정해야 하는데,
초깃값은 생략할 경우 0을 사용하게 한다. 다음 질문에 답하라.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class UDCounter {
const int mVal; // 계수기의 최댓값
int val; // 계수기의 현재 값
public:
㈀
void reset(int v = 0) ㈁ { val = v; }
void dnCount() ㈂ ;
void upCount() ㈃ ;
int getValue() ㈄ { return val; }
bool chkZero() ㈅ { return !val; }
};
void ㈆ dnCount() ㈂
{ if (--val < 0) val = mVal; }
void ㈆ upCount() ㈃
{ if (++val > mVal) val = 0; }
42. ㈀에는 생성자를 선언하려고 한다. 다음 중 생성자 선언이 올
바른 것은? (3점)
① void UDCounter(int m, int v=0) { mVal=m; val=v; }
② int UDCounter(int m, int v) : mVal(m), val(v) {}
③ UDCounter(int m, int v=0) : mVal(m), val(v) {}
④ UDCounter(int m, int v) { mVal=m; val=0; }
43. ㈁~㈅ 중 const를 넣는 것이 적절한 곳은? (3점)
① ㈁, ㈂, ㈃ ② ㈄, ㈅
③ ㈂, ㈃, ㈄ ④ ㈁
44. 멤버함수 dnCount와 upCount를 정의하는 12∼15번 행에서 ㈆에
넣을 적절한 내용은? (3점)
① extern ② public:
③ UDCounter-> ④ UDCounter::
45. ㈀의 생성자가 잘 선언되었을 때, UDCounter 클래스의 객체를
정의하는 구문으로 잘못된 것은? (단, cA는 UDCounter 클래스의
객체이다.) (2점)
① UDCounter c(99); ② UDCounter c(cA);
③ UDCounter c; ④ UDCounter c(99, 99);
46. ClassA라는 클래스를 선언하였다. 선언문 안에서 다음과 같이
연산자를 다중정의 했을 때, 이에 대한 올바른 설명은? (단, x와
y는 ClassA의 객체이다.) (2점)
ClassA operator-(const ClassA& a) const {
㈀
}
① 전위표기 단항 연산자를 다중정의한 것이다.
② 후위표기 단항 연산자를 다중정의한 것이다.
③ x-y 라는 수식이 사용되었을 때 ㈀에서 *this는 x이다.
④ x-y 라는 수식이 사용되었을 때 ㈀에서 a는 x의 참조이다.
47. 다음 중 클래스의 static 멤버함수에 대한 올바른 설명은? (2점)
① 생성된 객체를 통해서만 호출할 수 있다.
② 클래스의 static이 아닌 데이터 멤버는 액세스할 수 없다.
③ 지역변수를 포함할 수 없다.
④ 클래스의 모든 멤버함수를 호출할 수 있다.
48. 클래스의 private 멤버를 특정 클래스의 멤버함수에서 액세스할
수 있도록 허용하기 위해 사용하는 키워드는? (3점)
① auto ② extern
③ virtual ④ friend
2과목 C++프로그래밍 (36~60)
출제위원:방송대 이병래
출제범위:교재 3장∼8장 (해당 멀티미디어강의 포함)
2016학년도 2 학기 1 학년 1 교시
대학영어, C++프로그래밍 4-4
※ (49∼51) 다음 클래스에 대한 질문에 답하라. 단, ㈀은 한 개의
정수를 형식 매개변수 v에 전달받아 그 값을 저장하는 객체를
생성하는 생성자의 머리가 작성될 곳이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class IntClass {
int* iPt;
public:
㈀ { iPt = new int; *iPt = v; }
㈁
{ iPt = new int; *iPt = *i.iPt; }
㈂ { delete iPt; }
const IntClass& operator = (const IntClass& i) {
iPt = new int; *iPt = *i.iPt;
return *this;
}
IntClass operator ++ (int)
{ ㈃ }
int getValue() const { return *iPt; }
};
49. 복사 생성자를 만들기 위해 ㈁에 넣을 내용은? (3점)
① IntClass(const IntClass& i)
② IntClass(IntClass i)
③ int IntClass(IntClass i)
④ void IntClass(const int* i)
50. 소멸자를 작성하기 위해 ㈂에 넣을 내용은? (3점)
① IntClass()
② ~IntClass(IntClass& obj)
③ int ~IntClass() const
④ ~IntClass()
51. 12∼13행의 연산자 다중정의를 완성하기 위해 ㈃에 넣을 문장은? (2점)
① (*iPt)++
② return IntClass((*iPt)++);
③ ++(*iPt)
④ return IntClass(++(*iPt));
52. 다음 중 클래스의 계층구조를 설계할 경우 나머지 클래스의
기초 클래스가 될 수 있는 것은? (4점)
① 선박 ② 화물선
③ 여객선 ④ 어선
※ (53∼55) 다음 클래스에 대한 질문에 답하라.
class BClass {
㈀ :
int x;
public:
void init(int a)
{ x = a; }
㈁ void print() const
{ cout << x; }
};
class DClass : public BClass {
int y;
public:
void init(int a, int b)
{ x = a; y = b; }
void print() const {
cout << x << " " << y;
}
};
53. BClass의 x는 타 클래스에서는 직접 사용할 수 없지만 파생
클래스인 DClass의 멤버함수에서 직접 사용할 수 있게 하려고
한다. ㈀에 어떠한 가시성 지시어를 사용해야 하는가? (3점)
① private ② public
③ static ④ protected
54. 다음 프로그램에서 (가)의 문장이 “10 20”을 출력하게 하기 위해
㈁에 넣을 단어는? (3점)
DClass *pD = new DClass;
BClass *pB = pD;
pD->init(10, 20);
pB->print(); // (가)
① virtual ② static
③ inline ④ protected
55. BClass의 포인터 p1을 DClass의 포인터 p2로 다운 캐스팅
하려고 한다. p1이 가리키고 있는 객체가 DClass의 객체가 아닐
경우 p2에 NULL이 저장되도록 하려면 어떤 형변환 연산자를
사용해야 하는가? (2점)
① dynamic_cast ② static_cast
③ reinterpret_cast ④ const_cast
56. 다음 클래스에 대한 설명으로 올바른 것은? (4점)
class ClassA {
……
virtual int f() = 0;
};
① ClassA는 상세클래스이다.
② 함수 f는 항상 0을 반환한다.
③ ClassA의 파생클래스는 f를 재정의 할 수 없다.
④ ClassA의 객체를 만들 수 없다.
57. 다음은 두 매개변수의 값을 서로 교환하는 함수 템플릿을 선언한
문장이다. ㈀에 넣을 적절한 내용은? (3점)
㈀ void swapValues(T& a, T& b) {
T tmp = a;
a = b;
b = tmp;
}
① template
② template <ANY>
③ template <class T>
④ template::
58. 다음 중 STL에서 포인터와 같은 용도로 사용되는 것은? (2점)
① 알고리즘
② 반복자(iterator)
③ 컨테이너(container)
④ deque
59. 다음 중 정렬된 데이터를 저장하는 두 컨테이너를 순서를 유지하여
하나로 합병하기 위해 사용되는 STL 알고리즘의 함수는? (2점)
① multiset ② sort
③ for_each ④ merge
60. 다음 프로그램에서 catch 블록이 실행되려면 함수 f()에서 어떤
명령을 실행해야 하는가? (4점)
try { f(); }
catch (int n) { cout << "예외 발생" << endl; }
① return 0; ② throw 1;
③ throw "예외"; ④ exit(0);
C++ 프로그래밍 2014-2018년 기말시험 기출문제
C++ 프로그래밍 2014-2018년 기말시험 기출문제
C++ 프로그래밍 2014-2018년 기말시험 기출문제
C++ 프로그래밍 2014-2018년 기말시험 기출문제

More Related Content

PDF
Pwning in c++ (basic)
Angel Boy
 
PDF
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015
CODE BLUE
 
PDF
関数プログラミング入門
Hideyuki Tanaka
 
PDF
Scalaエンジニアのためのモナド入門
Takashi Imahiro
 
PPTX
C# 8.0 null許容参照型
信之 岩永
 
PDF
F#入門 ~関数プログラミングとは何か~
Nobuhisa Koizumi
 
PPTX
Linux の hugepage の開発動向
Naoya Horiguchi
 
PDF
たのしい関数型
Shinichi Kozake
 
Pwning in c++ (basic)
Angel Boy
 
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015
CODE BLUE
 
関数プログラミング入門
Hideyuki Tanaka
 
Scalaエンジニアのためのモナド入門
Takashi Imahiro
 
C# 8.0 null許容参照型
信之 岩永
 
F#入門 ~関数プログラミングとは何か~
Nobuhisa Koizumi
 
Linux の hugepage の開発動向
Naoya Horiguchi
 
たのしい関数型
Shinichi Kozake
 

What's hot (20)

PDF
Vivado hls勉強会1(基礎編)
marsee101
 
PDF
Matrix calculus
Sungbin Lim
 
PDF
Introduction to Polyhedral Compilation
Akihiro Hayashi
 
PDF
その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】
Hiro H.
 
PPTX
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
DeNA
 
PDF
C++ ポインタ ブートキャンプ
Kohsuke Yuasa
 
PDF
A quick tour of the Cysharp OSS
Yoshifumi Kawai
 
PPTX
Compilers Are Databases
Martin Odersky
 
PDF
Лекция 1. Введение в Android.
Александр Брич
 
PDF
Deflate
7shi
 
PDF
BLS Based Discreet Log Contracts
Ichiro Kuwahara
 
PDF
NextGen Server/Client Architecture - gRPC + Unity + C#
Yoshifumi Kawai
 
PDF
第4回勉強会 単体テストのすすめ
hakoika-itwg
 
PDF
Vivado hls勉強会4(axi4 master)
marsee101
 
PDF
Google borg と コンテナベース分散システムデザインパターン
ktateish
 
PPTX
Gocon2017:Goのロギング周りの考察
貴仁 大和屋
 
PDF
0章 Linuxカーネルを読む前に最低限知っておくべきこと
mao999
 
PDF
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
Takeshi Yamamuro
 
PPTX
文字コードの脆弱性はこの3年間でどの程度対策されたか?
Hiroshi Tokumaru
 
PDF
Programmation Fonctionnelle
François Sarradin
 
Vivado hls勉強会1(基礎編)
marsee101
 
Matrix calculus
Sungbin Lim
 
Introduction to Polyhedral Compilation
Akihiro Hayashi
 
その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】
Hiro H.
 
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
DeNA
 
C++ ポインタ ブートキャンプ
Kohsuke Yuasa
 
A quick tour of the Cysharp OSS
Yoshifumi Kawai
 
Compilers Are Databases
Martin Odersky
 
Лекция 1. Введение в Android.
Александр Брич
 
Deflate
7shi
 
BLS Based Discreet Log Contracts
Ichiro Kuwahara
 
NextGen Server/Client Architecture - gRPC + Unity + C#
Yoshifumi Kawai
 
第4回勉強会 単体テストのすすめ
hakoika-itwg
 
Vivado hls勉強会4(axi4 master)
marsee101
 
Google borg と コンテナベース分散システムデザインパターン
ktateish
 
Gocon2017:Goのロギング周りの考察
貴仁 大和屋
 
0章 Linuxカーネルを読む前に最低限知っておくべきこと
mao999
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
Takeshi Yamamuro
 
文字コードの脆弱性はこの3年間でどの程度対策されたか?
Hiroshi Tokumaru
 
Programmation Fonctionnelle
François Sarradin
 
Ad

Similar to C++ 프로그래밍 2014-2018년 기말시험 기출문제 (20)

PDF
C++ Advanced 강의 1주차
HyunJoon Park
 
PDF
2013 C++ Study For Students #1
Chris Ohk
 
PPTX
Effective c++ 정리 chapter 4
연우 김
 
PPTX
Effective c++chapter1 and2
성연 김
 
PPTX
Chapter5 ~ 6
Injae Lee
 
PPTX
이펙티브 C++ (7~9)
익성 조
 
PDF
12장 상속 (고급)
유석 남
 
PDF
C++ Advanced 강의 5주차
HyunJoon Park
 
PPTX
C review
Young Wook Kim
 
PPTX
Effective C++ Chaper 1
연우 김
 
PPT
강의자료3
Young Wook Kim
 
PPTX
Effective c++ Chapter1,2
문익 장
 
PDF
Effective c++ chapter 1,2 요약
Nam Hyeonuk
 
PPTX
강의자료 2
Young Wook Kim
 
PPTX
Effective c++chapter4
성연 김
 
PPTX
이펙티브 C++ 스터디
quxn6
 
PPTX
Effective c++ 1,2
세빈 정
 
PPTX
More effective c++ chapter1,2
문익 장
 
PDF
HI-ARC PS 101
Jae-yeol Lee
 
PPTX
Effective c++ 1~8장
Shin heemin
 
C++ Advanced 강의 1주차
HyunJoon Park
 
2013 C++ Study For Students #1
Chris Ohk
 
Effective c++ 정리 chapter 4
연우 김
 
Effective c++chapter1 and2
성연 김
 
Chapter5 ~ 6
Injae Lee
 
이펙티브 C++ (7~9)
익성 조
 
12장 상속 (고급)
유석 남
 
C++ Advanced 강의 5주차
HyunJoon Park
 
C review
Young Wook Kim
 
Effective C++ Chaper 1
연우 김
 
강의자료3
Young Wook Kim
 
Effective c++ Chapter1,2
문익 장
 
Effective c++ chapter 1,2 요약
Nam Hyeonuk
 
강의자료 2
Young Wook Kim
 
Effective c++chapter4
성연 김
 
이펙티브 C++ 스터디
quxn6
 
Effective c++ 1,2
세빈 정
 
More effective c++ chapter1,2
문익 장
 
HI-ARC PS 101
Jae-yeol Lee
 
Effective c++ 1~8장
Shin heemin
 
Ad

More from Lee Sang-Ho (20)

PDF
20230105_[강릉원주대 대기환경과학과] 2015년 1학기 전선 지구환경융합과학 과제물.pdf
Lee Sang-Ho
 
PDF
[강릉원주대 대기환경과학과] 2015년 1학기 심교 식품과화학물질 과제물.pdf
Lee Sang-Ho
 
PDF
[강릉원주대 대기환경과학과] 2014년 겨울학기 일교 인간과환경 과제물.pdf
Lee Sang-Ho
 
PDF
[방송통신대 컴퓨터과학과] 2020년 1학기 교양 컴퓨터의 이해 기말평가 문제
Lee Sang-Ho
 
PDF
[방송통신대 컴퓨터과학과] 2020년 1학기 교양 컴퓨터의 이해 기말평가 제출본
Lee Sang-Ho
 
PDF
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 보안 기말평가 문제
Lee Sang-Ho
 
PDF
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 보안 기말평가 제출본
Lee Sang-Ho
 
PDF
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 기말평가 문제
Lee Sang-Ho
 
PDF
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 기말평가 제출본
Lee Sang-Ho
 
PDF
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 인터넷과 정보사회 기말평가 제출본
Lee Sang-Ho
 
PDF
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 인터넷과 정보사회 기말평가 문제
Lee Sang-Ho
 
PDF
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 문제
Lee Sang-Ho
 
PDF
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 제출본
Lee Sang-Ho
 
PDF
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 그래픽 커뮤니케이션 기말평가 제출본
Lee Sang-Ho
 
PDF
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 그래픽 커뮤니케이션 기말평가 문제
Lee Sang-Ho
 
PDF
[방송통신대 컴퓨터과학과] 2020년 1학기 일선 그래픽 커뮤니케이션 과제물 제출본
Lee Sang-Ho
 
PDF
[방송통신대 컴퓨터과학과] 2020년 1학기 일선 그래픽 커뮤니케이션 과제물 문제
Lee Sang-Ho
 
PDF
[방송통신대 컴퓨터과학과] 2020년 1학기 교양 컴퓨터의 이해 과제물 문제
Lee Sang-Ho
 
PDF
[방송통신대 컴퓨터과학과] 2020년 1학기 교양 컴퓨터의 이해 과제물 제출본
Lee Sang-Ho
 
PDF
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 과제물 문제
Lee Sang-Ho
 
20230105_[강릉원주대 대기환경과학과] 2015년 1학기 전선 지구환경융합과학 과제물.pdf
Lee Sang-Ho
 
[강릉원주대 대기환경과학과] 2015년 1학기 심교 식품과화학물질 과제물.pdf
Lee Sang-Ho
 
[강릉원주대 대기환경과학과] 2014년 겨울학기 일교 인간과환경 과제물.pdf
Lee Sang-Ho
 
[방송통신대 컴퓨터과학과] 2020년 1학기 교양 컴퓨터의 이해 기말평가 문제
Lee Sang-Ho
 
[방송통신대 컴퓨터과학과] 2020년 1학기 교양 컴퓨터의 이해 기말평가 제출본
Lee Sang-Ho
 
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 보안 기말평가 문제
Lee Sang-Ho
 
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 보안 기말평가 제출본
Lee Sang-Ho
 
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 기말평가 문제
Lee Sang-Ho
 
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 기말평가 제출본
Lee Sang-Ho
 
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 인터넷과 정보사회 기말평가 제출본
Lee Sang-Ho
 
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 인터넷과 정보사회 기말평가 문제
Lee Sang-Ho
 
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 문제
Lee Sang-Ho
 
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 제출본
Lee Sang-Ho
 
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 그래픽 커뮤니케이션 기말평가 제출본
Lee Sang-Ho
 
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 그래픽 커뮤니케이션 기말평가 문제
Lee Sang-Ho
 
[방송통신대 컴퓨터과학과] 2020년 1학기 일선 그래픽 커뮤니케이션 과제물 제출본
Lee Sang-Ho
 
[방송통신대 컴퓨터과학과] 2020년 1학기 일선 그래픽 커뮤니케이션 과제물 문제
Lee Sang-Ho
 
[방송통신대 컴퓨터과학과] 2020년 1학기 교양 컴퓨터의 이해 과제물 문제
Lee Sang-Ho
 
[방송통신대 컴퓨터과학과] 2020년 1학기 교양 컴퓨터의 이해 과제물 제출본
Lee Sang-Ho
 
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 그래픽스 과제물 문제
Lee Sang-Ho
 

C++ 프로그래밍 2014-2018년 기말시험 기출문제

  • 1. C++프로그래밍, 멀티미디어시스템 4-1 C++프로그래밍, 멀티미디어시스템 2014학년도 2 학기 1 학년 3 교시 ※ 정답 하나만을 골라 반드시 컴퓨터용 사인펜으로 OMR 답안지에 표기할 것. 학 과 감독관  학 번 성 명 1과목 C + + 프 로 그 래 밍 (1~25) 6. 데이터멤버 value의 가시성은 무엇인가? (3점) ① protected ② private ③ public ④ friend 7. (ㄱ)에 생성자를 선언하고자 한다. value의 값을 0으로 초기화 하도록 올바르게 작성한 문장은? (4점) ① void init() : value(0) { } ② int Counter() { value = 0; } ③ void Counter() { value = 0; return 0; } ④ Counter() : value(0) { } 8. (ㄴ)~(ㄹ) 중 const를 넣는 것이 바람직한 곳은? (2점) ① ㈁ ② ㈂ ③ ㈃ ④ 모두 9. 다음 중 소멸자에 대해 적절히 설명하고 있는 문장은? (4점) ① 소멸자는 다중정의를 할 수 없다. ② 소멸자는 명시적으로 호출하여 실행한다. ③ 소멸자는 int형 값을 반환한다. ④ 소멸자는 형식 매개변수를 통해 필요한 값을 받을 수 있다. ※ (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점) ① void Copycat(Copycat cc) ② Copycat(Copycat cc) ③ void Copycat(const Copycat* cc) ④ Copycat(const Copycat& cc) 11. (ㄴ)에 넣을 소멸자를 적절하게 작성한 것은? (3점) ① Copycat() { delete [] name; } ② ~Copycat() { delete name; } ③ ~Copycat() { delete [] name; } ④ void ~Copycat() { delete name; } 12. a가 ClassA의 객체이고 b가 ClassB의 객체일 때 다음 수식을 사용할 수 있게 하려면 어느 클래스에서 += 연산자를 다중정의 해야 하는가? (2점) a += b; ① ClassA ② ClassB ③ ClassA의 파생클래스 ④ 다중정의 할 수 없음 13. ClassC의 선언문 안에서 후위표기 ++ 연산자를 다중정의하고 자 한다. 원형을 올바르게 작성한 것은? (2점) ① ClassC operator ++ (); ② ClassC operator ++ (int); ③ int operator ++ (const ClassC& objC); ④ void operator ++ (const ClassC& objC); 출제위원:방송대 이병래 출제범위:교재 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]; } 1. (ㄱ)에 넣을 적절한 단어는? (2점) ① void ② int ③ int& ④ int* 2. 배열을 arr이라는 형식 매개변수를 통해 받고자 한다. 함수 안 에서 arr에 전달되는 실 매개변수의 값을 변경할 수 없도록 하 려면 (ㄴ)에 어떠한 내용이 필요한가? (2점) ① void arr[] ② int arr[] ③ const int arr[] ④ static int arr[] 3. 이 함수에서 구한 최솟값과 최댓값이 실 매개변수에 저장되도록 하려면 (ㄷ)에 어떠한 내용이 필요한가? (3점) ① int min, int max ② int& min, int& max ③ const int& min, const int& max ④ int* min, int* max 4. 다음 중 C++에서 함수를 정의하고 호출하는 것과 관련하여 올 바르게 설명한 것은? (4점) ① 함수의 이름은 모두 달라야 한다. ② 디폴트 인수는 매개변수 목록 중 앞에 위치해야 한다. ③ 순환호출을 포함하는 함수는 inline 함수로 컴파일된다. ④ 뒤에 정의된 함수를 호출하려면 먼저 그 함수의 원형을 선언 해야 한다. 5. 다중정의된 함수들 중에서 어느 함수를 호출하는가를 결정하는 것은 다음 중 무엇인가? (3점) ① 인수의 개수 및 자료형 ② 함수가 반환하는 값의 자료형 ③ 호출된 위치에서 가까운 곳에 정의된 함수 ④ 지역변수의 개수 ※ (6~8) 다음 Counter 클래스의 선언문에 대한 질문에 답하라. class Counter { int value; public: ㈀ void reset() ㈁ { value = 0; } void count() ㈂ { ++value; } int getValue() ㈃ { return value; } };
  • 2. C++프로그래밍, 멀티미디어시스템 4-2 2014학년도 2 학기 1 학년 3 교시 ※ (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점) ① int SObj::nID = 0; ② int nID = 1; ③ SObj = 0; ④ SObj::SObj = 0; 15. 다음 중 (ㄱ)에서 사용할 경우 문법에 맞는 명령은? (2점) ① cin >> x; ② cout << y; ③ --nID; ④ id += x; ※ (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점) ① private ② friend ③ static ④ protected 17. DClass1의 생성자를 완성하기 위해 (가)에 넣을 문장은? (2점) ① { id = s1; att = s2; } ② : BClass(s1), att(s2) {} ③ { getID() = s1; att = s2; } ④ : id(s1), att(s2) {} 18. (다)의 문장에 의해 출력되는 결과는? (3점) ① ab ② ab cd ③ ab cd 10 ④ 출력하지 않음 19. (라)의 문장에 의해 출력되는 결과는? (3점) ① ab ② ab cd ③ ab cd 10 ④ 출력하지 않음 20. pB가 BClass의 포인터이고, pD2가 DClass2의 포인터일 때 pB가 가리키는 객체를 pD2가 가리키게 하려고 한다. 다음 중 만일 pB가 가리키고 있는 객체가 DClass2의 객체라면 pD2에 포인터가 복사되고, 그렇지 않으면 pD2에 NULL이 저장되도 록 하는 문장은? (3점) ① pD2 = pB; ② pD2 = (DClass2*)pB; ③ pD2 = static_cast<DClass2*>(pB); ④ pD2 = dynamic_cast<DClass2*>(pB); 21. 다음 중 추상 클래스에 대한 설명으로 적절한 것은? (4점) ① 추상 클래스로 직접 객체를 정의할 수 없다. ② 기초 클래스가 1개인 클래스이다. ③ 가상함수를 포함하지 않는 클래스이다. ④ 추상 클래스는 파생 클래스를 가질 수 없다. 22. 다음 중 표준 템플릿 라이브러리(STL)의 순차 컨테이너에 해당 되는 것은? (2점) ① set ② map ③ multimap ④ list 23. 다음 중 배열의 개념을 구현한 것으로, 필요에 따라 크기를 확 장할 수 있는 STL의 컨테이너는 무엇인가? (3점) ① multiset ② vector ③ list ④ set ※ (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점) ① inline ② try ③ switch ④ enum 25. 함수 g()를 실행하였을 때 출력되는 내용은? (3점) ① 0 ② 0 div by zero done done ③ div by zero ④ div by zero done
  • 5. 2016학년도 2 학기 1 학년 1 교시 대학영어, C++프로그래밍 4-3 ※ C++ 코드 중 문장 이해에 문제가 없는 부분은 ……으로 생략 하였음 ※ (36∼37) 다음 함수에 대한 질문에 답하라. 1 2 3 4 5 6 7 8 9 10 11 ㈀ f(const int a[], int n) { for (int i=0 ; i < n ; i++) cout << a[i] << endl; cout << "최댓값=" << getMax(a, n) << endl; } int getMax(const int arr[], int n) { int max = arr[0]; for (int i=1 ; i < n ; i++) if (max < arr[i]) max = arr[i]; return max; } 36. ㈀에 넣을 적절한 내용은 무엇인가? (2점) ① virtual ② int ③ void ④ 공란 37. 다음 중 함수 f에서 getMax를 호출 문장을 사용하기 위해 작성 할 함수 getMax의 원형과 그 위치가 올바른 것은? (3점) ① 1행의 앞, int getMax(const int arr[], int n); ② 1행과 2행 사이, int getMax(); ③ 5행과 6행 사이, int getMax(const int [], int); ④ 6행과 7행 사이, int getMax() {} 38. 다음 중 함수 호출 위치에 함수의 처리 문장이 직접 삽입되도록 컴파일하기 위해 사용하는 키워드는? (2점) ① auto ② inline ③ const ④ static 39. C++의 함수에 대한 올바른 설명은? (2점) ① 함수에서 return 명령은 함수의 앞으로 되돌아가게 한다. ② 함수 안에서는 변수를 선언할 수 없다. ③ 함수에서 return 명령을 실행하면 프로그램이 종료된다. ④ 매개변수 값으로 사용할 디폴트 값이 있는 경우 함수에 그 값을 미리 지정하여 선언할 수 있다. 40. 다중정의된 함수들 중에서 함수를 구분하여 선택하는 기준이 될 수 있는 것은? (4점) ① 인수의 개수 ② 함수 반환값의 자료형 ③ 함수의 크기 ④ 함수가 포함된 파일 41. 클래스 멤버의 가시성 키워드 중 소속 클래스 및 친구 클래스의 멤버함수, 친구 함수에서만 액세스할 수 있도록 하는 것은? (4점) ① public ② protected ③ private ④ friend ※ (42∼45) 다음은 상향 계수와 하향 계수를 할 수 있는 상하향 계수기를 표현한 클래스이다. 계수기 객체를 생성할 때는 계수를 할 수 있는 최댓값과 계수기의 초깃값을 지정해야 하는데, 초깃값은 생략할 경우 0을 사용하게 한다. 다음 질문에 답하라. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class UDCounter { const int mVal; // 계수기의 최댓값 int val; // 계수기의 현재 값 public: ㈀ void reset(int v = 0) ㈁ { val = v; } void dnCount() ㈂ ; void upCount() ㈃ ; int getValue() ㈄ { return val; } bool chkZero() ㈅ { return !val; } }; void ㈆ dnCount() ㈂ { if (--val < 0) val = mVal; } void ㈆ upCount() ㈃ { if (++val > mVal) val = 0; } 42. ㈀에는 생성자를 선언하려고 한다. 다음 중 생성자 선언이 올 바른 것은? (3점) ① void UDCounter(int m, int v=0) { mVal=m; val=v; } ② int UDCounter(int m, int v) : mVal(m), val(v) {} ③ UDCounter(int m, int v=0) : mVal(m), val(v) {} ④ UDCounter(int m, int v) { mVal=m; val=0; } 43. ㈁~㈅ 중 const를 넣는 것이 적절한 곳은? (3점) ① ㈁, ㈂, ㈃ ② ㈄, ㈅ ③ ㈂, ㈃, ㈄ ④ ㈁ 44. 멤버함수 dnCount와 upCount를 정의하는 12∼15번 행에서 ㈆에 넣을 적절한 내용은? (3점) ① extern ② public: ③ UDCounter-> ④ UDCounter:: 45. ㈀의 생성자가 잘 선언되었을 때, UDCounter 클래스의 객체를 정의하는 구문으로 잘못된 것은? (단, cA는 UDCounter 클래스의 객체이다.) (2점) ① UDCounter c(99); ② UDCounter c(cA); ③ UDCounter c; ④ UDCounter c(99, 99); 46. ClassA라는 클래스를 선언하였다. 선언문 안에서 다음과 같이 연산자를 다중정의 했을 때, 이에 대한 올바른 설명은? (단, x와 y는 ClassA의 객체이다.) (2점) ClassA operator-(const ClassA& a) const { ㈀ } ① 전위표기 단항 연산자를 다중정의한 것이다. ② 후위표기 단항 연산자를 다중정의한 것이다. ③ x-y 라는 수식이 사용되었을 때 ㈀에서 *this는 x이다. ④ x-y 라는 수식이 사용되었을 때 ㈀에서 a는 x의 참조이다. 47. 다음 중 클래스의 static 멤버함수에 대한 올바른 설명은? (2점) ① 생성된 객체를 통해서만 호출할 수 있다. ② 클래스의 static이 아닌 데이터 멤버는 액세스할 수 없다. ③ 지역변수를 포함할 수 없다. ④ 클래스의 모든 멤버함수를 호출할 수 있다. 48. 클래스의 private 멤버를 특정 클래스의 멤버함수에서 액세스할 수 있도록 허용하기 위해 사용하는 키워드는? (3점) ① auto ② extern ③ virtual ④ friend 2과목 C++프로그래밍 (36~60) 출제위원:방송대 이병래 출제범위:교재 3장∼8장 (해당 멀티미디어강의 포함)
  • 6. 2016학년도 2 학기 1 학년 1 교시 대학영어, C++프로그래밍 4-4 ※ (49∼51) 다음 클래스에 대한 질문에 답하라. 단, ㈀은 한 개의 정수를 형식 매개변수 v에 전달받아 그 값을 저장하는 객체를 생성하는 생성자의 머리가 작성될 곳이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class IntClass { int* iPt; public: ㈀ { iPt = new int; *iPt = v; } ㈁ { iPt = new int; *iPt = *i.iPt; } ㈂ { delete iPt; } const IntClass& operator = (const IntClass& i) { iPt = new int; *iPt = *i.iPt; return *this; } IntClass operator ++ (int) { ㈃ } int getValue() const { return *iPt; } }; 49. 복사 생성자를 만들기 위해 ㈁에 넣을 내용은? (3점) ① IntClass(const IntClass& i) ② IntClass(IntClass i) ③ int IntClass(IntClass i) ④ void IntClass(const int* i) 50. 소멸자를 작성하기 위해 ㈂에 넣을 내용은? (3점) ① IntClass() ② ~IntClass(IntClass& obj) ③ int ~IntClass() const ④ ~IntClass() 51. 12∼13행의 연산자 다중정의를 완성하기 위해 ㈃에 넣을 문장은? (2점) ① (*iPt)++ ② return IntClass((*iPt)++); ③ ++(*iPt) ④ return IntClass(++(*iPt)); 52. 다음 중 클래스의 계층구조를 설계할 경우 나머지 클래스의 기초 클래스가 될 수 있는 것은? (4점) ① 선박 ② 화물선 ③ 여객선 ④ 어선 ※ (53∼55) 다음 클래스에 대한 질문에 답하라. class BClass { ㈀ : int x; public: void init(int a) { x = a; } ㈁ void print() const { cout << x; } }; class DClass : public BClass { int y; public: void init(int a, int b) { x = a; y = b; } void print() const { cout << x << " " << y; } }; 53. BClass의 x는 타 클래스에서는 직접 사용할 수 없지만 파생 클래스인 DClass의 멤버함수에서 직접 사용할 수 있게 하려고 한다. ㈀에 어떠한 가시성 지시어를 사용해야 하는가? (3점) ① private ② public ③ static ④ protected 54. 다음 프로그램에서 (가)의 문장이 “10 20”을 출력하게 하기 위해 ㈁에 넣을 단어는? (3점) DClass *pD = new DClass; BClass *pB = pD; pD->init(10, 20); pB->print(); // (가) ① virtual ② static ③ inline ④ protected 55. BClass의 포인터 p1을 DClass의 포인터 p2로 다운 캐스팅 하려고 한다. p1이 가리키고 있는 객체가 DClass의 객체가 아닐 경우 p2에 NULL이 저장되도록 하려면 어떤 형변환 연산자를 사용해야 하는가? (2점) ① dynamic_cast ② static_cast ③ reinterpret_cast ④ const_cast 56. 다음 클래스에 대한 설명으로 올바른 것은? (4점) class ClassA { …… virtual int f() = 0; }; ① ClassA는 상세클래스이다. ② 함수 f는 항상 0을 반환한다. ③ ClassA의 파생클래스는 f를 재정의 할 수 없다. ④ ClassA의 객체를 만들 수 없다. 57. 다음은 두 매개변수의 값을 서로 교환하는 함수 템플릿을 선언한 문장이다. ㈀에 넣을 적절한 내용은? (3점) ㈀ void swapValues(T& a, T& b) { T tmp = a; a = b; b = tmp; } ① template ② template <ANY> ③ template <class T> ④ template:: 58. 다음 중 STL에서 포인터와 같은 용도로 사용되는 것은? (2점) ① 알고리즘 ② 반복자(iterator) ③ 컨테이너(container) ④ deque 59. 다음 중 정렬된 데이터를 저장하는 두 컨테이너를 순서를 유지하여 하나로 합병하기 위해 사용되는 STL 알고리즘의 함수는? (2점) ① multiset ② sort ③ for_each ④ merge 60. 다음 프로그램에서 catch 블록이 실행되려면 함수 f()에서 어떤 명령을 실행해야 하는가? (4점) try { f(); } catch (int n) { cout << "예외 발생" << endl; } ① return 0; ② throw 1; ③ throw "예외"; ④ exit(0);