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

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

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

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

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

 

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

https://mega.nz/file/gDF0XJqb#DkIy4XqyjfVqMo3zlgr93z679Kgs_GGF9uKywltRlS0

 

1. 사용자로부터 체중(kg)과 신장(m)을 받아서 BMI를 계산하여 출력하는 프로그램을 작성하라. BMI는 체중을 신장의 제곱으로 나눈 값이다. 이때 신장의 단위는 미터여야 한다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
double bmi, weight, height;

printf("체중을 입력하시오: ");
scanf("%lf", &weight);
printf("신장을 입력하시오(단위: 미터): ");
scanf("%lf", &height);

bmi = weight / (height * height);

printf("BMI: %.2lf", bmi);

return 0;
}

 

 

2. 사용자로부터 3개의 정수를 받아서 변수 x, y, z에 저장하고 다음과 같은 수식의 결과를 출력하는 프로그램을 작성하라. 예를 들어서 사용자가 1, 2, 3을 입력하였다면 1*2-3=-1을 출력하면 된다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
int x, y, z, result;

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

result = x * y - z;

printf("%d*%d-%d = %d", x, y, z, result);

return 0;
}

 

 

3. 사용자로부터 상품가격(정수)과 할인율(부동소수점수)을 받아서 할인된 가격을 출력하는 프로그램을 작성하라.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
int price;
double disc_rate, disc_price;

printf("상품 가격을 입력하시오: ");
scanf("%d", &price);
printf("할인률을 입력하시오: ");
scanf("%lf", &disc_rate);

disc_price = price - (price * disc_rate / 100);

printf("할인된 가격은 %.2lf입니다.", disc_price);

return 0;
}

 

 

4. 한 학생의 국어, 영어, 수학 점수를 입력하는 C 프로그램을 작성하고 모든 과목의 합계, 평균 점수를 계산한다. 총점과 평균의 소수점 2번째 자리까지만 출력한다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
float kor, eng, math, sum, average;

printf("3과목의 점수를 입력한다: ");
scanf("%f %f %f", &kor, &eng, &math);

sum = kor + eng + math;
average = (kor + eng + math) / 3;

printf("총점=%.2f\n", sum);
printf("평균=%.2f", average);

return 0;
}

 

 

5. 사용자로부터 2개의 정수를 받아서 첫 번째 정수를 두 번째 정수로 나누었을 때의 몫과 나머지를 계산하는 프로그램을 작성하라. 예를 들어서 10과 3이 입력되면 몫으로는 3, 나머지로는 1이 출력되어야 한다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
int x, y, q, r;

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

q = x / y;
r = x % y;

printf("몫은 %d이고 나머지는 %d입니다.", q, r);

return 0;
}

 

 

6. 세 자리로 이루어진 숫자를 입력받은 후에 각각의 자리수를 분리하고 이 자리수를 출력하는 프로그램을 작성하라.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
int x, hd, td, ud;

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

hd = x / 100;
td = (x % 100) / 10;
ud = (x % 100) % 10;

printf("백의 자리수: %d\n", hd);
printf("십의 자리수: %d\n", td);
printf("일의 자리수: %d", ud);

return 0;
}

 

 

7. 다음 수식의 값을 계산하여서 화면에 출력하라. x의 값은 사용자로부터 입력받는다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
double x, result;

printf("x의 값을 입력하시오: ");
scanf("%lf", &x);

result = ((x * x * x) - 20) / (x - 7);

printf("수식의 값은 %lf입니다.", result);

return 0;
}

 

 

8. 사용자에게 2개의 실수를 받아서 정수부를 더한 값을 출력하는 프로그램을 작성해보자.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
double x, y, fvalue;

printf("2개의 실수를 입력하시오: ");
scanf("%lf %lf", &x, &y);

fvalue = x + y;

printf("합의 정수부 = %d", (int)fvalue);

return 0;
}

 

 

9. 사용자로부터 임의의 숫자 num을 입력받아서 num의 최하위 비트(LSB: Least Significant Bit)를 출력하는 프로그램을 작성하라.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
int num;

printf("숫자를 입력하시오: ");
scanf("%d", &num);

num = num & 1;

printf("LSB는 %d", num);

return 0;
}

 

 

10. 사용자로부터 임의의 숫자 num와 n을 입력받아서 num의 n번째 비트를 1로 설정하는 프로그램을 작성하라. 최하위 비트는 0번째 비트라고 하자.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
int num, n;

printf("숫자를 입력하시오: ");
scanf("%d", &num);
printf("n을 입력하시오: ");
scanf("%d", &n);

num = (1 << n) | num;

printf("새로운 값= %d", num);

return 0;
}

반응형

댓글