전체 글 44

[열혈 C 코딩] Chapter 26 - 선행처리기와 매크로(문제풀이)

문제 26-1문제 1.#define Add(x, y, z) ((x)+ (y)+ (z)) #define Multi(x, y, z) ((x) * (y) * (z)) int main(void) { int a, b, c; printf("세 개의 정수 입력: "); scanf("%d %d %d", &a, &b, &c); printf("덧셈 결과: %d\n", Add(a, b, c)); printf("곱셈 결과: %d\n", Multi(a, b, c)); } 설명: 매크로 함수를 정의하여 해결하는 문제. 문제 2.#define PI 3.14 #define AREA(h) ((h)*(h)*PI) int main(void) { double rad; print..

[열혈 C 코딩] Chapter 25 - 메모리 관리와 메모리의 동적할당(문제풀이)

문제 25-1문제 1.함수 호출 순서: main -> func1 -> func21) main함수: 지역변수 num1할당2) func1함수: 매개변수 n할당, 지역변수 num2할당.3) func2함수: 매개변수 n할당, 지역변수 num3할당.반환되는 순서(소멸): func2 -> func1 -> main1. func2함수의 매개변수 n, 지역변수 num3 소멸2. func1함수의 매개변수 n, 지역변수 num2 소멸3. main함수의 지역변수 num1 소멸 문제 25-2문제 1.#include #include #include #include int main(void){ int maxlen, len, i; char* str; printf("문자열의 최대 길이 입력: "); ..

[열혈 C 코딩] Chapter 24 - 파일 입출력(문제풀이)

문제 24-1문제 1.#include #include #include #include int main(void) { FILE* fp = fopen("mystory.txt", "wt"); fputs("#이름: 홍길동 \n", fp); fputs("#주민번호: 900208-1012589 \n", fp); fputs("#전화번호: 010-1111-2222 \n", fp); fclose(fp); return 0; } 설명: 간단한 텍스트 파일 생성 문제. 문제 2.int main(void) { FILE* fp = fopen("mystory.txt", "at"); fputs("#즐겨먹는 음식: 짬뽕, 탕수육\n", fp); fput..

[열혈 C 코딩] Chapter 23 - 구조체와 사용자 정의 자료형2(문제풀이)

문제 23-1#include #include #include #include typedef struct point { int xpos; int ypos; }Point; void SwapPoint(Point* ptr1, Point* ptr2) { Point temp = *ptr1; *ptr1 = *ptr2; *ptr2 = temp; } int main(void) { Point pos1 = { 2, 4 }; Point pos2 = { 5, 7 }; SwapPoint(&pos1, &pos2); printf("바뀐 후 결과\n"); printf("pos1 = %d %d\n", pos1.xpos, pos1.ypos); p..

[열혈 C 코딩] Chapter 22- 구조체와 사용자 정의 자료형1(문제풀이)

문제 22-1#include #include #include #include struct employee { char name[10]; char num[20]; int money; }; int main(void) { struct employee person; printf("종업원 이름 입력: "); scanf("%s", person.name); printf("주민등록번호 입력: "); scanf("%s", person.num); printf("급여정보 입력: "); scanf("%d", &person.money); printf("결과 출력: %s %s %d", person.name, person.num, ..

[열혈 C 코딩] Chapter 18 - 2차원 배열에 대한 종합점검(문제 풀이)

문제 18-1.문제 1.int* arr1[5]; // 포인터 변수 5개로 이루어진 배열 arr -> 포인터 배열 -> arr1은 1차원 배열. -> arr1은 int형 포인터 변수로 이뤄진 배열. 배열의 이름 arr이 포인터 변수를 가리킴(저장). ① 첫번째 요소 arr[0]의 포인터형: int* ② 포인터 변수를 담은 배열의 포인터형: int* -> int** 최종적으로 &arr[0]을 가리키는 포인터형 = Int** 정답: int** ptr;int* arr2[3][5]; // 포인터 변수 15개로 이루어진 2차원 배열 -> arr2는 2차원 배열이다. -> arr2는 int형 포인터 변수로 이뤄진 배열. arr2의 가로길이는 5, arr2는 포인터 변수(각 요소)를 저장하니까, 최종적으로 2차원 ..

Chapter 15 도전! 프로그래밍 2(문제 풀이)

도전 문제 1.#include void ShowOdd(int* arr, int size);void ShowEven(int* arr, int size);int main(void){ int arr[10]; int i; printf("총 10개의 숫자 입력 \n"); for (i = 0; i 10; i++) { printf("입력: "); scanf("%d", &arr[i]); } printf("홀수 출력 : "); ShowOdd(arr, sizeof(arr) / sizeof(int)); printf("짝수 출력 : "); ShowEven(arr, sizeof(arr) / sizeof(int)); return 0;}void ..