본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Developer_Study/정보처리기사

[정보처리기사 실기] JAVA 활용 문제

by 케리's 2023. 4. 3.

1. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오 (단 , 출력문의 출력 서식을 준수하시오)

class Test {
	public static void main(String args[]) {
            cond obj = new cond(3);
            obj.a = 5;
            int b = obj.func();
            System.out.print(obj.a + b);
	}
}

class cond {
	int a:
	public cond(int a) {
    	this.a = a;
    }


	public int func() {
		int b = 1;
		for (int i = 1; i < a; i++)
			b += a * i;
		return a + b;
	}
}
더보기

61


class Test {
	public static void main(String args[]) {
            cond obj = new cond(3); // cond(3) 
            obj.a = 5; // 다시 a=5대입
            int b = obj.func(); // 56
            System.out.print(obj.a + b); // 5 + 56 = 61 
	}
}

class cond {
	int a:
	public cond(int a) {
    	this.a = a; // a = 3 대입 
    }


	public int func() {
		int b = 1;
		for (int i = 1; i < a; i++) // 1~4까지 for문
			b += a * i; // b = b + a * i 
            // i = 1, b = 1 + 5 * 1 = 6
            // i = 2, b = 6 + 5 * 2 = 16
            // i = 3, b = 16 + 5 * 3 = 31
            // i = 4, b = 31 + 5 * 4 = 51
		return a + b; // a = 5 + 51 = 56
	}
}

 

 

2. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오 (단, 출력문의 출력 서식을 준수하시오)

class A {
	int a:
	int b:
}

public class Test {
	
    static void funcl(A m) {
		m.a *= 10;
	}
	
    static void func2(A m) {
		m.a += m.b;
	}

	public static void main(String args[]) {
		A m = new A();
		m.a = 100;
		funcl(m);
		m.b = m.a;
		func2(m):
		System.out.printf("%d", m.a);
	}
}
더보기

2000


class A {
	int a:
	int b:
}

public class Test {
	
    static void funcl(A m) {
		m.a *= 10;
	}
	
    static void func2(A m) {
		m.a += m.b;
	}

	public static void main(String args[]) {
		A m = new A(); // class A의 객체 변수 m 선언
		m.a = 100; // m의 a = 100 대입
		funcl(m);  // m.a = m.a * 10 = 100 * 10 = 1000
		m.b = m.a; // m.b = 1000 대입
		func2(m):  // m.a = m.a + m.b = 1000 + 1000 = 2000
		System.out.printf("%d", m.a); 2000 출력
	} 
}

 

 

 

3. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오 (단, 출력문의 출력 서식을 준수하시오)

public class ovrl {
	public static void main(String[] args) {
		ovrl al = new ovrl();
		ovr2 a2 = new ovr2();
		System.out.println(al.sun(3,2) + a2.sun(3,2));
	}

	int sun(int x, int y) {
			return x + y;
    }
}

class ovr2 extends ovrl {
		int sun(int x, int y) {
			return x - y + super.sun(x, y);
		}
}
더보기

11 

 

public class ovr1 {
	public static void main(String[] args) {
		ovrl a1 = new ovr1(); // ovr1 클래스의 a1 선언
		ovr2 a2 = new ovr2(); // ovr2 클래스의 a2 선언
		System.out.println(al.sun(3,2) + a2.sun(3,2));
        // System.out.println (return 3+2 = 5 + return 3-2 + 3+2 = 6) 즉  11 출력 
	}

	int sun(int x, int y) {
			return x + y;
    }
}

class ovr2 extends ovrl {
		int sun(int x, int y) {
			return x - y + super.sun(x, y);
		}
}

 

 

 

 

 

4. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오 (단, 출력문의 출력 서식을 준수하시오)

class A {

	int a;
	public A(int a) { this.a = a; }
	void display() { System.out.println("a=" + a); }
}

class B extends A {
	public B(int a) {
		super(a);
		super.display();
	}
}

public class Test {
	public static void main(String[] args) {
		B obj = new B(10);
	}
}
더보기

a = 10


class A {

	int a;
	public A(int a) { this.a = a; } // a = 10
	void display() { System.out.println("a=" + a); } // a = 10 출력
}

class B extends A {
	public B(int a) { // a = 10
		super(a); //부모 class 호출 및 10 대입
		super.display(); // 부모 class display() 호출
	}
}

public class Test {
	public static void main(String[] args) {
		B obj = new B(10); // B class 의 객체 obj 변수를 가진 생성자 선언 인수 (10)대입
	}
}

 

 

 

 

5. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오 (단, 출력문의 출력 서식을 준수하시오)

 

class Connection {

	private static Connection _inst = null;
	private int count = 0;
	static public Connection get() {
		if(_inst == null) {
			_inst new Connection();
			return _inst;
		}
        
		return _inst;
        
        
	public void count() { count++; }
	public int getCount() { return count; }
}


public class Test {

	public static void main(String[] args) { 
    
    Connection conn1 Connection.get(); 
    conn1.count();
	Connection conn2 = Connection.get(); 
    conn2.count();
	Connection conn3 Connection.get();
	conn3.count();
	System.out.print(connl.getCount());
}
더보기

3


class Connection {

	private static Connection _inst = null;
	private int count = 0;
	static public Connection get() {
		if(_inst == null) {
			_inst new Connection();
			return _inst;
		}
        
		return _inst;
        
        
	public void count() { count++; }
	public int getCount() { return count; }
}


public class Test {

	public static void main(String[] args) { 
    
    Connection conn1 Connection.get(); // Connection class의 conn1 객체변수 선언, get() 메소드로 호출
    conn1.count(); //count++  = 1 
	Connection conn2 = Connection.get(); 
    conn2.count(); //count++  = 2 
	Connection conn3 Connection.get();
	conn3.count(); //count++  = 3 
	System.out.print(connl.getCount());
	} // return 3 출력
}

 

 

 

 

 

6. 다음 Java로 구현된 프로그래밍을 분석하여 괄호에 들어가는 값과 출력되는 알맞은 답을 쓰시오.

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

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

public class Test {
	public static void main(String[] args) { 
    Parent pa = ( ) Child();
	pa.show();
	}
}
더보기

() = new

출력 : child

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

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

public class Test {
	public static void main(String[] args) { 
    Parent pa = ( ) Child(); // Child Class의 생성자를 사용하여 Parent Class 객체 변수 pa 선언 = new
	pa.show(); // 오버라이딩으로 child 출력
	}
}

 

 

 

 

7.  다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오 (단, 출력문의 출력 서식을 준수하시오)

 

class Parent {
	int compute(int num) {
		if(num <= 1) return num;
		return compute(num - 1) + compute(num - 2);
	}
}


class Child extends Parent {
	int compute(int num) {
		if(num <= 1) return num;
        return compute(num 1) + compute(num 3);
	}
}


public class Test {
	public static void main(String[] args) {
		Parent obj = new Child();
		System.out.print(obj.compute (4));
	}
}
더보기

1


class Parent {
	int compute(int num) {
		if(num <= 1) return num;
		return compute(num - 1) + compute(num - 2);
	}
}


class Child extends Parent {
	int compute(int num) { // 4 대입
		if(num <= 1) return num; // 1보다 작거나 같을때 num 리턴
        return compute(num - 1) + compute(num - 3);
        //              compute(3) + compute (1) -- 1
        //      compute(2) + compute(0) - 0
        // compute(1) + compute(-1) 
        // 1 + -1 + 0 + 1 = 즉, 1 출력
	}
}


public class Test {
	public static void main(String[] args) {
		Parent obj = new Child(); Child 생성자 obj 객체변수 생성
		System.out.print(obj.compute(4));
	}
}

 

 

 

8 . 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오 (단, 출력문의 출력 서식을 준수하시오)

 

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 Test {
	public static void main(String[] args) { 
    	Vehicle obj = new Car("Spark");
		System.out.print(obj.getName());
	}
}
더보기

Vehicle name : Spark 

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; // Vehicle의 name과 Car의 name 둘다  "Spark" 대입
    }
    
	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"); // 인자있는 Car메소드로 이동
		System.out.print(obj.getName()); 
        // obj.getName() 호출 , 자식 클래스에는 인자없는 메서드가 없다. 따라서 부모의 인자없는 메소드를 탄다.
        // Vehicle name : Spark 출력
	}
}

 

9. 자바 코드의 값을 구하시오 

public class Soojebi{
public static int calc(int[] arr){
	int sum=1;
	for (int num: arr) {
		sum += num;
	}
    
	for (int num: arr) {
		if (num%2==0){
			sum -= num;
		}
	}
	return sum;
}

public static void main(String[] args) { 
	int[] arr = new int[5];
	for (int i=0; i<arr.length; i++){ 
    	arr[i] = i+10;
	}
	System.out.print(calc(arr));
}

 

 

시나공, 유형별로 분류한 프로그래밍 - JAVA 활용 9문제 정보처리기사실기 
http://gilbut.co/c/23037804xW

 

댓글