모두CBT

다음 C 프로그램의 결과로 옳은 것은?#include <stdio… | [법원직 9급 전산·사서 컴퓨터일반] 25년 1회차 기출문제 상세 페이지

1[법원직 9급 전산·사서 컴퓨터일반] 25년 1회차
다음 C 프로그램의 결과로 옳은 것은?
#include <stdio.h>
void sub(int x, int *y);
int main(void)
{
int a = 1, b = 5;
sub(a, &b);
printf(“%d, %d\n”, a, b);
}
void sub(int x, int *y)
{
x = x + 2;
*y = *y + x;
}
1
1, 5
2
1, 8
3
3, 5
4
3, 8
해설

프로그램의 출력은 1, 8이다.

x는 값으로 전달되어 a의 복사본이고, y는 b의 주소를 받는 포인터이다.
sub 호출 시: x = 1, y는 b를 가리킴
x = x + 2 실행: x = 3 (a는 1 그대로)
*y = *y + x 실행: b = 5 + 3 = 8

  • 1, 5: 포인터를 통해 바뀐 b의 값을 반영하지 않은 결과이다.
  • 3, 5: a와 b의 변화를 모두 반대로 판단한 결과이다.
  • 3, 8: 값 전달인 x의 변경이 a에 반영된다고 본 결과이다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[법원직 9급 전산·사서 컴퓨터일반] 25년 1회차 25문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요법원직 9급 전산·사서 컴퓨터일반 기출문제 암기장 전체 보기