728x90
반응형
2024년 2회 정보처리기사 실기 기출문제
문제
다음 C 프로그램의 실행결과를 쓰시오.
#include <stdio.h>
void swap(int a, int b) {
int t = a;
a = b;
b = t;
}
int main() {
int a = 11;
int b = 19;
swap(a, b);
switch(a) {
case 1:
b += 1;
case 11:
b += 2;
default:
b += 3;
break;
}
printf("%d", a-b);
}
정답
-13
반응형
해설
1️⃣ main() 함수 시작
int a = 11;
int b = 19;
- 변수 a에 11을 저장합니다.
- 변수 b에 19를 저장합니다.
- 현재 상태 : a = 11, b = 19
2️⃣ swap(a, b); 함수 호출
void swap(int a, int b) {
int t = a;
a = b;
b = t;
}
- swap() 함수 안에서만 a와 b의 값이 바뀌고, main() 함수의 a와 b에는 아무 영향이 없습니다.
- swap() 안에서는 a = 11, b = 19
- t = a → t = 11
- a = b → a = 19
- b = t → b = 11
- 이렇게 바뀌지만, 이 값들은 swap() 함수가 끝나면서 사라집니다. 다시 말해, main() 함수에서는 여전히
a = 11, b = 19
728x90
3️⃣ switch(a)문 실행
switch(조건값) {
case 값1:
실행문1;
break;
case 값2:
실행문2;
break;
...
default:
기본 실행문;
break;
}
- switch문은 조건에 따라 여러 분기 중 하나를 선택해서 실행하는 제어문입니다. 주로 if-else if 구문보다 코드가 더 깔끔하고 명확할 때 사용합니다.
- 조건값: 변수 또는 값입니다. 이 값에 따라 어떤 case가 실행될지 결정됩니다.
- case 값:: 조건값이 이 값과 같다면 실행됩니다.
- break: 현재 case 블록을 빠져나갑니다. 만약 break가 없으면 아래의 코드들이 계속 실행됩니다.
- default:: 위의 case들 중 어떤 것도 일치하지 않을 때 실행됩니다. 선택 사항입니다.
switch(a) {
case 1:
b += 1;
case 11:
b += 2;
default:
b += 3;
break;
}
- 문제 코드를 다시 보면, 현재 a = 11이므로 case 11:부터 실행됩니다. break가 없으므로 아래 코드들을 계속 실행합니다.
- case 11: → b += 2; → b = 19 + 2 = 21
- default: → b += 3; → b = 21 + 3 = 24 (break가 없기 때문에 아래에 있는 default:도 실행됨)
- default: → break를 만나 종료
- 최종적으로 b = 24
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
728x90
반응형
'코딩일기 > 자격증' 카테고리의 다른 글
[정보처리기사] [ C ] 포인터 배열과 2차원 배열 연산 이해하기 | 2024년 2회 정보처리기사 실기 기출문제 (0) | 2025.04.11 |
---|---|
[정보처리기사] [Python] 문자열에서 특정 패턴 찾는 방법 | 슬라이싱 & f-string 활용 | 2024년 2회 정보처리기사 실기 기출문제 (0) | 2025.04.10 |
2024년 1회 정보처리기사 실기 기출문제 및 해설 (0) | 2025.04.10 |
[정보처리기사] [Python] 문자열 슬라이싱과 f-string 활용 | 2024년 2회 정보처리기사 실기 기출문제 (0) | 2025.04.09 |
[정보처리기사] [Java] 배열과 == 비교 연산자 | 자바의 자료형 기본형과 참조형 | 2024년 2회 정보처리기사 실기 기출문제 (0) | 2025.04.08 |