개념 한 쪽
사무자동화산업기사 함수 — 활성 레코드·gets/getchar·free
함수 세트는 C 언어의 입출력 함수와 활성 레코드, 메모리 해제에서 출발해 다중 택일문과 구조적 프로그래밍의 기본 구조로 이어진다. gets는 문자열, getchar는 한 문자, free는 동적 메모리 해제이며, FOR는 다중 택일문이 아니라 반복문이다.
이 개념을 문제로 확인하고 싶으면 이 개념 문제 10개 풀기 회원용
가입 없이 오늘의 10문제 바로 풀기 →
뜻
C 언어의 함수는 처리하는 대상으로 구분한다. gets는 표준 입력에서 문자열을 읽고, getchar는 한 문자를 읽는다. puts와 putchar는 각각 문자열과 문자를 출력한다. 동적으로 할당한 메모리를 해제해 쓰레기를 없애는 함수는 free다.
활성 레코드는 함수가 호출될 때 스택에 만들어지는 기록이다. 해당 함수의 지역변수, 반환 주소, 정적 링크가 포함된다. 전역 변수는 데이터 영역에 배치되므로 활성 레코드에 들어가지 않는다.
다중 택일문은 여러 갈래 가운데 하나를 고르는 구조다. 계산형 GOTO문, CASE문, SWITCH문이 여기에 해당하고, FOR문은 정해진 횟수만큼 반복하는 반복문이므로 다중 택일문이 아니다.
연산자와 자료형도 함께 본다. C 언어에서 같지 않다는 !=로 나타내고, 16진 정수를 출력하는 변환 문자는 %x다. 정수형 변수를 선언할 때는 int를 쓰고, 실수는 float나 double을 쓴다. 두 가지 수행 경로 가운데 하나가 선택되어 수행되는 구조는 선택 구조다.
구조적 프로그래밍은 순차·선택·반복의 세 기본 구조를 쓰며 GOTO문을 배제한다. 순차실행문, 선택실행문, 반복실행문은 구조적 프로그래밍에 맞고 GOTO문은 거리가 멀다.
예제
출제 패턴은 네 가지다. ① 입출력·메모리 — 문자열 입력은 gets, 한 문자 입력은 getchar, 동적 메모리 해제는 free다. ② 활성 레코드 — 지역변수·반환 주소·정적 링크는 포함되고 전역 변수는 포함되지 않는다. ③ 다중 택일·연산자 — GOTO·CASE·SWITCH는 다중 택일문이고 FOR는 반복문이며, 같지 않다는 !=, 16진 출력은 %x다. ④ 기본 구조·자료형 — 선택 구조는 두 경로 중 하나를 고르는 구조이고, 정수형은 int, 구조적 프로그래밍에서 GOTO는 배제된다.
자주 묻는 물음
- gets·getchar·puts·putchar는 어떻게 구분하나요?
- gets는 표준 입력에서 문자열을 읽고, getchar는 한 문자를 읽습니다. puts는 문자열을, putchar는 문자를 출력합니다. 문자열 입력 함수를 묻는 문제에서는 gets를, 한 문자 입력 함수를 묻는 문제에서는 getchar를 고릅니다.
- 활성 레코드에는 무엇이 포함되나요?
- 함수 호출 시 스택에 만들어지며 해당 함수의 지역변수, 반환 주소, 정적 링크가 포함됩니다. 전역 변수는 데이터 영역에 배치되므로 활성 레코드에 들어가지 않습니다. 동적 할당 메모리는 free로 해제합니다.
- 다중 택일문과 구조적 프로그래밍은 어떻게 정리하나요?
- 다중 택일문에는 계산형 GOTO, CASE, SWITCH가 해당하고 FOR는 반복문이라 해당하지 않습니다. 구조적 프로그래밍은 순차·선택·반복의 세 구조를 쓰고 GOTO를 배제합니다. C에서 같지 않다는 !=, 16진 출력은 %x, 정수형 선언은 int입니다.
사무자동화산업기사 풀이 세트에서 이 개념의 문제 10개를 바로 풀어 보세요.