본문 바로가기
IT/프로그래밍

c언어 연습 (문제풀이 중심의) 4장 문제풀이 해설

by nutrient 2021. 4. 30.
728x90
728x170

c언어 연습 (문제풀이 중심의) 4장 해설 및 답지, 문제풀이

4-1. 두 정수를 입력받아서 문제에 주어진 수식을 계산
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main(void) {
 
	int a;
	int b;
 
	printf("정수 2개 입력: ");
	scanf(" %d %d", &a, &b);
	printf("(a + b) / (a - b) = %f", (double)(a + b) / (a - b));
 
	return 0;
}
4-2. 주어진 코드의 결과 도출 후 이유 설명
결과
101

101

103

102
4-3. 두 정수를 입력받아 몫과 나머지 계산
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main(void) {
 
	int num1, num2;
 
	printf("두 수를 입력하세요: ");
	scanf(" %d %d", &num1, &num2);
	printf("몫: %d\n", num1 / num2);
	printf("나머지: %d", num1 % num2);
 
	return 0;
}

 

4-4. 백 단위의 정수값을 입력받아 각 단위의 값 출력
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main(void) {
 
	int num;
 
	printf("입력: ");
	scanf(" %d", &num);
	printf("백의 자리: %d\n", num / 10 / 10);
	printf("십의 자리: %d\n", num / 10 % 10);
	printf("일의 자리: %d", num % 10);
 
	return 0;
}
4-5. 세 과목의 점수를 입력받아서 평균 구하기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main(void) {
 
	int kor;
	int eng;
	int math;
 
	printf("국어: ");
	scanf(" %d", &kor);
	printf("영어: ");
	scanf(" %d", &eng);
	printf("수학: ");
	scanf(" %d", &math);
	
	printf("\n평균: %.1f", (double)(kor + eng + math) / 3);
 
	return 0;
}
4-6. 두 정수를 입력받아서 큰 수 출력
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main(void) {
 
	int num1, num2;
 
	printf("두 수를 입력하세요: ");
	scanf(" %d %d", &num1, &num2);
	printf("큰수: %d", (num1 > num2) ? num1 : num2);
 
	return 0;
}

 

4-7. 주어진 코드의 결과 도출 후 이유 설명
결과

1010
4-8. 정수를 입력받아 16으로 나눈 수의 나머지 출력 (나머지 연산자 사용 불가)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main(void) {
 
	int num;
 
	printf("정수: ");
	scanf(" %d", &num);
	printf("%d", num - 16 * (num >> 4));
 
	return 0;
}
4-9. 두 정수를 입력받아서 첫번째 정수를 두번째 정수만큼 왼쪽으로 시프트 연산
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main(void) {
 
	int no;
	int count;
 
	printf("값을 입력하세요: ");
	scanf(" %d", &no);
	printf("shift 하고자 하는 값: ");
	scanf(" %d", &count);
	printf("결과: %d", no << count);
 
	return 0;
}

 

4-10. 음수와 양수를 입력받아서 음수를 양수만큼 오른쪽으로 시프트 연산
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main(void) {
 
	int no;
	int count;
 
	printf("값을 입력하세요: ");
	scanf(" %d", &no);
	printf("shift 하고자 하는 값: ");
	scanf(" %d", &count);
	printf("결과: %d", no >> count);
 
	return 0;
}
728x90
그리드형

댓글