◎ 2022년 1회 03번
class A {
int a;
int b;
}
public class Test {
static void func1(A m) {
m.a *= 10;
}
static void func2(A m) {
m.a += m.b;
}
public static void main(String args[]) {
A.m =n new A();
m.a = 100;
func1(m);
m.b = m.a;
func2(m);
System.out.printf("%d", m.a);
}
}
* 참고

1) func1(m) 호출 -> m.a 가 100이므로 m.a *= 10; 은 1000이 된다.
2 func2(m) 호출 -> m.a 가 100이므로 m.a += m.b; 는 2000이 된다.
♣ 정답 -> 2000
◎ 2022년 1회 11번
스레드에 관한 코드
class Car implements Runnable {
int a;
pulic void run() {
//...
}
}
public class Test {
public static void main(String args[]) {
Tread t1 = new Thread(new _______());
t1.start();
}
}
* 참고(스레드란? : 프로세스(process) 내에서 실제로 작업을 수행하는 주체를 의미)
1) 스레드를 만들기 위해서는 Runnable 인터페이스를 상속받는다.
2) 스레드를 생성하기 위해서 new 뒤에 Runnable 인터페이스를 상속받은 스레드 클래스로 선언해 준다.
♣ 정답 -> Car
◎ 2022년 2회 07번
public class Test {
public static void main(String[] args) {
int i = 3;
int k = 1;
switch(i) {
case 1 : k += 1;
case 2 : k += 1;
case 3 : k += 1;
case 4 : k += 1;
case 5 : k += 1;
default : k--;
}
System.out.printf("%d", k);
}
}
* switch case 문에서 break가 없으면 다음 case 문 실행
1) i가 3이므로 case 3 실행
2) case 3 : k=0
3) case 4 : k=3
4) case 5 : k= 3-10 = -7
5) default : -8
♣ 정답 -> -8
◎ 2022년 2회 17번
public class Test {
int a;
public Test(int a) {
this.a = a;
}
int func() {
int b = 1;
for(int i=1; i<a; i++) {
b = a * i + b;
}
return a + b;
}
public static void main(String[] arggs) {
Test obj = new Test(3);
obj.a = 5;
int b = obj.func();
System.out.print(obj.a + b);
}
}
* Test class에서 int a를 3이 되었지만, main에서 obj.a = 5
1) int b = obj.func() 실행 / a = 5, b =1
2) for문 실행
3) b=5*1+1 = 6
b=5*2+6 = 16
b=5*3+16 = 31
b=5*4+31 = 51
4) for문이 끝나고 return a+b = 5+51 = 56
5) obj.a + b 출력 5+56 = 61
♣ 정답 -> -61
◎ 2022년 3회 04번
class Test {
public static void main(String[] args) {
int[] result = new int[5];
int[] arr = {79, 34, 10, 99, 50};
for(int i=0; i<5; i++) {
result[i] = 1;
for(int j=0; j<5; j++) {
if(arr[i] < arr[j]) result[i]++;
}
}
for(int k=0; k<5; k++) {
System.out.ptint(result[k]);
}
}
}
* for문이 많을 시 규칙 찾고, 헷갈리지 않게 표 만들고 차근차근 계산
1) result [i]의 초기값은 1
2) arr배열에서 자기 자신보다 큰 수이면 result [i] 값을 1씩 증가
i = 0 | i = 1 | i = 2 | i = 3 | i =4 | |
j = 0 | 1 | 2 | 2 | 1 | 2 |
j = 1 | 1 | 2 | 3 | 1 | 2 |
j = 2 | 1 | 2 | 3 | 1 | 2 |
j = 3 | 2 | 3 | 4 | 1 | 3 |
j = 4 | 2 | 4 | 5 | 1 | 3 |
♣ 정답 -> 24513
◎ 2022년 3회 19번
public class Test {
static int[] MakeArray() {
int[] tempArr = new int[4];
for(int i=0; i<tempArr.length; i++) {
tempArr[i] = i;
}
return tempArr;
}
public static void main(String[] args) {
int[] intArr;
intArr = MakeArray();
for(int i=0; i<intArr.length; i++) {
System.out.print(intArr[i]);
}
}
}
1) main 함수에서 intArr 배열을 선언하고 MakeArray 함수를 통해 결과를 intArr에 저장
2) MakeArry 함수에서 크기 4인 tempArr 배열 선언하고, for문을 통해 배열의 크기에 따라 반복하며 1씩 증가하는 i값을 넣고 반환
♣ 정답 -> 0123
◎ 2022년 3회 20번
public class Test {
public static void main(String[] args) {
int a = 0;
for(int i=1; i<999; i++) {
if(i%3==0 && i%2 != 0)
a = i;
}
System.out.print(a);
}
}
1) a를 0으로 초기화
2) for 문에 i를 1~998까지 반복
3) if문에서 3으로 나누어 떨어지고, 2로 나누어 떨어지지 않는 결과만 a에 대입 (즉, 3의 배수 중 짝수는 제외)
♣ 정답 -> 993
'자격증 > 정보처리기사 실기' 카테고리의 다른 글
정보처리기사[실기] 기출문제_C언어(2021년도) (47) | 2023.09.20 |
---|---|
정보처리기사[실기] 기출문제_C언어(2020년도) (50) | 2023.09.19 |
정보처리기사[실기] 기출문제_자바(2021년도) (41) | 2023.09.17 |
정보처리기사[실기] 기출문제_자바(2020년도) (42) | 2023.09.15 |
[정처기 실기 정리] 1장 요구사항 확인 (스크럼 기법) (1) | 2022.05.24 |