C-C++/쉽게 풀어 쓴 C 언어 EXPRESS

[쉽게 풀어 쓴 C 언어 EXPRESS] 3장 정리 & Exercise(이론) 답

최옥구 2023. 1. 8. 23:00
반응형

책의 3장의 전체적인 부분을 요약했습니다. 개인 공부 겸 책으로 공부하시는 분들이 리뷰 느낌으로 한번 더 보시면 좋을 것 같아서 작성하였습니다. 


  • 일반적인 프로그램은 데이터 입력 => 데이터 처리 => 결과 출력의 단계를 가지고 있다. 
  • 주석은 //, /* ~ */로 작성할 수 있고, 프로그램의 실행 결과에 영향을 주지 않는다. 주석은 프로그램을 이해하는데 큰 도움이 됨으로 프로그래머는 주석 작성을 귀찮아하지 않고 작성하는 습관을 기르는 게 좋다. 주석을 사용하면 프로그램을 이해하고, 개발하는데 큰 도움이 된다.
  • C언어에서는 띄어쓰기나 줄바꿈이 프로그램에 영향을 주지 않는다. 들여 쓰기는 순전히 프로그래머를 위한 기능이다. 함수 내의 변수나 구현부 등을 들여 쓰기로 작성하기나, 한 줄에 하나의 변수를 선언하는 행위들은 코드의 가독성을 높여준다. 따라서 들여 쓰기와 같은 일종의 규칙들을 잘 따르는 것이 자신과 협업자들에게 이롭다.
  • 함수란 특정 기능을 수행하는 처리 단계들을 괄호로 묶어서 이름을 붙인것이다. 함수는 중괄호로 그 범위를 지정하며, 문장(Statement)로 구성된다. 이 문장은 프로그램을 이루는 가장 기본적인 단위이며 문장의 끝에는 세미콜론(" ; ")을 쓴다.
  • 변수란 데이터를 일시적으로 저장할 목적으로 사용하는 메모리 공간이다. 
  • 자료형이란 변수가 저장할 데이터가 정수형인지 실수형인지, 혹은 다른 타입인지 지정하는 것이다.
  • 정수형에는 short, int, long, long long 실수형에는 float, double, long double이 있으며 문자형에는 char이 있다. 나열된 순서는 표현하는 비트의 수이다. 가령 int형보다 long long 형이 저장할 수 있는 수의 크기(4 byte - 8byte)가 더 크다.
  • 변수는 사용되기 전에 선언되어야 한다.
  • 변수의 이름은 영문과 숫자, '_'로 이루어지며, 첫 글자가 숫자이거나 이름에 공백이 들어갈 수 없다. 또한 C언어에서는 대소문자를 구별하기 때문에 INDEX와 index는 서로 다른 변수 이름이다. 마지막으로 키워드(예약어 ex : int, char, enum 등)는 변수와 함수의 이름이 될 수 없다.

1. 다음 중 C 프로그램에 대하여 잘못 설명한 것을 모두 골라보자. - 3번 2장에서 봐서 알겠지만 변수가 없어도 main()함수만 있으면 프로그램은 실행됩니다.

 

2. 주석에 대하여 잘못 설명한 것을 모두 골라보자. - 1번, 2번  주석은 없어도 됩니다. 주석은 컴파일 과정에서 삭제되기 때문에 용량과 아무 관련이 없습니다. 

 

3. 다음 중 C에서 지원하는 자료형의 이름이 아닌 것은? - 3번 integer는 정수를 말하며, 자료형 int의 강자(Full name)입니다.

 

4. printf() 함수에서 정수형 변수를 출력하는 데 사용되는 형식 지정자는? - 2번

1번 : 문자형, 3번 : float형(실수), 4번 : double형(실수)

 

5. scanf() 함수에서 double형 변수를 입력하는 데 사용되는 형식 지정 연산자는? - 4번 

 

6. 다음 코드에 주석을 붙이시오. 아래 코드가 하는 일은 무엇인가? 

#include <stdio.h>	// stdio 헤더파일을 소스 코드에 포함하라.

int main(void)	// 프로그램이 실행될 메인함수이다.
{
	int x, y;	// 변수 x와 y에게 공간을 할당한다. 
    
    scanf("%d %d, &x, &y);	// 변수 x와 y의 공간에 콘솔창에 값을 입력받고 대입한다.
    printf("덧셈: %d\n", x + y);	// x와 y를 더한 값을 출력한다.
    printf("뺄셈: %d\n", x - y);	// x와 y를 뺀 값을 출력한다.
    printf("곱셈: %d\n", x * y);	// x와 y를 곱한 값을 출력한다.
    printf("나눗셈: %d\n", x / y);	// x와 y를 나누어 몫을 출력한다.
}

7. 다음 코드는 인치를 mm로 변환하는 프로그램이다. 빈칸을 채우고 주석을 추가하라.

//답을 주석으로 처리했습니다.

#include /* <stdio.h> */

int main(void)
{
	float inch, mm;
    printf("인치 단위로 입력 : ");
    scanf("%f", /* &inch */);
    mm = inch * 25.4;
    printf("%f 인치 = %f mm", inch, mm);
    return 0;
}

8. 다음 소스 파일은 두 개의 정수를 받아서 곱셈을 하여서 출력한다. 오류를 찾아서 정정하라.

//모두 답으로 수정하였습니다. 비교해서 살펴보세요.

/*첫번째 프로그램*/
#include <stdio.h>

int main(void)
{
	int x;
    int y;
    int prod;
    scanf("%d", &x);
    scanf("%d", &y);
    prod = x * y;
    printf("곱셈의 결과 = %f", prod);
    return 0;
}

9. 다음의 문장을 실행하였을 때, 화면에 출력되는 내용을 쓰시오. 변수 x는 10, y는 20이라고 가정하자. 

(A) printf("it's never too late.\n(책에서는 반대로 쓰여있음 - 오타로 추정) it never rains but it pours");

it's never too late 

it never rains but it pours

(B) printf("%d", x);

10

(C) printf("%d", x + y);

30

(D) printf("%d + %d = %d", x, y, x + y);

10 + 20 = 30

(E) printf("%d * %d = %d", x, y, x * y);

10 * 20 = 200

(F) printf("*\n**\n***\n****\n");

*

**

***

****

반응형