Java_language

2강 변수와 자료형 연습문제

헬로제이콥 2025. 11. 12. 16:03

💻 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
문제 2-2: 문자형 변수 initial에 자신의 성(姓)의 첫 글자를 저장하고, 이 변수에 1을 더한 결과를 출력하세요. (문자형과 정수형의 연산 결과를 확인하세요.)

3. 상수와 리터럴

문제 3-1: 원주율 를 나타내는 상수 **PI**를 선언하고 로 초기화하세요. 상수를 선언할 때 사용하는 키워드를 명시하세요.

문제 3-2: 다음 코드에 사용된 리터럴을 모두 찾아 그 값과 자료형을 나열하세요.

Java
 
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)로, 또는 화씨 온도를 섭씨로 변환하는 프로그램을 만드세요.

  • 요구사항:
    1. 섭씨 변수 celsius를 선언하고 을 저장하세요.
    2. 화씨(F)를 계산하는 변수 fahrenheit를 선언하고 다음 공식을 사용하여 계산하세요.
    3. 결과를 "섭씨 30.0도는 화씨 [계산된 화씨 온도]도 입니다." 형식으로 출력하세요.
    4. 화씨 변수 f_value에 을 저장하고, 섭씨(C)로 변환하는 변수 c_value를 계산하여 출력하세요.

추가 실습 2. ➕ 간단한 사칙연산 계산기 구현

두 개의 정수를 입력받아 사칙연산(덧셈, 뺄셈, 곱셈, 나눗셈) 결과를 모두 출력하는 프로그램을 만드세요.

  • 요구사항:
    1. 정수형 변수 num1에 , num2에 를 각각 저장하세요.
    2. 덧셈, 뺄셈, 곱셈, 나눗셈 연산 결과를 저장할 변수를 선언하고 계산하세요. (나눗셈 결과는 소수점까지 표시되도록 자료형을 지정해야 합니다.)
    3. 각 연산 결과를 다음과 같이 출력하세요.
    4. 덧셈 결과: 19
      뺄셈 결과: 11
      곱셈 결과: 60
      나눗셈 결과: 3.75 
      

추가 실습 3. ⏱️ 초를 시간/분/초로 변환하기

총 초(Second) 값을 입력받아 시간(Hour), 분(Minute), 초(Second)로 나누어 출력하는 프로그램을 만드세요.

  • 요구사항:
    1. 정수형 변수 totalSeconds에 을 저장하세요.
    2. **나눗셈 연산자 (/)**와 **나머지 연산자 (%)**를 사용하여 시간, 분, 초를 계산하고 저장할 변수를 선언하세요.
    3. 결과를 "3723초는 1시간 2분 3초 입니다." 형식으로 출력하세요.

추가 실습 4. 🧮 평균 점수 계산 (자동 형 변환 활용)

국어, 영어, 수학 점수를 저장하고, 총점과 평균을 계산하여 출력하는 프로그램을 만드세요.

  • 요구사항:
    1. 정수형 변수 kor에 , eng에 , math에 를 저장하세요.
    2. 총점 변수 total을 계산하세요.
    3. 평균 변수 average는 소수점 이하까지 정확하게 계산하여 출력하세요. (총점을 실수형으로 자동 형 변환시키는 방법을 사용해 보세요.)

추가 실습 5. 💰 봉투별 금액 분배 및 잔액 계산

총 금액을 3개의 봉투(용돈, 저축, 비상금)에 분배하고 남은 잔액을 계산하는 프로그램을 만드세요.

  • 요구사항:
    1. 정수형 변수 initialMoney에 을 저장하세요.
    2. 상수 ALLOWANCE_RATE를 (40%), SAVINGS_RATE를 (30%)로 선언하세요.
    3. 용돈(allowance)과 저축(savings) 금액을 실수로 계산하여 저장하세요.
    4. 비상금(emergency)은 정수형으로 저장하되, 용돈과 저축을 제외한 남은 금액을 계산하여 저장하세요. (이때 명시적 형 변환이 필요할 수 있습니다.)
    5. 각 봉투별 금액과 최종 잔액을 출력하세요.

 

 

📝 연습문제 모범 답안 및 해설

요청하신 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. 🌡️ 섭씨 ↔ 화씨 변환 프로그램

Java
 
// 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. ➕ 간단한 사칙연산 계산기

Java
 
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. ⏱️ 초를 시간/분/초로 변환하기

Java
 
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. 🧮 평균 점수 계산

Java
 
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. 💰 봉투별 금액 분배 및 잔액 계산

Java
 
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