본문 바로가기
Programming/컴퓨터프로그래밍및실습

[컴프실] 중간고사

by leziwn.cs 2023. 7. 10.
05일차 실습문제
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	const double PI = 3.141592; //기호상수 PI
	double r, h;

	printf("r을 입력 : ");
	scanf("%lf", &r);

	printf("h를 입력 : ");
	scanf("%lf", &h);

	printf("v1 = %lf\n", (1.0 / 2.0) * PI * r * r * h); //실수 형태로 작성해야 함
	printf("v2 = %lf\n", (4.0 / 3.0) * PI * r * r * r);

	return 0;

}
  • double: 실수 형태로 작성해야 함

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
	char code1, code2;

	printf("두 개의 문자 입력: ");
	scanf("%c %c", &code1, &code2);

	printf("첫번째 문자 코드값: %d\n", code1, code1); //ASCII 코드값 출력: %d
	printf("두번째 문자 코드값: %d\n", code2, code2);
	printf("'%c'+'%c'의 문자는 %c\n", code1, code2, code1 + code2); //두 문자 코드값을 더한 문자

	return 0;
}
  • ASCII 코드 출력: %d
  • 두 문자 코드값을 더한 문자: %c

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int x;
	printf("10진수 입력 : ");
	scanf("%d", &x);

	printf("10진수 %d의 8진수는 %#08o\n", x, x); //%#08o
	printf("10진수 %d의 16진수는 %#08X\n", x, x); //%#08X

	return 0;
}
  • 8진수: #08o
  • 16진수: #08X

 

 

06일차 실습문제
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int input;
	printf("초를 입력 : ");
	scanf("%d", &input);

	int date, hour, min, sec; //잘 생각하기...
	sec = input % 60;
	min = (input / 60) % 60;
	hour = ((input / 60) / 60) % 24;
	date = ((input / 60) / 60) / 24;

	printf("%d초는 %d일 %d시간 %d분 %d초", input, date, hour, min, sec);

	return 0;
}

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int price, payment;
	printf("물건 값을 입력 : ");
	scanf("%d", &price);
	printf("고객이 낸 돈 : ");
	scanf("%d", &payment);

	int leftover;
	leftover = payment-price;
	printf("거스름 돈 : %d\n", leftover);

	int fiveT = leftover / 5000; //잘 생각하기...
	int T = (leftover % 5000) / 1000;
	int fiveH = ((leftover % 5000) % 1000) / 500;
	int H = (((leftover % 5000) % 1000) % 500) / 100;
	int five = ((((leftover % 5000) % 1000) % 500) % 100) / 50;
	int ten = (((((leftover % 5000) % 1000) % 500) % 100) % 50) / 10;

	printf("오천원권 %d장\n", fiveT);
	printf("천원권: %d장\n", T);
	printf("오백원동전: %d개\n", fiveH);
	printf("백원 동전: %d개\n", H);
	printf("오십원동전: %d개\n", five);
	printf("십원동전: %d개\n", ten);

	return 0;
}

 

 

07일차 실습문제
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

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

	printf("수식을 입력하시오(예: 2 & 5) >>");
	scanf("%d%c%d", &x, &op, &y);
	switch (op) { //비트 연산
	case '&':
		result = x & y;
		break;
	case '|':
		result = x | y;
		break;
	case '^':
		result = x ^ y;
		break;
	default:
		printf("지원되지 않는 연산자입니다.");
		break;
	}
	printf("십진수 : %d %c %d = %d\n", x, op, y, result);
	printf("16진수 : %08X %c %08X = %08X\n", x, op, y, result);
	return 0;
}
  • 비트 연산: &, |, ^

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>

int main(void)
{
	double a, b, c;
	printf("계수 a, b, c를 입력하시오 : ");
	scanf("%lf%lf%lf", &a, &b, &c);

	double deciding = b * b - 4 * a * c;
	if (deciding == 0) //같을 때는 ==
		printf("이차방정식의 중근은 %f 입니다.\n", -b / (2 * a));
	else if (deciding > 0) {
		printf("이차방정식의 실근1 은 %f 입니다.\n", (-b + sqrt(deciding)) / (2 * a));
		printf("이차방정식의 실근2 는 %f 입니다.\n", (-b - sqrt(deciding)) / (2 * a));
	}
	else {
		printf("이차방정식의 허근1 은 %f + j %f 입니다.\n", -b / (2 * a), sqrt(-deciding) / (2 * a));
		printf("이차방정식의 허근2 는 %f - j %f 입니다.\n", -b / (2 * a), sqrt(-deciding) / (2 * a));
	}
	return 0;
}