정보처리기사[실기]

[JAVA] 20년 기출 문제 풀이 (1회 ~ 4회)

microsaurs 2024. 10. 7. 23:15

[20년 1회]

class Main{
	static int[] arr() {
    	int a[] = new int[4];
        int b = a.length;
        for(int i=0; i<b ;i++)
        	a[i] = i;
        return a;
    }

    public static void main(String args[]) {
        int a[] = arr();
        for(int i=0; i < a.length; i++)
        System.out.print(a[i]+" ");
    }
}
더보기

정답 : 0 1 2 3


[20년 2회]

// (가)에 들어갈 알맞은 답

class Parent{
	void show(){System.out.println("parent");}
}

class Child extends Parent{
	void show() {System.out.println("child");}
}

class Main {
	public static void main(String args[]) {
    	Parent pa= (가) Child();
        pa.show();
    }
}
더보기
정답 : new

 

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


[20년 3회]

public class Main {
	public static void main(String[] args) {
    	int i=0, c=0;
        while (i<10) {
        	i++;
            c *= i;
        }
        System.out.println(c);
    }
}
더보기

정답 : 0

 

abstract class Vehicle {
	String name;
    abstract public String getName(String val);
    
    public String getName() {
    	return "Vehicle name:" + name;
    }
}

class Car extends Vehicle {
	private String name;
    public Car(String val) {
    	name = super.name = val;
    }
    public String getName(String val) {
    	return "Car name : " + val;
    }
    public String getName(byte val[]) {
    	return "Car name : " + val;
    }
}

public class Main {
	public static void main(String[] args) {
    	Vehicle obj = new Car("Spark");
        System.out.print(obj.getName());
    }
}
더보기

정답

Vehicle name : Spark

 

main에서 Vehicle obj 객체가 Car 클래스의 인스턴스로 초기화

Car 클래스에서 name은 Vehicle, Car 모두 val로 초기화 → name = Spark

obj.getName()이 Vehicle의 메서드가 호출되는 이유

= Car 클래스에는 매개변수가 없는 getName 메서드가 정의되지 않았기 때문에 상속받은 부모 클래스에서 getName()을 호출

➡️ 메서드 오버라이딩

 

public class Main {
	public static void main(String[] args) {
    	int i=0, sum=0;
        while (i<10) {
        	i++;
            if(i%2 == 1)
            	continue;
                sum += i;
        }
        System.out.println(sum);
    }
}
더보기

정답 : 30

2 + 4 + 6 + 8 + 10

 


[20년 4회]

// 다음은 변수 n에 저장된 10진수를 2진수로 변환하여 출력하는 java 프로그램이다
// 프로그램을 분석하여 (1번) (2번) 빈칸에 알맞은 답을 쓰시오

class Main {
	public static void main(String[] args) {
    	int[]a = new int[8];
        int i=0; int n=10;
        while (1번) {
        	a[i++] = (2번);
            n /= 2;
        }
        for (i=7; i>=0; i--) {
        	System.out.print(a[i]);
        }
    }
}
더보기

정답

(1)  n > 0

(2) n % 2

 

// 가,나의 답을 쓰시오

public class Main {
	public static void main(String[] args) {
    	int ary[][] = new int[가][나];
        
        for(int i=0; i<3; i++) {
        	for(int j=0; j<5; j++) {
            	ary[i][j] = j*3+(i+1);
                System.out.print(ary[i][j]+"");
            }
            System.out.println();
        }
    }
}
더보기

정답

(가) 3

(나) 5

 

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 Main {
	public static void main(String[] args){
    	Parent obj = new Child();
        System.out.print(obj.compute(4));
    }
}
더보기

정답 : 1