연습문제와 소스코드는 제가 직접 풀어 작성한 것이므로 오타, 오답 이 존재할 수 있습니다.
참고 부탁드립니다.
Quiz(p.78)
1. 변수의 값을 저장하는데 필요한 메모리의 크기와 2진 표현을 결정하는 것은?
[답]
② 데이터형
2. 데이터형이나 변수의 바이트 크기를 구할 때 사용되는 것은?
[답]
① sizeof
3. 컴퓨터 시스템에서 정수를 음수로 표현하는 방식은?
[답]
④ 2의 보수
4. 정수형의 최대값보다 큰 값을 저장할 때 값이 넘쳐흘러서 유효 범위 내의 값으로 설정되는 것은?
[답]
① 오버플로우
5. ASCII 코드 중 제어로 목적으로 사용되는 것은?
[답]
③이스케이프 시퀀스
6. 실수를 지수 부분과 가수 부분으로 표현하는 방식은?
[답]
③ 부동소수점 방식
Quiz(p.94)
1. 값을 저장하기 위해 메모리를 할당하고 이름을 붙여 두는 것은?
[답]
① 변수
2. 변수가 메모리에 할당될 때 값을 지정하는 것은?
[답]
① 초기화
3. 이미 만들어진 변수에 값을 저장하는 것은?
[답]
② 대입
4. 매크로 상수를 정의하는 전처리기 문장은?
[답]
④ #define
5. 값을 변경할 수 없는 변수를 선언할 때 사용되는 키워드는?
[답]
③ #define
연습문제(P.95)
1. 데이터형에 대한 설명 중 잘못된 것을 모두 고르시오.
[답]
① 플랫폼에 관계없이 데이터형의 크기는 정해져 있다.
② 문자형으로는 char형이 있고, 크기는 2바이트이다.
③ 실수형도 부호 있는 실수형과 부호 없는 실수형이 있다.
⑥ 정수형 변수에 데이터형의 최대값보다 큰 값을 저장하면 변수의 크기가 늘어난다.
⑦ 정수형 변수에 데이터형의 최소값보다 작은 값을 저장하면 유효 범위 내의 값으로 설정된다.
⑨ 실수의 정밀도는 지수 부분에 의해서 결정된다.
⑩ 실수는 항상 정확한 값의 표현이 가능하다.
2. 이스케이프 시퀀스와 그 의미를 찾아서 연결하시오.
[답]
① '\0' = ② 널 문자( null )
② '\a' = ④ 경고음( bell )
③ '\b' = ⑥ 백스페이스( backspace )
④ '\t' = ③ 수평 탭( horizontal tab )
⑤ '\n' = ① 줄바꿈( newline )
⑥ '\\' = ⑤ 역슬래쉬( back slash )
3. 변수에 대한 설명이 올바른 것을 모두 고르시오.
[답]
② 변수는 값을 읽어올 수 있다.
③ 변수는 메모리에 할당된다.
4. 다음 중 올바른 변수 선언문을 모두 고르시오.
[답]
③ unsigned short maxCount;
④ int num; double num;
⑤ int x = 100,y, z = 200;
5. 상수에 대한 설명 중 잘못된 것을 모두 고르시오.
[답]
③ 이름이 있는 상수를 리터럴 상수라고 한다.
④ 리터럴 상수를 이용하면 코드가 알아보기 쉽고 수정하기 쉽다.
⑤ 매크로 상수를 정의할 때는 데이터형이 필요하다.
⑦ const 변수는 값을 변경할 수 없으므로 메모리에 할당되지 않는다.
6. 리터럴 상수 대신 기호 상수를 사용할 때의 장점을 두 가지 쓰시오.
[답]
프로그램이 수정하기 쉬워진다.
프로그램이 이해하기 쉬워진다.
7. 다음 소스 코드에서 컴파일 에러가 발생하는 줄을 모두 찾으시오.
[답]
#include <stdio.h>
#define MAX 1000
#define MIN 0;
int main(void){
int x = 10;
const int y = 20;
MAX = 2000; //ERROR
x = MAX -1;
y = MAX -2;
printf("range: %d ~ %d\n", MIN, MAX); //ERROR
}
8. 다음 프로그램의 실행 결과는?
#include <stdio.h>
#include <limits.h>
int main(void){
char a = CHAR_MIN - 1;
short b = SHRT_MIN - 1;
char ch = '\t';
printf("%d, %d, %x\n", a, b, ch);
}
[답]
127, 32767, 9
프로그래밍과제(p.97~98)
1.한 변의 길이를 입력받아 정사각형의 넓이와 둘레를 구하는 프로그램을 작성하시오.
[답]
#include <stdio.h>
int main(void){
int side;
printf("한 변의 길이?");
scanf("%d", &side);
printf("정사각형의 넓이: %d\n", side * side);
printf("정사각형의 둘레: %d\n", 4 * side);
return 0;
}
2. 가로의 길이와 세로의 길이를 입력받아 직사각형의 넓이와 둘레를 구하는 프로그램을 작성하시오.
[답]
#include <stdio.h>
int main(void){
int w, h;
printf("가로의 길이?");
scanf("%d", &w);
printf("세로의 길이?");
scanf("%d", &h);
printf("직사각형의 넓이: %d\n", w * h);
printf("직사각형의 둘레: %d\n", 2 * (w + h));
return 0;
}
3. 질량과 높이를 입력받아 위치 에너지를 구하는 프로그램을 작성하시오. 질량은 kg 단위, 높이는 m 단위로 입력받는다.
위치에너지 = 9.8 * 질량 * 높이
[답]
#include <stdio.h>
int main(void){
double mass, height;
printf("질량(kg)?");
scanf("%lf", &mass);
printf("높이(m)?");
scanf("%lf", &height);
printf("위치에너지: %.2lf J", 9.8 * mass * height);
return 0;
}
4. 밑변과 높이를 입력받아 직각삼각형의 넓이를 구하는 프로그램을 작성하시오.
[답]
#include <stdio.h>
int main(void){
double base, height;
printf("밑변과 높이?");
scanf("%lf %lf", &base, &height);
printf("직각삼각형의 면적: %.2lf", (base * height * 0.5));
return 0;
}
5. 원/달러 환율과 달러를 입력받아 몇 원인지 출력하는 프로그램을 작성하시오.
[답]
#include <stdio.h>
int main(void){
float er, dollar;
printf("USD?");
scanf("%f", &dollar);
printf("USD?");
scanf("%f", &er);
printf("USD %.0f = KRW %.2f", dollar, (dollar * er));
return 0;
}
6. 원/달러 환율과 원화를 입력받아 몇 달러인지 출력하는 프로그램을 작성하시오.
[답]
#include <stdio.h>
int main(void){
float krw, er;
printf("KRW");
scanf("%f", &krw);
printf("원/달러 환율?");
scanf("%f", &er);
printf("KRW %f = USD %.2f", krw, krw/er);
return 0;
}
7. 길이를 야드(yd)로 입력받아 미터(m)로 변환해서 출력하는 프로그램을 작성하시오. 1yd는 0.9144m에 해당한다.
[답]
#include <stdio.h>
int main(void){
float yd;
printf("길이(yd)?");
scanf("%f", &yd);
printf("%.0f yd = %f m", yd, yd * 0.9144);
return 0;
}
8. 길이를 인치(in)로 입력받아 센티미터(cm)로 변환하는 프로그램을 작성하시오. 1in는 2.54cm에 해당한다. 프로그램을 작성할 때 매크로 상수를 이용한다.
[답]
#include <stdio.h>
#double CM 2.54
int main(void){
float in;
printf("길이(in)?");
scanf("%f", &in);
printf("%.2f in = %.2f cm", in, in * CM);
return 0;
}
9. 아파트의 면적을 제곱미터 (m2)로 입력받아 몇 평인지 출력하는 프로그램을 작성하시오. 1m2는 0.3025평에 해당한다. 프로그램을 작성할 때 기호 상수를 이용한다.
[답]
#include <stdio.h>
#define CM 2.54
int main(void){
float area;
const float pyeong = 0.3025;
printf("아파트의 면적(제곱미터)?");
scanf("%f", &area);
printf("%.2f 제곱미터 = %.2f 평", area, area * pyeong);
return 0;
}
10. 실수값을 입력받아 그 값의 제곱과 세제곱을 출력하는 프로그램을 작성하시오. 실수값을 입력받을 때는 12.34처럼 소수 표기 방법이나 1.234e2처럼 지수 표기 방법을 둘 다 사용할 수 있게하고 제곱과 세제곱을 출력할 때는 지수 표기방법으로 출력하시오.
[답]
#include <stdio.h>
#define CM 2.54
int main(void){
double n;
printf("실수?");
scanf("%lf", &n);
printf("제곱 : %e\n", n * n);
printf("세제곱 : %e", n * n * n);
return 0;
}
'연습 문제' 카테고리의 다른 글
예제 따라가며 쉽게 배우는 오라클 연습 문제 계정 설정 (0) | 2022.12.29 |
---|---|
[연두] Warming-up C Programming Chapter 5 : 연습 문제 풀이 (0) | 2022.12.26 |
[연두] Warming-up C Programming Chapter 4 : 연습 문제 풀이 (1) | 2022.12.26 |
[연두] Warming-up C Programming Chapter 2 : 연습 문제 풀이 (0) | 2022.12.24 |
[연두] Warming-up C Programming Chapter 1 : 연습 문제 풀이 (1) | 2022.12.24 |
댓글