programming/C프로그래밍 개념

[C프로그래밍 새내기를 위한 첫 C 언어 책] Chapter2(변수와 자료형) 정리 및 연습문제

주니어개발자 2019. 6. 17. 16:37

내용 정리

 

※프로그램

 

변수를 사용해 자료를 저장

 

변수: 자료 값을 저장하는 주기억장치에 있는 공간, 자료에 따라 다양한 변수 사용.

→ 신뢰성 있고 효과적인 프로그램 작성 위함.

 

 

 

프로그램 기본구조

 

처음: #include <stdio.h>등 전처리기 지시

main: 콘솔 응용 프로그램을 실행하면 처음으로 실행되는 함수, 반드시 하나만 존재

return: main함수의 결과를 main함수를 호출했던 곳으로 되돌려줌

 

 

 

자료의 표현방법

 

1. 문자

ASCII코드 사용

2. 정수

10진수, 2진수, 8진수, 16진수

표현범위는 8 비트면 28개의 정보 표현가능 ((-2^7)~(2^7-1)범위 표현 가능)

컴퓨터에서 음수는 2의 보수 +1로 처리

3. 실수

32비트 - 소수점 이하 7자리

64비트 - 소수점 이하 15자리

 

 

 

상수의 표현

 

상수(constant): 프로그램에서 자료의 값을 나타내는 데 사용하는 숫자나 문자, 실행되는 도중에 값이 변경될 수 없다.

 

 

 

변수

 

저장 공간 = 변수

저장공간을 확보하는 행위가 변수선언

의미 있게 작명

첫 글자 특수문자 x, 예약어 사용 x, 공백 포함 x

 

 

 

자료형

 

1. 문자형

char(1바이트): -128 ~ 127

singed char(1바이트): -128 ~ 127

unsigned char(1바이트): 0~255 => 크기가 작은 양수의 자료를 저장할 때 용이

2. 실수형

float(4바이트): 소수점 이하 6자리

double(8바이트): 소수점 이하 15자리

 

 

 


연습문제 풀이

 

4,5,6,7번을 풀어보겠다.

 

 

문제 4:float height=177.5;와 같이 선언하면 경고 메시지가 나타난다. 나타나는 이유와 해결방법은?

 

변수 height는 float형, 실수인 177.5는 실수의 기본형인 double형 이므로

프로그램 실행에는 문제가 없지만, 아래와 같은 경고 메시지가 나타난다.

 

 

문제 4 경고메시지

 

float 변수에 float임을 알려주는 f를 추가하여 문제를 해결한다.

float height=177.5f; 로 수정하면 경고 메시지가 사라진다.

 

 

 

 

문제 5: 25인치의 길이를 센티미터로 계산하여 출력하는 프로그램을 완성하시오.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h>
 
int main()
{
    int inch = 25;
    float cm;
 
    cm = inch * 2.54f;
 
    printf("%dinch는 %fcm입니다.\n", inch, cm);
 
    return 0;
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

 

문제 5 실행결과

 

 

 

문제 6:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
int main()
{
    double celsius, fahrenheit;
 
    fahrenheit = 72.0// 실수형으로 저장
    celsius = (5.0 / 9.0* (fahrenheit - 32);
 
    printf("화씨온도 %lf도는 섭씨온도 %lf도입니다. \n", fahrenheit, celsius);
 
    return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

 

5/9인 정수 나눗셈이면 해가 0으로 나와서 잘못된 결과가 나온다.

→ 아래와 같이 5.0 / 9.0인 실수 나눗셈으로 수정해야 한다.

 

celsius = (5.0 / 9.0) * (fahrenheit - 32);

 

문제6 실행결과

 

 

 

문제 7:

1
2
3
4
5
6
7
8
9
10
11
#include<stdio.h>
 
int main()
{
    int num;
    num = 02013;
    printf("num(8진수) = %o\n", num);
    printf("num(10진수) = %d\n", num);
 
    return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

 

문제7 실행결과

 

변환 명세

%o: 8진수

%x: 16진수

%d: 10진수