프로그래밍/C언어

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

이번주에 2015. 3. 11. 12:43
반응형

1. 두 개의 피연산자가 모두 참인 경우에만 참이 되는 논리 연산자는?

&& || ! > <

2. 수식 !(3 > 2)의 결과 값은 얼마인가?

0 1 2 3


3. 다음 문장들의 참과 거짓을 말하고, 만약 거짓이면 올바르게 수정하여라.

(a) switch 문에서 case 절에는 문자열을 사용할 수 있다. 거짓

case절에는 정수값만 가능하다

(b) switch 문에서 case 절에는 실수를 사용할 수 있다. 거짓

실수는 사용할 수 없다.

(c) switch 문에서 반드시 default 문이 필요하다. 거짓

반드시 default 문이 필요하지 않다.

(d) goto 문은 프로그램의 효율성을 위하여 많이 사용하는 것이 좋다. 거짓


4. 다음 설명과 같은 조건문을 작성하여라.

(a) 만약 정수 변수 sales1000 이상이면 변수 status1을 대입한다.

 

if(sales >= 100)

status = 1;

 

(b) 변수 flag가 참이면 정수 변수 x의 값을 콘솔에 출력한다. 그렇지 않으면 정수 변수 y값을 출력한다.

 

if(flag != 0)

printf("%d", x);

else

printf("%d", y);

 

(c) 정수 변수 x,y,z에 저장된 값 중에서 최댓값을 찾는다.

 

int x,y,z, tmp;

x=tmp;

if (y>tmp)

tmp = y;

if (z>tmp)

tmp = z;

printf("가장 큰 수는 %d", tmp);

 

 


5. 변수의 값이 0, 1, 2일 때의 출력을 써라.

 

switch(x){

case 0: printf("A\n");

case 1: printf("B\n");

break;

case 2: printf("C\n");

break;

 

0일 때 A

B

1일 때 B

2일 때 C

 

6. 다음 문장의 오류를 찾아서 수정하여라. 문법적인 오류뿐만 아니라 논리적인 오류도 지적하여라.

(a)

if(age > 18);

printf("성인\n");

else

printf("청소년\n")

 

if문에는 세미콜론이 붙지 않는다.

 

(b)

if (0 < age < 18)

printf("청소년\n");

 

if (age > 0 && age < 18)

 

(c)

if(x = 0)

printf("x0이다.\n");

 

x0이면 x0이다 라고 출력되는 것이므로 조건문이 잘못되었다

x == 0으로 바꾸어야 한다.

 

7. 다음 문장을 switch를 사용하여 재작성하여라.

 

if (x == -1)

num--;

else if(x == 1

num++;

else

num = 0;

 

switch(x)

{

case -1: num--;

case 1: num++;

default: num = 0;

}

 

8. 다음의 문장을 연속적인 if-else를 사용하여 재작성하여라.

 

switch(code)

{

case 'X'': x++;

break;

case 'Y': y++;

break;

default: printf("XY를 입력하시오\n");

break;

}

 

if (x == 'X')

x++;

else if(x == 'Y')

y++;

else

printf("XY를 입력하시오\n");


9. 학생들의 학점을 계산하는 코드를 switch 문을 이용하여 다음과 같이 작성하려고 한다.

빈 칸을 채우고 어떻게 동작하는지를 주석으로 추가하여라. 그리고 올바르게 동작하는지 테스트하여라.

char grade;

int isore = score / 10; //점수를 10으로 나눈다
switch(score)
{
	cese 10 :
	case 9 : grade = 'A';//9점 이상은 A학점
		break;
	case 8 : grade = 'B';//8점은 B학점
		break;
	case 7 : grade = 'C';//7점은 C학점
		break;
	case 6 : grade = 'D';//6점은 D학점
		break;
	default:
		grade = 'F';//5점 이하는 F학점
}


반응형