본문 바로가기

Category/C9

쉽게 풀어쓴 C언어 - 15장 스트림과 파일 입출력 1. 두 개의 텍스트 파일을 비교하여 같은지 다른지를 알려주는 프로그램을 작성하라. HINT - 파일에서 한 바이트씩 읽어서 비교하여도 된다. fgetc(fp)를 사용한다. 다만 한 파일이 먼저 끝나는 경우를 적절하게 처리하여야 한다. 파일이 끝났는지는 feof(fp)가 참이 되는 것으로 알 수 있다. #define _CRT_SECURE_NO_WARNINGS #include // 텍스트 파일의 내용을 보여주기 위해 파일을 새로 만드는 과정부터 적었다. // 사용자로부터 파일의 이름을 받아 두 파일의 내용을 비교하는 것은 지금 하지 않고 아래의 코드에서 한다. int main(void) { FILE* fp1, * fp2; int flag = 0; // 두 파일에서 읽은 값이 다르면 1로 변경 fp1 = f.. 2023. 2. 12.
쉽게 풀어쓴 C언어 Express - 14장 포인터 활용 1. 10개 정도의 속담을 문자열의 형태로 함수 set_proverb() 내부에 저장하고 있다가 사용자가 set_proverb()을 호출하면 인수로 받은 이중 포인터를 이용하여 외부에 있는 char형 포인터 s를 설정하는 set_proverb()을 작성하고 테스트하라.HINT - set_proverb(char **q, int n) 함수는 외부의 포인터 값을 변경하여야 하므로 이중 포인터 매개 변수를 가진다. 또 내부에 정적 문자 포인터 배열로 10개의 속담을 저장하고 있다.#define _CRT_SECURE_NO_WARNINGS#includevoid set_proverb(char** q, int n); // 이중 포인터 q를 이용하여 외부의 포인터 값을 변경한다.int main(void) { int ch.. 2023. 2. 11.
쉽풀C - 11장 포인터 1. 포인터를 이용하여 자기가 사용하는 CPU의 바이트 순서를 살펴보는 프로그램을 작성해보자. 바이트 순서(byte ordering, endian)은 컴퓨터의 메모리에 바이트를 배열하는 방법이다. 바이트 순서는 큰 단위가 앞에 나오는 빅 엔디언(Big-endian)과 작은 단위가 앞에 나오는 리틀 엔디언(Little-endian)으로 나눌 수 있다. 아래의 프로그램에 주석을 추가하라.종류0x12345678의 표현빅 엔디언12 34 56 78리틀 엔디언78 56 34 12#includeint main(void) { int x = 0x12345678; unsigned char* xp = (char*)&x; // 인텔 CPU는 리틀 엔디언이다. printf("바이트 순서: %x %x %x %x\n", xp[.. 2023. 2. 7.
쉽풀C - 10장 배열 1. 배열 days[]를 아래와 같이 초기화하고 배열 요소의 값을 다음과 같이 출력하는 프로그램을 작성하라.31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31#includeint main(void) { int days[] = { 31,29,31,30,31,30,31,31,30,31,30,31 }; for (int i = 7; i   2. 크기가 10인 1차원 배열에 난수를 저장한 후에, 최대값과 최소값을 출력하는 프로그램을 작성하라. 난수는 rand() 함수를 호출하여 생성하라. #include#include#include#define SIZE 10int main(void) { int array[SIZE]; // 난수를 저장할 배열 int min, max; srand((u.. 2023. 2. 6.
쉽풀C - 9장 함수와 변수 1. 덧셈, 뺄셈, 곱셈, 나눗셈을 지원하는 계산기 프로그램을 작성하여 보자. 이번에는 각 연산들이 몇 번씩 계산되었는지를 기억하게 하자. 각 연산을 지원하는 함수들은 자신이 호출된 횟수를 화면에 출력한다.#define _CRT_SECURE_NO_WARNINGS#includeint add(int, int);int sub(int, int);int mul(int, int);int div(int, int);int x, y, result; // 전역 변수char op; // 전역 변수int main(void) { while (1) { printf("연산을 입력하시오: "); scanf("%d%c%d", &x, &op, &y); switch (op) { case '+': result = add(x, y);.. 2023. 2. 5.
쉽풀C - 8장 함수 1. 주어진 실수를 제곱하여 반환하는 함수 double square(double)을 작성한다. square() 함수를 테스트하는 프로그램을 작성하라.#define _CRT_SECURE_NO_WARNINGS#includedouble square(double); // 실수를 제곱하여 반환하는 함수int main(void) { double n; printf("실수를 입력하시오: "); scanf("%lf", &n); printf("주어진 실수 %lf의 제곱은 %lf입니다.\n", n, square(n)); return 0;}double square(double n) { return n * n;} 2. 전달된 문자가 알파벳 문자인지 아닌지를 검사하는 함수 check_alpha()를 작성하고 이것을 호출하여서 사.. 2023. 2. 4.