C Language Programming_문제.hwp

Size: px
Start display at page:

Download "C Language Programming_문제.hwp"

Transcription

1 Chapter 1. C 프로그래밍시작 1. 예제 Ⅰ. 예제 _1.1 - 주석사용연습예제 /* */ 여기는주석부분입니다. 컴파일시이부분은컴파일되지않는 코드영역입니다. // 이것또한주석입니다. printf("hello World!\n"); Ⅱ. 예제 _1.2 - 특수문자사용연습예제 printf("\t#### 성적표 ####\n"); printf("=============================================\n"); printf(" 이름 \t국어\t영어\t수학\t체육\t음악\n"); printf(" \n"); printf(" 김연아 \t95\t100\t76\t100\t97\n"); printf(" 박찬호 \t60\t100\t75\t100\t77\n"); printf(" 유이 \t90\t70\t70\t99\t90\n"); printf(" 안철수 \t100\t100\t100\t66\t65\n"); printf(" \n"); 1

2 2. 문제 Ⅰ. 문제 _1.1 - 특수문자연습문제 Ⅱ. 문제 _1.2 - 특수문자연습문제 Ⅲ. 문제 _1.3 - 특수문자연습문제 2

3 Chapter 2. 데이터형, 변수, 상수 1. 예제 Ⅰ. 예제 _2.1 - 정수, 실수, 문자형변수에각각값을대입한후, 출력하는예제 int val1 = 100; double val2 = 200.0; char val3 = 'A' printf("val1 은정수이며값은 %d 입니다.\n",val1); printf("val2 은실수이며값은 %f 입니다.\n",val2); printf("val3 은문자이며값은 %c 입니다.\n",val3); Ⅱ. 예제 _2.2 - 원의넓이를계산하여출력하는예제 double pi = ; // PI( 파이 ) int radius = 7; // 반지름 double result = pi*radius*radius; // 결과 : 원의넓이 printf("pi 는 %f 입니다.\n", pi); printf(" 원의반지름은 %d 입니다.\n", radius); printf(" 원의넓이는 %.3f 입니다.\n", result); 3

4 Ⅲ. 예제 _2.3 - ASCII 코드문자출력예제 char lower = 'a' char upper = 'A' char number = '1' printf(" 입력문자 : %c\n", lower); printf("ascii 코드 10 진수 : %d\n\n", lower); printf("ascii 코드 16 진수 : %x\n\n", lower); printf(" 입력문자 : %c\n", upper); printf("ascii 코드 10 진수 : %d\n\n", upper); printf("ascii 코드 16 진수 : %x\n\n", upper); printf(" 입력문자 : %c\n", number); printf("ascii 코드 10 진수 : %d\n\n", number); printf("ascii 코드 16 진수 : %x\n\n", number); 2. 문제 Ⅰ. 문제 _2.1 - 점수 (val), 등급 (grade) 이란변수를선언한후, 점수는 100으로등급은 A로초기화 하여화면에아래와같이출력하는프로그램을작성 Ⅰ. 문제 _2.2 - 반지름의길이가 2 인원의넓이는구하는프로그램작성 4

5 Chapter 3. 데이터형, 변수, 상수 1. 예제 Ⅰ. 예제 _3.1 - 출력변환문자와옵션지정자를이용하여출력한예제 int i = 28; int j = 77; double d = ; char c = 'A' printf("%d %#o %#X\n", j, j, j); // 10진수를10, 8, 16진수로출력 ( 접두어표시 : #); printf("%d %d %d \n", 10, 010, 0x10); // 10, 8, 16진수를10진수로출력 printf("%5d\n", i); // 5자리우측정렬 printf("%5c\n", c); // 5자리공간확보우측정렬 printf("%-5d%-5d\n", i, i); // 5자리좌측정렬 printf("%08d\n", i); // 8자리공간확보- 빈공간은 0으로채움 printf("%8.2f\n", d); // 8자리공간확보- 소수점이하 2자리출력 printf("100%% success\n"); // 문자 '%' 출력 5

6 Ⅱ. 예제 _3.2 - 입력변환문자를이용하여정수와실수두개씩을입력받아평균을구하는프로그램예제 int d1, d2; double f1, f2; double re1, re2; printf(" 정수두개입력 : "); scanf("%d %d", &d1, &d2); printf(" 실수두개입력 : "); scanf("%lf %lf", &f1, &f2); // double 형실수입력 re1 = (d1 + d2) / 2.0; // 정수연산의결과는정수 re2 = (f1 + f2) / 2; printf("\n정수평균 %.2f\n", re1); // 소수점이하2자리출력 printf(" 실수평균 %.2f\n", re2); 2. 문제 Ⅰ. 문제 _3.1 - 국어 (kor), 영어 (eng), 수학 (math) 점수를입력받아합계 (sum) 를계산하여화면에출력하는프로그램작성 6

7 Chapter 4. 연산자 1. 예제 Ⅰ. 예제 _4.1 - 조건연산자를이용한예제 int a, b, large; printf(" 첫번째수를입력하세요 "); scanf("%d", &a); printf(" 두번째수를입력하세요 "); scanf("%d", &b); large = a>b? a : b; printf("%d 와 %d 중큰수는 %d 입니다 \n", a, b, large); 7

8 Ⅱ. 예제 _4.2 - sizeof 연산자를이용한예제 double a = 3.14; short b = 3; printf("int = %dbyte\n", sizeof(int) ); printf("short = %dbyte\n", sizeof(short) ); printf(" 변수a = %dbyte\n", sizeof(a) ); printf(" 변수b = %dbyte\n", sizeof(b) ); printf(" 정수상수5 = %dbyte\n", sizeof(5) ); printf("5+4 = %dbyte\n", sizeof(5+4) ); printf(" 실수상수 = %dbyte\n", sizeof(123.12) ); printf(" 실수상수123.12f = %dbyte\n", sizeof(123.12f) ); Ⅱ. 예제 _4.3 - 형변환연산자를이용한예제 int a = 5, b = 2; double re; re = a / b; printf("%.2f\n", re); // 정수연산의결과는정수 re = (double)a / b; printf("%.2f\n", re); // a 를형변환 re = (double)(a / b); // 나눗셈의결과를 double형으로변환 printf("%.2f\n", re); 8

9 Chapter 5. 제어문 Ⅰ 1. 예제 Ⅰ. 예제 _5.1 - if 문을이용한계산기프로그램예제 int opt; double num1, num2; double result; printf("1. 덧셈2. 뺄셈3. 곱셈4. 나눗셈 \n"); printf(" 선택? "); scanf("%d", &opt); printf(" 두개의실수입력 : "); scanf("%lf %lf", &num1, &num2); if(opt==1) result = num1 + num2; if(opt==2) result = num1 - num2; if(opt==3) result = num1 * num2; if(opt==4) result = num1 / num2; printf(" 결과 : %f \n", result); 9

10 Ⅱ. 예제 _5.2 - if, else if, else 를이용한성적처리프로그램예제 int kor, eng, math; double ave; char grade; printf("[ 국어 ] [ 영어 ] [ 수학 ] 점수입력 : "); scanf("%d %d %d", &kor, &eng, &math); fflush(stdin); ave = (double)(kor+eng+math)/3; if(ave>=90) grade = 'A'; else if(ave>=80) grade = 'B'; else if(ave>=70) grade = 'C'; else if(ave>=60) grade = 'D'; else grade = 'F'; printf(" 평균은 %2.f 로 %c 등급입니다.\n", ave, grade); 10

11 Ⅲ. 예제 _5.3 - switch 문을이용한등급계산프로그램예제 int score; char grade; int result; printf(" 점수입력 : "); scanf("%d", &score); result = score / 10; switch(result) case 10: case 9: grade = 'A'; break; case 8: grade = 'B'; break; case 7: grade = 'C'; break; case 6: grade = 'D'; break; default: grade = 'F'; printf("\n%d 점 ==> %c 등급 \n", score, grade); 11

12 2. 문제 Ⅰ. 문제 _5.1 - 정수를입력받아아래와같이출력하는프로그램을작성 (if문이용 ) 3의배수이면서, 4의배수에도해당 => [ ] 은 ( 는 ) 3의배수이면서, 4의배수입니다. 3의배수에만해당 => [ ] 은 ( 는 ) 3의배수입니다. 4의배수에만해당 => [ ] 은 ( 는 ) 4의배수입니다. 3의배수도 4의배수도해당안됨 => [ ] 은 ( 는 ) 3의배수도 4의배수도아닙니다. 0은어떤수의배수도아니기때문에 0은( 는 ) 3의배수도 4의배수도아닙니다. 라고출력되야함 Ⅱ. 문제 _5.2 - 점수를입력받아등급을출력하는프로그램을작성 (switch문이용 ) 점수는 0~100점까지만입력가능하며, 그외의점수를입력하면 잘못된입력 이라는메시지출력후종료 90점이상 : A등급 80점이상 : B등급 70점이상 : C등급 60점이상 : D등급 60점미만 : F등급 12

13 Chapter 6. 제어문 Ⅱ 1. 예제 Ⅰ. 예제 _6.1 - for 문을이용한 1~100 까지의누적합출력프로그램예제 int i, sum=0; for(i=1 ; i<=100 ; i++) printf("%5d", i); sum += i; printf("\n1 부터 100 까지의합은 %d 입니다!!\n", sum); Ⅱ. 예제 _6.2 - for문을이용한 1~1000사이 7의배수의합을출력하는프로그램예제 int i, sum=0; for(i=0 ; i<=1000 ; i+=7) printf("%5d", i); sum += i; printf("\n1~1000 사이의 7의배수의합은 %d입니다!!\n", sum); 13

14 Ⅲ. 예제 _6.3 - for 문을이용한시작값과끝값사이의합계를구하는프로그램예제 int start, end, result; printf(" 시작값끝값입력 : "); scanf("%d %d", &start, &end); for(result=0 ; start<=end ; start++) result += start; printf(" 시작과끝사이의합계 : %d \n", result); Ⅲ. 예제 _6.4 - 다중 for문을이용한예제 int i,j; for(i=1 ; i <=5 ; i++) for(j=1 ; j<=i ; j++) printf("*"); printf("\n"); 14

15 Ⅲ. 예제 _6.5 - 다중 for 문을이용한예제 int i,j; for(i=1 ; i <=9 ; i++) if(i<=5) for(j=1 ; j<=i ; j++) printf("*"); else for(j=1 ; j<=10-i ; j++) printf("*"); printf("\n"); 2. 문제 Ⅰ. 문제 _6.1 - 다중 for문을이용하여아래와같이출력되는프로그램작성 15

16 Ⅱ. 문제 _6.2 - 다중 for 문을이용하여구구단을가로와세로로출력하는프로그램작성 16

17 Chapter 7. 제어문 Ⅲ 1. 예제 Ⅰ. 예제 _7.1 - while 문을이용하여입력받은숫자만큼화면에문자열을출력하는예제 int num; int i=0; printf(" 숫자입력 : "); scanf("%d", &num); while(i<num) printf("hello World! \n"); i++; Ⅱ. 예제 _7.2 - while문을이용하여숫자를입력받아그수만큼 3의배수를출력하는예제 int i=0, num=0, cnt; printf("3 의배수의개수 : "); scanf("%d", &cnt); while(num++<cnt) i+=3; printf("%d ", i); 17

18 Ⅲ. 예제 _7.3 - do~while 문을이용하여 0 과 100 사이에존재하는짝수의합을출력하는예제 int total=0; int val=0; do total+=val; val=val+2; while(val<=100); printf("total : %d \n", total); Ⅳ. 예제 _7.4 - goto문을이용한프로그램예제 int num; printf(" 숫자입력 (1, 2, 3): "); scanf("%d", &num); if(num==1) goto label1; else if(num==2) goto label2; else goto label3; label1: printf("1 을입력하셨습니다! \n"); label2: printf("2 을입력하셨습니다! \n"); 18

19 label3: printf("3 또는다른값을입력하셨습니다! \n"); 2. 문제 Ⅰ. 문제 _7.1 - 입력받은분을시간과분으로나눠출력하는프로그램작성 - 프로그램은종료되지않고무한반복됨 - 분입력이 0이면프로그램종료 - 분입력이 0보다작으면다시입력받음 Ⅱ. 문제 _7.2 - 입력받은문자의 ASCII 코드를출력하는프로그램작성 - 프로그램은종료되지않고무한반복됨 - 계속 / 종료여부를입력받아 S/s를누르면프로그램종료 19

20 Chapter 8. 1 차원배열 1. 예제 Ⅰ. 예제 _8.1-5 층짜리건물의각층거주인원을입력받아건물의거주인원총합을구하는예제 int arr[5]; int total, i; for(i=0 ; i<5 ; i++) printf("%d층에사는사람의수 : ", i+1); scanf("%d", &arr[i]); total = arr[0]+arr[1]+arr[2]+arr[3]+arr[4]; printf(" 현재거주하는총인원 : %d\n", total); Ⅱ. 예제 _8.2-1차원배열을이용하여최대값을구하는예제 int i, max; int score[5]; for(i=0 ; i<5 ; i++) printf(" 입력 %d : ", i+1); scanf("%d", &score[i]); max = score[0]; for(i=1 ; i<5 ; i++) 20

21 if(max < score[i]) max = score[i]; printf("\n최대값 : %d\n", max); Ⅲ. 예제 _8.3 - 문자열을입력받아문자열의길이를계산하는예제 char string[100]; int len=0; printf(" 문자열입력 : "); scanf("%s", string); while(string[len]!='\0') len++; printf(" 입력한문자열의길이는 %d \n", len); 21

22 2. 문제 Ⅰ. 문제 _8.1 - 문자열을입력받아입력받은문자열을뒤집어출력하는프로그램작성 - 배열의크기는 100 으로함 Ⅱ. 문제 _8.2 - 문자열을입력받아입력받은문자중 ASCII코드값이가장큰문자출력하는프로그램작성 - 배열의크기는 100으로함 22

23 Chapter 9. 다차원배열 1. 예제 Ⅰ. 예제 _9.1-2 차원배열에 1~25 까지의숫자를가로와세로로저장한후, 출력하는예제 int arr[5][5]; int i,j; int k = 1; for(i=0 ; i<5 ; i++) for(j=0 ; j<5 ; j++) arr[i][j] = k++; // arr[j][i] = k++; <-- 세로출력 for(i=0 ; i<5 ; i++) for(j=0 ; j<5 ; j++) printf("%5d", arr[i][j]); printf("\n"); 23

24 Ⅱ. 예제 _8.2-2차원배열을이용하여숫자를짝수행은왼쪽부터오른쪽으로증가, 홀수행은오른쪽부터왼쪽으로증가하는예제 int arr[5][5]; int i,j,k=1; for(i=0 ; i<5 ; i++) if(i%2==0) for(j=0 ; j<5 ; j++) arr[i][j] = k++; else for(j=4 ; j>=0 ; j--) arr[i][j] = k++; for(i=0 ; i<5 ; i++) for(j=0 ; j<5 ; j++) printf("%5d", arr[i][j]); printf("\n"); 24

25 2. 문제 Ⅰ. 문제 _9.1-2 차원배열을사용하여구구단을 2~9 단까지출력하는프로그램작성 25

26 Chapter 10. 함수와기억클래스 1. 예제 Ⅰ. 예제 _ 사용자정의함수예제 void func_line(); void func_star(); // line 함수선언 // star 함수선언 func_star(); func_star(); func_line(); func_star(); func_line(); // star함수호출 // star함수호출 // line함수호출 // star함수호출 // line함수호출 void func_line() // line함수정의 printf("----\n"); void func_star() // star함수정의 printf("****\n"); 26

27 Ⅱ. 예제 _ 사용자정의함수예제 void sum(int a, int b); void div(int a, int b); int num1, num2; printf(" 입력 1 : "); scanf("%d", &num1); printf(" 입력 2 : "); scanf("%d", &num2); sum(num1, num2); div(num1, num2); void sum(int a, int b) printf("%d + %d = %d\n", a, b, a+b); void div(int a, int b) printf("%d / %d = %.2f\n", a, b, (double)a/b); 27

28 Ⅲ. 예제 _ 사용자정의함수예제 int sum(int a, int b); double div(int a, int b); int num1, num2, result; printf(" 입력 1 : "); scanf("%d", &num1); printf(" 입력 2 : "); scanf("%d", &num2); result = sum(num1, num2) * 10; printf("\n\n(%d + %d) * 10 = %d\n", num1, num2, result); printf("%d / %d = %.2f\n", num1, num2, div(num1, num2)); int sum(int a, int b) return a+b; double div(int a, int b) double result; result = (double)a/b; return result; 28

29 2. 문제 Ⅰ. 문제 _ 사용자정의함수를구현하여코드를완성시켜라ㅤ- 이름 : power, 기능 : 정수의제곱을구해리턴하는함수 double re; int n; printf(" 제곱을구할숫자입력 : "); scanf("%d", &n); re = power(n); printf("%d 의제곱은 %.0f 입니다.\n", n, re); Ⅱ. 문제 _ 사용자정의함수를구현하여코드를완성시켜라ㅤ- 이름 : samenum함수, 기능 : 2개의정수가일치하면 1을리턴아니면 0을리턴하는함수 int s1, s2; printf(" 두수입력 :"); scanf("%d %d", &s1, &s2); if(samenum(s1, s2)) printf(" 두수는같습니다.\n"); else printf(" 두수는같지않습니다.\n"); 29

30 Ⅲ. 문제 _ 사용자정의함수를구현하여코드를완성시켜라ㅤ- 이름 : primenum함수, 기능 : 소수라면 1을리턴, 아니라면 0을리턴하는함수 int su; printf(" 숫자입력 :"); scanf("%d", &su); if(primenum(su)) printf("%d는 ( 은 ) 소수입니다.\n", su); else printf("%d는 ( 은 ) 합성수입니다.\n", su); Ⅳ. 문제 _ 세개의수를입력받아가장큰수와가장작은수를출력하는프로그램작성 - 가장큰수는 Max라는이름의사용자정의함수로구현 - 가장작은수는 Min이라는이름의사용자정의함수로구현 30

31 Chapter 11. 포인터의이해 1. 예제 Ⅰ. 예제 _ & 연산자를이용하여변수주소출력예제 char c = 'a'; int i = 7; double d = 3.14; printf("c = %c\n", c); printf("i = %d\n", i); printf("d = %.2f\n", d); printf("c = %p\n", &c); printf("i = %p\n", &i); printf("d = %p\n", &d); 31

32 Ⅱ. 예제 _ 일반변수의크기와포인터변수의크기비교예제 char c = 'a'; int i = 7; double d = 3.14; // 포인터변수선언 char *cp; int *ip; double *dp; // 변수의주소를포인터에저장 cp = &c; ip = &i; dp = &d; // 일반변수의크기출력 printf("i = %dbyte\n", sizeof(i)); printf("c = %dbyte\n", sizeof(c)); printf("d = %dbyte\n", sizeof(d)); // 포인터변수의크기출력 printf("ip = %dbyte\n", sizeof(ip)); printf("cp = %dbyte\n", sizeof(cp)); printf("dp = %dbyte\n", sizeof(dp)); 32

33 Ⅲ. 예제 _ * 연산자를사용하여메모리간접참조사용예제 char c = 'a'; int i = 7; double d = 3.14; // 포인터변수선언 char *cp = &c; int *ip = &i; double *dp = &d; // 포인터에저장된주소출력 printf("i = %p\n", ip); printf("c = %p\n", cp); printf("d = %p\n", dp); // 포인터가가리키는값출력 printf("ip = %d\n", *ip); printf("cp = %c\n", *cp); printf("dp = %.2f\n", *dp); Ⅳ. 예제 _ 포인터연산으로배열에접근하는예제 int arr[3] = 1, 2, 3; int *ip; ip = arr; // 배열이름은배열의시작주소 printf("%p %p %p\n", ip+0, ip+1, ip+2); printf("%d %d %d\n", arr[0], arr[1], arr[2]); printf("%d %d %d\n", *(ip+0), *(ip+1), *(ip+2)); 33

34 Ⅴ. 예제 _ 포인터연산으로배열에접근하는예제 int arr[5] = 1, 2, 3, 4, 5; int i, j = 1; int *ip; ip = arr; for(i=0 ; i<5 ; i++) printf("%d ", *ip++); // *ip와ip++ 이결합된형태 printf("\n"); ip = arr; for(i=0 ; i<5 ; i++) printf("%d ", *++ip); // ++ip와 *ip이결합된형태 printf("\n"); ip = arr; for(i=0 ; i<5 ; i++) printf("%d ", ++*ip); // ++arr[i] 과같은형태 printf("\n"); // 위연산에의해값이변한배열값초기화 for(i=0 ; i<5 ; i++) arr[i] = j; ip = arr; for(i=0 ; i<5 ; i++) printf("%d ", (*ip)++); // arr[i]++ 과같은형태 printf("\n"); 34

35 2. 문제 Ⅰ. 문제 _ 크기가 5인 int형배열 arr을선언하고 1,2,3,4,5로초기화한다음, 포인터 p를선언해서배열 arr의첫번째요소를가리키게함그다음포인터를조작 ( 포인터연산을의미함 ) 해서배열요소의값을 2씩증가시킨후, 전체배열요소를출력하는프로그램을작성 35

36 Chapter 12. 포인터와함수 1. 예제 Ⅰ. 예제 _ 함수에두개의정수를전달한후전달한두개의정수를교환하는함수 swapval함수와 swapadr함수비교예제 void swapval(int x, int y); void swapadr(int *p1, int *p2); int a=3, b=5; swapval(a,b); // Call-by-Value printf("swapval 함수호출후 %d %d\n", a, b); // 값바뀌지않음 swapadr(&a, &b); // Call-by-Reference printf("swapadr 함수호출후 %d %d\n", a, b); // 값바뀜 void swapval(int x, int y) int temp; temp = x; x = y; y = temp; void swapadr(int *p1, int *p2) int temp; temp = *p1; *p1 = *p2; *p2 = temp; 36

37 Ⅱ. 예제 _ 배열에저장된데이터를출력하는함수예제 void output(int *p); int arr[5] = 1, 2, 3, 4, 5; output(arr); void output(int *p) int i; for(i=0 ; i<5 ; i++) //printf("%d ", p[i]); printf("%d ", *(p+i)); printf("\n"); 2. 문제 Ⅰ. 문제 _ 정수를하나입력받아변수 a에저장후입력받은값의제곱을계산하여다시 a에대입해주는프로그램작성 - 입력받은값의제곱을계산하는함수 (Square) 를독립적으로구현 - main함수는사용자정의함수를호출하여결과값을받아출력 1 Call-by-Value 방식으로구현 - square 함수호출시변수 a를전달 - 함수는제곱값을계산하여반환, 반환값을변수 a에다시저장 - 함수의호출형태 : a = Square(a); 37

38 2 Call-by-Reference 방식으로구현 - square 함수호출시변수 a의주소값을전달 - 함수는주소값을참조해서변수 a의값을알아낸다음제곱을계산하여변수 a의값을변경 - 함수의호출형태 : Square(&a); 38

39 Chapter 13. 문자열 1. 예제 Ⅰ. 예제 _ 문자열이주소로처리됨을확인해보기위한예제 void func(char *p); printf("%s\n", "Hello World!!"); printf("%s\n", "Hello World!!"+2); printf("%s\n", "Hello World!!"+4); func("hello Korea!!"); void func(char *p) printf("\n"); printf("%s\n", p); printf("%s\n", p+2); printf("%s\n", p+4); 39

40 Ⅱ. 예제 _ 배열에저장된문자열을대문자는소문자로, 소문자는대문자로변환하는프로그램예제 void charconversion(char *str); char str[] = "Oh My God"; printf(" 변환전출력 : %s\n", str); charconversion(str); printf(" 변환후출력 : %s\n", str); void charconversion(char *str) int i = 0; while(str[i]!= '\0') if(str[i] >= 'A' && str[i] <= 'Z') str[i] += 32; else if(str[i] >= 'a' && str[i] <= 'z') str[i] -= 32; ++i; 40

41 2. 문제 Ⅰ. 문제 _ 문자열을입력받아대문자를모두 * 로변환하여출력하는프로그램작성 Ⅱ. 문제 _ 문자열을입력받아입력된알파벳의개수만큼별표를찍는프로그램작성 41

42 Chapter 14. 문자열함수 1. 예제 Ⅰ. 예제 _ 이름을입력받아이름의길이를구하는예제 #include <string.h> char name[20]; int nlen; printf(" 이름입력 : "); gets(name); nlen = strlen(name); printf(" 글자수 : %d\n", nlen); Ⅱ. 예제 _ 배열의값을다른배열로복사하는예제 #include <string.h> char buf[255]; char copy[255]; printf(" 문자열입력 : "); gets(buf); printf("\n입력문자열 : %s\n", buf); // copy = buf; <-- 오류발생 : 배열에배열대입불가능 strcpy(copy, buf); printf(" 복사문자열 : %s\n", copy); 42

43 Ⅲ. 예제 _ 입력받은파일명에 ".txt" 문자열을연결하는예제 #include <string.h> char str[80]; printf(" 파일명입력 : "); gets(str); strcat(str, ".txt"); printf("\n파일명 : %s\n", str); Ⅳ. 예제 _ 가위 / 바위 / 보를선택한후문자열을비교하여조건에따라판별하는예제 #include <string.h> char in[10]; printf(" 가위 / 바위 / 보선택 : "); gets(in); printf("\n 컴퓨터보선택 -> "); if(strcmp(in, " 가위 ") == 0) printf(" 이겼습니다.\n"); else if(strcmp(in, " 바위 ") == 0) printf(" 졌습니다.\n"); else if(strcmp(in, " 보 ") == 0) printf(" 비겼습니다.\n"); else printf(" 잘못선택하셨습니다.\n"); 43

44 Ⅴ. 예제 _ atoi, atof를이용하여문자열을정수와실수형으로변환하는예제 #include <stdlib.h> char s[10] = "1234", s1[10] = "-1234", s2[10] = "12 34" char st[10] = "12.34", st1[10] = "12.34ab", st2[10] = "abcd" printf("s : %d, s1 : %d, s2 : %d\n", atoi(s), atoi(s1), atoi(s2)); printf("st : %.2f, st1 : %.2f, st2 : %.2f\n", atof(st), atof(st1), atof(st2)); 2. 문제 Ⅰ. 문제 _ 문자열을입력받아입력받은문자열안에존재하는숫자들의총합을계산 44

45 Chapter 15. 전처리기 1. 예제 Ⅰ. 예제 _ 배열의크기를매크로상수로선언한뒤 for문을매크로상수를이용하여수정예제 #define MAX 10 int arr[max]; int i; for(i=0 ; i<max ; i++) arr[i] = i + 1; for(i=0 ; i<max ; i++) printf("%d ", arr[i]); printf("\n"); 45

46 Ⅱ. 예제 _ 매개변수에괄호를쓰지않은경우매크로함수의문제점을확인하기위한예제 #define ADD(x, y) x+y #define MUL(x, y) x*y int result1, result2; result1 = 10 * ADD(3,4); // 10 * result2 = MUL(1+2, 3+4); // * printf("result1 = %d\nresult2 = %d\n", result1, result2); 46

47 Ⅲ. 예제 _ 매크로함수연습예제 #define OUT(s) printf(#s) #define SUM1(a, b) printf("%d\n", a+b) #define SUM2(a, b) printf("a+b=%d\n", a+b) #define SUM3(a, b) printf(#a "+" #b "=%d\n", a+b) OUT(Hello World); printf("\n"); OUT("Hello World"); printf("\n"); SUM1(3, 5); SUM2(3, 5); SUM3(3, 5); printf("3" "+" "5" "=%d\n", 3+5); 47

48 Chapter 16. 구조체 Ⅰ 1. 예제 Ⅰ. 예제 _ 학생정보를저장하는 student 구조체를정의한후 student형의변수선언 - 선언된변수에학생정보를입력한후출력하는프로그램예제 struct student int no; char name[20]; int score; ; void lineprint(char ch, int cnt); struct student st1, st2; printf("\n\n\t\t*** 학생정보입력 ***\n\n"); st1.no = 1; printf(" 학번 : [%03d]\n", st1.no); printf(" 이름 : "); fflush(stdin); gets(st1.name); printf(" 점수 : "); fflush(stdin); scanf("%d", &st1.score); st2.no = 2; printf("\n 학번 : [%03d]\n", st2.no); printf(" 이름 : "); fflush(stdin); gets(st2.name); 48

49 printf(" 점수 : "); fflush(stdin); scanf("%d", &st2.score); printf("\n\n\t\t*** 학생정보출력 ***\n\n"); lineprint('=', 31); printf("%4s %-20s %5s\n", " 학번 ", " 이름 ", " 점수 "); lineprint('-', 31); printf("%4d %-20s %5d\n", st1.no, st1.name, st1.score); printf("%4d %-20s %5d\n", st2.no, st2.name, st2.score); lineprint('=', 31); void lineprint(char ch, int cnt) int i; for(i=0 ; i<cnt ; i++) printf("%c", ch); printf("\n"); 49

50 Ⅱ. 예제 _ 예제를구조체배열을이용하여 5명의학생정보를저장하는프로그램으로수정하는예제 #include <stdlib.h> // system(); #define STU_NUM 5 typedef struct student // typedef struct student student; int no; char name[20]; int score; student; void lineprint(char ch, int cnt); student s[stu_num]; int i; for(i=0 ; i<stu_num ; i++) system("cls"); printf("\n\n\t\t*** 학생정보입력 ***\n\n"); s[i].no = i+1; printf(" 학번 : [%03d]\n", s[i].no); printf(" 이름 : "); fflush(stdin); gets(s[i].name); printf(" 점수 : "); fflush(stdin); scanf("%d", &s[i].score); system("cls"); printf("\n\n\t\t*** 학생정보출력 ***\n\n"); lineprint('=', 31); 50

51 printf("%4s %-20s %5s\n", " 학번 ", " 이름 ", " 점수 "); lineprint('-', 31); for(i=0 ; i<stu_num ; i++) printf("%4d %-20s %5d\n", s[i].no, s[i].name, s[i].score); lineprint('=', 31); void lineprint(char ch, int cnt) int i; for(i=0 ; i<cnt ; i++) printf("%c", ch); printf("\n"); 51

52 Ⅲ. 예제 _ 구조체포인터로구조체배열로선언된멤버에접근하는예제 typedef struct score int kor, eng, mat, sum; score; int i; score s[3] = 70, 70, 70, 80, 80, 80, 90, 90, 90 ; score *p = s; for(i=0 ; i<3 ; i++) s[i].sum = s[i].kor + s[i].eng + s[i].mat; printf("s[%d].sum = %d\n", i, s[i].sum); p[i].sum = p[i].kor + p[i].eng + p[i].mat; printf("p[%d].sum = %d\n", i, p[i].sum); (p+i)->sum = (p+i)->kor + (p+i)->eng + (p+i)->mat; printf("(p+%d)->sum = %d\n", i, (p+i)->sum); (*(p+i)).sum = (*(p+i)).kor + (*(p+i)).eng + (*(p+i)).mat; printf("(*(p+%d)).sum = %d\n", i, (*(p+i)).sum); printf("\n"); 52

53 Chapter 17. 구조체 Ⅱ 1. 예제 Ⅰ. 예제 _ 구조체대입연산예제 typedef struct data int a; double b; char c; DATA; DATA d1 = 50, 3.57, 'A'; DATA d2; d2 = d1; printf("%d, %.2f, %c\n", d1.a, d1.b, d1.c); printf("%d, %.2f, %c\n", d2.a, d2.b, d2.c); 53

54 Ⅱ. 예제 _ 구조체변수 Call-by-Value 예제 typedef struct data int a; double b; char c; DATA; void input(data d); DATA d1 = 10, 3.14, 'A'; input(d1); printf("\n%d, %.2f, %c\n", d1.a, d1.b, d1.c); void input(data d) printf(" 정수입력 : "); scanf("%d", &d.a); fflush(stdin); printf(" 실수입력 : "); scanf("%lf", &d.b); fflush(stdin); printf(" 문자입력 : "); scanf("%c", &d.c); 54

55 Ⅲ. 예제 _ 구조체변수 Call-by-Reference 예제 typedef struct data int a; double b; char c; DATA; void input(data *p); DATA d1 = 10, 3.14, 'A'; input(&d1); printf("\n%d, %.2f, %c\n", d1.a, d1.b, d1.c); void input(data *p) printf(" 정수입력 : "); scanf("%d", &p->a); fflush(stdin); printf(" 실수입력 : "); scanf("%lf", &p->b); fflush(stdin); printf(" 문자입력 : "); scanf("%c", &p->c); 55

56 2. 문제 Ⅰ. 문제 _ 학생한명의정보를 student 구조체에저장한후출력하는프로그램작성 학생정보는학번, 이름, 국어, 영어, 수학, 총점, 평균으로구성 학번은 1번으로저장하며, 이름과국 / 영 / 수점수는입력받음 입력받은점수로총점과평균을계산 입력기능은입력함수에서출력기능은출력함수에서각각구현 56

57 typedef struct student /* 여기에구조체멤버를선언하시오. */ student; /* */ 여기에함수원형을선언하시오. student s; // 구조체변수선언 // 입력함수호출 // 출력함수호출 /* */ 여기에입력함수를정의하시오. /* */ 여기에출력함수를정의하시오. 57

58 Chapter 18. 포인터고급 1. 예제 Ⅰ. 예제 _ 포인터배열예제 char *ptr[4] = "Apple", "Banana", "Orange", "Strawberry"; int i, j; // 문자열단위로출력 for(i=0 ; i<4 ; i++) printf("%s\n", ptr[i]); printf("\n"); // 문자열을문자단위로출력 for(i=0 ; i<4 ; i++) for(j=0 ; ptr[i][j]!='\0' ; j++) printf("%c", ptr[i][j]); // printf("%c", *(ptr[i]+j) ); printf("\n"); 58

59 Ⅱ. 예제 _ 더블포인터예제 void output(char ** p); char *fruit[4] = "apple", "banana", "orange", "strawberry"; output(fruit); // 배열의이름은배열의시작주소 ( 포인터의주소 ) // 포인터주소는더블포인터에저장 void output(char ** p) int i; for(i=0 ; i<4 ; i++) printf("%s\n", p[i]); // printf("%s\n", *(p+1)); printf("\n"); 59

60 Ⅲ. 예제 _ 차원배열이름의포인터예제 int a[6][4]; int (*p)[4]; int i, j, k=1; p = a; for(i=0 ; i<6 ; i++) for(j=0 ; j<4 ; j++) a[i][j] = k++; printf(" 1. %d\n", a[0]); printf(" 2. %d\n", *(a+0)); printf(" 3. %d\n", (*(a+1))[0]); printf(" 4. %d\n", *(a[1]+2)); printf(" 5. %d\n", *(*++p+3)+2); printf(" 6. %d\n", ++*(*(a+1)+2)+4); printf(" 7. %d\n", (*(*p++ + 2)+4)+6); printf(" 8. %d\n", (*p[2]+3)+5); printf(" 9. %d\n", **(p+1)+3); printf(" 10. %d\n", *(p[0]+6)+5); 60

61 Chapter 19. 파일입 출력 1. 예제 Ⅰ. 예제 _ 입력받은한글자를스트림에출력하는프로그램예제 FILE *fp; char ch; fp = fopen("out.txt", "wt"); // 파일생성 - 쓰기모드 if(fp == NULL) printf("file Open Fail\n"); printf(" 문자입력 : "); scanf("%c", &ch); fputc(ch, fp); 61

62 Ⅱ. 예제 _ ctrl+z를누르기이전까지문자열을입력받은후스트림에출력하는프로그램예제 #include <stdlib.h> void input(char *str); FILE *fp; char str[255]; fp = fopen("out.txt", "wt"); if(fp == NULL) printf("file Open Fail\n"); input(str); fputs(str, fp); printf("out.txt 파일에저장완료 \n"); fclose(fp); void input(char *str) char temp; int i=0; printf(" 문자열입력 ( 종료- Ctrl + Z)\n"); while(temp = getchar()) if(temp == EOF) // Ctrl+Z break str[i++] = temp; str[i] = '\0' 62

63 Ⅲ. 예제 _ 저장할파일명을입력받아파일을복사하는프로그램예제 - 프로젝트 ( 파일이읽고쓰이는위치 ) 에 'test.txt' 파일을미리만들어준비해야함 #include <stdlib.h> void filecopy(file *fp, FILE *fp2); void filenameinput(char *filename); FILE *fp, *fp2; char filename[255]; filenameinput(filename); fp = fopen("test.txt", "rt"); fp2 = fopen(filename, "wt"); if(fp == NULL fp2 == NULL) printf("file Open Fail\n"); filecopy(fp, fp2); printf("%s 파일이복사되었습니다.\n", filename); fcloseall(); void filenameinput(char *filename) printf(" 저장파일명입력 : "); gets(filename); strcat(filename, ".txt"); void filecopy(file *fp, FILE *fp2) char temp[255]; 63

64 char *psave; while(psave = fgets(temp, 255, fp)) if(psave == NULL) break fputs(temp, fp2); 64

65 Chapter 20. 메모리관리와동적할당 1. 예제 Ⅰ. 예제 _ 학생수를입력받아입력받은학생수만큼수학점수를저장할수있는메모리를할당, 할당된메모리에점수를입력받아평균을구하는프로그램예제 #include <stdlib.h> int i, in, sum=0; int *p; printf(" 학생수입력 : "); scanf("%d", &in); p = (int *)malloc(in*sizeof(int)); printf("\n"); for(i=0 ; i<in ; i++) printf("%d번수학점수 : ", i+1); scanf("%d", &p[i]); sum += p[i]; printf("\n 학생수 : %d 명 \n 평균 : %.2f\n", in, (double)sum/in); free(p); 65

66 Ⅱ. 예제 _ 학생수를입력받은학생수만큼구조체를할당하여입출력하는프로그램예제 #include <stdlib.h> typedef struct Student int kor, eng, mat, sum; Student; void input(student *pst, int in); void output(student *pst, int in); int in; Student *pst; printf(" 학생수입력 : "); scanf("%d", &in); pst = (Student *)malloc(in * sizeof(student)); input(pst, in); output(pst, in); free(pst); void input(student *pst, int in) int i; for(i=0 ; i<in ; i++) printf("\n국어점수 : "); scanf("%d", &pst[i].kor); printf(" 영어점수 : "); scanf("%d", &pst[i].eng); printf(" 수학점수 : "); 66

67 scanf("%d", &pst[i].mat); pst[i].sum = pst[i].kor + pst[i].eng + pst[i].mat; void output(student *pst, int in) int i; printf("\n\n ***** 점수출력 *****\n\n"); printf("%4s %4s %4s %4s %4s\n", " 번호 ", " 국어 ", " 영어 ", " 수학 ", " 총점 "); for(i=0 ; i<in ; i++) printf("%4d %4d %4d %4d %4d\n", i+1, pst[i].kor, pst[i].eng, pst[i].mat, pst[i].sum); 67

68 Ⅱ. 예제 _ 구조체멤버의문자열을동적할당하여출력하는프로그램예제 #include <stdlib.h> #include <string.h> typedef struct employee char *name; char *phone; char *addr; emp; int i, in; char str[255]; emp *np; printf(" 사원수입력 : "); scanf("%d", &in); fflush(stdin); np = (emp*)malloc(sizeof(emp)*in); for(i=0 ; i<in ; i++) printf("\n사원번호 : [%04d]\n", i+1); printf(" 사원명 : "); gets(str); np[i].name = (char*)malloc(strlen(str)+1); strcpy(np[i].name, str); printf(" 전화번호 : "); gets(str); np[i].phone = (char*)malloc(strlen(str)+1); strcpy(np[i].phone, str); printf(" 주소 : "); gets(str); np[i].addr = (char*)malloc(strlen(str)+1); strcpy(np[i].addr, str); 68

69 printf("\n\n%-8s %-10s %-15s %-30s\n", " 사원번호 ", " 사원명 ", " 전화번호 ", " 주소 "); for(i=0 ; i<in ; i++) printf("%08d %-10s %-15s %-30s\n", i+1, np[i].name, np[i].phone, np[i].addr); for(i=0 ; i<in ; i++) free(np[i].name); free(np[i].phone); free(np[i].addr); free(np); 69

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

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

untitled

untitled int i = 10; char c = 69; float f = 12.3; int i = 10; char c = 69; float f = 12.3; printf("i : %u\n", &i); // i printf("c : %u\n", &c); // c printf("f : %u\n", &f); // f return 0; i : 1245024 c : 1245015

More information

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

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

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

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

Microsoft PowerPoint - chap11-포인터의활용.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 포인터를 사용하는 다양한 방법에

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 #define _CRT_SECURE_NO_WARNINGS #include #include main() { char ch; printf(" 문자 1개를입력하시오 : "); scanf("%c", &ch); if (isalpha(ch))

More information

untitled

untitled if( ) ; if( sales > 2000 ) bonus = 200; if( score >= 60 ) printf(".\n"); if( height >= 130 && age >= 10 ) printf(".\n"); if ( temperature < 0 ) printf(".\n"); // printf(" %.\n \n", temperature); // if(

More information

untitled

untitled while do-while for break continue while( ) ; #include 0 i int main(void) int meter; int i = 0; while(i < 3) meter = i * 1609; printf("%d %d \n", i, meter); i++; return 0; i i< 3 () 0 (1)

More information

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

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 이중포인터란무엇인가? 포인터배열 함수포인터 다차원배열과포인터 void 포인터 포인터는다양한용도로유용하게활용될수있습니다. 2 이중포인터

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

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

Microsoft PowerPoint - chap13-입출력라이브러리.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 스트림의 기본 개념을 알아보고,

More information

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

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

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

Microsoft PowerPoint - chap03-변수와데이터형.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.

More information

Chapter_06

Chapter_06 프로그래밍 1 1 Chapter 6. Functions and Program Structure April, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 이장의강의목표 2 문자의입력방법을이해한다. 중첩된 if문을이해한다. while 반복문의사용법을익힌다. do 반복문의사용법을익힌다.

More information

歯9장.PDF

歯9장.PDF 9 Hello!! C printf() scanf() getchar() putchar() gets() puts() fopen() fclose() fprintf() fscant() fgetc() fputs() fgets() gputs() fread() fwrite() fseek() ftell() I/O 2 (stream) C (text stream) : `/n'

More information

중간고사

중간고사 중간고사 예제 1 사용자로부터받은두개의숫자 x, y 중에서큰수를찾는알고리즘을의사코드로작성하시오. Step 1: Input x, y Step 2: if (x > y) then MAX

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4 Introduction to software design 2012-1 Final 2012.06.13 16:00-18:00 Student ID: Name: - 1 - 0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐

More information

C 언어 프로그래밊 과제 풀이

C 언어 프로그래밊 과제 풀이 과제풀이 (1) 홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 가필요한이유 printf 와 scanf 쌍

More information

Microsoft PowerPoint - Chapter_08.pptx

Microsoft PowerPoint - Chapter_08.pptx 프로그래밍 1 1 Chapter 8. Pointers May, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 포인터의개념 (1/6) 2 포인터란 : 다른객체를가리키는변수 객체의메모리주소를저장하는변수 기호적방식 (symbolic way) 으로주소사용 포인터와관련된연산자

More information

Data Structure

Data Structure Function & Pointer C- 언어의활용을위한주요기법 (3) Dong Kyue Kim Hanyang University dqkim@hanyang.ac.kr 함수의인자전달 함수의인자전달 함수의인자전달방식 인자전달의기본방식은복사다. 함수호출시전달되는값을매개변수를통해서전달받는데, 이때에값의복사가일어난다. int main(void) int val = 10;

More information

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap10-함수의활용.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과

More information

Microsoft PowerPoint - chap-11.pptx

Microsoft PowerPoint - chap-11.pptx 쉽게풀어쓴 C 언어 Express 제 11 장포인터 컴퓨터프로그래밍기초 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 컴퓨터프로그래밍기초 2 포인터란? 포인터 (pointer): 주소를가지고있는변수 컴퓨터프로그래밍기초 3 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다.

More information

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

Microsoft PowerPoint - 제11장 포인터(강의) 쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조

More information

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

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,

More information

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

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 CHAPTER 9 둘중하나선택하기 관계연산자 두개의피연산자를비교하는연산자 결과값은참 (1) 아니면거짓 (0) x == y x 와 y 의값이같은지비교한다. 관계연산자 연산자 의미 x == y x와 y가같은가? x!= y

More information

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

제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 제 11 장포인터 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습합니다.

More information

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap04-연산자.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 06 반복문 01 반복문의필요성 02 for문 03 while문 04 do~while문 05 기타제어문 반복문의의미와필요성을이해한다. 대표적인반복문인 for 문, while 문, do~while 문의작성법을 알아본다. 1.1 반복문의필요성 반복문 동일한내용을반복하거나일정한규칙으로반복하는일을수행할때사용 프로그램을좀더간결하고실제적으로작성할수있음.

More information

Microsoft PowerPoint - 제11장 포인터

Microsoft PowerPoint - 제11장 포인터 쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조

More information

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

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

More information

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

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - chap05-제어문.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); 1 학습목표 제어문인,, 분기문에 대해 알아본다. 인 if와 switch의 사용 방법과 사용시 주의사항에 대해 알아본다.

More information

1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문

1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문 1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문 1. 표준입출력 표준입출력 입력 : 키보드, scanf 함수 출력 : 모니터, printf 함수문제 : 정수값 2개를입력받고두값사이의값들을더하여출력하라. #include int main(void) int Num1, Num2; int

More information

11장 포인터

11장 포인터 Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함

More information

ch15

ch15 쉽게풀어쓴 C 언어 Express 제 14 장포인터활용 C Express 이중포인터 이중포인터 (double pointer) : 포인터를가리키는포인터 int i = 10; int *p = &i; int **q = &p; // i 는 int 형변수 // p 는 i 를가리키는포인터 // q 는포인터 p 를가리키는이중포인터 이중포인터 이중포인터의해석 이중포인터 //

More information

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

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조 - Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]

More information

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을 (structures) 구조체정의 구조체선언및초기화 구조체배열 구조체포인터 구조체배열과포인터 구조체와함수 중첩된구조체 구조체동적할당 공용체 (union) 1 구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined

More information

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

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음

More information

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor 19. 전처리와분할컴파일 순천향대학교컴퓨터학부이상정 1 학습내용 전처리명령어 #include #define 기호상수 const 분할컴파일 순천향대학교컴퓨터학부이상정 2 전처리과정 전처리 (preprocessor) 전처리명령어는 # 기호로시작 #incldue #define 순천향대학교컴퓨터학부이상정 3 #include (1) 지정된파일을프로그램에삽입 꺽쇠괄호는포함할파일을컴파일러에설정되어있는특정디렉토리에서검색

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 08 함수 01 함수의개요 02 함수사용하기 03 함수와배열 04 재귀함수 함수의필요성을인식한다. 함수를정의, 선언, 호출하는방법을알아본다. 배열을함수의인자로전달하는방법과사용시장점을알아본다. 재귀호출로해결할수있는문제의특징과해결방법을알아본다. 1.1 함수의정의와기능 함수 (function) 특별한기능을수행하는것 여러가지함수의예 Page 4 1.2

More information

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - chap06-1Array.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어

More information

int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \

int main(void) int a; int b; a=3; b=a+5; printf(a : %d \n, a); printf(b : %d \n, b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf( a : %x \ ? 1 int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \n", &a); printf(" b : %x \n", &b); * : 12ff60,

More information

02장.배열과 클래스

02장.배열과 클래스 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :

More information

Microsoft PowerPoint - Chapter_04.pptx

Microsoft PowerPoint - Chapter_04.pptx 프로그래밍 1 1 Chapter 4. Constant and Basic Data Types April, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 이장의강의목표 2 기본자료형문자표현방식과문자자료형상수자료형변환 기본자료형 (1/8) 3 변수 (Variables)

More information

<4D F736F F F696E74202D20C1A63134C0E520C6F7C0CEC5CD5FC8B0BFEB>

<4D F736F F F696E74202D20C1A63134C0E520C6F7C0CEC5CD5FC8B0BFEB> 쉽게풀어쓴 C 언어 Express 제 14 장포인터활용 이중포인터 이중포인터 (double pointer) : 포인터를가리키는포인터 int i = 10; int *p = &i; int **q = &p; // i 는 int 형변수 // p 는 i 를가리키는포인터 // q 는포인터 p 를가리키는이중포인터 이중포인터 이중포인터의해석 이중포인터 // 이중포인터프로그램

More information

Infinity(∞) Strategy

Infinity(∞) Strategy 배열 (Array) 대용량데이터 대용량데이터를다루는기법 배열 (Array) 포인터 (Pointer) 구조체 (Structure) 파일 (File) 변수 (Variable) 변수및메모리할당 변수선언 : int imsi; imsi 4 Bytes 변수선언 : char imsi2; imsi2 1 Byte 배열 (Array) 배열 동일한데이터형을가지고있는데이터들을처리할때사용

More information

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

윤성우의 열혈 TCP/IP 소켓 프로그래밍 C 프로그래밍프로젝트 Chap 22. 구조체와사용자정의자료형 1 2013.10.10. 오병우 컴퓨터공학과 구조체의정의 (Structure) 구조체 하나이상의기본자료형을기반으로사용자정의자료형 (User Defined Data Type) 을만들수있는문법요소 배열 vs. 구조체 배열 : 한가지자료형의집합 구조체 : 여러가지자료형의집합 사용자정의자료형 struct

More information

KNK_C_05_Pointers_Arrays_structures_summary_v02

KNK_C_05_Pointers_Arrays_structures_summary_v02 Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

Microsoft PowerPoint - chap12-고급기능.pptx

Microsoft PowerPoint - chap12-고급기능.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 가 제공하는 매크로 상수와 매크로

More information

Microsoft PowerPoint - 7장 배열 pptx

Microsoft PowerPoint - 7장 배열 pptx C 프로그래밍및실습 7. 배열 세종대학교 목차 1) 배열이란? 2) 배열초기화 3) 배열응용 4) 실수배열과문자배열 5) 다차원배열 2 1) 배열이란? 변수를여러개만들어야하는상황을생각해보자. 사용자로부터 5개의정수를입력받아변수에저장하고, 이값을출력하는프로그램은다음과같이작성할수있다. 하지만, 정수가 100개라면? 배열을사용하여해결 int x0, x1, x2,

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 누구나즐기는 C 언어콘서트 제 5 장조건문 이번장에서학습할내용 조건문이란? if 문 if, else 문 중첩 if 문 switch 문 goto 문 이제까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 조건문 조건에따라서여러개의실행경로가운데하나를선택 문장이실행되는순서에영향을주는문장 조건에따라서여러개의같은처리를반복

More information

Microsoft PowerPoint - C_Programming_Basics.ppt [호환 모드]

Microsoft PowerPoint - C_Programming_Basics.ppt [호환 모드] C 언어 기본사항 프로그램의 기본 틀 main 함수 프로그램의 시작점이자 종료지점 printf 함수를이용한문자열출력 문자열 프로그램상에서는큰따옴표로묶어서표현한다. printf 함수의기능 큰따옴표로묶여서표현되는문자열의출력 printf 함수의호출을위해필요한것 #include 의삽입 '\n' 은개행의의미를 #include 지니는

More information

기초컴퓨터프로그래밍

기초컴퓨터프로그래밍 구조체 #include int main() { } printf("structure\n"); printf("instructor: Keon Myung Lee\n"); return 0; 내용 구조체 (struct) Typedef 공용체 (union) 열거형 (enum) 구조체 구조체 (structure) 어떤대상을표현하는서로연관된항목 ( 변수 )

More information

본 강의에 들어가기 전

본 강의에 들어가기 전 C 기초특강 종합과제 과제내용 구조체를이용하여교과목이름과코드를파일로부터입력받아관리 구조체를이용하여학생들의이름, 학번과이수한교과목의코드와점수를파일로부터입력 학생개인별총점, 평균계산 교과목별이수학생수, 총점및평균을계산 결과를파일에저장하는프로그램을작성 2 Makefile OBJS = score_main.o score_input.o score_calc.o score_print.o

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 3 장 : 변수와데이터형 2012 년 이은주 학습목표 변수와상수의개념에대해알아본다. 리터럴상수, 매크로상수, const 변수에대해알아본 다. C 언어의데이터형에대해알아본다. 2 목차 변수와상수 변수 상수 데이터형 문자형 정수형 실수형 sizeof 연산자 3 변수와상수 변수 : 값이변경될수있는데이터 상수 : 값이변경될수없는데이터

More information

Microsoft PowerPoint - chap06-5 [호환 모드]

Microsoft PowerPoint - chap06-5 [호환 모드] 2011-1 학기프로그래밍입문 (1) chapter 06-5 참고자료 변수의영역과데이터의전달 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 자동변수 지금까지하나의함수안에서선언한변수는자동변수이다. 사용범위는하나의함수내부이다. 생존기간은함수가호출되어실행되는동안이다.

More information

PowerPoint Presentation

PowerPoint Presentation #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 변수와상수의개념에대해알아본다.

More information

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information

Microsoft PowerPoint - Chapter_09.pptx

Microsoft PowerPoint - Chapter_09.pptx 프로그래밍 1 1 Chapter 9. Structures May, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 구조체의개념 (1/4) 2 (0,0) 구조체 : 다양한종류의데이터로구성된사용자정의데이터타입 복잡한자료를다루는것을편하게해줌 예 #1: 정수로이루어진 x,

More information

Microsoft PowerPoint - Chapter_05.pptx

Microsoft PowerPoint - Chapter_05.pptx 프로그래밍 1 1 Chapter 5. Functions and Control Flow April, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 이장의강의목표 2 printf 함수와 scanf 함수의이해함수의이해대표적제어문인 if와 for 문을이해한다. 코드블록

More information

Microsoft PowerPoint - chap06-8 [호환 모드]

Microsoft PowerPoint - chap06-8 [호환 모드] 2011-1 학기프로그래밍입문 (1) 참고자료 chap 6-8. 메모리동적할당 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 동적할당의필요성 프로그램을작성하는단계에서필요한기억공간의크기를결정하는 것은정적할당이다. - 변수나배열의선언

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 쉽게풀어쓴 C 언어 Express 제 6 장조건문 이번장에서학습할내용 조건문이란? if 문 if, else 문 중첩 if 문 switch 문 break 문 continue 문 goto 문 5 장까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 조건문 조건에따라서여러개의실행경로가운데하나를선택 문장이실행되는순서에영향을주는문장

More information

Microsoft PowerPoint - chap-06.pptx

Microsoft PowerPoint - chap-06.pptx 쉽게풀어쓴 C 언어 Express 제 6 장조건문 컴퓨터프로그래밍기초 이번장에서학습할내용 조건문이란? if 문 if, 문 중첩 if 문 switch 문 break문 continue문 goto 문 5장까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 컴퓨터프로그래밍기초 2 조건문 조건에따라서여러개의실행경로가운데하나를선택

More information

Infinity(∞) Strategy

Infinity(∞) Strategy 반복제어 표월성 passwd74@cherub.sungkyul.edu 개요 for() 문 break문과 continue문 while문 do-while문 for() 문 for() 문형식 for( 표현식1; 표현식2; 표현식3) 여러문장들 ; 표현식 1 : 초기화 (1 번만수행 ) 표현식 2 : 반복문수행조건 ( 없으면무한반복 ) 표현식 3 : 반복문수행횟수 for()

More information

Microsoft PowerPoint - 10장 문자열 pptx

Microsoft PowerPoint - 10장 문자열 pptx C 프로그래밍및실습 10. 문자열 세종대학교 목차 1) 문자열이란? 2) 문자열과포인터 3) 문자열의배열 4) 문자열처리함수 5) 문자열및문자입출력 2 1) 문자열이란 문자배열 ( 복습 ) 원소가문자인배열 각배열원소를하나의단위로처리 : 초기화, 입출력 char str[8] = {'H','e','l','l','o'}; // 문자로초기화 int i; for (i=0

More information

Microsoft PowerPoint - chap06-8.ppt

Microsoft PowerPoint - chap06-8.ppt 2010-1 학기프로그래밍입문 (1) 참고자료 chap 6-8. 메모리동적할당 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 동적할당의필요성 프로그램을작성하는단계에서필요한기억공간의크기를결정하는것은정적할당이다. - 변수나배열의선언 프로그램의실행중에입력되는데이터에맞게기억공간을확보해야할때는동적할당이필요하다.

More information

11장 포인터

11장 포인터 쉽게풀어쓴 C 언어 Express 제 12 장문자와문자열 이번장에서학습할내용 문자표현방법 문자열표현방법 문자열이란무엇인가? 문자열의입출력 문자처리라이브러리함수 표준입출력라이브러리함수 인간은문자를사용하여정보를표현하므로문자열은프로그램에서중요한위치를차지하고있다. 이번장에서는 C 에서의문자열처리방법에대하여자세히살펴볼것이다. 문자의중요성 인간한테텍스트는대단히중요하다.

More information

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - [2009] 02.pptx 원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

C 프로그래밊 개요

C 프로그래밊 개요 함수 (2) 2009 년 9 월 24 일 김경중 공지사항 10 월 1 일목요일수업휴강 숙제 #1 마감 : 10 월 6 일화요일 기초 함수를만들어라! 입력 함수 ( 기능수행 ) 반환 사용자정의함수 정의 : 사용자가자신의목적에따라직접작성한함수 함수의원형 (Function Prototype) + 함수의본체 (Function Body) : 함수의원형은함수에대한기본적정보만을포함

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 쉽게풀어쓴 C 언어 Express 제 6 장조건문 이번장에서학습할내용 조건문이란? if 문 if, else 문 중첩 if 문 switch 문 break 문 continue 문 goto 문 5 장까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 조건문 조건에따라서여러개의실행경로가운데하나를선택 문장이실행되는순서에영향을주는문장

More information

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

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2 제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.

More information

PowerPoint Template

PowerPoint Template 10 포인터 1 주소 Address( 주소 ) 메모리에는그메모리의저장장소의위치를나타내는주소값 주소 (address) 는 1 바이트마다 1 씩증가하도록메모리에는연속적인번호가구성 2 주소연산자 & & 변수 변수의주소값을알아내려면변수앞에주소연산자 & (ampersand) 를이용 주소값이용장단점 주소값을이용하면보다편리하고융통성있는프로그램이가능 그러나복잡하고어려운단점

More information

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2> 쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C 프로그램을이루는구성요소들을살펴봅니다. 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계 ), 결과를화면에출력

More information

Microsoft PowerPoint - chap06-4 [호환 모드]

Microsoft PowerPoint - chap06-4 [호환 모드] 2011-1 학기프로그래밍입문 (1) chapter 06-4 참고자료 문자열의처리 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 문자열의연산 문자열은배열의형태로구현된응용자료형이므로연산을자유롭게할수없다. 배열에저장된문자열의길이를계산하는작업도간단하지않다.

More information

13 주차문자열의표현과입출력

13 주차문자열의표현과입출력 13 주차문자열의표현과입출력 문자표현방법 문자열표현방법 문자열이란무엇인가? 문자열의입출력 문자처리라이브러리함수 표준입출력라이브러리함수 C 언어를이용하여문자열을처리하기위해서는문자형의배열이나포인터를사용하게된다. 문자열을처리하는동작으로는단순하게문자열의입력이나출력기능이외에도문자열의복사나치환, 문자열의길이를구하거나문자열을비교하는기능등많은기능을필요로한다. 그러나이러한기능들을모두구현하기란매우까다로우며,

More information

<4D F736F F F696E74202D20C1A63137C0E520B5BFC0FBB8DEB8F0B8AEBFCD20BFACB0E1B8AEBDBAC6AE>

<4D F736F F F696E74202D20C1A63137C0E520B5BFC0FBB8DEB8F0B8AEBFCD20BFACB0E1B8AEBDBAC6AE> 쉽게풀어쓴 C 언어 Express 제 17 장동적메모리와연결리스트 이번장에서학습할내용 동적메모리할당의이해 동적메모리할당관련함수 연결리스트 동적메모리할당에대한개념을이해하고응용으로연결리스트를학습합니다. 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

More information

Microsoft PowerPoint - chap-07.pptx

Microsoft PowerPoint - chap-07.pptx 쉽게풀어쓴 C 언어 Express 제 7 장반복문 컴퓨터프로그래밍기초 이번장에서학습할내용 반복의개념이해 while 반복문 do-while 반복문 for 반복문 break와 continue 문 반복구조는일련의처리를반복할수있게한다. 반복의개념을먼저이해하고 C에서제공되는 3가지의반복구조에대하여학습한다. 컴퓨터프로그래밍기초 2 반복문 Q) 반복구조는왜필요한가? A)

More information

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터 - Part2-3 3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터 3.1 포인터란 ü ü ü. ü. ü. ü ( ) ? 3.1 ü. ü C ( ).? ü ü PART2-4 ü ( ) PART3-4 3.2 포인터변수의선언과사용 3.2 포인터 변수의 선언과 사용 (1/8) 포인터 변수의

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 3 장 C 프로그램구성요소 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C 프로그램을이루는구성요소들을살펴봅니다. 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계 ), 결과를화면에출력 ( 출력단계 ) 한다. 데이터입력

More information

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 5 강. 배열, 포인터, 참조목차 배열 포인터 C++ 메모리구조 주소연산자 포인터 포인터연산 배열과포인터 메모리동적할당 문자열 참조 1 /20 5 강. 배열, 포인터, 참조배열 배열 같은타입의변수여러개를하나의변수명으로처리 int Ary[10]; 총 10 개의변수 : Ary[0]~Ary[9]

More information

Microsoft PowerPoint - Chapter_07.pptx

Microsoft PowerPoint - Chapter_07.pptx 프로그래밍 1 1 Chapter 7. Arrays May, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 이장의강의목표 2 배열의정의를이해한다. 배열의선언방법을이해한다. 각배열원소를접근하는방법을이해한다. 문자열의특징을이해한다. 문자열관련라이브러리의사용방법을이해한다.

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

03장.스택.key

03장.스택.key ---------------- DATA STRUCTURES USING C ---------------- 03CHAPTER 1 ? (stack): (LIFO:Last-In First-Out) 2 : top : ( index -1 ),,, 3 : ( ) ( ) -> ->. ->.... 4 Stack ADT : (LIFO) : init():. is_empty():

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 12 표준입출력과파일입출력... 1. 표준입출력함수 2. 파일입출력함수 1. 표준입출력함수 표준입출력함수 표준입력 (stdin, Standard Input) : 키보드입력 표준출력 (stdout, StandardOutput) : 모니터출력 1. 표준입출력함수 서식화된입출력함수 printf(), scanf() 서식의위치에올수있는것들 [ 기본 11-1]

More information

Microsoft PowerPoint - Lesson6.pptx

Microsoft PowerPoint - Lesson6.pptx Computer Engineering g Programming g 2 제 7 장반복문 Lecturer: JUNBEOM YOO jbyoo@konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 반복의개념이해 while 반복문 do-while 반복문 for 반복문 break와 continue문 반복구조는일련의처리를반복할수있게한다.

More information

C 프로그래밊 개요

C 프로그래밊 개요 구조체 2009 년 5 월 19 일 김경중 강의계획수정 일자계획 Quiz 실습보강 5 월 19 일 ( 화 ) 구조체 Quiz ( 함수 ) 5 월 21 일 ( 목 ) 구조체저녁 6 시 5 월 26 일 ( 화 ) 포인터 5 월 28 일 ( 목 ) 특강 (12:00-1:30) 6 월 2 일 ( 화 ) 포인터 Quiz ( 구조체 ) 저녁 6 시 6 월 4 일 ( 목

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 15 고급프로그램을 만들기위한 C... 1. main( ) 함수의숨겨진이야기 2. 헤더파일 3. 전처리문과예약어 1. main( ) 함수의숨겨진이야기 main( ) 함수의매개변수 [ 기본 14-1] main( ) 함수에매개변수를사용한예 1 01 #include 02 03 int main(int argc, char* argv[])

More information