쉽게풀어쓴 C 언어 Express 제 4 장변수와자료형 이번장에서학습할내용 제 4 장변수와자료형 제 4 장변수와자료형 * 변수와상수의개념이해 * 자료형 * 정수형 * 실수형 * 문자형 * 기호상수사용 * 오버플로우와언더플로우이해 이번장에서는변수와각종자료형을살펴봅니다.

Similar documents
쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

<4D F736F F F696E74202D20C1A634C0E520BAAFBCF6BFCDC0DAB7E1C7FC>

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - chap-04.pptx

Microsoft PowerPoint - chap-04.pptx

쉽게 풀어쓴 C 프로그래밍

C 언어의구성요소인상수, 변수, 입 출력함수에 대하여학습

<4D F736F F F696E74202D2032C1D6C2F72D32C2F7BDC32028B0ADC0C7C0DAB7E D20BAAFBCF6BFCD20BFACBBEAC0DA>

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

OCW_C언어 기초

PowerPoint Presentation

K&R2 Reference Manual 번역본

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

슬라이드 1

Microsoft PowerPoint - Chapter_04.pptx

Microsoft PowerPoint - 2장 변수와 자료형 pptx

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

Microsoft PowerPoint - chap-03.pptx

OCW_C언어 기초

Microsoft PowerPoint - Lesson2.pptx

ABC 2장

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

Microsoft PowerPoint - CP_02_Convert_To_C_02_Step.pptx

untitled

쉽게 풀어쓴 C 프로그래밍

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

Microsoft PowerPoint - ch07 - 포인터 pm0415

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap04-연산자.pptx

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Microsoft PowerPoint - chap06-2pointer.ppt

프로그래밍 및 연습 1

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - c2.ppt

중간고사

프로그램의실행화면 주석 (comment) 두수의합 : 300 /* 두개의숫자의합을계산하는프로그램 */ 주석은코드를설명하는글입니다. 주석 3 가지방법의주석 주석의예 /* 한줄로된주석 */ /* 저자 : 홍길동날짜 : 2013.

11장 포인터

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

슬라이드 1

Microsoft PowerPoint - chap03.ppt

ABC 3장

금오공대 컴퓨터공학전공 강의자료

03 상수, 변수, 자료형

윤성우의 열혈 TCP/IP 소켓 프로그래밊

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드]

본 강의에 들어가기 전

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

2 장수의체계 1. 10진수 2. 2진수 3. 8진수와 16진수 4. 진법변환 5. 2진정수연산과보수 6. 2진부동소수점수의표현 한국기술교육대학교전기전자통신공학부전자전공 1

untitled

Microsoft PowerPoint - 2주차-1차시 (강의자료) ch01 - C Programming 기초 (part 2)

PowerPoint 프레젠테이션

Microsoft PowerPoint - 제11장 포인터(강의)

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap06-1Array.ppt

The C++ Programming Language 4 장타입과선언 4.11 연습문제 Hello,world! 프로그램을실행시킨다. 프로그램이컴파일되지않으면 B3.1 을참고하자. #include<iostream> //#include 문, 헤더파일, 전처리지시

쉽게

쉽게 풀어쓴 C 프로그래밊

untitled

C 프로그래밊 개요

Microsoft PowerPoint - chap05-제어문.pptx

슬라이드 1

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

Microsoft PowerPoint - 제11장 포인터

PowerPoint Presentation

OCW_C언어 기초

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - lec2.ppt

Microsoft PowerPoint - chap-07.pptx

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2


슬라이드 1

JAVA PROGRAMMING 실습 02. 표준 입출력

Microsoft PowerPoint - chap11-포인터의활용.pptx

ABC 3장

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

슬라이드 1

Microsoft PowerPoint - Lesson6.pptx

chap10.PDF

Microsoft PowerPoint - chap-06.pptx

PowerPoint Presentation

TEST BANK & SOLUTION

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

금오공대 컴퓨터공학전공 강의자료

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Transcription:

이번장에서학습할내용 * 변수와상수의개념이해 * 자료형 * 정수형 * 실수형 * 문자형 * 기호상수사용 * 오버플로우와언더플로우이해 이번장에서는변수와각종자료형을살펴봅니다. 변수 변수 = 상자 Q) 변수 (variable) 이란무엇인가? A) 프로그램에서일시적으로데이터를저장하는공간 Q) 변수는왜필요한가? A) 데이터가입력되면어딘가에저장해야만다음에사용할수있다. 변수는물건을저장하는상자와같다. i 7 78 90 56 성적들의평균을구하려면먼저성적들이어딘가에저장되어있어야함 12 평균 변수의타입 변수의이름 데이터 1

변수가만들어지는곳 메모리를주소로사용한다면 변수는메인메모리에만들어진다. (Q) 만약메모리를변수처럼이름을가지고사용하자않고주소로사용하다면? 0 1 2 3 4 2 2 100 번지에 0 을대입하라 (A) 충분히가능하지만불편하다. 인간은숫자보다는기호를더잘기억한다. 100 번지에 0 을.. 근데 102 번지는어떤용도로쓰고있지? 변수와상수 상수의이름 변수 (variable): 저장된값의변경이가능한공간 상수 (constant): 저장된값의변경이불가능한공간 ( 예 ) 3.14, 100, A, Hello World! (Q) 상수도이름을가질수있는가? (A) 보통상수는이름이없다. 이러한상수를리터럴 (literal) 이라고한다. 하지만필요하다면상수에도이름을붙일수있다. 이것을기호상수라고한다. 12 변수 12 상수 MAX_SIZE 2

예제 : 변수와상수 자료형 /* 원의면적을계산하는프로그램 */ main(void) float radius; float area; 변수 // 원의반지름 // 원의면적 자료형 (data type): 데이터의타입 ( 종류 ) ( 예 ) short,, long: 정수형데이터 (100) ( 예 ) double, float: 실수형데이터 (3.141592) ( 예 ) char: 문자형데이터 ( A, a, 한 ) prf(" 원의면적을입력하시요 :"); scanf("%f", &radius); area = 3.141592 * radius * radius; prf(" 원의면적 : %f \n", area); 상수 원의면적을입력하시요 :10 원의면적 : 314.159210 디양한자료형이필요한이유 자료형 (Q) 다양한자료형이필요한이유는? (A) 상자에물건을저장하는것과같다. 물건이상자보다크면들어가지않을것이다. 물건이상자보다너무작으면공간이낭비될것이다. 3

자료형의크기 예제 : 자료형의크기 char short float main(void) x; double long double char short sizeof 연산자는변수나데이터타입의크기를바이트단위로반환합니다. prf(" 변수 x의 크기 : %d", sizeof(x)); prf("char형의 크기 : %d", sizeof(char)); prf("형의 크기 : %d", sizeof()); prf("short형의 크기 : %d", sizeof(short)); prf("long형의 크기 : %d", sizeof(long)); prf("float형의 크기 : %d", sizeof(float)); prf("double형의크기 : %d", sizeof(double)); 변수 x 의크기 : 4 char 형의크기 : 1 형의크기 : 4 short 형의크기 : 2 long 형의크기 : 4 float 형의크기 : 4 double 형의크기 : 8 자료형의종류 변수의이름짓기 정수형 문자형 부호있음 부호없음 부동소수점형 자료형 설명 바이트수 short short 형정수 2-32768~32767 범위 정수 4-2147483648~2147483647 long long 형정수 4-2147483648~2147483647 unsigned short 부호없는 short 형정수 2 0~65535 unsigned 부호없는정수 4 0~4294967295 unsigned long 부호없는 long 형정수 4 0~4294967295 부호있음 char 문자및정수 1-128~127 부호없음 unsigned char 문자및부호없는정수 1 0~255 float 단일정밀도부동소수점 4 1.2E-38~3.4E38 double 두배정밀도부동소수점 8 2.2E-308~1.8E308 long double 두배정밀도부동소수점 8 2.2E-308~1.8E308 식별자 (identifier): 식별할수있게해주는이름 변수이름 함수이름 김영희 김철수 앞으로 x 라고불러주세요 x 7 100 sum 앞으로 sum 라고불러주세요 4

식별자를만드는규칙 좋은변수이름 알파벳문자와숫자, 밑줄문자 _ 로구성 첫번째문자는반드시알파벳또는밑줄문자 _ 대문자와소문자를구별 C 언어의키워드와똑같은이름은허용되지않는다. 변수의역할을가장잘설명하는이름 밑줄방식 : bank_account 단어의첫번째글자를대문자 :BankAccount (Q) 다음은유효한식별자인가? sum O _count O king3 O n_pictures O 2nd_try X // 숫자로시작 Dollor# X // # 기호 double X // 키워드 a, b, c,,d, number, average, sum, 키워드 변수선언 키워드 (keyword): C 언어에서고유한의미를가지고있는특별한단어 예약어 (reserved words) 라고도한다. 컴파일러에게어떤변수를사용하겠다고미리알리는것 자료형 변수이름 auto double struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while index; index 5

변수선언의예 변수에값을저장하는방법 변수선언의예 char c; i; double erest_rate; height, width; char c i double erest_rate char c; // 문자형변수 c 선언 i; // 정수형변수 i 선언 double erest_rate; // 실수형변수 erest_rate 선언 c = 'a'; // 문자형변수 c에문자 'a' 를대입 i = 60; // 정수형변수 i에 60을대입 erest_rate = 4.9; // 실수형변수 erest_rate에 82.9를대입 height width char a c i 7 4.9 double erest_rate 변수의초기화 변수선언위치 자료형변수이름 = 초기값 ; 변수초기화의예 char c = a ; i = 7; double erest_rate = 0.05; char a c i 7 double 0.05 erest_rate main(void) i; // prf("hello World!\n"); sum; // ⅹ 일반문장이시작된후에변수를선언하는것은 C 언어에서는곤란합니다. 6

변수의사용 변수의사용 대입연산자를이용하여서값을저장한다. 저장된값은변경이가능하다. value; value = 10; value = 20; value1 = 10; value2; value2 = value1; 예제 : 변수의선언 정수형 main(void) usd; krw; // 달러화 // 원화 prf(" 달러화금액을입력하시오 : "); scanf("%d", &usd); 변수선언 krw = 1120 * usd; prf(" 달러화 %d 달러는 %f 원입니다.", usd, krw); 달러화금액을입력하시오 : 100 달러화 100 달러는 112000 원입니다. short,, long short long 16비트 (2바이트) 32비트 (4바이트) 32비트 (4바이트) 가장기본이되는것은 CPU 에따라서크기가달라진다. 16 비트, 32 비트, 64 비트 (Q) 왜여러개의정수형이필요한가? (A) 용도에따라프로그래머가선택하여사용할수있게하기위하여 7

정수형선언의예 정수형의범위 short grade; // short형의변수를생성한다. count; // 형의변수를생성한다. long distance; // distance형의변수를생성한다. 형 short 형 약 -21 억에서 +21 억 long 형 보통 형과같음 예제 signed, unsigned 수식자 /* 정수형자료형의크기를계산하는프로그램 */ main(void) short year = 0; // 0 으로초기화한다. sale = 0; // 0 으로초기화한다. long total_sale = 0; // 0 으로초기화한다. year = 10; // 약 3만2천을넘지않도록주의 sale = 200000000; // 약 21억을넘지않도록주의 total_sale = year * sale; // 약 21억을넘지않도록주의 prf("total_sale = %d \n", total_sale); Total sale = 200000000 unsigned 음수가아닌값만을나타냄을의미 unsigned signed 부호를가지는값을나타냄을의미 흔히생략 short long 8

unsigned 수식자 오버플로우 unsigned speed; // 부호없는 형 unsigned distance; // unsigned distance와같다. unsigned short players; // 부호없는 short형 unsigned long seconds; // 부호없는 long형 오버플로우 (overflow): 변수가나타낼수있는범위를넘는숫자를저장하려고할때발생 2147483648 overflow 오버플로우 오버플로우 #include <limits.h> main(void) short s_money = SHRT_MAX; // 최대값으로초기화한다. 32767 unsigned short u_money = USHRT_MAX; // 최대값으로초기화한다. 65535 규칙성이있다. 수도계량기나자동차의주행거리계와비슷하게동작 -32768-32767... 32766 32767 s_money = s_money + 1; prf("s_money = %d", s_money); u_money = u_money + 1; prf("u_money = %d", u_money); 오버플로우발생!! assasa s_money = -32768 u_money = 0 short 의경우 0 1... 65534 65535 unsigned short 의경우 9

정수상수 10 진법, 8 진법, 16 진법 숫자를적으면기본적으로 형이된다. sum = 123; // 123 은 형 상수의자료형을명시하려면다음과같이한다. sum = 123L; // 123 은 long 형 10 진법이외의진법으로도표기가능 x = 10; y = 012; z = 0xA; // 8진수 // 16진수 접미사자료형예 u 또는 U unsigned 123u 또는 123U l 또는 L long 123l 또는 123L ul 또는 UL unsigned long 123ul 또는 123UL 예제 기호상수 /* 정수상수프로그램 */ main(void) x = 10; // 10 은 10 진수이고 형이고값은십진수로 10 이다. y = 010; // 010 은 8 진수이고 형이고값은십진수로 8 이다. z = 0x10; // 010 은 16 진수이고 형이고값은십진수로 16 이다. prf("x = %d", x); prf("y = %d", y); prf("z = %d", z); x = 10 y = 8 z = 16 기호상수 (symbolic constant): 기호를이용하여상수를표현한것 ( 예 ) area = 3.141592 * radius * radius; area = PI * radius * radius; income = salary - 0.15 * salary; income = salary - TAX_RATE * salary; 기호상수의장점 가독성이높아진다. 값을쉽게변경할수있다. 10

기호상수의장점 기호상수를만드는방법 #1 EXCHANGE_RATE 이라는기호를 1120 으로정의 #define EXCHANGE_RATE 1120 기호상수를만드는방법 #2 예제 : 기호상수 변수가값을변경할수없게한다. const EXCHANGE_RATE = 1120; #define TAX_RATE 0.2 main(void) const MONTHS = 12; m_salary, y_salary; // 변수선언 기호상수 const EXCHANGE_ 1120 RATE 변수 prf( " 월급을입력하시요 : "); // 입력안내문 scanf("%d", &m_salary); y_salary = MONTHS * m_salary; // 순수입계산월급을입력하시요 : 100 prf(" 연봉은 %d입니다.", y_salary); 연봉은 1200입니다. prf(" 세금은 %f입니다.", y_salary*tax_rate); 세금은 240.000000입니다. 11

정수표현방법 정수표현방법 컴퓨터에서정수는이진수형태로표현되고이진수는전자스위치로표현된다. 0 0 1 0 1 0 0 0 양수 십진수를이진수로변환하여저장하면된다. 음수 보통은첫번째비트를부호비트로사용한다. 문제점이발생한다. 음수를표현하는첫번째방법 컴퓨터는덧셈만할수있다 첫번째방법은맨처음비트를부호비트로간주하는방법입니다. 양수와음수의덧셈연산을하였을경우, 결과가부정확하다. ( 예 ) +3 + (-3) 이방법으로표현된이진수를평범하게더하면결과가부정확합니다. 컴퓨터는회로의크기를줄이기위하여덧셈회로만을가지고있다. 뺄셈은다음과같이덧셈으로변환한다. 3-3 = 3+(-3) 12

음수를표현하는두번째방법 2 의보수로양수와음수를더하면 2 의보수로음수를표현한다. -> 표준적인음수표현방법 2 의보수를만드는방법 음수를 2 의보수로표현하면양수와음수를더할때각각의비트들을더하면됩니다. 예제 부동소수점형 /* 2 의보수프로그램 */ main(void) x = 3; y = -3; 음수가 2 의보수로표현되는지를알아보자. 컴퓨터에서실수는부동소수점형으로표현 소수점이떠서움직인다는의미 과학자들이많이사용하는과학적표기법과유사 실수의정밀도를나타낸다. 실수의표현범위를나타낸다. prf("x = %08X\n", x); // 8자리의 16진수로출력한다. prf("y = %08X\n", y); // 8자리의 16진수로출력한다. prf("x+y = %08X\n", x+y); // 8자리의 16진수로출력한다. 1.49598ⅹ10 8 가수부분지수부분 x = 00000003 y = FFFFFFFD x+y = 00000000 13

실수를표현하는방법 실수를표현하는방법 #1 고정소수점방식 정수부분을위하여일정비트를할당하고소수부분을위하여일정비트를할당 전체가 32 비트이면정수부분 16 비트, 소수부분 16 비트할당 과학과공학에서필요한아주큰수를표현할수없다 #2 부동소수점방식 부호비트 (1 비트 ) 149598000 = 1.49598 10 8 0 1.49598 8 0 1 가수부분 (23비트) 23 24 지수부분 (8비트) 31 표현할수있는범위가대폭늘어난다. 10-38 에서 10 +38 부동소수점형 float < double long double 64 비트 /* 부동소수점자료형의크기계산 */ main(void) float x = 1.234567890123456789; double y = 1.234567890123456789; 예제 prf("float 의크기 =%d\n", sizeof(float)); prf("double 의크기 =%d\n", sizeof(double)); prf("long double 의크기 =%d\n", sizeof(long double)); prf("x = %30.25f\n",x); prf("y = %30.25f\n",y); float의크기 =4 double의크기 =8 long double의크기 =8 x = 1.2345678806304932000000000 y = 1.2345678901234567000000000 14

부동소수점상수 부동소수점오버플로우 일반적인실수표기법 3.141592 (double형) 3.141592F (float형) 지수표기법 1.23456e4 = 12345.6 1.23456e-3 = 0.00123456 main(void) float x = 1e39; prf("x = %e\n",x); 숫자가커서오버플로우발생 유효한표기법의예 1.23456 2. // 소수점만붙여도된다..28 // 정수부가없어도된다. 0e0 2e+10 // + 나 -기호를지수부에붙일수있다. 9.26E3 // 9.26e3 // x = 1.#INF00e+000 계속하려면아무키나누르십시오... 부동소수점언더플로우 부동소수점형사용시주의사항 main(void) float x = 1.23456e-38; float y = 1.23456e-40; float z = 1.23456e-46; 숫자가작아서언더플로우발생 오차가있을수있다! main(void) double x; 부동소수점연산에서는오차가발생한다. 5.0 이아니라 0 으로계산된다. prf("x = %e\n",x); prf("y = %e\n",y); prf("z = %e\n",z); x = (1.0e20 + 5.0)-1.0e20; prf("%f \n",x); x = 1.234560e-038 y = 1.234558e-040 z = 0.000000e+000 0.000000 15

중간점검 문자형 1. 부동소수점형에속하는자료형을모두열거하라. 2. float 형대신에 double 형을사용하는이유는무엇인가? 3. 부동소수점형에서오차가발생하는근본적인이유는무엇인가? 4. 12.345 처럼소수점이있는실수를 형의변수에넣을경우, 어떤일이발생하는가? 5. 수식 (1.0/3.0) 을 float 형변수와 double 형변수에각각저장한후에출력하여보자. (1.0/3.0) 은 0.333333... 값을출력하여야한다. 소수점몇자리까지정확하게출력되는가? 문자는컴퓨터보다는인간에게중요 문자도숫자를이용하여표현 65 69 71 74 78 C 에서문자는숫자로표현됩니다. 문자형 아스키코드표 ( 일부 ) 문자는컴퓨터보다는인간에게중요 문자도숫자를이용하여표현 공통적인규격이필요하다. 아스키코드 (ASCII: American Standard Code for Information Interchange) 8 비트를사용하여영어알파벳표현 ( 예 )! 는 33, A 는 65, B 는 66, a 는 97, b 는 98!"#$%&'()*+,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ `abcdefghijklmnopqrstuvwxyz ~ 16

char 형의변수가문자저장 char c; char answer; char code; 문자변수 char 형의변수에문자를저장하려면아스키코드값을대입 code = 65; code = A ; // A 저장 char c char answer char code /* 문자변수와문자상수 */ main(void) char code1 = 'A'; char code2 = 65; 예제 // 문자상수로초기화 // 아스키코드로초기화 prf(" 문자상수초기화 = %c\n", code1); prf(" 아스키코드초기화 = %c\n", code2); 문자상수초기화 = A 아스키코드초기화 = A Quiz 제어문자 (Q) 1 과 1 의차이점은? (A) 1 은정수이고 1 은문자 1 을나타내는아스키코드이다. 인쇄목적이아니라제어목적으로사용되는문자들 ( 예 ) 줄바꿈문자, 탭문자, 벨소리문자, 백스페이스문자 1 49 17

제어문자를나타내는방법 이스케이프시퀀스 아스키코드를직접사용 char beep = 7; prf("%c", beep); 이스케이프시퀀스사용 char beep = \a ; prf("%c", beep); 제어문자이름 제어문자표기 값 의미 널문자 \0 0 문자열의끝을표시 경고 (bell) \a 7 " 삐 하는경고벨소리발생 백스페이스 (backspace) \b 8 커서를현재의위치에서한글자뒤로옮긴다. 수평탭 (horizontal tab) \t 9 커서의위치를현재라인에서설정된다음탭위치로옮긴다. 줄바꿈 (newline) \n 10 커서를다음라인의시작위치로옮긴다. 수직탭 (vertical tab) \v 11 설정되어있는다음수직탭위치로커서를이동 폼피드 (form feed) \f 12 캐리지 return) 리턴 (carriage 주로프린터에서강제적으로다음페이지로넘길때사용된다. \r 13 커서를현재라인의시작위치로옮긴다. 큰따옴표 \ 34 원래의큰따옴표자체 작은따옴표 \ 39 원래의작은따옴표자체 역슬래시 (back slash) \\ 92 원래의역슬래시자체 main() id, pass; 예제 prf(" 아이디와패스워드를 4 개의숫자로입력하세요 :\n"); prf("id: \b\b\b\b"); scanf("%d", &id); 정수형으로서의 char 형 8 비트의정수를저장하는데 char 형을사용할수있다.. char code = 65; prf("%d %d %d", code, code+1, code+2); // 65 66 67 이출력된다. prf("%c %c %c", code, code+1, code+2); // A B C 가출력된다. prf("pass: \b\b\b\b"); scanf("%d", &pass); prf( \a 입력된아이디는 \ %d\ 이고패스워드는 \ %d\ 입니다.", id, pass); 65 66 67A B C 아이디와패스워드를 4 개의숫자로입력하세요 : id: 1234 pass: 5678 입력된아이디는 "1234" 이고패스워드는 "5678" 입니다. 18

중간점검 실습 : 태양빛도달시간 컴퓨터에서는문자를어떻게나타내는가? C 에서문자를가장잘표현할수있는자료형은무엇인가? 경고음이발생하는문장을작성하여보자. 태양에서오는빛이몇분만에지구에도착하는지를컴퓨터로계산해보고자한다. 빛의속도는 1 초에 30 만 km 를이동한다. 태양과지구사이의거리는약 1 억 4960 만 km 이다. 실행결과 힌트 빛의속도는 300000.000000km/s 태양과지구와의거리 149600000.000000km 도달시간은 8.311111 초 문제를해결하기위해서는먼저필요한변수를생성하여야한다. 여기서는빛의속도, 태양과지구사이의거리, 도달시간을나타내는변수가필요하다. 변수의자료형은모두실수형이어야한다. 왜냐하면매우큰수들이기때문이다. 빛이도달하는시간은 ( 도달시간 = 거리 / ( 빛의속도 )) 으로계산할수있다. 실수형을 prf() 로출력할때는 %f 나 %lf 를사용한다. 19

소스 도전문제 main(void) double light_speed = 300000; double distance = 149600000; double time; // 빛의속도저장하는변수 // 태양과지구사이거리저장하는변수 // 149600000km로초기화한다. // 시간을나타내는변수 위의프로그램의출력은 8.31111... 초로나온다. 이것을분과초로나누어서 8 분 20 초와같은식으로출력하도록변경하라. 필요하다면형변환을사용하라. 추가적인정수변수를사용하여도좋다. time = distance / light_speed; // 거리를빛의속도로나눈다. time = time / 60.0; // 초를분으로변환한다. prf(" 빛의속도는 %fkm/s \n", light_speed); prf(" 태양과지구와의거리 %fkm \n", distance); prf(" 도달시간은 %f 초 \n", time); // 시간을출력한다. 빛의속도는 300000.000000km/s 태양과지구와의거리 149600000.000000km 도달시간은 8.311111 초 Q & A 20