
💻 2강 변수와 자료형 연습문제
1. 변수 선언 및 초기화
문제 1-1: 정수형 변수 age를 선언하고 자신의 나이로 초기화하세요.
문제 1-2: 실수형 변수 weight를 선언하고 자신의 몸무게를 대입하세요.
문제 1-3: name이라는 문자열 변수를 선언하고 자신의 이름을 초기화한 후, 변수 age 및 weight와 함께 다음과 같이 출력하세요.
이름: [당신의 이름], 나이: [나이]세, 몸무게: [몸무게]kg
2. 기본 자료형 (int, double, char, boolean 등)
문제 2-1: 다음 정보를 저장하기 위해 가장 적절한 기본 자료형을 선택하고, 변수를 선언 및 초기화하세요.
| 정보 | 값 |
| 오늘의 최고 기온 | 25.4 |
| 성별 (남/여 중 한 글자) | '여' |
| 시험 합격 여부 | true |
| 한 달 용돈 | 50000 |
3. 상수와 리터럴
문제 3-1: 원주율 를 나타내는 상수 **PI**를 선언하고 로 초기화하세요. 상수를 선언할 때 사용하는 키워드를 명시하세요.
문제 3-2: 다음 코드에 사용된 리터럴을 모두 찾아 그 값과 자료형을 나열하세요.
int radius = 10;
double area = radius * radius * 3.14;
boolean isBig = true;
char grade = 'A';
4. 형 변환 (Casting)
문제 4-1: 정수형 변수 score_int에 를 저장하고, 이를 실수형 변수 score_double에 저장하여 출력하세요. (자동 형 변환)
문제 4-2: 실수형 변수 num_double에 을 저장하고, 이를 강제로 정수형 변수 num_int에 저장하여 출력하세요. (명시적 형 변환 및 데이터 손실 확인)
문제 4-3: 문자형 변수 ch에 'B'를 저장하고, 이를 정수형 변수 ascii_code에 저장하여 출력하세요. ('B'의 아스키 코드를 확인하세요.)
✨ 추가 실습 문제 (5가지)
추가로 학생들이 응용력과 실습 능력을 키울 수 있도록 5가지 실습 프로젝트 형태의 문제를 제시합니다.
추가 실습 1. 🌡️ 섭씨 ↔ 화씨 변환 프로그램 구현
섭씨(C) 온도를 화씨(F)로, 또는 화씨 온도를 섭씨로 변환하는 프로그램을 만드세요.
- 요구사항:
- 섭씨 변수 celsius를 선언하고 을 저장하세요.
- 화씨(F)를 계산하는 변수 fahrenheit를 선언하고 다음 공식을 사용하여 계산하세요.
- 결과를 "섭씨 30.0도는 화씨 [계산된 화씨 온도]도 입니다." 형식으로 출력하세요.
- 화씨 변수 f_value에 을 저장하고, 섭씨(C)로 변환하는 변수 c_value를 계산하여 출력하세요.
추가 실습 2. ➕ 간단한 사칙연산 계산기 구현
두 개의 정수를 입력받아 사칙연산(덧셈, 뺄셈, 곱셈, 나눗셈) 결과를 모두 출력하는 프로그램을 만드세요.
- 요구사항:
- 정수형 변수 num1에 , num2에 를 각각 저장하세요.
- 덧셈, 뺄셈, 곱셈, 나눗셈 연산 결과를 저장할 변수를 선언하고 계산하세요. (나눗셈 결과는 소수점까지 표시되도록 자료형을 지정해야 합니다.)
- 각 연산 결과를 다음과 같이 출력하세요.
-
덧셈 결과: 19 뺄셈 결과: 11 곱셈 결과: 60 나눗셈 결과: 3.75
추가 실습 3. ⏱️ 초를 시간/분/초로 변환하기
총 초(Second) 값을 입력받아 시간(Hour), 분(Minute), 초(Second)로 나누어 출력하는 프로그램을 만드세요.
- 요구사항:
- 정수형 변수 totalSeconds에 을 저장하세요.
- **나눗셈 연산자 (/)**와 **나머지 연산자 (%)**를 사용하여 시간, 분, 초를 계산하고 저장할 변수를 선언하세요.
- 결과를 "3723초는 1시간 2분 3초 입니다." 형식으로 출력하세요.
추가 실습 4. 🧮 평균 점수 계산 (자동 형 변환 활용)
국어, 영어, 수학 점수를 저장하고, 총점과 평균을 계산하여 출력하는 프로그램을 만드세요.
- 요구사항:
- 정수형 변수 kor에 , eng에 , math에 를 저장하세요.
- 총점 변수 total을 계산하세요.
- 평균 변수 average는 소수점 이하까지 정확하게 계산하여 출력하세요. (총점을 실수형으로 자동 형 변환시키는 방법을 사용해 보세요.)
추가 실습 5. 💰 봉투별 금액 분배 및 잔액 계산
총 금액을 3개의 봉투(용돈, 저축, 비상금)에 분배하고 남은 잔액을 계산하는 프로그램을 만드세요.
- 요구사항:
- 정수형 변수 initialMoney에 을 저장하세요.
- 상수 ALLOWANCE_RATE를 (40%), SAVINGS_RATE를 (30%)로 선언하세요.
- 용돈(allowance)과 저축(savings) 금액을 실수로 계산하여 저장하세요.
- 비상금(emergency)은 정수형으로 저장하되, 용돈과 저축을 제외한 남은 금액을 계산하여 저장하세요. (이때 명시적 형 변환이 필요할 수 있습니다.)
- 각 봉투별 금액과 최종 잔액을 출력하세요.
📝 연습문제 모범 답안 및 해설
요청하신 2강 변수와 자료형 연습문제와 추가 실습 문제에 대한 모범 답안과 해설을 제공합니다. 티스토리 포스팅 시 학생들에게 정답 확인용으로 활용하게 하시면 좋습니다.
1. 변수 선언 및 초기화 정답
| 문제 | 모범 답안 (Java 기준) | 해설 |
| 1-1 | int age = 20; | 정수는 int 자료형을 사용합니다. |
| 1-2 | double weight = 65.5; | 소수점이 있는 값은 double 자료형을 사용합니다. |
| 1-3 | String name = "김철수"; (출력 코드 생략) |
이름과 같은 문자열은 String 자료형을 사용합니다. |
2. 기본 자료형 정답
| 문제 | 모범 답안 (Java 기준) | 해설 |
| 2-1 | double maxTemp = 25.4; char gender = '여'; boolean isPassed = true; int pocketMoney = 50000; |
실수(double), 단일 문자(char), 참/거짓(boolean), 정수(int)가 적합합니다. |
| 2-2 | char initial = 'H'; System.out.println(initial + 1); 출력 결과: 73 |
문자에 정수를 더하면, 해당 문자의 아스키 코드 값에 정수가 더해져 최종적으로 정수형(int) 결과가 출력됩니다. 'H'의 아스키 코드는 72입니다. |
3. 상수와 리터럴 정답
| 문제 | 모범 답안 (Java 기준) | 해설 |
| 3-1 | final double PI = 3.14159; | final 키워드를 사용하여 상수로 선언하며, 관례적으로 상수는 대문자로 표기합니다. |
| 3-2 | * 10: int 리터럴 * 3.14: double 리터럴 * true: boolean 리터럴 * 'A': char 리터럴 |
코드에서 직접 사용된 변하지 않는 값들을 리터럴이라고 합니다. |
4. 형 변환 (Casting) 정답
| 문제 | 모범 답안 (Java 기준) | 해설 |
| 4-1 | int score_int = 95; double score_double = score_int; 출력 결과: 95.0 |
자동 형 변환(묵시적 형 변환): 크기가 작은 정수형(int)이 실수형(double)으로 자동으로 변환됩니다. |
| 4-2 | double num_double = 15.7; int num_int = (int) num_double; 출력 결과: 15 |
명시적 형 변환(강제 형 변환): 실수형을 정수형으로 변환할 때는 (int)를 사용해야 하며, 이 과정에서 소수점 이하가 버려지는 데이터 손실이 발생합니다. |
| 4-3 | char ch = 'B'; int ascii_code = ch; 출력 결과: 66 |
문자형(char)은 내부적으로 아스키 코드(정수)로 관리되므로, 정수형(int)으로 변환 시 아스키 코드 값이 저장됩니다. |
✨ 추가 실습 문제 정답 및 해설
추가 실습 1. 🌡️ 섭씨 ↔ 화씨 변환 프로그램
// 1. 섭씨 -> 화씨 변환
double celsius = 30.0;
double fahrenheit = celsius * 1.8 + 32;
System.out.println("섭씨 " + celsius + "도는 화씨 " + fahrenheit + "도 입니다.");
// 출력: 섭씨 30.0도는 화씨 86.0도 입니다.
// 2. 화씨 -> 섭씨 변환
double f_value = 86.0;
double c_value = (f_value - 32) / 1.8;
System.out.println("화씨 " + f_value + "도는 섭씨 " + c_value + "도 입니다.");
// 출력: 화씨 86.0도는 섭씨 30.0도 입니다.
추가 실습 2. ➕ 간단한 사칙연산 계산기
int num1 = 15;
int num2 = 4;
int sum = num1 + num2;
int difference = num1 - num2;
int product = num1 * num2;
// 정확한 나눗셈 결과를 위해 num1을 double로 명시적 형 변환
double division = (double) num1 / num2;
System.out.println("덧셈 결과: " + sum); // 19
System.out.println("뺄셈 결과: " + difference); // 11
System.out.println("곱셈 결과: " + product); // 60
System.out.println("나눗셈 결과: " + division); // 3.75
Tip: 나눗셈 연산에서 num1 / num2를 하면 정수형 나누기 결과인 3이 나오므로, 피연산자 중 하나를 **double**로 변환해야 소수점까지 정확한 결과를 얻을 수 있습니다.
추가 실습 3. ⏱️ 초를 시간/분/초로 변환하기
int totalSeconds = 3723;
// 1. 시간 계산: 전체 초를 3600(1시간)으로 나눈 몫
int hours = totalSeconds / 3600;
// 2. 분 계산: 3600으로 나눈 나머지(남은 초)를 60으로 나눈 몫
int minutes = (totalSeconds % 3600) / 60;
// 3. 초 계산: 남은 초를 60으로 나눈 나머지
int seconds = totalSeconds % 60;
System.out.println(totalSeconds + "초는 " + hours + "시간 " + minutes + "분 " + seconds + "초 입니다.");
// 출력: 3723초는 1시간 2분 3초 입니다.
추가 실습 4. 🧮 평균 점수 계산
int kor = 90;
int eng = 85;
int math = 92;
int total = kor + eng + math;
// 자동 형 변환 활용: total을 3.0(double 리터럴)으로 나누어 자동적으로 실수형 계산
double average = total / 3.0;
System.out.println("총점: " + total); // 267
System.out.println("평균: " + average); // 89.0
주의: 만약 total / 3으로 계산하면, 정수형 나누기가 되어 결과는 89 (정수)가 됩니다. 따라서 3.0처럼 실수형 리터럴을 사용하거나, (double)total / 3처럼 강제 형 변환을 사용해야 합니다.
추가 실습 5. 💰 봉투별 금액 분배 및 잔액 계산
int initialMoney = 100000;
// 상수는 final 키워드 사용 (관례적으로 대문자)
final double ALLOWANCE_RATE = 0.4;
final double SAVINGS_RATE = 0.3;
// 용돈과 저축은 실수형으로 계산 (소수점 발생 가능성)
double allowance_double = initialMoney * ALLOWANCE_RATE;
double savings_double = initialMoney * SAVINGS_RATE;
// 계산의 편의를 위해 정수형으로 다시 변환
int allowance = (int) allowance_double; // 40000
int savings = (int) savings_double; // 30000
// 잔액 계산
int emergency = initialMoney - allowance - savings; // 100000 - 40000 - 30000 = 30000
System.out.println("초기 금액: " + initialMoney + "원");
System.out.println("용돈 (40%): " + allowance + "원");
System.out.println("저축 (30%): " + savings + "원");
System.out.println("비상금 (잔액): " + emergency + "원");
이 모범 답안과 해설을 통해 학생들이 변수, 자료형, 상수, 그리고 형 변환 개념을 확실하게 이해할 수 있을 것입니다. 게시글에 잘 활용하시길 바랍니다!
'Java_language' 카테고리의 다른 글
| Scanner 입력받기 (0) | 2025.11.12 |
|---|---|
| 간단한 사칙연산 계산기 (0) | 2025.11.12 |
| Java 개발 환경 설정 (Visual Studio Code) (0) | 2025.11.10 |
| 코딩을 요리 레시피에 비유하기 (0) | 2025.11.10 |
| 첫 번째 프로그램: Hello World (0) | 2025.11.10 |