AR삽질러

C로 시작하는 컴퓨터 프로그래밍4판 - 2장 기본자료형과 형변환 본문

C

C로 시작하는 컴퓨터 프로그래밍4판 - 2장 기본자료형과 형변환

아랑팡팡 2023. 3. 9. 12:24
728x90

혼자해보기 2-1 56p

#include<stdio.h>
int main(void){
	
    int a = 20;
    const int b = 3;
    
    printf("변수 a의 초기값은 %d이다.\n", a);
    printf("상수 b의 초기값은 %d이다.\n", b);
    
    a = 10;
    b = 4;
    
    printf("a의 값은 %d로 바뀌었다.\n", a);
    printf("b의 값은 %d로 바뀌었다.\n", b);
    return 0;
}

혼자해보기 2-1 56p -> 수정한 정답

#include<stdio.h>
int main(void){
	
    int a = 20;
    int b = 3; // const를 사용하면 상수로 저장되어 값을 변경할 수 없다.
    
    printf("변수 a의 초기값은 %d이다.\n", a);
    printf("상수 b의 초기값은 %d이다.\n", b);
    
    a = 10;
    b = 4;
    
    printf("a의 값은 %d로 바뀌었다.\n", a);
    printf("b의 값은 %d로 바뀌었다.\n", b);
    return 0;
}

 

1. 식별자 작성 규칙에 따라 아래의 식별자 이름을 올바른 예와 잘못된 예로 구분하시오.

1) 올바른예 : _number

2) 잘못된 예 : define, 9values, INTI, _%_sava, extern, -age

 

2. 다음 프로그램의 오류를 수정하시오.

1)

#include<stdio.h>

int main(void){

	char a = 129;
    
    printf("변수 a의 값을 출력하면 %d이다.\n", a);
	return 0;
}

char a = 129;  =>  int a = 129;

 

2)

#include<stdio.h>

int main(void){

	short length = 5.56;
    short area; const int number = 20;
    area = length * length;
    number = 30;
    printf("사각형의 면적은 %lf입니다.\n",area);
	return 0;
}

- length 변수의 형식이 올바르지 않고 short는 정수형 변수를 나타내는 데이터 형식이다. length 변수는 실수형 값인 5.56을 저장하고 있으므로, 이를 저장하기에는 적합하지 않기 때문에 float 또는 double 형식을 사용해야 합니다.

- number 변수를 변경. const 키워드가 변수 선언 앞에 있기 때문에 number 변수는 상수입니다. 따라서 값을 변경할 수 없다. 따라서 number = 30; 줄은 유효하지 않으며, 컴파일러에서 오류를 발생시킨다.

 

3. C언어에서 다루는 특수문자 중 다음은 무엇을 의미하는지 설명하시오.

 1) \n  : 새로운 줄로 바꾼다.

 2) \a  : 벨 소리를 낸다.

 3) \f  : 프린터에서 한 페이지를 이동한다.

 4) \; \"  : '(작은 따음표), "(큰 따옴표)를 출력한다.

 

4. 원뿔의 부피를 계산하는 프로그램을 만들려고 할 때 몇 개의 어떤 변수와 몇 개의 어떤 상수를 선언해야 하는가?

변수

- 반지름(radius) : (실수형)

- 높이(height) : (실수형)

- 부피(volume) : (실수형)

상수

- PI : 원주율 값 상수. (실수형)

 

 

5. 자신의 나이를 age라는 정수형 변수를 만들어 저장하고, 나이의 부호가 표시되며 전체 출력 폭이 12인 형태로 화면에 출력되는 프로그램을 작성하시오.

#include<stdio.h>

int main(void) {

	int age = 22;  // 나이를 age변수에 저장한다.
	
	printf("나이는 %+12d세 입니다.", age);  
	// 나이의 부호가 표시되며 전체 출력 폭이 12인 형태로 출력한다.

	return 0;
}

 

6. 0~255 값을 갖는 자료형은 어떤 자료형이며, 이 자료형은 어디에서 많이 사용되는 자료형인가?(13장 참조)

- C 언어에서 0~255 값을 갖는 자료형은 unsigned char입니다. unsigned char자료형은 바이트 단위로 데이터를 처리할 때 많이 사용되고 unsigned char는 1바이트(8비트) 크기를 가지며, 0부터 255까지의 값을 표현할 수 있고 이 자료형은 부호가 없는 정수형으로, 음수를 표현할 수 없으며 양수만 표현할 수 있다.

 

7. 명시적 형 변환은 형 변환 시키고자 하는 변수에 어떻게 적용하는 것인가?

명시적 형변화 : (새로운 자료형)변수명

float x;
float y = 14.66;
x = (int)y / 2;

 

8. printf() 함수의 변환 기호를 사용할 경우에 대한 아래의 질문에 답하시오.

 1) 다음 코드는 어떻게 출력되는가?

char ch = 112;
printf("아스키코드 %d는 문자 %c이다.\n", ch, ch);
printf("아스크코드는 %d는 문자 %c이다.\n", ch-32, ch-32);

아스키코드 112는 문자 p이다.

아스키코드 80은 문자P이다.

 

 2) 출력 결과를 통해서 알 수 있는 아스키코드의 영어 대소문자의 관계는?

- 아스키코드의 영어 대소문자의 관계는 대문자와 소문자 간에 차이가 32이다.

- 대문자 A의 아스키코드 값이 65이고 소문자 a의 아스키코드 값이 97이 때문에 97 - 65 = 32임을 의미한다. 따라서 대문자와 소문자는 각각 아스키코드 값이 32 차이나는 관계에 있다.

728x90
반응형
LIST