KU COSE101 2019기말대비 연습문제 1번

1 minute read

           
2019 연습 1번 2번 3번 4번 5번

다음 프로그램의 출력을 작성하시오.

#include<stdio.h>

int x = 20;
int y = -2;

void func1();
void func2(int*);
void func3(int*);

int main()
{
	int x = 5;
	int y = 7;
	printf("%d, ",x);
	{
		int y = 9;
		printf("%d, ",y);
	}
	func1(); func2(&x); func3(&y);
	func2(&y); func3(&x); func1();
	printf("%d, ", x);
	printf("%d", y);
}

void func1() {
	static int y = 12;
	printf("%d, ", y);
	y++;
	x+=y;
}

void func2(int* y) {
	printf("%d, ", ++(*y));
	++x;
	printf("%d, ", x);
	{
		int y = 10;
		printf("%d, ", y);
	}
}

void func3(int* x) {
	printf("%d, ", *x);
	y++;
	(*x)+=y;
	printf("%d, ", *x);
}

정답
5, 9, 12, 6, 34, 10, 7, 6, 7, 35, 10, 6, 6, 13, 6, 7

1) 5 : main함수의 x
2) 9 : main함수의 중괄호 블록 안의 y
3) 12 : func1함수의 y
4) 6 : func2함수로 main함수의 x(5)가 넘어왔고, 1을 더했으므로, 6
5) 34 : func1 함수에서 global x(20)에 y(13)를 더했고, 후에 1을 다시 더했으므로 34
6) 10 : func2 함수의 중괄호 블록 안의 y
7) 7 : func3함수로 main함수의 y(7)가 넘어왔으므로 7
8) 6 : global y(-2)에 1을 더하여 (-1)이 되고, *x(main::y=7)에 -1을 더하여 6
9) 7 : func2 함수로 main::y(6)이 넘어왔고, 1을 더하여 출력하므로 7
10) 35 : global x에 1을 더하여 출력하므로 35
11) 10 : func2 함수의 중괄호 블록 안의 y
12) 6 : func3 함수로 main::x(6)이 넘어왔으므로 6
13) 6 : global 변수의 y에 1을 더하여 0이 되고, *x(main::x=6)에 0을 더하므로 6
14) 13 : static 변수이므로 이전에 더했던 1이 저장되어있으므로 13
15) 6 : main::x은 6
16) 7 : main::는 7

Comments