🍉 2020년 1회 13번
출력 결과
public class Test {
static int nSize = 4;
public static void main(String[] args) {
int[] arr = new int[nSize];
makeArray(arr);
for(i = 0;i < nSize;i++) {
System.out.print(arr[i] + " ");
}
int i;
}
public static void makeArray(int[] arr) {
for(int i = 0;i < nSize;i++) {
arr[i] = i;
}
}
}
답 : 0 1 2 3
for문을 이용한 간단한 출력문이다.
makeArray() 메서드에 배열 변수인 arr을 인자로 넘겨주기에,
주소값을 아는 배열 변수의 값을 makeArray() 메서드에서 변경할 수 있다.
🍉 2020년 1회 14번
출력 결과
public class test {
public static void main(String[] args) {
int i = 3;
int k = 1;
switch(1) {
case 0:
case 1:
case 2:
case 3:
k = 0;
case 4:
k += 3;
case 5:
k -= 10;
default:
k--;
}
System.out.print(k);
}
}
답 : -8
swicth-case 조건문에서 break를 유의하여 보도록 한다.
해당 문제에서는 조건에 의해 case1이 실행되었으나,
break문의 부재로 case1~case5와 default문까지 전부 실행되었다.
🍉 2020년 2회 5번
빈 칸
class Parent {
void show() {
System.out.println("Parent");
}
}
class Child extends Parent {
void show() {
System.out.println("Child");
}
}
public void Main() {
Parent pa = (빈 칸) Child;
pa.show();
}
답 : new
🍉 2020년 2회 19번
출력 결과
class A {
private int a;
public A(int a) {
this.a = a;
}
public void display() {
System.out.println("a=" + a);
}
}
class B extends A {
public B(int a) {
super(a);
super.display();
}
}
public class Main {
public static void main(String[] args) {
B obj = new B(10);
}
}
답 : a= 10
상속 관련 문제이다.
상속받은 부모의 생성자를 호출하는 super() 메서드를 사용한다.
또한, 상속받은 부모를 가리키는 참조 변수 super를 사용하여
super.함수명 또는 super.변수명과 같이 사용할 수 있다.
🍉 2020년 3회 15번
출력 결과
abstract class Vehicle {
private String name;
abstract public String getName(String val);
public String getName() {
return "Vehicle name: " + name;
}
public ovid setName(String val) {
name val;
}
}
class Car extends Vehicle {
public Car(String val) {
setName(val);
}
public String getName(String val) {
return "Car name: " + val;
}
public String getName(byte val[]) {
return "Car name: " + val;
}
}
public class Test {
public static void main(String[] args) {
Vehicle obj = new Car("Spark");
System.out.print(obj.getName());
}
}
답 : Vehicle name: Spark
상속 관계를 이해하고 있어야 한다.
Vehicle obj = new Car("Spark")에서 업캐스팅이 되었다.
이러면 자식 클래스인 Car의 멤버들의 사용이 제한되지만,
딱히 그것과 상관없이 obj.getName() 메서드를 사용하여
부모 클래스인 Vehicle의 getName() 메서드를 호출하였다.
🍉 2020년 3회 18번
출력 결과
public class Test {
public static void main(String[] args) {
int i = 0;
int sum = 0;
while(i < 10) {
i++;
if(i % 2 == 1)
continue;
sum += i;
}
System.out.println(sum);
}
}
답 : 30
while 반복문을 이용한 문제다.
if(i % 2 == 1) 조건문에서 i가 홀수인 경우엔 continue로 반복문의 처음으로 되돌아간다.
즉, 0~9 사이의 값에서 짝수들의 합을 출력하는 문제이다.
🍉 2020년 4회 5번
빈 칸
class Test {
public static void main(String[] args) {
int[] a = new int[8];
int i = 0, n = 10;
while(①) {
a[i++] = ②;
n /= 2;
}
for(i = 7;i >= 0;i--) {
System.out.printf("%d", a[i]);
}
}
}
// 출력 결과
// 00001010
① : n > 0
② : n % 2
for문에서 배열의 요소를 반대로 출력하는 것을 유의하며 푼다.
🍉 2020년 4회 19번
출력 결과
class Parent {
public int compute(int num) {
if(num <= 1)
return num;
return compute(num - 1) + compute(num - 2);
}
}
class Child extends Parent {
public int compute(int num) {
if(num <= 1)
return num;
return compute(num - 1) + compute(num - 3);
}
}
class Test {
public static void main(String[] args) {
Parent obj = new Child();
System.out.println(obj.compute(4));
}
}
답 : 1
Parent obj = new Child();에서 Child 인스턴스를 생성함과 동시에 업캐스팅한다.
obj.compute(4)를 호출할 경우, 오버라이딩으로 Child의 compute() 메서드를 호출한다.
obj.compute(4) => compute(3) + compute(1)
compute(3) + compute(1) => compute(2) + compute(0) + 1
compute(2) + 0 + 1 => compute(1) + compute(-1) + 0 + 1
compute(1) + compute(-1) + 0 + 1 => 1 + (-1) + 0 + 1 = 1
'정보처리기사 > 기출' 카테고리의 다른 글
[정보처리기사] 기출문제_C언어 (2021년 실기) (0) | 2024.04.18 |
---|---|
[정보처리기사] 기출문제_C언어 (2020년 실기) (0) | 2024.04.18 |
[정보처리기사] 기출문제_JAVA (2023년 실기) (0) | 2024.04.17 |
[정보처리기사] 기출문제_JAVA (2022년 실기) (0) | 2024.04.17 |
[정보처리기사] 기출문제_JAVA (2021년 실기) (0) | 2024.04.17 |