연재 완료/C++ Lang 예제코드 모음

C++ ESPRESSO 1-2. 제어문과 함수 / 중간 점검

라이피 (Lypi) 2018. 8. 1. 15:31
반응형

중간 점검(45p)

1. 변수 n의 값이 100보다 크거나 같으면 "large", 100보다 작으면 " small"을 출력하는 if-else문을 작성하라. 

	if (n >= 100) { cout << "large"; }
	else          { cout << "small"; }


2. k의 값이 각각 0, 4, -1인 경우에 다음의 코드에 의하여 생성되는 출력은 무엇인가?

	if (k == 0)     { cout << "A"; }
	else if (k > 3) { cout << "B"; }
	else            { cout << "C"; }
       k == 0 일 때 : "A", k == 4 일 때 : "B", k == -1 일 때 : "C"                                                                                                                                         

3. 컵의 사이즈를 받아서 100ml 미만은 small, 100ml 이상 200ml 미만은 midium, 200ml 이상은 large라고 출력하는 if-else 문을 작성하라.

	if (size < 100)                      { cout << "small"; }
	else if (size >= 100 && size < 200)  { cout << "midium"; }
	else                                 { cout << "large"; }


중간점검 (47p)

1. case절에서 break문을 생략하면 어떻게 되는가?

       break를 만나거나 switch문이 끝날 때까지 다음 case절의 문장을 계속 실행한다.                                                                                                              


2. 변수 fruit의 값이 각각 1,2,5일 때, 다음의 코드의 출력은 무엇인가?

	switch(fruit) {
		case 1: cout << "사과"; break;
		case 2: cout << "배";
		case 3: cout << "바나나"; break;
		default: cout << "과일";
	}

       fruit == 1일 때 : "사과", fruit == 2일 때 : "배, 바나나", fruit == 5일 때 : "과일"                                                                                                               



중간점검 (53p)

1. 다음 코드의 출력은 무엇인가?

 	int n = 12;

	while (n > 0) {
	
		n = n - 2;
		
		if (n == 6) { 
			break; 
		}

		cout << n << endl;
	}

       10                                                                                                                                                                                                                

       8                                                                                                                                                                                                                  



중간점검 (56p)

1. 다음 코드의 출력은 무엇인가?

 	for (int i = 1; i < 5; i++) {
		cout << i << endl;
	}

       1                                                                                                                                                                                                                  

       2                                                                                                                                                                                                                  

       3                                                                                                                                                                                                                  

       4                                                                                                                                                                                                                  


2. 다음 코드의 출력은 무엇인가?

 	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j+) {
			cout << i << "곱하기 " << j << " 은 " << i * j << endl;
		}
	}

       0 곱하기 0 은 0                                                                                                                                                                                               

       0 곱하기 1 은 0                                                                                                                                                                                               

       0 곱하기 2 은 0                                                                                                                                                                                               

       1 곱하기 0 은 0                                                                                                                                                                                               

       1 곱하기 1 은 1                                                                                                                                                                                               

       1 곱하기 2 은 2                                                                                                                                                                                               

       2 곱하기 0 은 0                                                                                                                                                                                               

       2 곱하기 1 은 2                                                                                                                                                                                               

       2 곱하기 2 은 4                                                                                                                                                                                               


중간점검 (60p)

1. 함수 이름 앞에 void가 붙으면 무엇을 의미하는가?

       반환값이 없음.                                                                                                                                                                                                 


2. 함수가 작업을 수행하는데 필요한 데이터로서 외부에서 주어지는 것을 무엇이라고 하는가?

       인자값                                                                                                                                                                                                           


3. 함수 몸체는 어떤 기호로 둘러 싸여 있는가?

       중괄호 {}                                                                                                                                                                                                        


4. 두 정수의 곱을 반환하는 함수 mult(int x, int y)를 작성하여 보자.

 int mult(int x, int y) {
	return x * y;
}


중간점검 (63p)

1. 다음과 같은 원형을 가지는 함수 print()를 중복 정의하라. print()는 매개 변수의 값을 콘솔 화면에 출력한다. 

 //함수 원형
void print(int x);
void print(double x);
void print(string x);

//함수 몸체
void print(int x)
{
	cout << x;
}
void print(double x)
{
	cout << x;
}
void print(string x)
{
	cout << x;
}


중간점검 (65p)

1. 다음의 함수 선언이 잘못된 이유를 설명하라. 

       int moveto (int x = 0, int y, int z = 0);                                                                                                                                                                  

       디폴트 매개변수는 가장 오른쪽 끝의 인자부터 순서대로 넣어야 하고, 중간에 빠트릴 수 없다.                                                                                             


2. 다음과 같은 함수 선언을 가지는 함수 호출 중 잘못된 것은?

       int sub(int a, int b = 100, int c = 100);                                                                                                                                                                         1. sub(0, 0, 0);   2. sub(0);   3. sub();   4. sub(0, 0);                                                                                                                                                   

       3. sub();  : 첫 번째 인자 a에는 기본 값이 없으므로 인자 값을 전달해주어야 한다.


3. 다음은 중복 함수와 디폴트 매개 변수를 함께 사용한 함수 선언이다. 잠재적인 문제점은 무엇인가?

void print(string a = NULL) {}
void print() {}

       인자값 없이 함수 호출 시 어떤 함수를 호출하는지 구분할 수 없다. (에러 "C2668 : 오버로드된 함수에 대한 호출이 모호합니다.")                                                 



중간점검 (69p)

1. 두 개의 정수 중 큰 수를 반환하는 get_max() 함수를 인라인 함수로 작성하라.

inline int get_max(int a, int b)
{
	return a > b ? a : b;
}


중간점검 (74p)

1. 지역 변수를 블록의 중간에 정의할 수 있는가?

       있다.                                                                                                                                                                                                             

2. 똑같은 이름의 지역 변수가 서로 다른 함수 안에 정의될 수 있는가?

       있다.                                                                                                                                                                                                             

3. 지역 변수가 선언된 블록이 종료되면 지역 변수는 어떻게 되는가?

       소멸된다.(메모리에서 해제된다.)                                                                                                                                                                          

4. 지역 변수의 초기 값은 몇 인가?

       따로 지정해주지 않으면 쓰레기 값이 들어가있다.                                                                                                                                                     

5. 전역 변수는 어디에 선언되는가?

       모든 중괄호 바깥에.                                                                                                                                                                                          



반응형