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