1️⃣ [C언어]
2024.2회
다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
#include
void func(char *d, char *s) {
int sum = 0;
while (*s) {
*d = *s;
d++;
s++;
}
*d = '\0';
}
int main() {
char* str1 = "first";
char str2[50] = "teststring";
int result = 0;
func(str2, str1);
for (int i = 0; str2[i] != '\0'; i++) {
result += i;
}
printf("%d", result);
return 0;
}
10
func 함수는 s가 가리키는 문자열을 d로 복사하는 함수이다.
main을 보면 func의 d에는 str2, s에는 str1이 들어간다.
while 문으로 s의 문자열 개수만큼 반복하여 d에 복사된다.
결론적으로 func 함수가 적용되고 난 이후의 str2는 "first"가 된다.
for문을 보면 str2가 '\0' 값이 되면 반복을 멈추는데, str2는
0 | 1 | 2 | 3 | 4 |
f | i | r | s | t |
로 되어있다. 그렇기 때문에 result에 들어가는 값은 0 + 1 + 2 + 3 + 4 = 10 이다.
2️⃣ [Python]
2020.4회
다음은 파이썬 소스 코드이다. 출력 결과를 쓰시오.
lol = [[1,2,3],[4,5],[6,7,8,9]]
print(lol[0])
print(lol[2][1])
for sub in lol:
for item in sub:
print(item, end = '')
print()
[1, 2, 3]
7
123
45
6789
print(lol[0]) => [1, 2, 3]
print(lol[2][1]) => 7
for sub in lol : 의 반복문을 통해 lol의 리스트를 반복한다.
for item in sub : 의 반복문을 통해 sub 리스트의 각 요소를 반복한다.
각 요소 item이 모두 출력되면 (end = '' 이기 때문에 띄어쓰기 X)
item이 다 출력된 이후 다시 sub 반복문 시작
3️⃣ [JAVA]
2023.1회
다음 Java 코드에 대한 출력 값을 작성하시오.
class Parent {
int x = 100;
Parent() {
this(500);
}
Parent(int x) {
this.x = x;
}
int getX() {
return x;
}
}
class Child extends Parent {
int x = 4000;
Child() {
this(5000);
}
Child(int x) {
this.x = x;
}
}
public class Main {
public static void main(String[] args) {
Child obj = new Child();
System.out.println(obj.getX());
}
}
500
Child에는 getX() 메소드를 오버라이드 하지 않으므로 Parent의 getX() 메소드를 호출한다.
여기서 Parent 클래스는 멤버 변수 x는 100을 가집니다.
그 다음 Parent() 기본 생성자에서 this(500); 을 호출하여, 두 번째 생성자 (Parent(int x))를 호출한다.
이로 인해 x 값이 500으로 설정된다.
Parent 클래스의 getX() 메소드를 호출하는 것이기 때문에 return 값은 500이 된다.
'📍Certificate > Engineer Information Processing' 카테고리의 다른 글
[정보처리기사] 실기 이론 문제 (9) (8) | 2024.10.12 |
---|---|
[정보처리기사] 실기 프로그래밍언어 3문제 (28) (0) | 2024.10.12 |
[정보처리기사] 실기 이론 문제 (8) (2) | 2024.10.11 |
[정보처리기사] 실기 프로그래밍언어 3문제 (26) (1) | 2024.10.11 |
[정보처리기사] 실기 프로그래밍언어 3문제 (25) (2) | 2024.10.05 |