2021 정보처리기사 실기 1회 5번
문제
5. 다음은 파이썬 코드이다. 출력 결과를 쓰시오.
1
2
3
4
5
6
7
8
9
|
|
class good :
li = ["seoul", "kyeonggi","inchon","daejeon","daegu","pusan"]
g = good()
str01 = ''
for i in g.li:
str01 = str01 + i[0]
print(str01)
|
cs |
정답
skiddp
해설
- good라는 이름의 클래스를 정의합니다. 이 클래스 내에는 li라는 이름의 클래스 변수가 있으며, 이 변수는 여러 도시 이름을 문자열로 가지고 있는 리스트입니다: ["seoul", "kyeonggi", "inchon", "daejeon", "daegu", "pusan"].
- g = good()을 통해 good 클래스의 인스턴스를 생성합니다. 이 인스턴스는 클래스 변수 li에 접근할 수 있습니다.
- str01 = ''를 사용하여 빈 문자열 str01을 생성합니다.
- for i in g.li: 루프를 사용하여 g.li 리스트에 있는 각 항목에 대해 반복합니다. 여기서 i는 리스트의 각 요소(도시 이름)를 나타냅니다.
- 루프의 각 반복에서 str01 = str01 + i[0]는 i의 첫 번째 문자 (즉, 각 도시 이름의 첫 글자)를 str01에 추가합니다.
루프가 끝난 후, str01에는 g.li에 있는 각 도시 이름의 첫 글자가 순서대로 연결되어 있습니다. 코드의 실행 결과는 str01에 ["seoul", "kyeonggi", "inchon", "daejeon", "daegu", "pusan"]의 각 항목의 첫 글자인 s, k, i, d, d, p가 연결된 문자열 skiddp가 저장됩니다.
따라서 최종적인 출력 결과는 skiddp입니다.
2021 정보처리기사 실기 1회 7번
문제
7. 다음 Java 프로그램 결과를 쓰시오.
1
2
3
4
5
6
7
8
|
public class good{
public static void main(String[] args){
int[][]arr = new int[][]{{45,50,75},{89}};
System.out.println(arr[0].length);
System.out.println(arr[1].length);
System.out.println(arr[0][0]);
System.out.println(arr[0][1]);
System.out.println(arr[1][0]);
|
cs |
정답
3
1
45
50
89
해설
제공된 Java 코드는 2차원 정수 배열 arr을 초기화하고, 배열의 특정 요소들에 대한 정보를 출력합니다. arr 배열은 다음과 같이 정의되어 있습니다: 첫 번째 행에는 45, 50, 75가 있고, 두 번째 행에는 89만 있습니다.
- arr[0].length는 첫 번째 행의 길이, 즉 3을 출력합니다.
- arr[1].length는 두 번째 행의 길이, 즉 1을 출력합니다.
- arr[0][0]는 첫 번째 행의 첫 번째 요소, 즉 45를 출력합니다.
- arr[0][1]는 첫 번째 행의 두 번째 요소, 즉 50을 출력합니다.
- arr[1][0]는 두 번째 행의 첫 번째 요소, 즉 89를 출력합니다.
결과적으로
3
1
45
50
89
를 출력합니다.
2021 정보처리기사 실기 1회 15번
문제
15. 다음은 C언어 프로그램이다. 실행 결과를 쓰시오.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#include <stdio.h>
struct good {
char name[10];
int age;
};
void main(){
struct good s[] = {"Kim",28,"Lee",38,"Seo",50,"Park",35};
struct good *p;
p = s;
p++;
printf("%s\n", p-> name);
printf("%d\n", p-> age);
|
cs |
정답
Lee 38
해설
제공된 C 코드에서는 good이라는 구조체를 정의하고, 이 구조체의 배열을 초기화합니다. 각 구조체는 이름과 나이를 가지고 있습니다. 배열은 {"Kim", 28, "Lee", 38, "Seo", 50, "Park", 35}와 같이 초기화되었습니다.
p라는 포인터를 구조체 배열 s의 첫 번째 요소에 설정한 다음, p++를 통해 p를 다음 구조체로 이동시킵니다. 따라서 p는 배열의 두 번째 요소인 {"Lee", 38}를 가리키게 됩니다.
코드의 마지막 부분에서 p->name과 p->age를 출력합니다. 여기서 p->name은 p가 가리키는 구조체의 name 필드이고,
p->age는 age 필드입니다.
2021 정보처리기사 실기 1회 17번
문제
17. 다음은 Java 프로그램이다. 실행 결과를 쓰시오.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public class good {
public static void main(String[] args){
int i, j;
for(j=0, i=0; i<=5; i++){
j+=i;
System.out.print(i);
if(i==5){
System.out.print("=");
System.out.print(j);
}else{
System.out.print("+");
}
}
}
}
|
cs |
정답
0 + 1 + 2 + 3 + 4 + 5 = 15
해설
제공된 Java 코드는 두 개의 변수 i와 j를 사용하여 반복문을 수행하는 예제입니다. 여기서 i는 반복문의 카운터로 사용되며, j는 0부터 i까지의 합을 계산하는 데 사용됩니다. 코드의 주요 구조는 다음과 같습니다:
- 먼저, for 반복문을 사용하여 i와 j를 모두 0으로 초기화합니다. 이후 i는 반복문을 통해 1씩 증가되며, i <= 5인 동안 반복문이 실행됩니다. 이는 i가 0부터 5까지 변할 때까지 반복됨을 의미합니다.
- 반복문 내에서, j += i;는 j에 i의 현재 값을 더하여 j를 업데이트합니다. 이는 j가 이전 모든 i의 합을 가지게 만듭니다.
- System.out.print(i);는 현재 i의 값을 출력합니다.
- if 조건문을 사용하여 i가 5인지 검사합니다. 이 조건이 참일 경우, 즉 i가 5일 때, "="를 출력하고, j의 값을 출력하여 이전에 더한 숫자들의 총합을 보여줍니다. 조건이 거짓이면, 즉 i가 5보다 작을 때는 "+"를 출력하여 숫자들 사이를 연결합니다.
따라서 코드의 출력 결과는 다음과 같은 과정을 거치며 생성됩니다:
- 첫 번째 반복에서, i는 0, j는 0입니다. 출력은 0+입니다.
- 두 번째 반복에서, i는 1, j는 1입니다 (0 + 1). 출력은 1+입니다.
- 세 번째 반복에서, i는 2, j는 3입니다 (1 + 2). 출력은 2+입니다.
- 네 번째 반복에서, i는 3, j는 6입니다 (3 + 3). 출력은 3+입니다.
- 다섯 번째 반복에서, i는 4, j는 10입니다 (6 + 4). 출력은 4+입니다.
- 마지막으로, 여섯 번째 반복에서, i는 5, j는 15입니다 (10 + 5). 출력은 5=15입니다.
최종적으로, 전체 출력 결과는 0+1+2+3+4+5=15가 됩니다.