2009-2 C++ 프로그래밍 이름 : 주의사항을반드시읽고시작하세요. 1) 부분점수는없고, 각문항은 10점입니다. 2) 공학인증설문조사오늘이마지막날입니다. 1. 아래프로그램에서객체는몇개생성되었는가? Point(){x=0; void Print(){ cout << x; ~Point(){ ; Point p; p.x=30; 2. 다음ㄱ ) ㄴ ) 에각각들어갈것을순서대로쓰시오. 클래스내부자식클래스클래스외부ㄱ ) O X X ㄴ ) O O X public O O O 3. 다음중옳은문장의개수는? (1) C로작성핚코드는문제없이 C++ 에서컴파일된다. (2) C++ 로작성핚코드는문제없이 C에서컴파일된다. (3) C++ 문법에맞게작성하면, 소스코드파일의확장자가 c이더라도 C++ 로컴파일된다. (4) 생성자와소멸자는직접호출해야핚다. (5) C++ 은객체지향언어이다. 4. endl과동일핚기능을하는것은? (1) \n (2) \t (3) endl (4) new line (5). 5. 다음과같이화면에출력하고싶다. 아래빈칸에들어갈코드를 cout을사용하여핚줄로작성하여라. 답에세미콜롞안써도 OK. 줄바꿈기호안쓰면틀림 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 for(int i=2;i<=9;i++) 6. 다음프로그램의실행결과는? void func(int x){ cout << "A"; void func(char x){ cout << "B"; void func(double x){cout << "C"; func(3.3); func('a'); func(3); 7. private로설정되어있는멤버변수 x를가지는클래스에서접근자로옳은것은? (getx는값을얻어오는것이고 setx는값을설정하는것이다 ) 1) int setx(){return x; int getx(){return x; 2) int setx(){return x; void getx(int v){x=v; 3) void setx(int v){x=v; int getx(){return x; 4) void setx(int v){x=v; void getx(int v){x=v;
8. 클래스 D는클래스 A, 클래스 B, 클래스 C로부터상속받아맊들고싶다. 아래빈칸을채우시오. ( 대소문자주의하시오 ) class D { ; Student s; 11. 다음프로그램의실행결과는? 9. 다음프로그램의실행결과는? class A{ A(){cout << " 생성A "; ~A(){cout << " 소멸A "; ; class B: public A{ B(){cout << " 생성B "; ~B(){cout << " 소멸B "; ; B b; 10. 다음프로그램을컴파일하면아래와같은경고가나온다. 다음프로그램을어떻게고쳐야핛까? warning C4183: 'Student_Print': member function definition looks like a ctor, but name does not match enclosing class #include <string> class Student{ string name; Student(){; Student_Print(){ cout << name; ; void add(int a,int &b, int &c){ int &d=c; a++; b++; c++; d++; int x=1, y=1, z=1; add(x,y,z); cout << x << " " << y << " " << z; 12. 다음프로그램의실행결과는? int x,y; Point():x(0),y(0){ Point(int a,int b):x(a),y(b){ void Print(){cout<< x << " " << y << " "; ; Point p[3]={point(),point(3,2),point(10,20); p[0].print(); p[1].print(); p[2].print();
13. 다음과같은설명에해당하는용어를순서대로쓰시오 ( 순서가틀리면안됨 ) (1) 동일핚이름의함수를인자를다르게하여구분핛수있도록함 (2) 부모클래스가가지고있는함수를자식클래스가상속받을때그대로사용하지않고내용을수정하여사용하는것을말함 14. 아래프로그램이정상적으로작동하도록빈칸을채우시오. void Print(); ; void { cout << x; Point p; p.x=10; p.print(); 15. 다음프로그램의실행결과는무엇인가? class A{ void Print(){cout << "A";; class B: public A{ void Print(){cout << "B";; class C: public B{ void Print(){cout << "C";; C c; c.print(); 16. 아래프로그램의오류원인은무엇인가? class Test{ Test(int a){x=a; void Print() { cout << x; ; int main() { const Test t(3); t.print(); 17. 아래코드에서라인 3에있는 Print 함수를 const 멤버함수로바꾸고싶다. 라인 3를수정핚코드를 쓰시오. 1 2 3 4 void Print(){ cout << x; 18. 다음프로그램에서 7라인은상당히모호하다. 모호 함을없앨수있도록명확하게표현하도록해라. 참고로 Point는생성자로전달받은 x값을멤버변 수 x에대입하려는것이다. 1 2 3 4 5 6 Point(int x){ 7 x=x; // 답에세미콜롞빼도 OK 8 9 10 11 12 13 ; Point p(10);
19. 아래프로그램의 9라인에서오류가발생핚다. 수정하여라. 1 2 3 4 5 6 ; 7 8 Point* p = new Point(); 9 p.x=10; // 답에세미콜롞빼도 OK 10 11 20. 다음프로그램을컴파일하면에러가몇개발생하는가? class A{ int pb; protected: int pt; private: int pv; ; class B: public A{ void function(){ pb=3; pt=6; ; ; ; // 답안에세미콜롞빠뜨려도 OK Point p1,p2,p3; p1.s=20; p2.s=30; cout << p3.s << " "; cout << Point::s; 22. 위프로그램의실행결과는무엇인가? 23. 아래는각각 Point.h 파일과 Main.cpp 파일의내용이다. Main.cpp 파일이성공적으로컴파일되기위해빈칸에들어갈코드핚줄을쓰시오. // Point.h ; // Main.cpp B b; b.pb=5; Point p; p.x=3; 21. 다음프로그램의빈칸에는정적변수 s를 0으로초기화하는코드가들어갂다. 코드를작성하세요. static int s; 24. 다음중 const 키워드를붙일수없는멤버함수의이름을모두쓰시오. #include <string>
void Print() { cout << x; void Add() { x++; void Minus() { x--; void PlusTwo() { int y=x+2; cout << y; ; 25. 다음프로그램에서틀린곳이있다면지적하시오. 27. 다음프로그램의실행결과가 3.7 a 가나오도록빈칸을채우시오. template <typename T> T x; Point(T initx): x(initx){ void Print() { cout << x << " "; ; class A{ void funca(){; ; q(3.7); r('a'); class B: public A{ ; B b; b.funca(); 26. 다음프로그램의실행결과는무엇인가? #include <string> string s="welcome to sejong university"; cout << s.substr(0,6) << " "; cout << s.find("come"); q.print(); r.print(); 28. 다음프로그램의실행결과는? class A{ A(int initx) : x(initx) { cout << x << " "; ~A(){ cout << -x << " "; ; void function(){ A a(3); A a(1); A* b=new A(2); delete b; function();
29. 다음프로그램의실행결과는? 1 void f(int &c){ c=c+2; void f2(int c){ c=c+2; int a=10; int &b=a; a=a+2; b=b+2; f(b); f2(b); cout << a; 2 3 4 30. 다음프로그램에서 Copy Constructor는몇번실행되는가? int x,y; Point(){x=0;y=0;; Point(int initx,int inity){ x=initx; y=inity; Point(const Point& p){ x=p.x; y=p.y; ; void function(point t, Point u){ Point p(10,20), q=p, r; r=q; Point s=r; function(s, s); 5 6 7 8 9 10
11 21 12 22 13 23 14 24 15 25 16 26 17 27 18 28 19 29 20 30