본문 바로가기
연습 문제

[연두] Warming-up C Programming Chapter 2 : 연습 문제 풀이

by 알기 쉬운 코딩 사전 2022. 12. 24.
반응형

연습문제와 소스코드는 제가 직접 풀어 작성한 것이므로 오타, 오답 이 존재할 수 있습니다.

참고 부탁드립니다.

 

Quiz(p.41)

 

1. C에서 프로그램에 설명을 다는 목적으로 사용되는 것은?

 

[답]

② 주석

 

2. C 프로그램을 이루는 기본 단위로 세미콜론으로 끝나는 것은?

 

[답]

① 문장

 

3. main 함수가 리턴하는 값은?

 

[답]

② 프로그램의 종료 코드

 

4. printf 함수나 scanf 함수 등의 입출력 라이브러리를 사용하기 위해서 필요한 헤더는?

 

[답]

① stdio.h

 

5. 콘솔에 텍스트를 출력하기 위한 표준 C 라이브러리 함수는?

 

[답]

② printf

 

Quiz(p.53)

 

1. C 프로그램에서 값을 저장하기 위해 메모리 공간을 할당하고 이름을 붙인 것은?

 

[답]

① 변수

 

2. =을 이용해서 변수에 값을 저장하는 것을 무엇이라고 하는가?

 

[답]

④ 대입

 

3. printf 함수의 형식 문자열 중 정수를 출력할 때 사용되는 모두 고르시오.

 

[답]

② %d

④ %x

 

4. scanf 함수의 형식 문자열 중 문자 입력에 사용되는 것은?

 

[답]

① %c

 

연습문제(p.54~55)

 

1. 주석에 대한 설명을 읽고 잘못된 것을 모두 고르시오.

 

[답]

⑦ C 프로그램에 주석은 반드시 필요하다.

 

2. 함수에 대한 설명 중 잘못된 것은?

 

[답]

⑤ 함수 끝 (})을 만나거나 RETURN을 만나면, 함수의 시작으로 되돌아간다.

⑥ 문장의 끝에는 .을 써준다.

 

3. main 함수처럼 C 프로그램이 처음 시작될 때 호출되는 함수를 무엇이라고 하는가?

 

[답]

진입점 함수

 

4. main 함수에 대한 설명 중 올바른 것을 모두 고르시오.

 

[답]

④ main 함수의 return 문은 생략할 수 있다.

⑤ 프로그램이 시작될 때 운영체제가 호출하는 함수이다.

 

5. 변수에 대한 설명 중 잘못된 것을 모두 고르시오.

 

[답]

④ 변수를 선언할 때, 데이터형을 생략할 수 있다.

⑥ 변수는 선언하지 않고 사용할 수 있다.

 

6. printf 함수의 형식 문자열과 그 의미를 찾아서 맞게 연결하시오.

 

[답]

%d : 정수를 10진수로 출력한다.

%f : 실수를 부동소수점 표기로 출력한다.

%c : 문자를 출력한다

%x : 정수를 16진수로 출력한다.

%e : 실수를 지수 표기로 출력한다.

 

7. 다음 프로그램의 실행 결과를 보고 소스 코드의 빈칸에 들어갈 코드를 작성하시오.

 

[답]

%.2f

 

8. 변수를 선언할 때 필요한 것 두 가지는 무엇인가?

 

[답]

변수의 이름

데이터형

 

9. scanf 함수와 printf 함수를 사용하기 위해서 필요한 입출력 라이브러리 헤더는 무엇인가?

 

[답]

<stdio.h>

 

10. 다음은 문자를 입력받아서 출력하는 프로그램이다. 소스 코드의 빈칸 123에 들어갈 코드를 작성하시오.

 

[답]

(1).<stdio.h>

(2.)&ch

(3.)%s

 

프로그래밍과제(p.56~57)

 

1. 다음과 같이 출력하는 프로그램을 작성하시오. 단, printf 문은 한번만 사용한다.

 

[답]

#include <stdio.h>

int main(void){
    printf("int main(void)\n{\treturn 0;\n}");
    
    return 0;
}

 

2. 10진수 정수를 입력받아 16진수로 변환해서 출력하는 프로그램을 작성하시오.

 

[답]

#include <stdio.h>

int main(void){
    int a;
    
    printf("10진수 정수?");
    scanf("%d", &a);
    printf("10진수 %d은 16진수 %x에 해당합니다.", a, a);
    
    return 0;
}

 

3. 날짜를 연, 월, 일로 입력받아서 출력하는 프로그램을 작성하시오. 연, 월, 일은 정수로 입력받는다.

 

[답]

#include <stdio.h>

int main(void){
    int year, month, day;
    
    printf("연?");
    scanf("%d", &year);
    printf("월?");
    scanf("%d", &month);
    printf("일?");
    scanf("%d", &day);
    printf("입력한 날짜는 %d년 %d월 %d일 입니다.", year, month, day);
    
    return 0;
}

 

4. 시간을 시, 분, 초로 입력받아서 출력하는 프로그램을 작성하시오. 예를 들어 1시 1분 1초는 "01:01:01"로 출력한다.

 

[답]

#include <stdio.h>

int main(void){
    int hour, minute, seconds;
    
    printf("시?");
    scanf("%d", &hour);
    printf("분?");
    scanf("%d", &minute);
    printf("초?");
    scanf("%d", &seconds);
    printf("입력한 시간은 %02d:%02d:%02d입니다.", hour, minute, seconds);
    
    return 0;
}

 

5. 달러를 입력받아서 몇 원인지 출력하는 프로그램을 작성하시오. 달러는 실수로 입력받으며, 원화는 정수로 출력한다. 1달러는 1000원으로 가정한다.

 

[답]

#include <stdio.h>

int main(void){
    float dollar;
    
    printf("달러?");
    scanf("%f", &dollar);
    printf("$%.2f는 %d원입니다.", dollar, (int)(dollar * 1000));
    
    return 0;
}

 

6. 옷 사이즈를 선택하게 하고 선택된 사이즈를 출력하는 프로그램을 작성하시오. 옷 사이즈는 S, M, L 세 가지 문자 중 하나로 입력받는다.

 

[답]

#include <stdio.h>

int main(void){
    char size;
    
    printf("옷 사이즈(S,M,L)?");
    scanf("%c", &size);
    printf("%c 사이즈를 선택했습니다.", size);
    
    return 0;
}

 

7. 실수 2개를 입력받아서 합과 차를 구해서 출력하는 프로그램을 작성하시오.

 

[답]

#include <stdio.h>

int main(void){
    double num1, num2;
    
    printf("실수 2개?");
    scanf("%lf %lf",&num1, &num2);
    printf("%lf + %lf = %lf\n", num1, num2, num1 + num2);
    printf("%lf - %lf = %lf\n", num1, num2, num1 - num2);
    
    return 0;
}

 

8. 원주율 파이값이 3.14159265라고 할 때, 파이값을 여러가지 방법으로 출력하는 프로그램을 작성하시오. 소수점 이하 2자리, 4자리, 6자리, 8자리까지 각각 출력해보고, 지수 표기로도 출력해보자.

 

[답]

#include <stdio.h>

int main(void){
    double pi = 3.14159265;
    
    printf("pi = %.2lf\n", pi);
    printf("pi = %.4lf\n", pi);
    printf("pi = %.6lf\n", pi);
    printf("pi = %.8lf\n", pi);
    printf("pi = %.e\n", pi);
    
    return 0;
}

 

9. 정수를 8진수, 10진수, 16진수 중 하나로 입력받아 8진수, 10진수, 16진수 각각 얼마에 해당하는지 출력하는 프로그램을 작성하시오. 8진수를 입력할 때는 앞에 0을 붙여서 012처럼 입력하고, 16진수를 입력할 때는 앞에 0X를 붙여서 0X12처럼 입력한다.

 

[답]

#include <stdio.h>

int main(void) {
    int num;
    
    printf("8진수로 입력하려면 012, 16진수로 입력하려면 0x12처럼 입력하세요.\n");
    printf("정수?");
    scanf("%i", &num);
    printf("8진수: 0%o\n", num);
    printf("10진수: 0%d\n", num);
    printf("16진수: 0x%x\n", num);
    
    return 0;
}
반응형

댓글