본문으로 바로가기
728x90
반응형

215p


Exercise


1. 다음 중 틀린 문장을 지적하고 올바르게 수정하여라.


 ① 조건식의 값이 0이 아니면 무조건 참으로 간주된다. 

 

 ② while 문에서 반복되는 문장은 하나만 가능하다

 거짓 - 중첩 반복문은 가능하다.

 ③ while 문은 적어도 한 번은 수행된다.   

 거짓 - 조건이 거짓이면 한번도 실행되지 않는다.

 ④ 반복 루프에서 break 문은 하나만 가능하다.   

 참 - 여러개를 사용할 수 없다.

 ⑤ 반복 루프가 중첩되어 있는 경우, break는 하나의 루프만 벗어날 수 있다.

 

 ⑥ do...while 문은 적어도 한번은 수행된다.    

 

 ⑦ for 문에서 초기식,조건식,증감식이 전부 비어 있는 경우도 있다.

 

 ⑧ for 문 안에 다른 for 문이 들어갈 수 있다.

 

 ⑨ continue 문은 반복 루프를 벗어나기 위하여 사용한다.

 거짓 - 진행중이던 반복문을 중지하고

           다음 반복문을 시작하기 위함이다.

 ⑩ break 문은 for 루프에서는 사용할 수 없다.

 거짓 - 사용할수 있다.


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


 (a)

 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);

10

9

8

7

6 

  (c)

 i = 10

 do {

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

       I++;

 } while(i < 5);

 10



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


  (a)

 int i = 0; 

 while(i < 10)

 {

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

 }

 i 가 10미만일경우 반복문이 실행되는데,

반복문 안에 i의  증감식이 없으므로

무한반복이 되므로 

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

i++;

가 되어야한다

 (b)

 int i = 0;

 while(i++ < 10) ;

 {

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

 }

 while 문의 조건문에는  ;  를 쓰지않는다.

while(i++ < 10)

 (c)

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

 { 

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

 }

 for문의 마지막에 ; 를 쓰지않는다


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

 (d)

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

 {

         coutinue;

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

 }

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

 {

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

 }

 (e)

 float i;

 for(i = 0.1; i != 1.0; i += 0.1)

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

 float나 double 형은 제한된 비트 수 때문에 정확한 

 실수값을 저장할 수 없다.

 따라서 반복 루프에서는 사용하지 않는것이 좋다.



728x90
반응형