[3-1] 다음 연산의 결과를 적으시오.
public class Exercise3_1 {
public static void main(String[] args) {
int x=2;
int y=5;
char c = 'A';
System.out.println(1+x<<33);
System.out.println(y>=5||x<0&&x>2);
System.out.println(y+=10-x++);
System.out.println(x+=2);
System.out.println(!('A'<=c&&c<='Z'));
System.out.println('C'-c);
System.out.println('5'-'0');
System.out.println(c+1);
System.out.println(++c);
System.out.println(c++);
System.out.println(c);
}
}
답:
6
true
13
5
false
2
5
66
B
B
C
참고: 시프트 연산(대상 숫자를 2진수로 나타낸 후 계산 후 그 결과를 다시 10진수로 변환)
[3-2] 다음 연산의 결과를 적으시오.
아래의 코드는 사과를 담는데 필요한 바구니(버켓)의 수를 구하는 코드이다 만일 사과의 수가 123개이고, 하나의 바구니에는 10개의 사과를 담을 수 있다면, 13개의 바구니가 필요할 것이다. (1)에 알맞은 코드를 넣으시오.
답: 13
public class Exercise3_2 {
public static void main(String[] args) {
int numOfApples=123;
int sizeOfBucket=10;
int numOfBucket=numOfApples/sizeOfBucket + (numOfApples%sizeOfBucket==0?0:1);
System.out.println(" 필요한 바구니의 수 :"+numOfBucket);
}
}
[3-3] 아래는 변수 num의 값에 따라 '양수', '음수', '0'을 출력하는 코드이다. 삼항 연산자를 이용헤서 (1)에 알맞은 코드를 넣으시오.
답:
public class Exercise3_3 {
public static void main(String[] args) {
int num=10;
System.out.println(num>0?"양수":num<0?"음수":0);
}
}
[3-4] 아래는 변수 num의 값 중에서 백의 자리 이하를 버리는 코드이다. 만일 변수 num의 값이 '456'이라면 '400'이 되고, '111'이라면 '100'이 된다. (1)에 알맞은 코드를 넣으시오.
답:
public class Exercise3_4 {
public static void main(String[] args) {
int num=111;
System.out.println(num/100*100);
}
}
[3-5] 아래는 변수 num의 값 중에서 일의 자리를 1로 바꾸는 코드이다. 만일 변수 num의 값이 333이라면 331이 되고, 777이라면 771이 된다. (1)에 알맞은 코드를 넣으시오.
답:
public class Exercise3_5 {
public static void main(String[] args) {
int num=333;
System.out.println(num/100 *100 + num/100*10 + 1);
}
}
[3-6] 아래는 변수 num의 값보다 크면서도 가장 가까운 10의 배수에서 변수 num의 값을 뺀 나머지를 구하는 코드이다. 예를 들어, 24의 가장 크면서도 가장 가까운 10의 배수는 30이다. 19의 경우 20이고, 81의 경우 90이 된다. 30에서 24를 뺀 나머지는 6이기 때문에 변수 num의 값이 24라면 6을 결과로 얻어야 한다. (1)에 알맞은 코드를 넣으시오.
답:
public class Exercise3_6 {
public static void main(String[] args) {
int num=24;
System.out.println((num/10*10)+10-num);
}
}
[3-7] 아래는 화씨(Fahrenheit)를 섭씨(Celcius)로 변환하는 코드이다. 변환공식이 'C =
5/9 × (F - 32)'라고 할 때, (1)에 알맞은 코드를 넣으시오. 단, 변환 결과값은 소수점
셋째자리에서 반올림해야한다. (Math.round()를 사용하지 않고 처리할 것)
답:
public class Exercise3_7 {
public static void main(String[] args) {
int fahrenheit = 100;
float celcius = (int)((5/9f * (fahrenheit - 32))*100 + 0.5) / 100f;
System.out.println("Fahrenheit:"+fahrenheit);
System.out.println("Celcius:"+celcius);
}
}
[3-3] 아래 코드의 문제점을 수정해서 실행결과와 같은 결과를 얻도록 하시오.
답:
public class Exercise3_8 {
public static void main(String[] args) {
byte a=10;
byte b=20;
int c=a+b;
char ch='A';
ch= (char) (ch+2);
float f=3/2 + (float) 1/2;
long l= (long) 3000*3000*3000;
float f2=0.1f;
double d=0.1;
boolean result= (float) d==f2;
System.out.println("c="+c);
System.out.println("ch="+ch);
System.out.println("f="+f);
System.out.println("l="+l);
System.out.println(f2);
System.out.println(d);
System.out.println("result="+result);
}
}
[실행결과]
c=30
ch=C
f=1.5
l=27000000000
0.1
0.1
result=true
[3-9] 다음은 문자형 변수 ch가 영문자(대문자 또는 소문자)이거나 숫자일 때만 변수 b의 갑이 true가 되도록 하는 코드이다. (1)에 알맞은 코드를 넣으시오.
답:
public class Exercise3_9 {
public static void main(String[] args) {
char ch='z';
// 조건식 'a' <= ch && ch <= 'z'는 ch가 소문자 알파벳(a부터 z까지)인지를 확인
// 조건식 'A' <= ch && ch <= 'Z'는 ch가 대문자 알파벳(A부터 Z까지)인지를 확인
// 조건식 '0' <= ch && ch <= '9'는 ch가 숫자(0부터 9까지)인지를 확인
// 10부터는 두 자리 숫자라 단일 문자로 취급되지 않음
boolean b = ('a' <= ch && ch <= 'z') || ('A' <= ch && ch <= 'Z') || ('0' <= ch && ch <='9');
System.out.println(b);
}
}
[3-10] 다음은 대문자를 소문자로 변경하는 코드인데, 문자 ch에 저장된 문자가 대문자인 경우에만 소문자로 변경한다. 문자코드는 소문자가 대문자보다 32만큼 더 크다. 예를들어 'A'의 코드는 65이고 'a'의 코드는 97이다 (1)~(2)에 알맞은 코드를 넣으시오.
답:
// 방법1
public class Exercise3_10 {
public static void main(String[] args) {
char ch = 'A';
char lowerCase = (Character.isUpperCase(ch)) ? (Character.toLowerCase(ch)) : ch;
System.out.println("ch:"+ch);
System.out.println("ch to lowerCase:"+lowerCase);
}
}
// 방법2
class Exercise3_10_2 {
public static void main(String[] args) {
char ch = 'A';
char lowerCase = (ch < 65) ? (char) (ch - 32) : (char) (ch + 32);
System.out.println("ch:"+ch);
System.out.println("ch to lowerCase:"+lowerCase);
}
}
'개념' 카테고리의 다른 글
[JAVA의 정석] Chapter04_연습문제 (0) | 2024.09.19 |
---|---|
[JAVA의 정석] Chapter02_연습문제 (0) | 2024.09.19 |
[JAVA의 정석] Chapter16 (4) | 2024.09.08 |
[JAVA의 정석] Chapter15 (0) | 2024.09.08 |
[JAVA의 정석] Chapter14 (2) | 2024.09.08 |