1.사용자로부터 2개의 정수를 입력받아서 첫 번째 정수를 두 번째 정수로 나누었을 때 얻게 되는 몫과 나머지를 출력하는 프로그램을 작성하라.
#include <stdio.h>
void main()
{
int num1, num2, div, rem;
printf("정수2개를 입력해주세요:");
scanf("%d %d", &num1, &num2); //사용자에게 값을 입력받는다.
div = num1 / num2; //몫을 구하는 공식이다.(나누기는/)
rem = num1 % num2; //나머지를 구하는 공식이다.(나머지는%)
printf("몫:%d 나머지:%d\n", div, rem); //결과를 출력한다.
}
2.2개의 double형의 실수를 읽어서 합, 차, 곱, 몫을 구하는 프로그램을 작성하라.
#include <stdio.h>
void main()
{
double num1,num2,hap,cha,mul,div;
printf("실수2개를 입력해주세요:");
scanf("%lf %lf", &num1, &num2); //사용자에게 값을 입력받는다.
hap = num1 + num2; //덧셈의 값을 구하는 공식이다.
cha = num1 - num2; //뺄셈의 값을 구하는 공식이다.
mul = num1 * num2; //곱셈의 값을 구하는 공식이다.
div = num1 / num2; //나눗셈의 값을 구하는 공식이다.
printf("덧셈:%f 뺄셈:%f 곱셈:%f 나눗셈:%f\n",hap,cha,mul,div); //결과를 출력한다.
}
3.3개의 정수 값을 입력받아서, 3개의 정수 값 중에서 최대값을 출력하는 프로그램을 작성하라.
#include <stdio.h>
void main()
{
int num1,num2,num3,a,b,c;
printf("정수3개를 입력해주세요:");
scanf("%d %d %d", &num1, &num2, &num3); //사용자에게 값을 입력받는다.
a=(num1>num2)?num1:num2; //num1과 num2를 비교 참이면 num1 거짓이면num2
b=(num2>num3)?num2:num3; //num2와 num3를 비교 참이면 num2 거짓이면num3
c=(a>b)?a:b; //a와 b를 비교 참이면a 거짓이면b
printf("최대값:%d\n",c); //결과를 출력한다.
}
4.cm로 표현된 키를 입력받아 피트와 인치로 변환하는 프로그램을 작성하라. 단, 1피트는 12인치이고 1인치는 2.54cm이다.
#include <stdio.h>
void main()
{
int cm,feet;
double inch;
printf("키를 입력해주세요:");
scanf("%d",&cm); //사용자에게 값을 입력받는다.
inch=cm/2.54; //1인치는 2.54cm이므로 입력받은 키에서 2.54를 나눈다.
feet=inch/12; //1피트는 inch에서 12를 나눈다.
inch=inch-feet*12; //다시 inch는 inch에서 feet와 12를 곱한 값을 뺀다.
printf("%dcm는 %d피트 %f인치입니다.\n",cm,feet,inch); //결과를 출력한다.
}
5.100보다 작은 정수를 입력받아서 이것을 십의 자리, 일의 자리로 분리하여 출력하는 프로그램을 작성하라. 즉 사용자가 정수 23을 입력하면 2,3을 차례로 출력하면 된다.
#include <stdio.h>
void main()
{
int num1,div,rem;
printf("100보다 작은 정수를 입력하시오:");
scanf("%d",&num1); //100보다 작은 정수를 입력받는다.
div=num1/10; //십의 자리는 num1에서 나누기10을 하면 나온다.
rem=num1%10; //일의 자리는 num1에서 나머지연산자를 사용하면 나온다.
printf("십의자리:%d\n",div); //10의 자리 출력
printf("일의자리:%d\n",rem); //1의 자리 출력
}
6.int형의 정수를 비트 연산자를 사용하여서 2의 보수(2‘s complement)로 변환하는 프로그램을 작성하라. 2의 보수는 먼저 전체 비트를 반전시킨 후에 1을 더하면 된다.
#include <stdio.h>
void main()
{
int input,result;
printf("정수를 입력해주세요:");
scanf("%d",&input); //정수를 입력받는다.
result=~input+1; //result는 input에서 0은1로 1은0으로 바꾸고 +1을 한 값이다.
printf("2의 보수:%d\n",result); //결과를 출력한다.
}
7.정수에 비트 연산자<<를 한번 적용하면 2를 곱한 값을 얻을 수 있다. 또 정수에 비트 연산자>>를 한번 적용하면 2로 나눈 값을 얻을 수 있다. 사용자로부터 정수 x, y를 입력받아서 x<<y의 값을 출력하는 프로그램을 작성하라.
#include <stdio.h>
void main()
{
int user,num,result;
printf("정수를 입력해주세요:");
scanf("%d",&user); //정수를 입력받는다.
printf("2를 곱하고 싶은 횟수:");
scanf("%d",&num); //횟수를 입력받는다.
result=user<<num; /*result는 정수와 2를 몇 번 곱하고
싶은지 입력받아 계산한 결과*/
printf("%d<<%d의 값:%d\n",user,num,result); //결과를 출력한다.
}
8.구의 표면적과 체적을 구하는 프로그램을 작성하라. 구의 반지름은 실수로 입력된다. 아래의 공식을 사용하라. 파이값은 기호 상수를 사용하여 정의하라.
#include <stdio.h>
#define PI 3.14
void main()
{
double r,A,V;
printf("반지름을 입력해주세요:");
scanf("%lf",&r); //반지름을 입력받는다.
A=4.0*r*r*PI; //표면적을 구하는 공식이다.
V=(4.0/3.0)*r*r*r*PI; /*체적을 구하는 공식이다.
주의 4/3은 값이 다르게 나옴
정수이기 때문에 소수점 계산 안됨*/
printf("표면적:%f 체적:%f\n",A,V); //결과를 출력한다.
}
9.삼각형 ABC와 삼각형ADE는 닮음꼴이므로 다음의 수식이 성립한다.
AC : AE = BC : DE
따라서 AC와 AE, BC를 안다면 DE를 계산할 수 있다. AC와 AE, BC를 입력하여서 DE를 구하는 프로그램을 작성하라. 입력되는 수치는 모두 실수로 한다.
#include <stdio.h>
void main()
{
double AC,AE,BC,DE;
printf("AC,AE,BC의 값을 입력하세요:");
scanf("%lf %lf %lf",&AC,&AE,&BC); //각각의 길이를 입력받는다.
DE=AE*BC/AC; /*DE를 구하는 공식
피라미드 그림자 길이(AE) * 막대길이(BC)
피라미드 높이(DE)= ---------------------------------------
막대 그림자 길이(BC) */
printf("DE의 값은 %f입니다.\n",DE);
}
10.조건 연산자 ?만을 이용하여 2차원 공간의 X좌표와 Y좌표를 입력받아서 그 좌표가 속하는 사분면을 출력하는 프로그램을 작성하라. (X>0 && Y>0)? printf("1사분면“) : printf(" ");와 같은 문장을 사용하여 작성한다.
#include <stdio.h>
void main()
{
int x,y;
printf("x,y의 값을 입력하세요:");
scanf("%d %d",&x,&y); //x,y를 입력받는다.
(x>0&&y>0)?printf("1사분면\n"):printf(""); /*x가 0보다 크고
y가 0보다 크면 1사분면 출력*/
(x<0&&y>0)?printf("2사분면\n"):printf(""); /*x가 0보다 작고
y가 0보다 크면 2사분면 출력*/
(x<0&&y<0)?printf("3사분면\n"):printf(""); /*x가 0보다 작고
y가 0보다 작으면 3사분면출력*/
(x>0&&y<0)?printf("4사분면\n"):printf(""); /*x가 0보다 크고
y가 0보다 작으면 4사분면출력*/
}
11.알렉산드리아에서는 막대와 그림자가 이루는 각도가 7.2로 측정되었다. 또 시에네에서 알렉산드리아까지의 거리는 약 900km로 측정되었다. 이것을 이용하여서 지구의 반지름을 계산하여라.
#include <stdio.h>
#define PI 3.14
void main()
{
double r;
printf("호의 길이:900km\n");
printf("중심각:7.2°\n");
printf("원의 둘레(2πr) : 호의 길이 = 360° : 중심각\n");
printf("반지름=r\n");
r=900*360/(7.2*2*PI);
printf("반지름=%f\n",r);
}
12. 결과로 생성되는 정수값은 16진수로 출력하도록 한다. 비트 이동 연산과 비트 OR연산을 사용하라.
#include <stdio.h>
void main()
{
char ch;
unsigned int num=0x00000000;
printf("문자를 입력하세요:");
scanf("%c", &ch);
num=num|ch;
getchar(); //2008에서는 fflush(stdin)
printf("문자를 입력하세요:");
scanf("%c", &ch);
num = num<<8;
num=num|ch;
getchar();
printf("문자를 입력하세요:");
scanf("%c", &ch);
num = num<<8;
num=num|ch;
getchar();
printf("문자를 입력하세요:");
scanf("%c", &ch);
num = num<<8;
num=num|ch;
getchar();
printf("결과값:%08x",num);
}
'프로그래밍 > C언어' 카테고리의 다른 글
큰값 작은값 구하기 (0) | 2017.09.20 |
---|---|
c언어 기본 예제 (0) | 2017.09.20 |
쉽게 풀어쓴 C언어 Express 6장 Programming (0) | 2015.11.18 |
쉽게 풀어쓴 C언어 Express 4장 Programming (0) | 2015.11.14 |
쉽게 풀어쓴 C언어 Express 3장 Programming (0) | 2015.11.14 |