개발/책

[쉽게 풀어쓴 C언어 Express] 4장 Programming

Hyunsun 2021. 9. 19. 21:10
728x90
쉽게 풀어쓴 C언어 EXPRESS 개정 3판

 

p.168 CHAPTER 4 변수와 자료형

 

1. 사용자로부터 하나의 실수를 입력 받아서 소수점 표기 방법과 지수 표기방법으로 동시에 출력하는 프로그램을 작성하라.

 

코드

#include <stdio.h>

int main(void)
{
	float x;

	printf("실수를 입력하시오: ");
	scanf_s("%f", &x);

	printf("실수형식으로는 %f입니다. \n", x);
	printf("지수형식으로는 %e입니다. \n", x);

	return 0;
}

 

결과

 

2. 사용자로부터 정수를 16진수로 받아서 8진수, 10진수, 16진수 형태로 출력하는 프로그램을 작성하라.

 

코드

#include <stdio.h>

int main(void)
{
	int x;

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

	printf("8진수로는 %#o입니다\n", x);
	printf("10진수로는 %d입니다\n", x);
	printf("16진수로는 %#x입니다\n", x);

	return 0;
}

 

결과

 

3. int형의 변수 x와 y의 값을 서로 교환하는 프로그램을 작성하여 보자. 별도의 변수가 필요하면 정의하여서 사용한다. 변수 x와 y는 10, 20의 값으로 초기화하라.

 

코드

#include <stdio.h>

int main(void)
{
	int x = 10, y = 20, tmp = 0;

	printf("x = %d y = %d \n", x, y);

	tmp = y;
	y = x;
	x = tmp;

	printf("x = %d y = %d \n", x, y);

	return 0;
}

 

결과

 

4. 상자의 부피를 구하는 프로그램을 작성하여 보자. 부피는 길이*너비*높이로 계산된다. 길이, 너비, 높이는 모두 double형의 실수로 입력 받아 보자.

 

코드

#include<stdio.h>

int main(void)
{
	double w, h, d;

	printf("상자의 가로 세로 높이를 한번에 입력: ");
	scanf_s("%lf %lf %lf", &w, &h, &d);

	printf("상자의 부피는 %lf입니다. \n", w * h * d);

	return 0;
}

 

결과

 

5. 우리나라에서 많이 사용되는 면적의 단위인 평을 제곱미터로 환산하는 프로그램을 작성하시오. 여기서 1평은 3.3m2이다. 변수들의 자료형은 어떤 것을 선택하는 것이 좋은가? 기호 상수를 이용하여 1평당 제곱미터를 나타내어라.

 

코드

#include <stdio.h>

int main(void)
{
	const double SQMETER_PER_PYEONG = 3.3058;
	double pyeong;

	printf("평을 입력하세요: ");
	scanf_s("%lf", &pyeong);

	printf("%lf평방미터입니다. \n", pyeong * SQMETER_PER_PYEONG);

	return 0;
}

 

결과

 

6. 다음과 같은 수식의 값을 계산하여 화면에 출력하는 프로그램을 작성하시오. 지수 표기법을 사용하여 변수들을 초기화한다.

 

코드

#include <stdio.h>

int main(void)
{
	double x;

	x = 3.32e-3 + 9.76e-8;

	printf("%lf \n", x);

	return 0;
}

 

결과

 

7. 물리학에서 운동에너지는 E = mv^2 / 2.0 으로 계산된다. 사용자로부터 질량(m)과 속도(v)를 받아서 운동에너지(E)를 계산하는 프로그램을 작성하여 보자. 모든 변수는 double형을 사용하라.

 

코드

#include <stdio.h>

int main(void)
{
	double mass, speed, energy;

	printf("질량(kg): ");
	scanf("%lf", &mass);

	printf("속도(m/s): ");
	scanf("%lf", &speed);

	energy = 0.5*mass*speed*speed;
	printf("운동에너지(J): %lf \n", energy);

	return 0;
}

 

결과

 

8. 사용자가 아스키 코드 값을 입력하면 그 아스키 코드 값에 해당하는 문자를 출력하는 프로그램을 작성하라.

 

코드

#include<stdio.h>

int main(void)
{
	int code;

	printf("아스키 코드 값을 입력하세요: ");
	scanf_s("%d", &code);

	printf("문자: %c입니다. \n", code);

	return 0;
}

 

결과

 

9. 'a'+1, 'a'+2, 'a'+3을 문자 형식으로 출력하는 프로그램을 작성하시오. 이 프로그램에서 알 수 있는 것은 무엇인가?

 

코드

#include<stdio.h>

int main(void)
{
	printf("%c %c %c \n", 'a'+1, 'a'+2, 'a'+3);
	return 0;
}

 

결과

 

10. 경보음이 울린 후에 다음과 같은 메시지를 출력하고 다시 경보음이 울리는 프로그램을 작성하여 보자.

 

코드

#include <stdio.h>

int main(void)
{
	printf("\a화재가 발생하였습니다. \n");

	printf("\a");
	return 0;
}

 

결과

 

11. 다음과 같이 화면에 출력하는 프로그램을 작성하라.

 

코드

#include <stdio.h>

int main(void)
{
	char A = 65;
	char B = 66;
	char C = 67;

	printf("\"ASCII code\", '%c','%c','%c',\n", A, B, C);
	printf("\\t \\a \\n \n");

	return 0;
}

 

결과

728x90