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);
}
반응형
'정보처리기사 > [흥달쌤] 실기_깨알 C언어' 카테고리의 다른 글
C언어 특강 / 25~28. 배열과 포인터(1) ~(4) (0) | 2022.05.24 |
---|---|
C언어 특강 / 21. 배열(1),(2), 23. 포인터, 24. scanf와 변수 (0) | 2022.05.09 |
C언어 특강 / 10. 출력형식, 11. 진법변환, 비트연산, 12. 매크로, 비트연산 (0) | 2022.05.03 |
C언어 특강 / 05. 산술연산자, 06. 연산자 우선순위, 07. 관계-논리 연산자, 조건문, 08. 논리연산자, 증감연산, 09. 산술연산자 (0) | 2022.05.03 |
C언어 특강 / 01. 프로그래밍이란?, 02. 컴파일러&인터프리터, 03. 변수, 04. 변수의 종류와 유효범위 (0) | 2022.05.02 |