대학교 수업/C 프로그래밍

[C프로그래밍 실습과제 02/3장] 정답 풀이

Jongung 2021. 9. 17. 15:19

프로그래밍 준비

1. 라이브러리 함수란? 예 6개를 들고 용도를 설명해보시오

A. 함수는 총 라이브러리 함수와 사용자 정의 함수 두 가지가 있는데, 라이브러리 함수는 사용자가 직접 정의한 것이 아닌, 이미 개발 툴에서 제공되는 표준 함수이다. 수학적 연산, 입출력, 메모리 할당 등등 다양한 작업을 위한 또 다른 함수들을 제공하는 함수이다.

C 라이브러리 함수의 예 (stdio.h)
fputs
gets
printf
scanf
fwrite
fopen


2. 함수를 호출하는 방법 (함수를 사용하는 방법) 두 가지 예를 들어 간단히 설명하시오

A.  int a;          double f;

1번째 함수는 int형 변수 a를 선언하는 방법이고, double f는 double형 변수 f를 선언하는 방법이다.
ex) 자료형 변수명;  자료형 변수명 [=초깃값]

 

3. 변환 명세 (conversion specification) 란?

A. % 기호로 시작하는 형식 문자열이다. 형식 플래그, 필드 폭, 정밀도, 출력 변환 지시자로 구성된다.

출력 값 변환명세 자료형 출력 형식
정수 %d, %i int 정수를 10진수 형태로 출력
  %u unsigned
int
부호가 없는 정수를 10진수 형태로 출력
  %o 정수형 정수를 8진수 형태로 출력
  %x 정수형 정수를 16진수 형태로 출력
실수 %f float 실수를 소수점 아래 6자리까지 출력
  %lf double 실수를 소수점 아래 6자리까지 출력
  %e float 가수x10지수에 해당하는 float형 실수를 가수e지수와 같이 지수 형식(과학적 표기 형식)으로 출력
  %le double double형 실수를 가수e지수와 같이 지수 형식으로 출력
문자 %c char 문자 1개만 출력
문자열 %s 문자열 문자열 출력

 

4. 100.0을 출력하기 위한 변환 명세를 기술하시오.

A. %. 1lf를 사용한다.

 

5. char ch = 'A'+2; 를 수행한 후 printf("%d", ch)의 실행 결과는?

A. 67이 나온다. A를 %d로 받아오면 65가 나오기 때문에 65 + 2 = 67

5-1. char ch1 = 'A' - 2; 를 수행한 후 printf("%d", ch1)의 실행 결과는?

A. 63이 나온다. A를 %d로 받아오면 65가 나오기 때문에 65 - 2 = 63


6. scanf함수를 scanf("%d", &data)라고 사용했을 때 &data의 의미를 설명해보시오.

A. scanf에서 %d 즉 정수형 데이터를 받아 오되, &(ampersand)를 사용했다. &의 역할은 해당 변수의 주소를 가리키는 역할을 한다.

7. scanf("%d %d", &age1, &age2) 의 입력문을 실행한 후 데이터를 준비하는 방법은?

A. 정수형 데이터를 2가지 받는 다는 것을 뜻하므로, 두 개의 정수를 공백 사이에 넣으면 된다.

 

프로그래밍 연습: printf 함수


1. "C Language를 배우자"라고 표시한 후, 한 줄 바꾸는 C 프로그램을 작성해보자.

#include <stdio.h>

int main(void) {
  printf("C Language를 \n배우자");
}

 

2. "C Language를 배우자"를 세로로 (한 줄에 글자 하나씩) 출력하는 C 프로그램을 작성해보자.

#include <stdio.h>

int main(void) {
  printf("C\n\nL\na\nn\ng\nu\na\ng\ne\n를\n\n배\n우\n자");
}

 

3. "10과 20의 합은 30입니다."라는 메시지를 출력하는 C프로그램을 작성해보자.

#include <stdio.h>

int main(void) {
  printf("%d와 %d의 합은 %d입니다.", 10, 20, 30);
}

 

4. 다음과 같은 메세지를 출력하는 C프로그램을 작성해보자.

4-1) He said, "That's great idea!"

#include <stdio.h>

int main(void) {
  printf("He said, \"That\'s great idea!\"");
}

4-2) 분수 1/2을 백분율로 나타내면 50%입니다.

#include <stdio.h>

int main(void) {
  printf("분수 1/2을 백분율로 나타내면 50%%입니다");
}

4-3) 과제를 제출한 학생 비율은 40%입니다.

#include <stdio.h>

int main(void) {
  printf("과제를 제출한 학생 비율은 40%%입니다.");
}

4-4) 안내 메세지 출력하기 : printf 함수의 "출력 문자열"에 '\n'을 삽입하면 출력 시에 그 위치에서 줄이 바뀝니다.

#include <stdio.h>

int main(void) {
  printf("printf 함수의 \"출력 문자열\"에 \'\\n\'을 삽입하면 출력시에 그 위치에서 줄이 바뀝니다.");
}

 

 

응용 프로그램 연습

1. 두 개의 정수형 자료를 입력하여 사칙연산(+, -, *, /) 결과를 출력하는 C 프로그램을 작성하시오.

#include <stdio.h>

int main(void) {
  int input1, input2;
  scanf("%d %d", &input1, &input2);
  printf("%d\n%d\n%d\n%d\n", input1 + input2, input1 - input2, input1 * input2, input1 / input2);
}

 

2. 5개의 정수(임의로 결정할 것)를 입력하여 그 합을 출력하는 C 프로그램을 작성해보자.

#include <stdio.h>

int main(void) {
  int a = 1, b = 2, c = 3, d = 4, e = 5;
  printf("%d", a+b+c+d+e);
}