[깨알 C언어 14~20 영상]
[문] 다음 C 프로그램의 실행 결과는?
#include <stdio.h>
int main(){
int a = 0, b = 1;
switch(a){
case 0 : printf("%d\n", b++); break;
case 1 : printf("%d\n", ++b); break;
default : printf("%d\n", b); break;
}
return 0;
}
① 0 ② 1 ③ 2 ④ 3
→ ② 1
※ if문 : 조건에 따라서 다른 명령어들을 수행
- 날씨가 비가 오면(true) 우산을 들고 감 | 비가 오지 않으면(false) 자전거를 타고 감
※ switch문 : 주어진 값에 맞는 명령어들을 수행
- 어떤 값이 들어왔을 때, 자판기 버튼이라면 블랙 || 설탕 || 믹스커피 || 선택 안 함의 선택에 따라 결과 도출
→ 원하는 값만 도출하려면(연쇄 반응 X) break를 걸어야 함
[문] 다음 C 프로그램의 실행 결과로 옳은 것을 고르시오.
#include <stdio.h>
int main(){
int j;
int sum = 0;
for(j = 2; j <= 70; j += 5)
sum = sum + 1;
printf("%d", sum);
}
① 13 ② 70 ③ 14 ④ 5
→ ③ 14
// 실행 과정 + 결과 설명
int j;
int sum = 0;
for(j = 2; j <= 70; j += 5)
sum = sum + 1;
// j 값 변화
// 2, 7, 12, 17, 22, 27, 32, 37, 42, 47, 52, 57, 62, 67
// 다음 값은 72
// 72 <= 70 이 거짓이므로 종료
// 총 반복 횟수 = 14회
// 반복할 때마다 sum 1 증가
// sum = 0 → 14
printf("%d", sum);
// 최종 출력 결과
// 14
[문] 다음 C 프로그램의 실행 결과는?
#include <stdio.h>
int main(){
int count = 2;
int sum = 0;
while(count <= 10){
sum += count;
count += 2;
}
printf("%d", sum);
}
① 2 ② 10 ③ 20 ④ 30
→ ④ 30
// 실행 과정 + 결과 설명
int count = 2;
int sum = 0;
while(count <= 10){
sum += count;
count += 2;
}
// 1회차
// sum = 0 + 2 = 2
// count = 4
// 2회차
// sum = 2 + 4 = 6
// count = 6
// 3회차
// sum = 6 + 6 = 12
// count = 8
// 4회차
// sum = 12 + 8 = 20
// count = 10
// 5회차
// sum = 20 + 10 = 30
// count = 12
// count <= 10 조건이 거짓(12 <= 10) → 종료
printf("%d", sum);
// 최종 출력 결과
// 30
// 정답: ④
[문] 다음 C 프로그램의 실행 결과는?
#include <stdio.h>
void main(){
int a, b;
a = 2;
while(a-- > 0){
printf("a = %d\n", a);
}
for(b = 0; b < 2; b++){
printf("a = %d\n", a++);
}
}
→ ① a = 1
a = 0
a = -1
a = 0
// 실행 과정 + 결과 설명
int a, b;
a = 2;
// while(a-- > 0)
// 후위 감소이므로 비교 후 감소
// 1회차
// 비교: 2 > 0 → 참
// a는 1이 됨
printf("a = %d\n", a);
// 출력: a = 1
// 2회차
// 비교: 1 > 0 → 참
// a는 0이 됨
printf("a = %d\n", a);
// 출력: a = 0
// 3회차
// 비교: 0 > 0 → 거짓
// 비교 후 a는 -1이 됨
// while 종료
// 현재 a = -1
for(b = 0; b < 2; b++){
printf("a = %d\n", a++);
}
// 1회차
// a++ → 현재값 -1 출력 후 a=0
// 출력: a = -1
// 2회차
// a++ → 현재값 0 출력 후 a=1
// 출력: a = 0
/*
출력 결과
a = 1
a = 0
a = -1
a = 0
*/
// 정답: ①
※ 반복문 종류
(1) for
• 정해진 횟수만큼 반복
for(초기식; 조건식; 증감식)
{
수행하는 작업들
}
// 1. 초기식 실행 (최초 1회)
// 2. 조건식 검사
// 3. 조건이 참이면 실행문 수행
// 4. 증감식 수행
// 5. 다시 조건식 검사
// 6. 조건이 거짓이 될 때까지 반복
(2) while
• 조건이 만족하는 동안 반복
int i = 0;
while(i < 3)
{
printf("i = : %d\n", i);
// 1회차: i=0 출력
// 2회차: i=1 출력
// 3회차: i=2 출력
i++;
// 0→1→2→3
}
// i=3이 되면 조건(i<3)이 거짓이므로 반복 종료
printf("sum = : %d\n", i);
// 현재 i=3 출력
/*
출력 결과
i = : 0
i = : 1
i = : 2
sum = : 3
*/
(3) do ~ while
• 무조건 한 번 수행 후 조건이 만족하는 동안 반복
int i = 3;
do
{
printf("i = %d\n", i);
// do~while은 조건 검사 전에 먼저 실행
// i = 3 출력
i++;
// i = 4
}
while(i < 3);
// 4 < 3 → 거짓(false)
// 반복 종료
printf("sum = %d\n", i);
// 현재 i = 4 출력
/*
출력 결과
i = 3
sum = 4
*/
[문] 다음 C 프로그램의 실행 결과로 옳은 것은?
#include <stdio.h>
int main(){
int a=120, b=45;
while(a != b){
if(a > b) a = a - b;
else b = b - a;
}
printf("%d", a);
}
① 5 ② 15 ③ 20 ④ 25
→ ② 15
// 실행 과정 + 결과 설명
int a=120, b=45;
while(a != b){
if(a > b) a = a - b;
else b = b - a;
}
// a=120, b=45 → a>b → a=120-45=75
// a=75, b=45 → a>b → a=75-45=30
// a=30, b=45 → a<b → b=45-30=15
// a=30, b=15 → a>b → a=30-15=15
// a=15, b=15 → a==b → 반복 종료
printf("%d", a);
// 출력 결과: 15
// 정답: ②
[문] 다음 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;
}
printf("%d", sum);
return 0;
}
① 6 ② 12 ③ 25 ④ 55
→ ② 12
int i, sum=0;
for(i=1; i<=10; i+=2){
// i 값: 1, 3, 5, 7, 9
if(i % 2 && i % 3) continue;
// i%2 : 홀수면 대부분 1
// i%3 : 3의 배수가 아니면 1 또는 2
// && 결과가 참이면 continue 실행
// continue → 아래 sum += i 실행 안함
sum += i;
}
// i=1
// 1%2=1, 1%3=1 → true && true → continue
// i=3
// 3%2=1, 3%3=0 → true && false → false
// sum = 0 + 3 = 3
// i=5
// 5%2=1, 5%3=2 → true && true → continue
// i=7
// 7%2=1, 7%3=1 → true && true → continue
// i=9
// 9%2=1, 9%3=0 → true && false → false
// sum = 3 + 9 = 12
printf("%d", sum);
// 최종 출력 결과
// 12
// 정답: ②
※ 반복문 옵션
(1) continue
• 더이상 아래 문장을 실행하지 않고, 반복문 처음으로 돌아감
(2) break
• 반복문을 빠져나감
※ 다중 반복문
for(i = 0; i < 2; i++){
for(j = 0; j < 2; j++){
printf("i : %d, j : %d", i, j);
}
}
// 실행 과정 + 결과 설명
for(i = 0; i < 2; i++){
// 바깥 반복문(i)
// i=0
for(j = 0; j < 2; j++){
// 안쪽 반복문(j)
// j=0 → 출력
// i:0, j:0
// j=1 → 출력
// i:0, j:1
}
// i=1
for(j = 0; j < 2; j++){
// j=0 → 출력
// i:1, j:0
// j=1 → 출력
// i:1, j:1
}
}
/*
출력 순서
i : 0, j : 0
i : 0, j : 1
i : 1, j : 0
i : 1, j : 1
*/
※ continue
for(i = 0; i < 3; i++){
if(i == 1) continue;
sum++;
}
// 실행 과정 + 결과 설명
sum = 0;
// i=0
// i==1 ? false
// continue 실행 안됨
// sum++ 실행 → sum=1
// i=1
// i==1 ? true
// continue 실행
// 아래 sum++ 건너뜀
// sum 변화 없음 → sum=1
// i=2
// i==1 ? false
// sum++ 실행 → sum=2
/*
최종 값
i = 3
sum = 2
*/
[문] 다음 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);
}
① 42 ② 81 ③ 27 ④ 12
→ ① 42
// 실행 과정 + 결과 설명
// i = 1~9
// i=4,8 일 때 break 발생
// → 해당 i에서는 내부 반복문 바로 종료
// 나머지 i
// i=1,2,3,5,6,7,9 → 총 7개
// 각 i마다 j 흐름
// j=1 → sum++
// j=2 → sum++
// j=3 → continue
// j=4 → sum++
// j=5 → sum++
// j=6 → continue
// j=7 → sum++
// j=8 → sum++
// j=9 → continue
// 각 i당 sum 6 증가
// 7 * 6 = 42
// 최종 결과
// 42'자격증 공부 > 정보처리기사 실기' 카테고리의 다른 글
| [흥달쌤] 깨알 C언어) 연산자(+삼항 연산자), 출력 형식 (0) | 2026.05.10 |
|---|---|
| [흥달쌤] 깨알 C언어) 컴파일러, 인터프리터, 변수(종류와 유효 범위) (0) | 2026.05.03 |
| [흥달쌤] 기출해설특강) 라우팅 영역에 따른 분류(IGP, EGP) (0) | 2026.04.25 |
| [흥달쌤] 기출해설특강) EAI 구축 유형, UI의 설계 원칙, 코드 커버리지, 관계대수 연산자 (0) | 2026.04.25 |
| [흥달쌤] 기출해설특강) IPSec, 리눅스 파일 보안, 시멘틱 웹, REST (0) | 2026.04.25 |