|
|
// [9 함수]
// [9-1]
// 1) C언어 표준 라이브러리에 대하여 조사하시오.
// 표준 라이브러리는 미리 정의되어 어떤 컴파일러에서든 공통으로 사용할 수 있는 함수들의 모음으로, 기본적으로 입출력함수를
// 포함하는 stdio.h와 다양한 유틸리티(메모리 관리, 문자열 반환 등)기능을 제공하는 함수를 포함하는 stdlib.h 가 있다.
// [9-2]
// 1) 두 실수의 곱을 계산하는 함수를 작성하시오.
#include <stdio.h>
double mul(double a, double b) {
return a*b;
}
// 2) 두 개의 정수 중에서 큰 수를 반환하는 함수를 작성하시오.
#include <stdio.h>
int get_max(int a, int b) {
return a > b ? a : b;
}
// 3) 정수의 거듭 제곱값을 계산하는 함수를 작성하시오.
#include <stdio.h>
int power(int a, int b) {
int res = a;
for(int i = 1; i < b ;i++) {
res *= a;
}
return res;
}
// 4) 키보드로부터 정수를 받아 리턴하는 함수를 작성하시오.
#include <stdio.h>
int get_integer() {
int val;
printf("정수를 입력하시오.");
scanf("%d", &val);
return val;
}
// 5) 문자를 화면에 출력해주는 함수를 작성하시오.
#include <stdio.h>
void print_char(char a) {
printf("문자는 %c입니다", a);
}
// 6) 정수의 절대값을 계산하는 함수를 작성하시오.
#include <stdio.h>
int val(int a) {
return (a*a)/a;
}
// 7) y = 2(x*x) + 3x + 10 값을 계산하는 함수를 작성하시오.
#include <stdio.h>
double secondsol(double x) {
return 2*(x*x) + (3*x) + 10;
}
// 8) 정수 3개 중에 최대값을 구하는 함수를 작성하시오.
#include <stdio.h>
int my_max(int a, int b, int c) {
if (b < c) b = c;
return a > b ? a : b;
}
// 9) 1부터 n까지 정수들의 합을 구하는 함수를 작성하시오.
#include <stdio.h>
int my_pin(int n) {
int res = 0;
for(int i = 1 ;i <= n; i++) {
res += i;
}
return res;
}
// [9-3]
// 10) 2개의 정수를 받아 곱을 계산하는 함수를 정의해 호줄하는 코드를 작성하시오.
#include <stdio.h>
int mul(int a, int b) {
return a*b;
}
int main(void) {
int a, b;
printf("정수를 입력하세요.");
scanf("%d", &a);
printf("정수를 입력하세요.");
scanf("%d", &b);
printf("곱은 %d입니다.", mul(a, b));
return 0;
}
// 11) 국어, 영어, 수학 점수를 입력 받아 평균값을 계산하는 함수를 정의하여 호출하는 프로그램을 작성하시오.
#include <stdio.h>
int avg(int a, int b, int c) {
return (a+b+c)/3;
}
int main(void) {
int kor, eng, math;
printf("국어점수를 입력하세요:");
scanf("%d", &kor);
printf("영어점수를 입력하세요:");
scanf("%d", &eng);
printf("수학점수를 입력하세요:");
scanf("%lf", &math);
printf("평균값은 %d점입니다.", avg(kor, eng, math));
return 0;
}
// 12) 정수 2개 중에 최대, 최소값을 구하는 함수를 정의하여 호출하는 프로그램을 작성하시오.
#include <stdio.h>
int get_max(int a, int b) {
return a > b ? a : b;
}
int get_min(int a, int b) {
return a < b ? a : b;
}
int main(void) {
int a, b;
printf("첫번째 정수를 입력하세요.");
scanf("%d", &a);
printf("두번째 정수를 입력하세요.");
scanf("%d", &b);
printf("최대값은 %d입니다.", get_max(a, b));
printf("최소값은 %d입니다.", get_min(a, b));
return 0;
}
// [9-4]
// 13) 2개의 정수를 받아 곱을 계산하는 함수를 작성하고, 함수의 선언, 호출, 정의를 모두 사용하여 코드를 작성하시오.
#include <stdio.h>
int mul(int a, int b);
int main(void) {
int a, b;
printf("정수를 입력하세요.");
scanf("%d", &a);
printf("정수를 입력하세요.");
scanf("%d", &b);
printf("곱은 %d입니다.", mul(a, b));
}
int mul(int a, int b) {
return a*b;
}
// 14) 국어, 영어, 수학 점수를 입력 받아 평균값을 계산하는 함수를 작성하고, 함수의 선언, 호출, 정의를 모두 사용하여 코드를 작성하시오.
#include <stdio.h>
int avg(int a, int b, int c);
int main(void) {
int kor, eng, math;
printf("국어점수를 입력하세요:");
scanf("%d", &kor);
printf("영어점수를 입력하세요:");
scanf("%d", &eng);
printf("수학점수를 입력하세요:");
scanf("%lf", &math);
printf("평균값은 %d점입니다.", avg(kor, eng, math));
return 0;
}
int avg(int a, int b, int c) {
return (a+b+c)/3;
}
// 15) 2개의 정수를 받아 곱을 계산하는 함수를 작성하고, 함수의 선언, 호출, 정의를 모두 사용하여 코드를 작성하시오.
#include <stdio.h>
int get_max(int a, int b);
int get_min(int a, int b);
int main(void) {
int a, b;
printf("첫번째 정수를 입력하세요.");
scanf("%d", &a);
printf("두번째 정수를 입력하세요.");
scanf("%d", &b);
printf("최대값은 %d입니다.", get_max(a, b));
printf("최소값은 %d입니다.", get_min(a, b));
return 0;
}
int get_max(int a, int b) {
return a > b ? a : b;
}
int get_min(int a, int b) {
return a < b ? a : b;
}
// [11 1차원 배열]
// [11-1]
// 1) 크기 5인 정수 배열을 생성 후 저장 및 출력하는 프로그램을 작성하시오.
#include <stdio.h>
int main(void) {
int arr[5];
for(int i = 1; i < 6; i++) {
printf("%d번째 정수를 입력하세요", i);
scanf("%d", &arr[i-1]);
}
printf("입력된 정수: ");
for(int i = 1; i < 6; i++) {
printf("%d ", arr[i-1]);
}
return 0;
}
// 2) 크기 5인 정수 배열을 생성 및 저장 후 평균값을 구해 출력하는 프로그램을 작성하시오.
#include <stdio.h>
int main(void) {
int arr[5], sum = 0;
for(int i = 1; i < 6; i++) {
printf("%d번째 정수를 입력하세요", i);
scanf("%d", &arr[i-1]);
sum += arr[i-1];
}
printf("평균값은 %lf입니다", sum/5.0);
return 0;
}
// 3) 크기 5인 문자 배열을 생성 후 저장 및 출력하는 프로그램을 작성하시오.
#include <stdio.h>
int main(void) {
char arr[5];
for(int i = 1; i < 6; i++) {
printf("%d번째 정수를 입력하세요", i);
scanf(" %c", &arr[i-1]);
}
printf("입력한 문자: ");
for(int i = 1; i < 6; i++) {
printf("%c", arr[i-1]);
}
return 0;
}
// [11-2]
// 4) 5개의 실수 배열을 생성 및 저장 후 역순으로 출력하는 프로그램을 작성하시오.
#include <stdio.h>
int main(void) {
double arr[5];
for(int i = 1; i < 6; i++) {
printf("%d번째 실수를 입력하세요", i);
scanf(" %lf", &arr[i-1]);
}
printf("순서를 반대로 출력하면\n");
for(int i = -1; i > -6; i--) {
printf("%.1lf ", arr[i]);
}
return 0;
}
// 5) 5개의 문자 배열을 생성 및 저장 후 역순으로 출력하는 프로그램을 작성하시오.
#include <stdio.h>
int main(void) {
char arr[5];
for(int i = 1; i < 6; i++) {
printf("%d번째 정수를 입력하세요", i);
scanf(" %c", &arr[i-1]);
}
printf("입력한 문자: ");
for(int i = -1; i > -6; i--) {
printf("%c", arr[i]);
}
return 0;
}
// 6) 주어진 배열의 크기를 계산하여 출력하는 프로그램을 작성하시오.
int main(void) {
int score[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
printf("배열의 크기는 %d입니다.", sizeof(score)/sizeof(int));
return 0;
}
// [11-3]
// 7) 출석체크를 10번 한 후 결과를 저장하여 80%를 기준으로 합/불합을 판단하여 출력하는 프로그램을 작성하시오.
int main(void) {
int arr[10], per;
char res[6];
for(int i = 1; i < 11; i++) {
printf("%d번째 강의출석체크(출석1, 결석0):", i);
scanf(" %d", &arr[i-1]);
per += arr[i-1];
}
strcpy(res, (per >= 8) ? "pass" : "fail");
printf("출석율은 %d%%입니다.\n", per*10);
printf("%s입니다", res);
return 0;
}
// 8) 5개의 정수를 입력받아 최대값을 구하는 프로그램을 작성하시오.
#include <stdio.h>
int main(void) {
int arr[5];
for(int i = 0; i < 5; i++) {
printf("성적을 입력하시오: ");
scanf("%d", &arr[i]);
if(arr[0] < arr[i]) arr[0] = arr[i]; // arr[0] = 최대값, 실시간 비교
}
printf("최대값은 %d입니다.", arr[0]);
return 0;
}
// 9) 크기 5의 정수 배열을 생성 및 저장한 후 최대값과 최소값의 위치를 구하는 프로그램을 작성하시오.
#include <stdio.h>
int main(void) {
int arr[5], index = 0;
for(int i = 0; i < 5; i++) {
printf("성적을 입력하시오: ");
scanf("%d", &arr[i]);
if(arr[0] < arr[i]) {
arr[0] = arr[i];
index = i+1;
} // arr[0] = 최대값, 실시간 비교
}
printf("최대값은 %d번째 데이터 %d입니다.", index, arr[0]);
return 0;
}
// [11-4]
// 10) B, 'B', "B"의 차이점을 설명하라.
// 먼저 B 는 선언에 의해 의미가 정해지는 식별자로 특정 데이터의 이름으로 사용되며, 사전에 선언되지 않으면 사용할 수 없다.
// 또한 'B' 는 문자 상수로, 하나의 문자를 나타낸다. 자료형은 char이며 내부적으로는 해당 문자의 문자 코드값을 가진 정수로 처리된다.
// 마지막으로 "B" 는 문자열 상수로, 문자 'B'와 문자열의 끝을 나타내는 널 문자('\0')로 구성되며, 문자열의 시작 주소를 의미한다.
// 따라서 요약하면, B는 이름, 'B'는 문자 하나, "B"는 문자열이다.
// 11) Q또는 q가 입력되기 전까지 계속해서 문자를 입력받아 화면에 출력해주는 프로그램을 작성하시오.
#include <stdio.h>
int main(void) {
while(1) {
char input;
printf("문자입력: ");
scanf(" %c", &input);
if(input == 'q' || input == 'Q') return;
printf("입력된 문자는 %c", input);
}
return 0;
}
// 12) 문자열을 입력받아 모든 문자를 대문자로 변환하여 출력하는 프로그램을 작성하시오.
#include <stdio.h>
int main(void) {
char arr[10];
printf("문자열입력: ");
scanf("%s", arr);
printf("대분자로 변환 결과 : ");
for (int i = 0; arr[i] != '\0';i++) {
printf("%c", arr[i]-32);
}
}
|
|

첫댓글 1. 10장도 푸세요
2. 함수의 호출때 자동으로 처리되는 2가지?
3. 인자(인수)와 매개변수의 차이를 설명?
4. 매개변수의 생존기간, 인자변수의 생존기간, 어느게 더 오래 사는가?
5. 함수의 리턴과정 상세히 설명?
6. 리턴과정에서 생성되는 임시변수는 무엇인가?
다음부터는 실행결과도 첨부할것