자바 기초 문제
*답은 파일에 첨부해서 올립니다. 직접 풀어보신 후에 확인해보세요 ㅎㅎ
자바문제답.zip[문제1]
String a = "100";
String b = "200";
a 와 b의 값을 형변환해서 두수의 곱을 구하시오
--출력--
100 * 200 = 20000
-----------------------------------------------------------------
[문제2]65430원을 만들기 위한 화폐의 갯수를 구하시오.
money = 65430원
만원 = 6
천원 = 5
백원 = 4
십원 = 3
-----------------------------------------------------------------
[문제3] 급여명세서를 작성하시오
조건1) 기본급이 1,500,000원,수당이 55,000원,세금은 기본급의 10%
조건2) 실수령액 = 기본급 + 시간수당 - 세금
--출력--
실수령액 : 1405000원
-----------------------------------------------------------------
[문제4] 각각변수에 대입하여 출력하시오
조건1) data는 이효리, 개발부, 대리, 1500000로 대입
변수명은 각각 name,department,position,sal로 할것
조건2)출력은 아래와 같은 메서드(함수)를 이용하시오
--출력--
이름 : 이효리 ---> println
부서 : 개발부 ---> printf
직위 : 대리 ---> print 1번만써서 직위,급여출력
급여 : 1500000원
-----------------------------------------------------------------
[문제5] 다음을 입력받아 계산하시오
--입력--
Input name : 민들래
kor : 90
eng : 70
mat : 75
--출력--
이름 : 민들래
합계점수 : 235점
평균점수 : 78.3 <-- 소수 1자리까지출력하시오
-----------------------------------------------------------------
[문제6] 다음을 입력받아 계산하시오
(삼각형넓이 = (밑변 * 높이)/2)
--입력--
**** 삼각형의 넓이 구하기 ****
밑변 : 10
높이 : 3
--출력--
넓이 : XX.XX <--- 소수 2자리까지출력하시오
----------------------------------------------------------------------
[문제7] BufferedReader를 이용하여 입력받아 두수중 큰수를 출력하시오
(단, 비교연산은 삼항연산자를 이용하시오)
Input a : 5
Input b : 13
큰수 : 13
-----------------------------------------------------------------------
[문제8] 값을 입력받아 0보다 작거나 100보다 크면 "입력오류!!" 출력
(if문과 ||연산자를 이용하시오)
점수입력 : 120
입력오류!!
점수입력 : 55
입력된값 : 55
-----------------------------------------------------------------
[문제9] 입력된 문자가 대문자이면 소문자로 출력하고
소문자이명 대문자로 변환하여 출력하시오
그외의 문자이면 "입력데이타오류"라고 표시하시오
(if-else문 이용)
Input Character: A
result : a
Input Character: a
result : A
Input Character: *
입력데이터 오류
e
-----------------------------------------------------------------
[문제10] 4개의 값을 콘솔에서 입력받아 처리하시오
조건) 성별 : M 이면 "남자", 나머지 "여자"
(삼항연산자 이용)
Input name: 장미란
Input gender: F
Input age: 25
Input tall: 173.3
--결과--
이름 : 장미란
성별 : 여자
나이 : 25세
신장 : 173.3cm
-----------------------------------------------------------------
[문제11]2개의 숫자와 연산자를 입력하여 계산하시오
조건1) 실수인경우는 소수이하 2째자리까지 출력하시오
조건2) 연산자가 +,-,*,/ 이외의 문자가 들어오면
"연산자error"출력하시오
[실행결과]
A값을 입력하시오: 25
B값을 입력하시오: 36
연산자를 입력(+,-,*,/) : +
25 + 36 = xx
A값을 입력하시오: 25
B값을 입력하시오: 36
연산자를 입력(+,-,*,/) : /
25 / 36 = xx.xxxxx
A값을 입력하시오: 25
B값을 입력하시오: 36
연산자를 입력(+,-,*,/) : #
연산자 error
-----------------------------------------------------------------
[문제12]성적처리프로그램
--입출력 화면--
중간고사를 입력하시오 : 90
기말고사를 입력하시오 : 89
레포트고사를 입력하시오 : 99
출석고사를 입력하시오 : 100
중간고사 : 90
기말고사 : 89
레포트 : 99
출석 : 100
성적=93.20 <---소수이하 2째자리까지
학점=A System.out.printf("성적 : %.2f", avg);
평가=excellent
조건1) (중간+기말)/2 ---> 60%
레포트 ---> 20%
출석 ---> 20%
조건2) 90이상 'A'학점 (3)A,B학점 ---->"excellent"
80이상 'B'학점 C,D학점 ---->"good"
70이상 'C'학점 F학점 ---->"poor"
60이상 'D'학점 (switch문이용)
나머지 'F'학점
(if~else if문이용)
---------------------------------------------------------------------------
[문제13]년도를 입력받아 윤년/평년 구하기
(공식)①,② 두조건을 다 만족해야 윤년임
①년도를 4로 나누어 떨어져야 함
②년도를 100으로나누어 떨어지지 않거나
년도를 400으로 나누어 떨어져야 함
(참고) 4(윤년), 100(평년), 400(윤년)임
--출력--
년도 입력 : 2000
윤년
년도 입력 : 2001
평년
년도 입력 : 2004
윤년
---------------------------------------------------------------------------
[문제14] 50개의 난수를 만들어서 다음과 같이 출력하시오
조건1) 0 - 100 사이의 수 일것
조건2) 1줄에 6개씩 표시하시오
--출력--
12 72 74 0 20 89
84 83 53 0 95 53
68 55 89 6 20 68
17 9 75 56 17 85
62 33 7 34 85 28
28 55 95 31 69 22
30 92 1 16 88 80
64 55 71 12 29 72
20 41
합=2420
--------------------------------------------------------------------------------
[문제15] 2자리의 난수를 발생하여 발생된 숫자를 맞추는 게임 프로그램
난수발생) 1. int a=(int)(Math.random()*100) : 0 - 99 사이의 난수
2. ① import java.util.Random;
② Random 변수1 = new Random();
③ int 변수2 = 변수1.nextInt(최대값);
==> 0 ~ (최대값 - 1)사이의 임의의 수
[실행결과]
*** 난수가 발생하였습니다...맞추어 보세요...***
숫자 입력 : 50
컴퓨터의 숫자가 더 큽니다..
숫자 입력 : 90
컴퓨터의 숫자가 더 작습니다..
:
숫자 입력 : 83
추카추카...xx번만에 맞추셨습니다...
--------------------------------------------------------------------------------
[문제16]1~100사이의수 중에서 3의 배수이면서 7의 배수 구하기
조건) for문과 && 연산자를 반드시 이용
--출력--
21 42 63 84
--------------------------------------------------------------------------------
[문제17] for문을 이용하여 제곱승을 구하시오
x의 값을 입력하시오 : 3
y의 값을 입력하시오 : 3
3의 3승은 27
---------------------------------------------------------------------------
[문제18]다중for이용해서 모양을 만드시오
1
123
12345
1234567
123456789
1234567
12345
123
1
*
* *
* *
* *
*
**********
* *
* *
* *
**********
--------------------------------------------------------------------
[문제19] main()함수에서 각각 호출하고 계산된 결과를 return 받아서 main()에서 출력하시오
호출함수 : sum(3,5)
sub(7,2)
mul(4,5)
div(7,3)
더하기 : 8
빼 기 : 5
곱하기 : 20
나누기 : 2.33
------------------------------------------------------------------
[문제20] output(10,'#')함수를 호출하여 다음과 같이 출력하시오
조건)출력문에서 for문을 이용하시오
<결과>
# # # # # # # # # #
------------------------------------------------------------------
[문제21]값을 입력받아 함수호출하여 처리하시오
조건1)입력받은 값을 compute(item, qty, price)함수에서 처리
조건2)계산방법 : 금액 = 수량 * 단가
-입력-
품명 : apple
수량 : 10
단가 : 1200
-출력-
품명 : apple
금액 : 12000원
---------------------------------------------------------------------------
[문제22]Argument를 통해 배열의 갯수를 입력받은후
배열갯수만큼 반복하여 데이타를 입력받아 처리하시오
$ java Test22 5
score[0] : 34.5
score[1] : 90.4
.
.
score[4] : 100.0
평균 : ??.?? <--- 소수이하 2째자리
--------------------------------------------------------------------
[문제23]BufferedReader를 이용하여 입력받기
이름, 나이....각각 배열을 3개씩 만들어서 입력 받기
--입력--
이름 : 주몽
나이 : 20
이름 : 소서노
나이 : 21
이름 : 모팔모
나이 : 52
--출력--
주몽 20세
소서노 21세
모팔모 52세
--------------------------------------------------------------------
[문제24] 숫자맞추기 게임
컴퓨가 0~100사이의 임의의수 하나를 발생
55 <----화면에 보이면 안됨
숫자입력(0~100) : 50
크다
숫자입력(0~100) : 60
작다
숫자입력(0~100) : 55
맞았다(3번)
계속(y/n) : y
숫자입력(0~100) :
--------------------------------------------------------------------
[문제25] 배열을이용하여 날짜를 기억시킨후
int []month={31,28,31,30,31,30,31,31,30,31,30,31};
--입력/출력--
원하는 달 : 3
3월은 31일입니다...
--------------------------------------------------------------------
[문제26] 크기가 5인 정수형배열을 잡아 난수(1~50)를 저장하여 출력하시오
--출력--
[정렬전]
num[0]=23 num[1]=45 num[2]=13 num[3]=50 num[4]=25
[정렬후]
num[0]=13 num[1]=23 num[2]=25 num[3]=45 num[4]=50
합 = xx
--------------------------------------------------------------------
[문제27]성적처리프로그램을 작성하시오
==============================================================================
번호 이름 국어 영어 수학 총점 평균 학점 재수강 순위
------------------------------------------------------------------------------
1 소서노 90 95 100
2 주 몽 75 55 65
3 모팔모 100 100 100
-------------------------------------------------------------------------------
처리조건
조건1) 변수
String []name ={"소서노","주몽","모팔모"};
int [][]score = {{90,95,100,0},{75,55,65,0},{100,100,100,0}};
double []avg = {0.0, 0.0, 0.0};
char []grade = new char[3];
String []pass = new String[3];
int []rank ={1,1,1};
조건2) 총점 = 국어 + 영어 + 수학
평균 = 총점/3;
학점 = 90이상 'A' / 80이상 'B' / 70이상 'C' / 60이상 'D' / 나머지는 'F'
(if ~ else if문 이용)
재수강 = 60이상이면 "pass" 60미만이면 "fail"
(if~else문)
순위구하기
---------------------------------------------------------------------------
[문제28]다음을 수정/완성하시오
(1)클래스명:Test28
필드명 : -base:double (초기값:5.0)
-height:double (초기값:3.5)
메서드명: +getArea():double
+getHypotenuse():double
+getPerimeter():double
(2)조건
1)공 식 : 삼각형의 넓이 = (밑변 * 높이) /2
빗변길이 = Math.sqrt(밑변*밑변+높이*높이)
둘레길이 = 밑변 + 높이 + 빗변길이
2) Test28로 객체 ob를 생성한다
3) getArea()는 삼각형의 넓이를 리턴한다
getHypotenuse() 빗변의 길이를 리턴한다
getPerimeter()는 둘레길이를 리턴한다
[출력화면]
삼각형의넓이 : 8.75
빗변길이 : 6.10
둘레길이 : 14.60
--------------------------------------------------------------------
[문제29]함수 overloading을 이용하여 다음을 완성하시오
(1)클래스명:Test29
① 필드명 : PI:double (초기값:3.141593, final로 선언)
② 메소드 :
area(a:int):double => 원의넓이=반지름*반지름*PI
area(a:int, b:int):double => 사각형의넓이=가로*세로
area(a:int, b:int, c:int):doble => 사다리꼴의 넓이=(밑변 + 윗변 )*높이/2
(2)조건
1)각각의 area(3),area(4,5),area(3,4,7) 메서드를 만들어 결과값을 구한다
[결과화면]
원의넓이 : 28.274337
사각형의넓이 : 20.0
사다리꼴의넓이 : 24.5
--------------------------------------------------------------------
[문제30]다중클래스를 만들고 setter & getter를 이용하여 다음을 완성하시오
(1)클래스명: Test30
(2)클래스명: BookShop
필드명 : -bname:String (책이름)
-author:String (저자)
-price:int (가격)
메서드명 : +setBook(bname:String, author:String, price:int):void
+viewBook():void
+setter & getter
(3)조건
1) Test30클래스의 main()메서드에서 BookShop 클래스로 객체 ob를 만든다
2) setBook("자바완성","황완성",25000)로 값을 대입한후 viewBook()메서드로 출력한다
3) setBname("JSP잡기"), setAuthor("송JP"), setPrice(3500)로 값을 대입한후
getBname(), getAuthor(), getPrice()로 출력한다
[출력화면]
책이름 : 자바완성
저 자 : 황완성
가 격 : 25000원
책이름 : JSP잡기
저 자 : 송JP
가 격 : 35000원
---------------------------------------------------------------------------
[문제31] 원의 반지름을 입력받아 넓이를 계산하고 출력하시오
① 필드명 : r : 반지름을 저장할 정수형변수
size : 넓이를 저장할 실수형변수
PI=3.141592 : final키워드 이며 실수형변수
②메소드 : 생성자함수 : Scanner이용해서 입력받을것
process() : 원의넓이를 계산할것
output() : 결과를 출력할것
--입/출력--
반지름 : 10
원의넓이 : 314.16
-----------------------------------------------------------------------
[문제32]생성자 함수를 overloading하여 두수중 큰수를 출력하는
프로그램을 완성하시오.(단, 계산과 출력은 생성자에서 할것)
public static void main(String[] args)
{
Test32 ob1 = new Test32(10,20);
Test32 ob2 = new Test32(12.4, 9.45);
Test32 ob3 = new Test32('Z', 'p');
}
--출력--
max = 20
max = 12.4
max = p
-----------------------------------------------------------------------
[문제33]다음프로그램을 완성하시오
① 필드명: area : 넓이(삼각형, 사다리꼴, 원)를 구하는 실수형변수
PI=3.141592 : final키워드의 실수형변수
② 메소드: 생성자 :area를 0.0으로 초기화
circle() :반지름을 입력받고, 원의넓이 계산한후 출력함수호출
triangle():밑변,높이를 입력받아,삼각형의넓이를 계산한후출력함수호출
trapezoid():아랫변,윗변,높이입력받고,사다리꼴의 넓이 계산한후
출력함수호출
void output():출력
int menu() :메인화면 (***도형선택***) 디자인을 디자인하고
switch문이용 circle/triangle/trapezoid함수를 호출
**** 도형선택 *****
1. 삼각형
2. 원
3. 사다리꼴
4. 종료
선택 : 3
**** 사다리꼴넓이 ****
아랫변: 2
윗 변: 3
높 이: 4
넓이 : ? <---소수이하 2째자리까지
**** 도형선택 *****
1. 삼각형
2. 원
3. 사다리꼴
4. 종료
선택 : 4
감사합니다^.^
---------------------------------------------------------------------------
[문제34] 다음 프로그램을 완성하시오
(1)클래스명 : Salary
①필드 : String name(이름)
int salary (연봉)
②생성자 : Salary(String n, int s) 를 넘겨받아 name, salary에 대입
③메서드 : getInfomation1()메서드에서 이름과 연봉을 출력
(2)클래스명 : Test34 ==> Salary를 상속받음
①필드 : String department (부서)
②생성자 : name, salary,department를 넘겨받아 각각 필드에 대입
필요하면 부모 생성자 호출할수도 있다
③메서드 : getInfomation2()메서드에서 부서출력
(3)main()함수에서
Test34 ob = new Test34("야철대장",85000000,"철기방"); 로 시작할것
(4)출력
이름 : 야철대장
연봉 : 85000000
부서 : 철기방
--------------------------------------------------------------------
[문제35]다음과 같은 결과가 나오도록 수정하시오
(단, main()안의 내용수정과 새로운 Method추가하지마시오)
**** x,y,z에 값채우기***
10을 넘겨받은 생성자
10 20 을 넘겨받은 생성자
10 20 30 을 넘겨받은 생성자
10 20 30
합 : 60
--------------------------------------------------------------------
[문제36] 다음과 같은 결과가 나오도록 수정하시오
(단, main()안의 내용수정과 새로운 Method추가하지마시오)
###인적사항###
이름 : 이순자
나이 : 23
신장 : 165.3
--------------------------------------------------------------------
[문제37] 다음 프로그램을 완성하시오
(1)선조클래스 : Entry
필드명 : String word;
메소드 : Entry(); //***약어사전*** (출력)
Entry(String w); //Entry()호출
public void writeView(); //약어출력
(2)후손클래스 : SubEntry (Entry를 상속받음)
필드명 : String definition;
int year;
메소드 : SubEntry(String w); //Entry(String w) 호출
SubEntry(String w, String d, int y); //SubEntry(String w)호출
public void printView(); //원어, 시기출력
(3)Test37의 main()함수에서
new SubEntry("OOP","Object Oriented Programming", 1991);
(4)출력
*****약어사전******
약어 : OOP
원어 : Object Oriented Programming
시기 : 1991년
--------------------------------------------------------------------
[문제38] 다음 프로그램을 완성하시오
(1)Super클래스명 : Health
필드명 : char gender(성별)
double tall (신장)
double weight(체중)
생성자 : Health() - 초기화
메서드 : input() - 성별, 신장, 체중입력받기
output1() - 출력
(2)Sub클래스(Test38) 에서 Health를 상속받음
필드명 : double s_weight (표준체중)
double fat (비만도)
String result (결과값)
생성자 : s_weight = 0.0; (초기화작업)
fat = 0.0;
result = null;
메소드 : calculate() - 비만도 계산
output2() - 출력
(3) ★표준체중계산법★
남성 : 표준체중 = (신장-100)*0.9
여성 : 표준체중 = (신장-100)*0.85
비만도 = 현재체중(Kg)/표준체중(Kg)*100
--------------------------------------------------
90%이하 : 저체중 121-130% : 경도비만
91 -110% : 정상(표준체중) 131-150% : 중도비만
111-120% : 과체중 150% : 고도비만
(4)출력
***** 비만도 Check *****
성별(M/F) : M <---남(M) / 여(F)
신장(Cm) : 175.3
체중(Kg) : 95.45
성별 - M
신장 - 175.3Cm
체중 - 95.45Kg
당신은 비만도 140.84이고, 중도비만 입니다.