1. 다음 문장의 오류를 찾아서 수정하라.
//1. //if (x = 1) // cout << "x는 1과 같습니다" << endl; //논리적 오류 if (x == 1) { cout << "x는 1과 같습니다" << endl; } //2. //if (0 < age < 18) // cout << "청소년" << endl; //문법적 오류 if (0 < age && age < 18) { cout << "청소년" << endl; } //3. //float grade = 3.0; //switch (grade) { // case 4.5: // cout << "만점" << endl; // break; //} //문법적 오류 int grade = 3; switch (grade) { case 4: { cout << "만점" << endl; break; } }
2. x = 0, y = 1, z = 2인 상태에서 다음과 같은 코드가 실행되었을 경우, x,y,z의 최종값은?
switch (x) { case 0: x = 1; y = 2; case 1: z = 3; break; }
x = 1, y = 2, z = 3;
3. 다음 프로그램의 결과를 써보아라.
//1. x = 10; for (x = 10; x > 6; x--) { cout << x << endl; } //2. x = 10; do { cout << x << endl; x--; } while (x < 6); //3. x = 0; for (;;) { if (x > 10) { break; } cout << x << " "; x++; }
1) 10
9
8
7
2) 10
3) 0 1 2 3 4 5 6 7 8 9 10
4. 함수 원형 정의에 적합한 return 문을 써라.
int f(); return 10 + 20; void g(int, int); return;
double h(double, int); return 'a' + 1.0;
5. 다음 프로그램에 등장하는 변수들의 범위, 생존 기간, 영역을 설명하라.
int a; static int b; extern int c; int main() { int d; static int e; { int f; } }
a : 전역, 프로그램 시작시 생성되어 종료시 해제, 프로그램 전체
b : 전역, 프로그램 시작시 생성되어 종료시 해제, 프로그램 전체
c : 전역, 프로그램 시작시 생성되어 종료시 해제, 프로그램 전체
d : 지역, main함수 실행시 생성되어 종료시 해제, 메인함수 내부
e : 전역, 프로그램 시작시 생성되어 종료시 해제, 프로그램 전체
f : 지역, 생성된 다음줄에서 해제됨, 가장 가까운 블록 내부
6. 다음 함수를 다음과 같이 호출하는 경우에 화면에 출력되는 내용과 함수의 반환값을 구하라.
int sum(int n) { cout << n << endl; if (n < 1) { return 1; } else return (n + sum(n - 1)); } int main() { sum(5); }
출력 내용
5
4
3
2
1
반환값 16