정보처리기사/[흥달쌤] 실기_깨알 C언어

C언어 특강 / 13. 삼항연산자, 14. if문, switch문, 15. 반복문, for문, 16. while 문, 17. do~while, for, while, 18. while, if문, 19. for, continue, break, 20. 다중for문, continue, break

web_seul 2022. 5. 6. 16:41
반응형

13. 삼항연산자

* 삼항연산자 : 조건에 따라서 다른 명령을 수행하는 연산자

구조 : 조건 ? 참 : 거짓

int a = 10>5 ? 10:5;
printf("%d", a); //10

 

문) C프로그램의 실행후, 출력 결과값은?

void main(void){
  int a, b;
  a = 20;
  b = (a>10) ? a+a : a*a;	//a>10 = T -> a+a = 20
  printf("b=%d\n", b);		//b = 20
}

 

14. if문, switch문 (제어문)

* if문 : 조건에 따라 다른 명령어들을 수행

* switch문 : 주어진 값에 맞는 명령어들을 수행

 

문) 다음 C프로그램의 실행 결과는?

#include<stdio.h>
int main(){
  int a = 0, b = 1;
  switch(a){	//a가 0이므로 case 0 수행
    case 0 : printf("%d\n", b++); break;	//a = 0, b = 2; (출력 : a = 0, b = 1;) 종료
    case 1 : printf("%d\n", ++b); break;	//a = 0, b = 3; (출력 : a = 0, b = 3;)
    default : printf("%d\n", b); break;		//a = 0, b = 3; (출력 : a = 0, b = 3;)
  }
  return 0;
}

 

15. 반복문, for문

* 반복문 종류

(1) for : 정해진 횟수만큼 반복

(2) while : 조건이 만족하는 동안 반복

(3) do-while : 무조건 한번 수행후 조건이 만족하는 동안 반복

 

* for구조

for(초기식; 조건식; 증감식){
  수행하는 작업들
}

 

문) 다음 C프로그램의 실행결과로 옳은것을 고르시오

#include<stdio.h>
int main(){
  int j;
  int sum = 0;
  for(j=2; j<=70; j+=5)	//j = 2,7,12,17,.. 67, 72
    sum = sum + 1;	//sum = 1,2,3,4,..14
    printf("%d", sum);  //14
}

 

16. while 문

* while 구조

while(조건){
  수행하는 작업들
}

 

int i = 0;
while(i<3){
  printf("i =: %d\n", i);	//i = 0,1,2,3
  i++;
}
printf("sum =: %d\n", i);	//sum = 3;

 

문) 다음 C프로그램의 실행 결과는?

#include<stdio.h>
int main(){
  int count = 2;
  int sum = 0;
  while(count <= 10){	//count = 2, 4, 6, 8, 10, 12
    sum += count;	//sum = sum + count;  2, 6, 12, 20, 30
    count += 2;		//count = count + 2;  4, 6, 8, 10, 12
  }
  printf("%d", sum);	//30
}

 

17. do~while, for, while

* do~while 구조

do{
  수행하는 작업들
} while(조건)

 

int i = 3;
do{
  printf("i = %d\n", i);	//i = 3;
  i++;				//i = 4;
} while(i<3);			//false
printf("sum = %d\n", i);	//i = 4;

 

문) 다음 C프로그램의 실행결과는?

#include<stdio.h>
void main(){
  int a, b;
  a = 2;
  while(a-- > 0){		//비교값 a=2, 1, 0
    printf("a = %d\n", a);	//a=1, 0, 출력x(a=-1)
  }
  for(b=0; b<2; b++){		//b=0, 1, 2
    printf("a=%d\n", a++);	//a=-1, 0 
  }
}

 

18. while, if문

문) 다음 C프로그램의 실행결과로 옳은 것은?

#include<stdio.h>
int main(){
  int a=120, b=45;
  while(a != b){
    if( a>b ) a = a-b;	//a = 75, 30, 15
    else b = b-a;	//b = 15
  }
  printf(%d", a);	
}

 

19. for, continue, break

* 반복문 옵션

- continue : 더 이상 아래 문장을 실행하지 않고 반복문 처음으로 돌아감

- break : 반복문을 빠져나감

 

문) 다음 C프로그램의 실행결과로 옳은 것은?

#include<stdio.h>
int main(){
  int i, sum=0;
  for( i=1; i<=10; i+=2 ){
    if( i%2 && i%3 ) continue;
    sum += i;	//sum = sum+i
  }
  printf("%d", sum);
  return 0;
}

 

20. 다중for문, continue, break

* 다중 반복문

for( i=0; i<2; i++ ){
  for( j=0; j<2; j++ ){
    printf("i:%d, j:%d", i, j);
  }
}

//i=0; j=0; 
//i=0; j=1; 
//i=1; j=0; 
//i=1; j=1; 
//i=2; j=2;

* continue

sum = 0;
for( i=0; i<3; i++ ){	//i = 0, 1, 2, 3
  if( i==1 ) continue;
  sum++;		//sum = 1, 2
}

// i=3, sum=2

* break

for( i=0; i<3; i++ ){	//i = 0, 1
  if( i==1 ) break;
  sum++;		//sum = 1
}

//i = 1, sum = 1

 

문) 다음 C프로그램의 실행결과는?

#include<stdio.h>
void main(){
  int i, j, sum = 0;
  for( i = 1; i<10; i++ ){
     for( j =1; j<10; j++ ){
       if( j%3 == 0 ) continue;
       if( i%4 == 0 ) break;
       sum++;
     }
  }
  printf("%d", sum);
}

 

반응형