정보처리기사 실기 - 2024년 1회 C언어 기출 풀이(조건 연산자와 비트 연산 문제)

Alchemist·2025년 9월 30일

정보처리기사

목록 보기
30/114

✨ 문제

다음 C언어 코드의 출력값을 작성하시오.

#include <stdio.h>
 
int main() {
    int v1 = 0, v2 = 35, v3 = 29;
    
    if (v1 > v2 ? v2 : v1) {
        v2 = v2 << 2;
    } else {
        v3 = v3 << 2;
    }
    
    printf("%d", v2+v3);
}

🎯 출제 의도

  • 삼항 연산자(조건 연산자) 조건 ? 참일 때 : 거짓일 때의 의미 확인
  • if문의 조건 값이 0이면 거짓, 0이 아니면 참이라는 C언어 규칙 이해
  • 비트 시프트 연산자 <<의 의미 확인 (왼쪽 시프트 = 2의 제곱 곱)

📘 개념 정리

1. 삼항 연산자

v1 > v2 ? v2 : v1
  • v1 = 0, v2 = 35
  • 0 > 35 → 거짓 → 결과는 v1 = 0

즉, if(0) → 조건식이 0이므로 false.

2. else 문 실행

v3 = v3 << 2;
  • v3 = 29
  • 29 << 2 = 29 * 2^2 = 29 * 4 = 116
  • 따라서 v3 = 116

3. 최종 출력

printf("%d", v2+v3);
  • v3 = 29
  • 29 << 2 = 29 * 2^2 = 29 * 4 = 116
  • 따라서 v3 = 116

✅ 최종 출력 결과

151

💡 정리

이 문제에서 꼭 알아야 할 개념:

  • 삼항 연산자는 조건 ? 참일 때 : 거짓일 때
  • if(0)은 거짓 → else 실행
  • n << k = n * 2^k
  • 따라서 최종 결과는 151
profile
html_programming_language

0개의 댓글