전처리기(preprocessor)는 컴파일하기 전에 프로그램에 대한 일련의 작업을 수행

(출처:Smile Han의 C 언어 프로그래밍)
#define 으로 할 수 있는 것은 매크로 상수, 매크로 함수 두가지가 있음


일일이 array_size를 3으로 바꿀 필요없이 매크로를 사용하면 한 번에 모두 3으로 바꿔준다


AA를 2로 바꿔도 동일하게 출력 됨
#include문은 파일을 프로그램에 포함시키고자 할 때 사용하는 전처리기임

직접 만든 헤더 파일은 “ ”로 포함 시키고, 이미 있는 헤더 파일은 < >로 포함 시킴
위 소스에서 #include <stdio.h>를 사용하는 이유?
printf를 사용하려면 함수 선언이 필요한데, 그게 stdio.h 헤더 파일 안에 들어있기 때문



(반드시 대문자로 작성)
네 과목의 성적을 입력 받아 총점과 평균 출력
#define _CRT_SECURE_NO_WARNINGS // scanf() 사용 시 보안 경고를 없애주는 매크로
#include <stdio.h> // printf(), scanf() 등 입출력 함수 사용을 위한 헤더 파일
int main(void) // 프로그램 시작점, int형 반환, 매개변수 없음
{ // main 함수 시작
int kor, eng, mat, sci, total; // 국어, 영어, 수학, 과학 점수와 총점을 저장할 정수형 변수 선언
double avg; // 평균을 저장할 실수형 변수 선언 (소수점 표현 가능)
char name[20]; // 이름을 저장할 문자 배열 선언 (최대 19글자 + 끝문자 \0)
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"); // 상단 테두리 출력
printf("\n┃총점과 평균을 구하는 프로그램입니다.┃\n"); // 프로그램 제목 출력, \n은 줄바꿈
printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"); // 하단 테두리 출력
printf("이름을 입력하고 Enter를 누르세요=> "); // 이름 입력 안내 메시지 출력
scanf("%s", name); // 문자열(%s)을 입력받아 name 배열에 저장 (배열명은 주소이므로 & 불필요)
printf("\n국어 점수를 입력하고 Enter를 누르세요=> "); // 국어 점수 입력 안내 메시지 출력
scanf("%d", &kor); // 정수(%d)를 입력받아 kor 변수의 주소(&kor)에 저장
printf("\n영어 점수를 입력하고 Enter를 누르세요=> "); // 영어 점수 입력 안내 메시지 출력
scanf("%d", &eng); // 정수(%d)를 입력받아 eng 변수의 주소(&eng)에 저장
printf("\n수학 점수를 입력하고 Enter를 누르세요=> "); // 수학 점수 입력 안내 메시지 출력
scanf("%d", &mat); // 정수(%d)를 입력받아 mat 변수의 주소(&mat)에 저장
printf("\n과학 점수를 입력하고 Enter를 누르세요=> "); // 과학 점수 입력 안내 메시지 출력
scanf("%d", &sci); // 정수(%d)를 입력받아 sci 변수의 주소(&sci)에 저장
total = kor + eng + mat + sci; // 네 과목 점수를 모두 더해 total에 저장
avg = total / 4.0; // total을 4.0(double형)으로 나눠 avg에 저장, 4.0으로 나누면 결과가 실수형으로 자동 변환됨
printf("\n%s님의 총점은 %d이고, 평균은 %.2f입니다.\n", name, total, avg);
// %s : name 배열의 문자열 출력 (이름)
// %d : total 정수 출력 (총점)
// %.2f : avg 실수 출력, 소수점 아래 2자리까지 표시 (평균)
return 0; // main 함수 종료, 운영체제에 0(정상 종료)을 반환
} // main 함수 끝
* 연산자(operator)



(자동 형변환 문제 출제)







(시험 출제)

관계(비교) 연산자 차이점 숙지



(if 부분은 나중에)


'C프로그래밍 > 복습' 카테고리의 다른 글
| C프로그래밍 10주차 복습 과제 (0) | 2026.05.06 |
|---|---|
| C프로그래밍 9주차 복습 과제 (0) | 2026.04.29 |
| C프로그래밍 6주차 복습 과제 (0) | 2026.04.08 |
| C프로그래밍 5주차 복습 과제 (0) | 2026.04.01 |
| C프로그래밍 2주차 복습 과제 (0) | 2026.03.11 |