목 차
Ⅰ. C 언어 프로그램의 구성
1. 형식 지정자 필드 옵션 지정
2. 변수값 입력받고 출력하기
Ⅱ. 프로젝트(원의 면적과 둘레 구하기)
Ⅲ. 연습 문제
Ⅳ. 프로그래밍 문제
Ⅰ. C 언어 프로그램의 구성
1. 형식 지정자 필드 옵션 지정
연구 1-1)
형식 지정자를 사용하여 아래와 같은 결과가 출력되도록 하는 프로그램을 작성하시오
// 결과
### 형식 지정자 적용 ###
12345678901234567890
A
123
3.141593
3.142
Love
풀이)
#include <stdio.h>
int main(void) {
printf("### 형식 지정자 적용 ###\n");
printf("12345678901234567890\n");
printf("%10c\n", 'A');
printf("%10d\n", 123);
printf("%10f\n", 3.141593);
printf("%10.3f\n", 3.141593);
printf("%10s\n", "Love");
return 0;
}
2. 변수값 입력받고 출력하기
연구 2-1)
키보드로 정수 300, 문자 A, 실수 3.14를 입력받고 실행 결과가 아래와 같이 되도록 프로그램을 작성하시오
// 실행 결과
입력받은 정수 : 300
입력받은 문자 : A
입력받은 실수 : 3.14
풀이)
#include <stdio.h>
int main(void) {
int i;
char ch;
float f;
printf("정수 입력 : ");
scanf("%d", &i);
printf("문자 입력 : ");
scanf("%c", &ch);
printf("실수 입력 : ");
scanf("%f", &f);
printf("입력받은 정수 : %d", i);
printf("입력받은 문자 : %c", ch);
printf("입력받은 실수 : %.2f", f);
return 0;
}
Ⅱ. 프로젝트(원의 면적과 둘레 구하기)
원의 반지름 7(단위 : cm)을 입력받아 원의 면적과 둘레를 계산하여 실행 결과가 아래와 같이 되도록 프로그램을 작성하시오
// 실행 결과
원의 면적 : [ 원의 면적 값 ]
원의 둘레 : [ 원의 둘레 값 ]
풀이)
// 내가 작성한 코드
#pragma warning(disable: 4996)
#include <stdio.h>
int main(void) {
float pi = 3.14;
int radius;
printf("원의 반지름(cm 단위) : ");
scanf("%d", &radius);
float area = radius * radius * pi;
float cir = radius * 2 * pi;
printf("원의 면적 : %.2f\n", area);
printf("원의 둘레 : %.2f\n", cir);
return 0;
}
// 답지
#pragma warning(disable: 4996)
#include <stdio.h>
int main(void) {
double radius, area, cir;
printf("원의 반지름(cm 단위) : ");
scanf("%lf", &radius);
area = radius * radius * 3.14;
cir = radius * 2 * 3.14;
printf("원의 면적 : %.2lf\n", area);
printf("원의 둘레 : %.2lf\n", cir);
return 0;
}
Ⅲ. 연습 문제
연습 문제 1)
다음 프로그램의 실행 결과를 작성하시오.
#include <stdio.h>
int main(void) {
printf("%d\n", 98765);
printf("%-d\n", 98765);
printf("%10d\n", 98765);
printf("%-10d\n", 98765);
return 0;
}
풀이)
98765
98765
98765
98765
연습 문제 2)
다음 프로그의 실행 결과를 작성하시오
#include <stdio.h>
int main(void) {
printf("%f\n", 12.12345);
printf("%.2f\n", 12.12345);
printf("%10f\n", 12.12345);
printf("%-10f\n", 12.12345);
printf("%10.2f\n", 12.12345);
printf("%-10.2f\n", 12.12345);
return 0;
}
풀이)
12.123450
12.12
12.123450
12.123450
12.12
12.12
연습 문제 3)
VS Code 2022에서 scanf() 함수를 사용할 때 아래와 같은 에러가 발생한다. 이때 해결 방법을 기술하시오
error c4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details."
풀이)
아래 세 가지 방법중 하나를 택해 에러를 해결할 수 있다.
① scanf() 함수 대신 scanf_s() 함수를 사용한다.
② 코드의 맨 윗줄에 #pragma warning(disable: 4996)을 입력한다.
③ 코드의 맨 윗줄에 #define _CRT_SECURE_NO_WARNINGS를 입력한다.
연습 문제 4)
다음은 문자열을 입력받아 출력하는 프로그램이다. 실행 결과를 참고하여 코드의 빈 칸을 채우시오
// 실행 결과
문자열 입력 : Hello // 문자열 입력 시
입력한 문자열 : Hello
// 프로그램
#pragma warning(disable: 4996)
#include <stdio.h>
int main(void) {
char str[100];
[ ① ]
[ ② ]
[ ③ ]
return 0;
}
풀이)
① printf("문자열 입력 : ");
② scanf("%s", str);
③ printf("입력한 문자열 : %s", str);
연습 문제 5)
다음 코드에서 잘못된 부분이 무엇인지 설명하고 바르게 고치시오
#include <stdio.h>
int main(void) {
int = age;
printf("나이를 입력하세요 : ");
scanf("%s", &age);
return 0;
}
풀이)
① scanf() 함수를 사용하면 error c4996 에러가 뜰 수 있는데 scanf() 함수 대신 scanf_s() 함수를 사용하거나 코드의 맨 윗줄에 #pragma warning(disable: 4996) 또는 #define _CRT_SECURE_NO_WARNINGS를 입력하여 에러를 해결해준다.
② 7행을 보면 age 변수는 정수형인데 %s라는 문자열 형식 지정자로 받은 것을 볼 수 있다. 따라서 %s가 아닌 %d를 사용해야 한다.
③ 만일 변수값을 출력하고자 한다면 위의 코드에서는 변수값을 출력하는 printf() 함수가 누락되어 있으므로 printf() 함수를 작성해야한다.
#pragma warning(disable: 4996)
#include <stdio.h>
int main(void) {
int = age;
printf("나이를 입력하세요 : ");
scanf("%d", &age);
printf("입력받은 나이 : %d", age);
return 0;
}
Ⅳ. 프로그래밍 문제
프로그래밍 문제 1)
Hello World를 두 번 출력하는 프로그램을 작성하시오
풀이)
#include <stdio.h>
int main(void) {
printf("Hello World\n");
printf("Hello World\n");
return 0;
}
프로그래밍 문제 2)
printf() 함수로 정수 1000과 5000을 출력하는 프로그램을 작성하시오
풀이)
#include <stdio.h>
int main(void) {
printf("%d\n%d", 1000, 5000);
return 0;
}
프로그래밍 문제 3)
다음 실행 결과를 참고하여 키보드로 정수를 입력받아 출력하는 프로그램을 작성하시오
// 실행 결과
정수를 입력하세요 : 3 // 정수 입력 시
입력한 숫자는 3입니다.
풀이)
#pragma warning(disable: 4996)
#include <stdio.h>
int main(void) {
int i;
printf("정수를 입력하세요 : ");
scanf("%d", &i);
printf("입력한 숫자는 %d입니다.", i);
return 0;
}
프로그래밍 문제 4)
밑변의 길이와 높이의 길이를 입력받아 삼각형의 넓이를 구하는 프로그램을 작성하시오
#pragma warning(disable: 4996)
#include <stdio.h>
int main(void) {
float bottom, height, area;
printf("밑변 길이 : ");
scanf("%f", &bottom);
printf("높이 길이 : ");
scanf("%f", &height);
area = bottom * height / 2;
printf("밑변이 %.0f이고, 높이가 %.0f인 삼각형의 넓이는 %.1f입니다.", bottom, height, area);
return 0;
}
프로그래밍 문제 5)
실수를 입력받아 입력받은 수의 제곱을 출력하는 프로그램을 작성하시오
풀이)
#pragma warning(disable: 4996)
#include <stdio.h>
int main(void) {
float f;
printf("실수 입력 : ");
scanf("%f", &f);
float square = f * f;
printf("%f의 제곱 = %.2f", f, square);
return 0;
}
처음에 파이썬에서 제곱을 표현하는 ** 기호를 사용하여 코드를 작성하였는데 자꾸 에러가 떠서 f * f로 바꿀 수밖에 없었다.
C 언어에서는 제곱을 표현하는 기호인 **을 사용할 수 없는 것같다.
프로그래밍 문제 6)
다음과 같은 결과가 출력되도록 프로그램을 작성하시오
#include <stdio.h>
int main(void) {
printf("안녕하세요.\n제 이름은 홍길동입니다.\n나이는 25살입니다.");
return 0;
}
끝.

'C & C++ > Basic programming' 카테고리의 다른 글
C 언어) Ch03. 변수와 자료형 (0) | 2025.03.20 |
---|---|
C 언어) Ch01. C 언어 기초 (0) | 2025.03.14 |