인사말

안녕하세요. 이 글을 읽고 계신다면 정보처리기사 또는 정보처리산업기사 수험생이실 것 같습니다.

여러 좋은 서적에서 이론을 잘 설명하고 있지만, 코딩 문제의 경우 같은 문제를 여러 번 풀다 보면 답이 머리에 기억되어 새로운 문제가 필요하게 되는 순간이 옵니다.

그럴 때 더 많은 문제를 풀어보고 도움이 되게 하고자 여러 C언어, JAVA, Python 문제를 변형 시키고 직접 컴파일하여 답을 확인하면서 문제를 만들었습니다.

정보처리 실기를 공부하시는 모든 수험생 여러분, 목표하는 모든 것이 이루어지는 그날까지 응원하겠습니다. 화이팅!

목표를 향해 열심히 노력하시고, 좋은 결과 있기를 기원합니다!

 

 

정보처리기사 실기 언어 코딩 기출변형 문제

 

1. 출력 값을 작성하시오.

class BaseClass {
    void f() {
        System.out.println("No arguments");
    }

    void f(int i) {
        System.out.println("Single argument: " + i);
    }

    void f(int i, int j) {
        System.out.println("Two arguments: " + (i + j));
    }

    void f(int i, int j, int k) {
        System.out.println("Three arguments: " + (i + j + k));
    }
}

class Main {
    public static void main(String[] args) {
        BaseClass obj = new BaseClass();
        obj.f();
        obj.f(10);
        obj.f(20, 30);
        obj.f(5, 15, 25);
    }
}
정답

No arguments
Single argument: 10
Two arguments: 50
Three arguments: 45

2. 출력 값을 작성하시오.

class MathOperations {
    public int calculate(int a, int b) {
        return a - b;
    }

    public float calculate(float a, float b) {
        return a - b;
    }

    public double calculate(double a, double b) {
        return a + b;
    }

    public int calculate(int a, int b, int c) {
        return a + b + c;
    }

    public double calculate(double a, double b, double c) {
        return a * b * c;
    }
}

class Main {
    public static void main(String[] args) {
        MathOperations mathOps = new MathOperations();
        System.out.println(mathOps.calculate(31, 69, 25));
        System.out.println(mathOps.calculate(24.8, 5.1));
        System.out.println(mathOps.calculate(5.5, 4.4, 3.3));
        System.out.println(mathOps.calculate(15, 5));
    }
}
정답

125
29.9
79.86
10

3. 출력 값을 작성하시오.

class Calculator {
    public static void main(String[] args) {
        int num1 = 1, num2 = 2;
        double num3 = 3.8, num4 = 5.7;
        int[] array = {10, 20, 30, 40};
        double[] doubleArray = {1.1, 2.2, 3.3, 4.4};

        System.out.print(add(num3, num4) + " ");
        System.out.print(add(num1, num2) + " ");
        System.out.print(add(array) + " ");
        System.out.print(add(doubleArray));
    }

    public static int add(int a, int b) {
        return a + b;
    }

    public static double add(double a, double b) {
        return a + b;
    }

    public static int add(int[] arr) {
        int total = 0;
        for (int value : arr) {
            total += value;
        }
        return total;
    }

    public static double add(double[] arr) {
        double total = 0;
        for (double value : arr) {
            total += value;
        }
        return total;
    }
}
정답

9.5 3 100 11.0

4. 출력 값을 작성하시오.

class BaseAdder {
    public int add(int a, int b) {
        return a + b;
    }

    public double add(double a, double b) {
        return a + b;
    }

    public String add(String a, String b) {
        return a + b;
    }
}

class AdvancedComputer extends BaseAdder {
    private int x;

    public int calculate(int flag, int a, int b) {
        if (flag == 1) {
            return add(a, b);
        } else {
            return x;
        }
    }

    public double calculate(int flag, double a, double b) {
        if (flag == 1) {
            return add(a, b);
        } else {
            return x;
        }
    }
}

class Main {
    public static void main(String[] args) {
        AdvancedComputer ac = new AdvancedComputer();
        System.out.println("100 + 200 = " + ac.calculate(1, 100, 200));
        System.out.println("5.7 + 9.8 = " + ac.calculate(1, 5.7, 9.8));
        System.out.println("\"Hello\" + \" World\" = " + ac.add("Hello", " World"));
    }
}
정답

100 + 200 = 300
5.7 + 9.8 = 15.5
“Hello” + ” World” = Hello World

5. 출력 값을 작성하시오.

class Base {
    static void staticMethod() {
        System.out.print("1");
    }
   
    void instanceMethod() {
        System.out.print("2");
    }
}

class Derived extends Base {
    static void staticMethod() {
        System.out.print("3");
    }

    void instanceMethod() {
        System.out.print("4");
    }
}

class ExtendedDerived extends Derived {
    static void staticMethod() {
        System.out.print("5");
    }

    void instanceMethod() {
        System.out.print("6");
    }
}

class MainClass {
    public static void main(String[] args) {
        Base obj1 = new Derived();
        Base obj2 = new ExtendedDerived();
        Derived obj3 = new ExtendedDerived();
       
        obj1.staticMethod();
        obj1.instanceMethod();
       
        obj2.staticMethod();
        obj2.instanceMethod();

        obj3.staticMethod();
        obj3.instanceMethod();
    }
}
정답

141636

6. 출력 값을 작성하시오.

class Base {
    int compute(int a, int b) {
        return a + b;
    }
}

class Intermediate extends Base {
    int compute(int a, int b, int c) {
        return a * b + super.compute(b, c);
    }
}

class Advanced extends Intermediate {
    int compute(int a, int b, int c, int d) {
        return a - b + super.compute(b, c, d);
    }
}

class Example {
    public static void main(String[] args) {
        Base base = new Base();
        Intermediate intermediate = new Intermediate();
        Advanced advanced = new Advanced();

        System.out.println(base.compute(1, 2));
        System.out.println(intermediate.compute(2, 3, 4));
        System.out.println(advanced.compute(3, 2, 1, 4));
    }
}
정답

3
13
8

7. 출력 값을 작성하시오.

class Alpha {
    public void display() { System.out.print("X"); }
    public static void show() { System.out.print("Y"); }
}

class Beta extends Alpha {
    public void display() { System.out.print("Z"); }
}

class Gamma extends Beta {
    public static void show() { System.out.print("W"); }
}

class Delta {
    public static void main(String[] args) {
        Alpha alphaRef = new Gamma();
        Beta betaRef = new Gamma();
        Gamma gammaRef = new Gamma();

        alphaRef.display();
        alphaRef.show();

        betaRef.display();
        betaRef.show();

        gammaRef.display();
        gammaRef.show();
    }
}
정답

ZYZYZW

8. 출력 값을 작성하시오.

class GeometricShape {
    void draw() {
        System.out.println("Drawing a Geometric Shape");
    }
}

class Ellipse extends GeometricShape {
    void draw() {
        System.out.println("Drawing an Ellipse");
    }
}

class Triangle extends GeometricShape {
    void draw() {
        System.out.println("Drawing a Triangle");
    }
}

class Rectangle extends GeometricShape {
    void draw() {
        System.out.println("Drawing a Rectangle");
    }
}

class ShapesTest {
    public static void main(String[] args) {
        GeometricShape shape1 = new GeometricShape();
        Ellipse shape2 = new Ellipse();
        Triangle shape3 = new Triangle();
        Rectangle shape4 = new Rectangle();
       
        GeometricShape shape;
        shape = shape1; shape.draw();
        shape = shape2; shape.draw();
        shape = shape3; shape.draw();
        shape = shape4; shape.draw();
    }
}
정답

Drawing a Geometric Shape
Drawing an Ellipse
Drawing a Triangle
Drawing a Rectangle

9. 출력 값을 작성하시오.

class Alpha {
    int a;
    Alpha() { a = 5; }
    void display() { System.out.print(a + ","); }
}

class Beta extends Alpha {
    int b = 10;
    int c = 5;
    Beta() { c = 15; }
    void display() { System.out.print(c + ","); }
    void parentDisplay() { super.display(); }
}

class Gamma extends Beta {
    int d;
    Gamma() {
        super();
        d = 25;
    }
    void display() { System.out.print(d + ","); }
    void test() {
        display();
        super.parentDisplay();
        System.out.print(super.c + ",");
        System.out.println(b);
    }

    public static void main(String[] args) {
        Gamma gamma = new Gamma();
        gamma.test();
    }
}
정답

25,5,15,10

10. 출력 값을 작성하시오.

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

class B extends A {
    int calculate(int num) {
        if (num <= 1) return num;
        return calculate(num - 1) + calculate(num - 3);
    }
}

class Test {
    public static void main(String[] args) {
        A obj = new B();
        System.out.print(obj.calculate(5));
    }
}
정답

1