C 86

명품 C언어 프로젝트 4.2장 연습문제

[1번 문제]/*집합 A와 집합 B에 대한 곱집합 AXB를 출력하는 프로그램을 작성한다*/#include int multiply(int a[], int s_a, int b[], int s_b, int result[]); int main(void){ int a[] = { 1, 3, 5, 7 }; int b[] = { 3, 5, 8, 9, 10 }; int result[20]; int count, i, size_a, size_b; size_a = sizeof(a) / sizeof(int); size_b = sizeof(b) / sizeof(int); count = multiply(a, size_a, b, size_b, result); for (i = 0; i < count; i++) printf("%d ",..

명품 C언어 프로젝트 4.1장 연습문제

[1번 문제]/*입력한 10진 정수에 대해 진수(2, 8, 16) 별로 선택적으로 변환하여 출력하는 프로그램을 작성합니다*/#include long dec_to_bin(long n);long dec_to_octal(long n);char hexa(int n);void dec_to_hexa(long n); int main(void){ long number; int sel; printf("10진 정수 입력: "); scanf("%ld", &number); printf("몇진법으로 변환하시겠습니까?\n1. 2진법, 2. 8진법, 3. 16진법: "); scanf("%d", &sel); printf("\n"); switch (sel) { case 1: printf("%ld를 2진수로 바꾸면 %ld\n", num..

명품 C언어 프로젝트 3.8장 연습문제

[1번 문제]/*가변 인수를 사용하는 다음의 함수를 작성합니다1) 인수들의 평균을 계산하는 함수 mean2) 인수들의 중위수를 계산하는 함수 median3) 인수들을 오름차순으로 정렬하는 함수 ascending_sort4) 인수로 사용된 여러 개의 문자열을 하나의 문자열로 합치는 함수 concatenate_str*/#include #include #include double mean(int num, ...); //평균double median(int count, ...); //중위수void ascending_sort(int *arr, int len); //오름차순void concatenate_str(int num, ...); //문자열 합치는 함수 int main(void){ int arr[7] = { 0..

TCP/IP 소켓 프로그래밍 14장 내용 확인문제

1. TTL이 의미하는 바는 무엇인가? 그리고 TTL의 값이 크게 설정되는 것과 작게 설정되는 것에 따른 차이와 문제점을 라우팅의 관점에서 설명해보자 >TTL이란 Time to Live의 약자로써 '패킷을 얼마나 멀리 전달할 것인가'를 결정하는 요소이다. TTL은 정수로 표현되며, 이 값은 라우터를 하나 거칠 때마다 1씩 감소한다. 그리고 이 값이 0이 되면 패킷을 더 이상 전달하지 못하고 소멸된다. 따라서 TTL을 크게 설정하면 네트워크 트래픽에 좋지 않은 영향을 줄 수 있다. 반대로 너무 적게 설정할 경우 목적지에 도달하지 않을 경우가 발생하니 적절한 값을 설정하는 것이 중요하다.(예를 들어 교재에서는 64로 설정하였다) 2. 멀티캐스트와 브로드캐스트의 공통점을 무엇이고 또 차이점은 무엇인가? 데이터..

명품 C언어 프로젝트 3.7장 연습문제

[1번 문제]/*이 절에서 소개되지 않은 난수 생성방법들을 조사하여 각 방법에 대해최대 5자리의 정수 난수 10개와 0부터 1 사이의 실수 난수 10개를 출력하는 프로그램을 작성합니다*/#include #include #include int main(void){ srand((unsigned)time(NULL)); printf("정수 난수:\n"); for (int i = 0; i < 10; i++) printf("%d\n", rand() % 100000 + 1); //5자리 난수 printf("실수 난수:\n"); for (int i = 0; i < 10; i++) printf("%g\n", rand() / (double)(RAND_MAX + 1)); //0~1 사이의 실수 return 0; } [3번 ..

TCP/IP 소켓 프로그래밍 13장 내용 확인문제

1. 다음 중, 데이터 전송옵션인 MSB_OOB에 대한 설명 중 맞는 것을 모두 고르면? >a. MSG_OOB는 Out-of-band 데이터의 전송을 의미한다. 그리고 이는 다른 경로를 통한 고속의 데이터 전송이라는 의미를 갖는다. d. MSG_OOB는 TCP의 기본 데이터 전송방식을 벗어나지 못한다. 즉, MSG_OOB는 옵션이 지정되더라도 전송순서는 그대로 유지된다. 다만 이는 수신 측에 데이터 처리의 긴급을 요청하는 용도로 사용될 뿐이다. *틀린 설명b. MSG_OOB는 다른 경로를 통한 고속의 데이터 전송이라는 의미를 갖기 때문에, TCP 상에서도 이 옵션을 이용해서 전송된 데이터는 상대 호스트로 먼저 전송된다. ->TCP의 기본 데이터 전송방식에는 다른 경로가 없기 때문에 전송순서는 그대로이다...

명품 C언어 프로젝트 3.6장 연습문제

[1번 문제]/*다음과 같은 메뉴에 의해 실제 값을 입력받아 해당 연산을 처리하는 프로그램을 작성합니다*/#include #include #include #include int menu_display(void);int sub_menu_display01(void);int sub_menu_display02(void);void sub_main01(void);void sub_main02(void); void add(void);void subtract(void);void multiply(void);void divide(void);void remain(void);void press_any_key(void); void naturallog(void);void decimallog(void); int main(void){..

명품 C언어 프로젝트 3.5장 연습문제

[1번 문제]/*[예제 3.5.1]을 이용하여 다음의 [그림 A]와 같이 기본 정사각형 5개를 연속적으로 세로 방향으로 출력하는 프로그램을 작성합니다*/#include void draw_basic_square(void); int main(void){ for (int i = 0; i < 5; i++) { draw_basic_square(); printf("\n"); } return 0;} void draw_basic_square(void){ unsigned char a = 0xa6, b[7], i; for (i = 1; i < 7; i++) b[i] = 0xa0 + i; printf("%c%c", a, b[3]); printf("%c%c", a, b[4]); printf("\n"); printf("%c%c..

TCP/IP 소켓 프로그래밍 12장 내용 확인문제

1. 멀티플렉싱 기술에 대한 일반적인 의미를 말하고, IO를 멀티플렉싱 한다는 것이 무엇을 의미하는지 설명해보자. >멀티플렉싱이란 최소한의 물리적인 요소만 사용해서 최대한의 데이터를 전송하는 기술이다. 마찬가지로 IO 멀티플렉싱이란 IO를 필요로 하는 소켓을 하나로 묶어서 최소한의 리소스 및 프로세스를 이용해서 데이터를 송수신하는 기술을 의미한다. 2. 멀티프로세스 기반의 동시접속 서버의 단점은 무엇이며, 이를 멀티플렉싱 서버에서 어떻게 보완하는지 설명해 보자. >멀티프로세스 기반의 동시접속 서버는 클라이언트가 연결 요청을 할 때마다 추가로 프로세스를 생성해서 서비스를 하는 방식이다. 그런데 프로세스의 생성은 부담이 되는 작업이기 때문에 많은 수의 클라이언트에게 서비스를 제공하기에는 한계가 있다. 반면 ..

명품 C언어 프로젝트 3.4장 연습문제

[1번 문제]/*화면에 출력된 문장에 대해 색상번호를 입력하면 문장의 색상이 변화하는 함수 color_text를 작성하시오*/#include #include void text_color(char attr){ char dos_command[9]; sprintf(dos_command, "color 0%c", attr); //문장만 바꾼다, 0은 검은색 system("cls"); system(dos_command);} void intro_color_set(void){ printf("텍스트 색상변경\n\n"); printf("0:검정색, 1.파랑색, 2.초록색\n"); printf("3.옥색, 4.빨강색, 5:자주색\n"); printf("6.노란색, 7.흰색 8.회색\n"); printf("9.연한 파랑색, ..