1️⃣ [JAVA]
2024.2회
다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
interface Number {
int sum(int[] a, boolean odd);
}
public class Main {
public static void main(String[] args) {
int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
OENumber OE = new OENumber();
System.out.print(OE.sum(a, true) + ", " + OE.sum(a, false));
}
}
class OENumber implements Number {
public int sum(int[] a, boolean odd) {
int result = 0;
for(int i=0; i < a.length; i++) {
if((odd && a[i] % 2 != 0) || (!odd && a[i] % 2 == 0))
result += a[i];
}
return result;
}
}
25, 20
우선 print를 보면 OE 클래스의 sum(a, true)와 sum(a, false) 값을 구하는 것이다.
odd 는 boolean 값이고 print에 선언되어 있다.
for을 보면 i가 a.length보다 적은 수 까지 반복하는데 a의 인덱스가 다 돌때까지 반복한다고 생각하면 된다.
먼저 odd가 true라고 가정하고 생각해보자
조건문에서 (odd && a[i] % 2 != 0)를 보면 result 값을 더하기 위해서는 odd가 !odd 인 조건은 계산하지 않는다.
||는 or 이기 때문에 하나의 조건만 만족해도 더할 수 있다.
a[i]를 2로 나눈 나머지가 0이 아니라는 것은 홀수라는 의미이다. 그렇다면 odd 값이 true일때는 a가 홀수인 값을 다 더하면 된다.
25
반대로 odd가 false일때는 !odd 여야 true 값이 나오기 때문에 a[i]를 2로 나눈 나머지 값이 0이 되는 짝수의 수만 더하면 된다.
20
2️⃣ [C언어]
2024.2회
다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
#include
void swap() {
int a = 11;
int b = 19;
int t = a;
a = b;
b = t;
}
int main() {
int a = 11;
int b = 19;
swap();
switch(a) {
case 1:
b += 1;
case 11:
b += 2;
default:
b += 3;
break;
}
printf("%d", a-b);
}
-13
swap() 함수는 main 출력에서 영향을 주지 않기 때문에 신경쓰지 않고 switch 값만 계산한다.
a가 11이기 때문에 case 11에서 b는 19 + 2 = 21이 되며 default에서 다시 3을 더하기 때문에 24가된다.
11 - 24 = -13
3️⃣ [C언어]
2023.2회
다음 소스코드의 알맞은 출력 결과를 작성하시오
#include <stdio.h>
int main(){
int c = 0;
for(int i = 1; i <= 2023; i++){
if(i%4 == 0) c++;
}
printf("%d", c);
}
505
if 조건문을 보면 4로 나눈 나머지 값이 0인 i의 값이 있을때마다 c의 값이 1씩 늘어난다.
그럼 이 문제는 2023보다 작은 수 중, 4의 배수 값이 몇개가 되는 지 구하면 된다.
우선 2023보다 작으면서 4의 배수 중 가장 큰 수는 2020 = 4 * 505 이다.
4의 배수 개수는 505개이기 때문에 답은 505이다.
'📍Certificate > Engineer Information Processing' 카테고리의 다른 글
[정보처리기사] 실기 프로그래밍언어 3문제 (29) (0) | 2024.10.12 |
---|---|
[정보처리기사] 실기 이론 문제 (9) (8) | 2024.10.12 |
[정보처리기사] 실기 프로그래밍언어 3문제 (27) (1) | 2024.10.12 |
[정보처리기사] 실기 이론 문제 (8) (2) | 2024.10.11 |
[정보처리기사] 실기 프로그래밍언어 3문제 (26) (1) | 2024.10.11 |