가. x++ :
int x=1;
printf("처음 %d\n",x++);
printf("나중 %d",x);
나.
x-- :
int x=1;
printf("처음 %d\n",x--);
printf("나중 %d",x);
자동형변환(올림변환, 내림변환)에 대해 조사하고 아래 문항을 해결하시오(1시간 소요)
가. 자동형변환(올림변환, 내림변환) 에 대해 50자 이내로 요약하여 설명해보시오.
자료형의 크기가 큰쪽으로의 형변환을 형확장이라 하고 암시적 형 변환이라 하기도한다.반대로 자료형 크기가작은쪽으로 변환하는것을 형축소라 한다.
나. double a = 10, double b=3 일때 a/b=3.333... 이지만, int c = a/b처럼 짜면 어떤 값이 나오는지 printf 로 확인하고 그 이유를 설명하시오.
double형간 연산의 결과는 double형이지만 int c에 대입하면 정수형으로 형변환되어 3이 나옴
다. int a = 10, int b=3일때 a/b=3 이지만, 캐스팅 연산자 (double)를 사용하여 (double)a/ (double)b 처럼 계산 후 이것을 double x에 대입한 후 값을 확인하면 3.333.... 이 정상적으로 나옴을 확인하시오. 그리고 이유를 설명하시오.
캐스팅연산자를 통하여 의도적으로 형변환임을 알려주어 정상적으로 형변환됨
라. 임의의 유리수를 입력받아 소수점자리에서 올림, 버림 하여 정수부분만 뽑아주는 프로그램을 구현하시오.
int main()
{
double a;
int b;
printf("임의의 유리수를 입력하시오\n");
scanf("%lf",&a);
b=a;
printf("올림 %d",b+1);
printf("버림 %d",b);
}
마. '라'를 이용하여 임의의 유리수의 소수부분을 뽑아주는 프로그램을 구현하시오.
int main()
{
double a;
int b;
printf("임의의 유리수를 입력하시오\n");
scanf("%lf",&a);
b=a;
printf("소수부분 %f",a-b);
}
바. math.h를 include 한 뒤 '라,마'를 이용하여 임의의 유리수의 log값을 알 때 그 숫자를 소수넷째짜리까지 찾아주는 프로그램을 만드시오.
pow함수안에서 변수를 사용할 경우 gcc prac.c -o power -lm
lm플래그를 통해 링커가 pow 함수콜을 해당 라이브러리에 매칭해줘야 하고 power라는 실행파일을 통해 빌드파일을 실행시켰다
구구단 2~9단을 출력해보시오. 단, 반복문을 사용하지 마시오 (3시간 소요)
가. int a=2, int b=1로 시작하시오.
나. a * b = c라고 출력해보시오.
다. b++를 하여 b를 2로 만드시오.
라. a * b = c라고 출력해보시오.
마. b++를 하여 b를 3로 만드시오.
바. a * b = c라고 출력해보시오.
사. b++를 하여 b를 4로 만드시오.
아. a * b = c라고 출력해보시오.
자. 나~아의 방식으로 b가 9일때까지 출력해보시오
차. 자 항이 끝나면 a++를 하여 a=3으로 만드시오. b=1을 주어 초기화하시오.
카. 다시 나~아의 방식으로 b가 9일때까지 출력해보시오.
타. 가~카의 방식으로 a가 9일때까지 출력해보시오.
int main()
{
int a=2,b=1;
printf("%d * %d = %d\n",a,b++,a*b);
printf("%d * %d = %d\n",a,b++,a*b);
printf("%d * %d = %d\n",a,b++,a*b);
printf("%d * %d = %d\n",a,b++,a*b);
printf("%d * %d = %d\n",a,b++,a*b);
printf("%d * %d = %d\n",a,b++,a*b);
printf("%d * %d = %d\n",a,b++,a*b);
printf("%d * %d = %d\n",a,b++,a*b);
printf("%d * %d = %d\n",a,b,a*b);
a++; b=1;
printf("%d * %d = %d\n",a,b++,a*b);
printf("%d * %d = %d\n",a,b++,a*b);
printf("%d * %d = %d\n",a,b++,a*b);
printf("%d * %d = %d\n",a,b++,a*b);
printf("%d * %d = %d\n",a,b++,a*b);
printf("%d * %d = %d\n",a,b++,a*b);
printf("%d * %d = %d\n",a,b++,a*b);
printf("%d * %d = %d\n",a,b++,a*b);
printf("%d * %d = %d\n",a,b,a*b);
}
다음 증감연산자의 역할과 차이를 설명하고 이를 printf로 보이시오. http://tujanote.cafe24.com/bbs/board.php?bo_table=pds2&wr_id=55&sca=C&page=2 을 참조하시오.
가. x++ : x++ 하기 전 x값, 후의 x값 비교하여 printf
int main()
{
int a=1;
printf("#1 %d\n",a++);
printf("#2 %d\n",a);
}
나. ++x : ++x 하기 전 x값, 후의 x값 비교하여 printf
int main()
{
int a=1;
printf("#1 %d\n",++a);
printf("#2 %d\n",a);
}
다. x-- : x-- 하기 전 x값, 후의 x값 비교하여 printf
int main()
{
int a=1;
printf("#1 %d\n",a--);
printf("#2 %d\n",a);
}
라. --x : --x 하기 전 x값, 후의 x값 비교하여 printf
int main()
{
int a=1;
printf("#1 %d\n",--a);
printf("#2 %d\n",a);
}
나눗셈을 하는 프로그램을 만들되 %를 사용하지 마시오.
가. 제수와 피제수를 int형으로 입력받으시오.
int dividend,divisor,quotient;
printf("피제수입력");
scanf("%d",÷nd);
printf("제수입력");
scanf("%d",&divisor);
나. 두 수를 나누어 몫을 구하고 int형 변수에 넣으시오
quotient=dividend/divisor;
다. 두수를 나눈 제수, 피제수, 몫으로 부터 나머지 정리(검산식)를 이용하여 나머지를 구하시오. 힌트 : b=aQ+R, b-aQ=R
remainder=dividend-divisor*quotient;
printf("나머지%d",remainder);
라. 제수, 피제수, 몫, 나머지를 출력하시오. 예를들어, ~을 ~으로 나누면 몫은~이고 나머지는~이다 로 출력하시오.
int main()
{
int dividend,divisor,quotient,remainder;
printf("피제수입력\n");
scanf("%d",÷nd);
printf("제수입력\n");
scanf("%d",&divisor);
quotient=dividend/divisor;
remainder=dividend-divisor*quotient;
printf("%d을 %d로 나누면 몫은 %d 나머지는 %d",dividend,divisor,quotient,remainder);
}