프로그래밍/C언어

C언어콘서트 4장 Exercise/C언어콘서트 4장 연습문제 답

이번주에 2015. 3. 8. 00:09
반응형

1. 다음의 연산자들을 우선 순위가 높은 순서대로 나열하여라.

단항연산자-산술연산자-관계연산자-논리연산자-대입연산자

 

2. 수식에서 어떤 연산자들이 먼저 계산되는지를 결정하는 것을 무엇이라고 하는가?

피연산자 ‚결과 값 ƒ우선순위 „연산자

 

3. 형변환에 대한 설명 중 잘못된 것은? (4)

명시적인 형변환은 변수의 앞에 원하는 자료형을 (int) var과 같이 적어주는 것이다

‚(3 + 1.5)와 같은 수식에서 33.0으로 형변환되어서 계산된다

ƒ((double)3+1.5)와 같은 문장도 가능하다.

„char형을 int형으로 변환하는 것은 불가능하다.


4. 다음 수식의 의미를 설명하고 만약 올바르지 않은 수식이 있다면 이유를 써라.

x = 10 + y x10+y값을 넣어라

5 = x + y 대입연산자의 좌변에는 실수가 아닌 변수가 들어가야 한다.

x %= 20 x =x % 20

x = y = 2 x값과 y값에 2를 넣어라

 

5. 다음 수식의 결과 값을 적어라

10 % 3 (1)

‚1.0 +1.0 / 2.0 (1.5)

ƒ1.0 + 1 / 2 (1)

10 / 3 (3)

„1.0+ 1.0/2 (1.5)

1.0 + (double)1 / 2 (1.5)


 

6. 다음의 문장에 해당하는 수식을 써라.

 x0이상이고 100이하이다. x>=0 && x<=100

‚ x0이상이거나 100이하이다. x>=0 || x<=100

ƒ x0이거나 1이다 x == 0 || x == 1

„ xy보다 크거나 z보다 작다. x > y || x < z

 

7. 다음의 수식에 연산자가 계산되는 순서를 기입하여라.

(a) x * y + z +a % b     %+ +

(b) x > y || y < z          > < ||

(c) x = y == z             == =


8. 다음 코드의 결과 값은?
#include <stdio.h>

int main()
{
	int i;
	i = (1<2) ? 5 : 6
	printf("%d \n", i);
	
	return 0;
}
결과 값

9. 다음 코드의 결과 값은?
#include <stdio.h>

int main()
{
	int x = 10;

	printf("%d \n", x++);
	printf("%d \n", --x);
	printf("%d \n", x *= 3);

	return 0;
}
결과 값
10
10
30
 
10. 다음 프로그램의 출력 결과를 써라.
#include <stdio.h>

int main()
{
	int x = 10;
	int y = 20;
	printf("%d\n", x < y);
	printf("%d\n", x == y);
	printf("%d\n", x = y);
	printf("%d\n", !x);
	
	return 0;
}
결과 값 
0
20

11. 잠시 디버거가 되었다고 가정하자. 다음은 100에 1/2를 곱하여 50을 계산하려는 코드이다. 어디에 문제가 있는가?
#include <stdio.h>


int main(void)
{
	int x = 100;
	int y;

	y = (1/2) * x;
	printf("%d의 절반은 %d\n", x, y);
	
	return 0;
}
y = x * 1 / 2로 바꾸어야 한다.



12. 다음 코드에서 변수들의 값을 옆에 적어보자.

#include <stdio.h>

int main(void)
{
	int i, j; //i,j 쓰레기값
	float f; //f 쓰레기값

	i = 2.3 + 2.8; //i=5
	j = (int)2.3 + (int)2.8; //j=4

	f = i / j; //f= 1.000000
	f = (float)i / j; //f=1.250000
	
	return 0;
}


반응형