본문 바로가기
C프로그래밍/복습

C프로그래밍 12주차 복습 과제

by higurashi 2026. 5. 20.

기말고사 1번 문제(함수 선언, 정의, 호출)

 

ctrl m o 함수 단위로 보는 단축키

ctrl m l 다시 펼치는 단축키

 

중요하니 다시 한 번 정리(출처 : Smile Han의 C 언어 프로그래밍)

 

★ 구조적 프로그래밍(structured programming) 중요

메인 함수에 모두 작성하는 것이 아니라 모듈별로 작성

 

 

 

time 함수 사용 예시
출처 : Claude Ai
camel case 방식을 많이 사용함

 

함수를 만들때 리턴값이 없으면 void를 씀

 

 

void display(void) 에서 앞의 void는 리턴 값이 없어서 쓴 것이고, 뒤에 (void)는 매개변수가 없어서 쓴 것

 

리턴 값을 바로 출력 해본 것

 

리턴 값을 a에 저장한 후 a를 출력한 것. 이 방법이 재사용성이 높아서 많이 씀

 

#include <stdio.h>

// ── 함수 정의 ──────────────────────────────────────────

// 매개변수 없고, 반환값 없는 함수 (void)
// 호출하면 "Hi."를 출력하고 끝
void display(void)
{
    printf("Hi.\n");
}

// 정수 x를 받아서 2배 결과를 직접 출력하는 함수
// 반환값 없음 (void) → 결과를 변수에 저장할 수 없음
void doubleNumber(int x)
{
    printf("%d\n", x * 2);
}

// 정수 x를 받아서 2배 결과를 반환(return)하는 함수
// 반환 타입이 int → 결과를 변수에 저장하거나 수식에 사용 가능
int doubleNumber1(int x)
{
    return x * 2;
}

// ── 진입점 ─────────────────────────────────────────────

int main()
{
    int a;  // 결과값을 담을 정수형 변수 선언

    display();               // "Hi." 출력
                             // → Hi.

    doubleNumber(5);         // 5 * 2 = 10을 함수 내부에서 바로 출력
                             // → 10

    printf("%d\n", doubleNumber1(3));  // doubleNumber1(3) 이 6을 반환
                                       // → 반환값을 printf가 바로 출력
                                       // → 6

    a = doubleNumber1(4);    // doubleNumber1(4) 이 8을 반환
    printf("%d\n", a);       // → 반환값을 변수 a에 저장한 뒤 출력
                             // → 8

    return 0;  // main() 정상 종료 (운영체제에 0 반환)
} (출처 : Claude Ai)

 

 

세 수의 평균 함수
자판기 함수

 

 

"커피" 나 "유자차" 는 문자열이기 때문에 const char* 를 사용한다. 출력 할 때는 %s 사용.

 

선언 후 호출을 한 예시. 정의를 main() 뒤로 보냈을 경우이다.

 

 

함수 선언(원형 프로토타입)

 

표준 라이브러리 함수들은 헤더파일에 미리 선언이 되어있음

 

★ 선언 호출 정의 반드시 기억

 

http://pythontutor.com/

 

Python Tutor - Visualize Code Execution

Free online compiler and visual debugger for Python, Java, C, C++, and JavaScript. Step-by-step visualization with AI tutoring.

pythontutor.com

소스의 실행 순서를 시각적으로 보여주는 사이트

 

 

실매개변수 = argument , 형식매개변수 = parameter (시험 출제)

 

 

 

변수 a, b가 넘어가는 것이 아니라 a, b의 값이 넘어가는 것(값에 의한 호출 call by value) 기말고사 출제