본문 바로가기

Developers'Story(2019)/└◆C C++

초보자를 위한 C언어 300제< 011~020. 문제 및 문제풀이 >

 

011. 문자형 변수 이해하기(char)

문제 : 문자형 변수를 여러 개 정의하고 200, 'a' 를 대입하는 프로그램을 작성하세요.

 

 

char 는 1byte 메모리가 할당되므로

-128 ~ 127 까지의 수가 저장 가능합니다.

즉 a = 200; 으로 127을 넘는 수를 넣었기 때문에 -56과 같이 변환되어 출력됩니다.

 

unsigned char형 변수 는 음수값은 사용할 수 없지만,
0 ~ 255 범위의 값을 저장할수 있는 변수입니다.

이 범위를 초과하는 값은 int형 또는 unsigned int형을 사용해야 합니다.

 

 

 

 

 

012. 정수형 변수 이해하기(int)

문제 : 정수형 변수를 정의하고 2,000,000,000을 대입하는 프로그램을 작성하세요.

 

 

 

 

 %d 는 signed int(부호가 있는 정수형 출력)

-2,147,483,648 ~ 2,147,483,647 범위의 값을 저장 할수 있는 변수.

%u 는 unsigned int(부호없는 정수형 출력)

0 ~ 4,294,967,295 범위의 값을 저장할 수 있는 변수.

 

int b = 4,000,000,000 을 대입하면 범위의 값을 초과하여 쓰레기 값이 출력됩니다.

따라서 unsigned int형 변수를 사용해야 합니다.

 unsigned int b = 4,000,000,000

 

 

 

 

 

013. 실수형 변수 이해하기(double)

문제 : 실수형 변수 d를 정의하고 3.141592를 대입하는 프로그램을 작성하세요.

 

 

 

scanf로 입력할 때 float는 %f , double은 %lf

%f : 실수 출력 (3.14 , -2.0, ..) 소수점 6자리 숫자 까지 표기해준다.

%.2f : 소수점 2자리 까지만 출력

%.3f : 소수점 3자리 까지만 출력

%g : 실수 출력 ( 지수 형태로도 출력 ) 유효숫자 6개 출력

! 실수형 변수 는 표현범위가 넓고 오차가 존재

 

 

 

 

014. 논리형 변수 이해하기(bool)

문제 : 논리형 변수 b를 정의하고, 10과 5의 비교값을 저장하는 프로그램을 작성하세요.

 

 

 

 

 

 

 

 

015. 문자열형 변수 이해하기(char*)

문제 : 문자열형 변수 str을 정의하고, "대한민국"을 저장하는 프로그램을 작성하세요.

 

 

 

char - 문자열변수

char * - 문자열상수