C 프로그래밍(새내기를 위한 첫 C언어 책) 연습문제 솔루션 :: chap03. 입력과 출력(01~05번 문제)

반응형


01. 다음 프로그램의 결과를 아래의 칸에 맞춰 쓰시오. 

<소스 코드> 

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
int main()
{
    int age = 20;
    double gpa = 4.19, weight = 72.3;
 
    printf("Result \nage=%3d \nGPA=%4.1lf \n", age, gpa);
    printf("weight=%5.1lf\"kg\"\n", weight);
 
    return 0;
}
 
cs

 

<출력 화면>



 

02. 다음 프로그램을 실행했을 때의 결과를 아래의 칸에 맞춰 쓰시오.

<소스 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
int main()
{
    int op1 = 10, op2 = -20, sum;
 
    sum = op1 + op2;
 
    printf("%d + %d = %d\n", op1, op2, sum);
    printf("%3d + %3d = %3d\n", op1, op2, sum);
    printf("%3d%-+3d = %3d\n\n", op1, op2, sum);
    printf("%2d %%%2d = %2d\n", op1, 3, op1 % 3);
 
    return 0;
}
cs

 

<출력 화면> 



 

03. 다음은 국어와 음악 점수를 입력받아 평균을 구한 후 출력하는 프로그램이다. 이 프로그램에는 밑줄이 그어진 곳에 모두 6가지 잘못이 있다. 잘못된 곳을 찾아 이유를 설명하고 올바르게 설명하시오.

<소스 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
int main()
{
    int kor, music;
 
    printf('국어 음악 점수는? ');   // ①
    scanf("%d %d ", kor, music);    // ② ③
 
    double ave;    // ④
    ave = kor + music / 2.0;    // ⑤
 
    printf("=====================\n");
    printf("국어    음악    평균 \n");
    printf("---------------------\n");
    printf("%3d %3d %d \n", kor, music, ave);    // ⑥
    printf("=====================\n");
 
    return 0;
}
cs

 

① printf문에서 출력할 부분을 큰 따옴표(")로 표기

② 입력의 끝은 큰따옴표로 닫기 전 '\n'이나 빈칸을 넣지 않음.

③ scanf문에서 변수명은 & 표기

④ 실행문이 있기 전 모든 변수를 한번에 선언

⑤ 평균(ave)은 국어(kor)와 음악(music)점수의 합(sum)에서 2로 나누어야 함, 괄호 사용

⑥ ave는 double형이기 때문에 실수형(%lf)으로 호출

 

<소스 코드 수정>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
int main()
{
    int kor, music;
    double ave;
 
    printf("국어 음악 점수는? ");
    scanf("%d %d"&kor, &music);
 
    ave = (kor + music) / 2.0;
 
    printf("=====================\n");
    printf("국어    음악    평균 \n");
    printf("---------------------\n");
    printf("%3d    %3d    %lf \n", kor, music, ave);
    printf("=====================\n");
 
    return 0;
}
cs

 

<출력 화면>

 



04. 다음 프로그램을 실행하면 결과가 이상하게 나온다. 그 이유를 설명하고 올바른 결과가 나오도록 하려면 어떻게 수정해야 하는지 쓰시오.

<소스 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
int main()
{
    int r = 5;
    double length;
 
    length = 2 * 3.14 * r;
 
    printf("둘레를 구할 원의 반지름은?");
    scanf("%d"&r);
    printf("반지름이 %d인 원의 둘레는 %.2lf \n", r, length);
 
    return 0;
}
cs

 

<출력 화면>

 

<소스 코드 수정>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
int main()
{
    int r = 5;
    double length;
 
    printf("둘레를 구할 원의 반지름은?");
    scanf("%d"&r);
 
    length = 2 * 3.14 * r;
 
    printf("반지름이 %d인 원의 둘레는 %.2lf \n", r, length);
 
    return 0;
}
cs

처음 소스 코드의 경우 8번째 줄에서 length의 값이 이미 31.40으로 정해져있으므로 11번째 줄에서 변수 r의 값을 새로 입력받는다 하더라도 length의 값은 변함이 없다. 따라서 length를 계산해주는 식을 변수 r이 입력받는 곳 바로 다음줄에 입력해서 length값을 구하면 된다.


 <출력 화면>

 


 

 05. 삼각형의 밑변과 높이를 입력받아 넓이를 구한 후 다음과 같이 출력하는 프로그램을 작성하시오.

<소스 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
int main()
{
    double width, height, area;
 
    printf("밑변, 높이: ");
    scanf("%lf %lf"&width, &height);
 
    area = (width * height) / 2;
 
    printf("밑변=%.2lfcm, 높이=%.2lfcm인 삼각형의 면적=%.2lfcm²\n", width, height, area);
 
    return 0;
}
cs

<출력 화면>

반응형

댓글

Designed by JB FACTORY