본문 바로가기
컴퓨터/코딩

(제3판)C언어 콘서트 CHAPTER 5. Programming 문제 개인풀이

by 혼란한물범 2022. 7. 30.
반응형

개정3판 5장 프로그래밍 문제

개인풀이이기 때문에 출제자가 의도한 정답과는 다를 수 있다.

 

Visual Studio로 실행해보고 싶은 사람들은 아래 링크에서 해당 문제를 찾아 복사 - 붙여넣기 하자 (다운받지 않아도 된다)

https://mega.nz/file/wO92CZ5A#AgiAfHMVbsBJ6L0cFlHx1NFT7zH82nZja3DAOyhC-DU

 

1. 사용자로부터 정수를 받아서 홀수인지 짝수인지 출력하는 프로그램을 작성하라.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
int x;

printf("정수를 입력하시오: ");
scanf("%d", &x);

if (x % 2 == 0)
printf("%d 은 짝수입니다.", x);
else
printf("%d 은 홀수입니다.", x);

return 0;
}

 

 

2. 사용자로부터 입력받은 두 수의 합과 차를 구하여 출력하여 보자. 두수의 차는 큰 수에서 작은 수를 뺀 것으로 한다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
int x, y, sum, imsub;

printf("정수를 입력하시오: ");
scanf("%d", &x);
printf("정수를 입력하시오: ");
scanf("%d", &y);

sum = x + y;
printf("두수의 합은 %d입니다.\n", sum);
if (x > y)
imsub = x - y;
else
imsub = y - x;
printf("두 수의 차는 %d입니다.", imsub);

return 0;
}

 

 

3. 요일을 나타내는 숫자(0-6)를 받아서 주중인지, 주말인지를 출력하는 프로그램을 작성하라.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
int day;

printf("요일을 0(일요일)에서 6까지의 정수로 입력하시오:");
scanf("%d", &day);

if (day == 0 || day == 6)
printf("주말입니다.");
else
printf("주중입니다.");

return 0;
}

 

 

4. 문자 하나를 받아서 알파벳인지, 숫자인지, 특수문자인지를 출력하는 프로그램을 작성하여라.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
char ch;

printf("문자를 입력하시오:");
scanf("%c", &ch);

if (ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z')
printf("알파벳입니다.");
else if (ch >= '0' && ch <= '9')
printf("숫자입니다");
else
printf("특수문자입니다.");

return 0;
}

 

 

5. 문자를 받아서 대문자인지 소문자인지를 출력하는 프로그램을 작성하라.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
char ch;

printf("문자를 입력하시오:");
scanf("%c", &ch);

if (ch >= 'a' && ch <= 'z')
printf("소문자입니다.");
else if (ch >= 'A' && ch <= 'Z')
printf("대문자입니다.");
else
printf("잘못된 입력입니다.");

return 0;
}

 

 

6. 사용자가 신호등의 색깔을 입력하면 "정지", "주의", "진행"와 같은 문장을 출력하는 프로그램을 작성하여 보자.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
char color;

printf("신호등의 색깔 입력 (R, G, Y): ");
scanf("%c", &color);

if (color == 'r' || color == 'R')
printf("정지!");
else if (color == 'y' || color == 'Y')
printf("주의!");
else if (color == 'g' || color == 'G')
printf("진행!");
else
printf("잘못된 입력입니다.");

return 0;
}

 

 

7. 삼각형의 세 변의 길이를 입력받아서 종류를 결정하는 프로그램을 작성하라. 많은 종류 중에서 정삼각형, 이등변 삼각형만 구별하여 보자.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
int ang1, ang2, ang3;

printf("삼각형의 세변을 입력하시요: ");
scanf("%d %d %d", &ang1, &ang2, &ang3);

if (ang1 == ang2 && ang2 != ang3 || ang1 == ang3 && ang1 != ang2 || ang2 == ang3 && ang2 != ang1)
printf("이등변 삼각형");
else if (ang1 == ang2 && ang1 == ang3)
printf("정삼각형");
else
printf("구별할 수 없습니다.");

return 0;
}

 

 

8. 근로 소득세를 계산하는 프로그램을 작성하여 보자. 근로 소득세율은 다음 표와 같다. 사용자가 자신의 과세 표준 금액을 입력하면 근로 소득세를 계산하여 주는 프로그램을 작성하여 보자. 여기서 주의해야할 점이 있다. 만약 자신의 소득이 3000만원이면 소득 중에서 1000만원 이하는 8%를 적용하고 초과하는 부분은 17%의 세율이 매겨진다. 3000만원 전체에 대하여 17%가 적용되는 것이 아니다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
int tax;

printf("과세 표준을 입력하시오(만원): ");
scanf("%d", &tax);

if (tax <= 1000)
tax = tax * 0.08;
else if (tax > 1000 && tax <= 4000)
tax = (tax - 1000) * 0.17 + (1000 * 0.08);
else if (tax > 4000 && tax <= 8000)
tax = (tax - 4000) * 0.26 + (4000 * 0.17) + (1000 * 0.08);
else
tax = (tax - 8000) * 0.35 + (8000 * 0.26) + (4000 * 0.17) + (1000 * 0.08);

printf("소득세는 %d만원입니다", tax);

return 0;
}

 

 

9. 본문에서는 연속적인 if-else문을 이용하여 계산기를 작성하였다. 이번에는 switch문을 이용하여 간단한 계산기를 작성해보자. +, -, *, / 연산을 지원한다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
int x, y, result;
char ch;

printf("수식을 입력하시오: ");
scanf("%d %c %d", &x, &ch, &y);

switch (ch) {
case '+':
result = x + y;
printf("%d", result);
break;
case '-':
result = x - y;
printf("%d", result);
break;
case '*':
result = x * y;
printf("%d", result);
break;
case '/':
result = x / y;
printf("%d", result);
break;
default:
printf("잘못된 연산자입니다.");
break;
}

return 0;
}

 

 

10. switch 문을 이용하여 자신의 학점을 입력하면 학점에 대한 코멘트를 출력하는 프로그램을 작성해보자.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
char ch;

printf("학점을 입력하시오:");
scanf("%c", &ch);

switch (ch) {
case 'A':
printf("아주 잘했어요!");
break;
case 'B':
printf("좋습니다.");
break;
case 'C':
printf("만족스럽습니다.");
break;
case 'D':
printf("더 노력해보세요.");
break;
case 'F':
printf("안타깝습니다.");
break;
default:
printf("잘못된 입력입니다.");
break;
}

return 0;
}

반응형

댓글