프로그래밍/C언어

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

이번주에 2015. 4. 17. 12:53
반응형

1. 다음 프로그램의 결과를 써라.

 

(a)

int i = 1;

while(i<5)

{

printf("%d\n", i);

i++;

}


출력결과

1

2

3

4


(b)

int i;

 

for(i=10; i>5; i--)

printf("%d\n", i);

printf("최종 i의 값=%d\n", i);


출력결과

10

9

8

7

6

최종 I의 값=5



(c)

int i = 10;

 

do{

printf("%d\n", i);

i++;

}

while(i<5);

10

(d)

int x, y;

 

for(x=0; x<3; x++)

for(y=0; y<5; y++)

printf("*");


출력결과

***************


2. 다음 코드에서 잘못된 점이 있으면 지적하고 올바르게 수정하여라. 논리적인 오류도 포함된다.

(a)

int i=0;

while(i<10)

{

printf("%d\n", i);

i++;

}

I값의 증감이 없어서 while문이 끝나지 않는다.


(b)

int i = 0;

for(i=0; i<10; i++)

{

printf("i=%d\n", i);

}

for문에서 I값을 초기화하므로 선언할 때 초기화 할 필요가 없다.


3. 다음의 while 루프는 for루프로 for루프는 while 루프로 변경하여라.

(a)

int i=0;

while(i<10)

{

printf("%d\n", i);

i++;

}

int i;

 

for(i=0; i<10; i++)

printf("%d\n", i);

(b)

int i;

for(i=1; i<=20; i++)

{

printf("%d\n", i);

}

int i=1;

while(i<=20)

{

printf("%d\n", i);

i++;

}


4. 다음 프로그램의 결과를 써라.

 

int x, y;

 

for(x=0; x<3; x++)

{

for(y=0; y<=2; y++)

printf("x=%d, y=%d\n", x, y);

printf(\n");

}


출력결과

x=0, y=0

x=0, y=1

x=0, y=2

 

x=1, y=0

x=1, y=1

x=1, y=2

 

x=2, y=0

x=2, y=1

x=2, y=2

 

5. 다음 프로그램의 결과를 써라.

#include <stdio.h>

 

int main(void){

 

int i = 0;

while(1)

{

if(i>3)

break;

printf("%d\n", i);

i++;

}

}

 

출력결과

0

1

2

3


6. for문의 초기식에서 여러 개의 변수를 초기화시킬때는 콤마 연산자(,)를 사용한다. 콤마 연산자는 수식을 순차적으로 실행한다 예를 들어 x=0, y=0x=0을 먼저 실행하고 이어서 y=0을 실행한다. 다음과 같은 문장들이 어떤 의미인지를 설명하여라.

 

(a) for(x=0, sum=0; x<10; x++)

x0으로 초기화하고 sum0으로 초기화하고 x10보다 작으면 x를 증가시키면서 반복한다.

(b) for(x=0, y=0; x<10 && y<10; x++, y++)

x0으로 초기화하고 y0으로 초기화한다. x10보다 작고 y10보다 작으면 xy를 증가시키면서 반복한다.


7. for반복문을 이용하여 다음의 값을 출력하는 코드를 작성하여라

(a) 1, 2, 3, 4, 5, 6, 7, 8, 9

#include <stdio.h>

int main(void){

	int i;

	for(i=1; i<10; i++)
		printf("%d ", i);
	return 0;
}
(b) 1, 3, 5, 7, 9
#include <stdio.h>

int main(void){

	int i;

	for(i=1; i<10; i++)
		if(i%2!=0)
			printf("%d ", i);
	return 0;
}
(c) 2, 4, 6, 8
#include <stdio.h>

int main(void){

	int i;

	for(i=1; i<10; i++)
		if(i%2==0)
			printf("%d ", i);
	return 0;
}
(d), 9, 6, 3, 0
#include <stdio.h>

int main(void){

	int i;

	for(i=10; i>=0; i--)
		if(i%3==0)
		printf("%d ", i);
	return 0;
}
8. 다음의 코드가 실행을 완료하였을 때 변수 i의 값은 얼마인가?

(a)

int i = 0;

 

while(i<10)

{

i++

}

변수 i의 값 

10 


(b)

int i;

 

for(i=0; i<10; i+=3)

printf("i=%d\n", i);


변수 i의 값
9


반응형