76. 다음 C언어 프로그램이 실행되었을 때, 실행 결과는?
① E ② V
❸ R ④ O
이 문제는 C언어 프로그램의 실행 결과를 묻는 문제입니다. 프로그램을 단계별로 분석하고, 변수들의 상태 변화를 추적하여 최종 결과를 도출할 수 있습니다.
주어진 코드 분석
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
char str1[20] = "KOREA"; // str1 = "KOREA"
char str2[20] = "LOVE"; // str2 = "LOVE"
char* p1 = NULL;
char* p2 = NULL;
p1 = str1; // p1은 str1을 가리킴
p2 = str2; // p2는 str2를 가리킴
str1[1] = p2[2]; // str1[1]을 str2[2]의 값으로 설정
str2[3] = p1[4]; // str2[3]을 str1[4]의 값으로 설정
strcat(str1, str2); // str1에 str2를 이어붙임
printf("%c", *(p1 + 2)); // p1 + 2 위치의 문자를 출력
return 0;
}
1. 변수 초기화 및 포인터 설정
- str1은 "KOREA"로 초기화됩니다. 즉, str1의 내용은 {'K', 'O', 'R', 'E', 'A', '\0'}입니다.
- str2는 "LOVE"로 초기화됩니다. 즉, str2의 내용은 {'L', 'O', 'V', 'E', '\0'}입니다.
- p1은 str1을 가리키도록 설정되고, p2는 str2를 가리키도록 설정됩니다.
2. str1[1] = p2[2];
- p2[2]는 str2의 2번째 인덱스 값, 즉 'V'입니다.
- 그래서 str1[1] = p2[2];는 str1[1]을 'V'로 변경합니다.
- 변경 후 str1: {'K', 'V', 'R', 'E', 'A', '\0'}
3. str2[3] = p1[4];
- p1[4]는 str1의 4번째 인덱스 값, 즉 'A'입니다.
- 그래서 str2[3] = p1[4];는 str2[3]을 'A'로 변경합니다.
- 변경 후 str2: {'L', 'O', 'V', 'A', '\0'}
4. strcat(str1, str2);
- strcat 함수는 str1 뒤에 str2를 이어붙입니다. 즉, str1에 str2의 내용을 추가합니다.
- 변경 후 str1: {"K", "V", "R", "E", "A", "L", "O", "V", "A", '\0'}
5. printf("%c", *(p1 + 2));
- p1은 str1을 가리키고 있습니다.
- p1 + 2는 str1의 2번째 인덱스를 가리킵니다. 즉, *(p1 + 2)는 str1[2]와 같습니다.
- str1[2]의 값은 'R'입니다.
따라서 printf("%c", *(p1 + 2));는 'R'을 출력합니다.
결론
최종적으로 출력되는 문자는 'R'입니다.
따라서 정답은 ❸ R입니다.
반응형
'기출문제 > 정보처리기사' 카테고리의 다른 글
2022년 1회 정보처리기사 기출문제 78번 (0) | 2025.03.10 |
---|---|
2022년 1회 정보처리기사 기출문제 77번 (0) | 2025.03.10 |
2022년 1회 정보처리기사 기출문제 75번 (0) | 2025.03.10 |
2022년 1회 정보처리기사 기출문제 74번 (0) | 2025.03.10 |
2022년 1회 정보처리기사 기출문제 73번 (1) | 2025.03.06 |