<C프로그래밍-새내기를 위한 첫 C 언어 책>연습문제 chapter 5 1~4

1. 반복문인 while문과 do-while문의 차이점을 설명하시오.

while문은 조건식을 먼저 확인한 후 본문을 실행하지만 do~while문은 본문을 먼저 실행한 후 조건식을 확인한다.

 

2. if문이 두 번 나타나는 ①, ②를 논리 연산자를 이용해 두 조건을 하나로 표현한 if문으로 작성하시오.

 

if (x < 10)
        printf("%d\n", x);
    if (x > 20)
        printf("%d\n", x);
if (x < 10 || x>20)
    printf("%d\n", x);

if (x > 10)
        if (x < 20)
            printf("%d\n", x);​
if (x > 10 && x < 20)
        printf("%d\n", x);
 

 

 

3. 다음 코드에서 잘못된 부분을 찾아 수정하시오.

#include <stdio.h>

int main(void)
{
    float n;
    printf("입력:");
    scanf_s("%f", &n);


    switch (n)
        case 1.0:printf("%f\n", n);
        case 1.0:printf("%f\n", n + 1);
        case 1.0:printf("%f\n", n + 2);
        default:printf("실행 종료!");

    return 0;
}
#include <stdio.h>

int main(void)
{
    int n;
    printf("입력:");
    scanf_s("%d", &n);


    switch (n)
    {
    case 1:printf("%d\n", n);
    case 2:printf("%d\n", n + 1);
    case 3:printf("%d\n", n + 2);
    default:printf("실행 종료!");
    }

    return 0;
}

/*조건식의 결과값은 반드시 정수형이어야 하므로 
입력받는 변수의 자료형을 float형에서 int형으로 바꾸었다. 
case 레이블에 명시하는 값도 정수형 상수만 가능하므로 정수 1,2,3으로 바꾸었다. 
case 레이블을 중괄호로 묶었다.*/

 

//음수, 양수, 0 구분하기
    if (n > 0)
        printf("양수");
    else(n < 0)
        printf("음수");
    else(n==0)
        printf("0");
if (n > 0)
        printf("양수");
    else if (n < 0)
        printf("음수");
    else
        printf("0");

//1~10의 합 sum 구하기
    sum = 0;
    for (i = 1, i <= 10, i + 1);
        sum = sum + i;
//1~10의 합 sum 구하기
    sum = 0;
    for (i = 1; i <= 10; i + 1)
        sum = sum + i;

4. 다음 프로그램의 실행 결과를 추정한 뒤 직접 실행한 결과값과 비교해보시오.

int main(void)
{
    if (10 % 3 && 1 - 0)
        printf("ABC");
    else
        printf("DEF");
    printf("G");

    return 0;
}
//10%3과 1-0의 값이 1, 참이므로 ABC가 출력되고 G가 출력되어 ABCG가 출력될 것이다.

etc-image-0


#include <stdio.h>

int main(void)
{
    int i, j;
    for (i = 1; i <= 3; i++)
        for (j = 1; j <= 3; j++)
            i += j;
    printf("i=%d, j=%d\n", i, j);

    return 0;
}
//i가 1일 때 중첩된 for문이 실행된다. 
//i에 1,2,3이 차례로 더해지고 i는 7이 되어 반복문 종료, 7,3이 출력될 것이다.

etc-image-1

본문 실행 후 증감식이 실행되어 j는 4, i는 8이 된다.


#include <stdio.h>

int main(void)
{
    int n = 1;
    while (n++ <= 10)
    {
        if (n == 7)continue;
        printf("n=%d\n", n);
    }

    return 0;
}

/*n이 조건식에 사용된 후 2가 되고 출력된다. 
3,4,5,6,까지 마찬가지로 출력된 후 n의 값이 7이므로 continue가 실행된다. 
이후 8,9,10,11까지 출력될 것이다.*/

화면 캡처 2022-10-14 192824.jpg


 

#include <stdio.h>

int main(void)
{
    int n = 1, sum = 0;
    do
    {
        sum = ++n + 5;
    } while (n <= 10);
    printf("sum=%d\n", sum);

    return 0;
}
/*
do 구문 속 문장이 먼저 실행되어 sum이 7이 되고, 
계속 증가해 n이 10이 될 때 sum은 15가 되어 종료될 것이다.*/

etc-image-3

 

n이 10이면 ++n+5가 실행되어 11+5=16의 값으로 종료된다.