다음 코드들의 출력 결과를 올바르게 예측한 것은?

과목: C++

문제 번호: 3317

hard
다음 코드들의 출력 결과를 올바르게 예측한 것은?
// 코드 A
int num1 = 7.8;
cout << num1;

// 코드 B  
float num2 = 7.123456789;
cout << num2;

// 코드 C
double num3 = 7.123456789;
cout << num3;
A. A: 7.8, B: 7.123456789, C: 7.123456789
B. A: 7, B: 7.12346, C: 7.123456789
C. A: 7, B: 7.123456789, C: 7.123456789
D. A: 컴파일 에러, B: 7.12346, C: 7.123456789

정답: B



⦁ 각 데이터 타입의 특성과 정밀도 한계를 이해해야 하는 종합 문제입니다

코드 A 분석:
int num1 = 7.8;  // int에 실수 대입
cout << num1;    // 결과: 7

int는 정수만 저장하므로 소수점 이하 버림
⦁ 7.8 → 7로 변환

코드 B 분석:
float num2 = 7.123456789;  // float의 정밀도 한계
cout << num2;              // 결과: 7.12346 (약)

float는 6-7자리 정밀도만 보장
⦁ 긴 소수는 반올림되어 저장

코드 C 분석:
double num3 = 7.123456789; // double의 높은 정밀도
cout << num3;              // 결과: 7.123456789

double은 15자리 정밀도로 원래 값 유지 가능

💡 학습 팁

이 문제를 포함한 C++ 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.