본문 바로가기
📍Certificate/Engineer Information Processing

[정보처리기사] 실기 프로그래밍언어 3문제 (30)

by Sun A 2024. 10. 12.

1️⃣ [JAVA]

2024.1회

아래 JAVA언어 코드의 실행 순서를 중복 번호없이 작성하시오.

class Parent {
    int x, y;
 
    Parent(int x, int y) { ①
        this.x=x;
        this y=y;
    }
 
    int getT() { ②
        return x*y;
    }
}
 
 
 
​class Child extend Parent {
    int x;
 
    Child (int x) { ③
        super(x+1, x);
        this.x=x;
    }
 
    int getT(int n){ ④
        return super.getT()+n;
    }
}
 
 
 
class Main {
    public static void main(String[] args) { ⑤
        Parent parent = new Child(3); ⑥
        System.out.println(parent.getT()); ⑦
    }
}

실행 순서 : 5 → ( ) → ( ) → ( ) → ( ) → ( )
6 -> 3 -> 1 -> 7 -> 2

6의 Child가 실행될 때, 3에서 super(x+1, x)를 계산하기 위해서는 1을 실행해야 한다. 그래서 6 -> 3 -> 1 

 

2️⃣ [C언어]

2023.3회

다음 C언어 코드에 알맞는 출력값을 작성하시오. (복숩)

#include

int f(int n) {
	if(n <= 1) return 1;
    else return n*f(n-1);
}

int main() {
 printf("%d", f(7));
}
5040

n의 값이 7이기 때문에 else 로 계산한다.

그리고 n <= 1일 때 return 1이기 때문에 n-1값이 1이 될때까지 else를 반복한다.

7 * 6 * 5 * 4 * 3 * 2 * 1 = 5040

 

3️⃣ [C언어]

2024.1회

다음 C언어 코드에서 알맞는 출력 값을 작성하시오.

int main() {
 
    int v1 = 0, v2 = 35, v3 = 29;
    if(v1 > v2 ? v2 : v1) {
        v2 = v2 < < 2;
    }else{
        v3 = v3 < < 2;
    }    
    printf("%d", v2+v3);
 
}
151

* 삼항 연산자 ? : 조건식 ? 참일 때 값 : 거짓일 때 값;

if(v1 > v2 ? true : false)

v1은 v2보다 작기 때문에 false 

if(false)이므로 else 실행

v3 = v3 << 2 에서 왼쪽 시프트 연산자를 2번 실행하면 v3 값에서 *(2^2) 를 해준다.

116 + 35 = 151