-
2.5 C언어_변수와 자료형 실습 문제C언어, 2022/2장_변수와 자료형 2022. 6. 22. 18:582장 변수와 자료형-실습문제-20220302.pdf0.11MB
[ 문제 1 ] 두 정수를 입력 받고 합을 계산해주는 프로그램을 작성하시오.
key's note :
#include <stdio.h> #pragma warning(disable:4996) int main() { int num1, num2; scanf("%d", &num1); scanf("%d", &num2); printf("sum: %d\n", num1 + num2); return 0;
[ 문제 2 ] 두 개의 부동소수형 변수를 선언하고 다음과 같이 초기화 한 후, 두 수의 합을 계산해주는 프로그램을 작성하시오.
○ 부동소수 초기화 값: 4.200000 와 5.100000
○ 부동소수형 변수를 float 로 선언하면 오차가 있으니, double 자료형으로 선언하시오.key's note :
#include <stdio.h> #pragma warning(disable:4996) int main() { double a = 4.200000; double b = 5.100000; printf("first number: %f\n", a); printf("second number: %f\n", b); printf("sum: %f\n", a + b); return 0;
[ 문제 3 ] 사용자에게 정수를 입력받아 int형 변수에 저장하고, 이를 char형 변수에 복사 한 후, 두 값을 %d 서식을 사용하여 출력하는 프로그램을 작성하시오.
○ 아래의 입력 값을 이용해 실행시켜 보시오. (각 자료형의 표현 범위 이해하기)
10, -10, 100, -100, 200, -200, 500, -500○ char형 변수 ch 에는 -128 에서 127 사이 값만 저장할 수 있다. 만약에 ch에 200을 저장하면 127을
초과하므로 제대로 값을 저장할 수 없어서 틀린값 -56 을 저장하게 된다.key's note :
#include<stdio.h> int main(){ int num; char ch; scanf("%d", &num); ch=num; printf("(int->int) %d\n", num); printf("(int->char->int) %d\n", ch); return 0; }
[ 문제 4 ] 사용자에게 정수를 입력받아 int형 변수에 저장한다. 위 문제를 char형 변수 대신 unsigned char형 변수를 이용하여 작성하고, 동일한 값을 입력하여 실행시켜 보시오. (자료형의 표현 범위 이해하기)
key's note :
#include<stdio.h> int main(){ int num; unsigned char ch; scanf("%d", &num); ch=num; printf("(int->int) %d\n", num); printf("(int->unsigned char->int) %d\n", ch); return 0; }
입력: 200 에 대해서, [문제 3]과 [문제 4]에서 출력이 다른 이유 :
(답) char형 변수 ch 에는 -128 에서 127 사이 값만 저장할 수 있다.
unsigned char형 변수 ch 에는 0 에서 255 사이 값을 저장할 수 있다.[ 문제 5 ] 화면에 다음과 같이 출력하시오. (이스케이프 시퀀스 이용)
key's note :
#include<stdio.h> int main(){ char c1 = 34; char c2 = 39; char c3 = 'A'; char c4 = 92; printf("The double quotation mark is %c.\n", c1); printf("The single quotation mark is %c.\n", c2); printf("Character A is '%c'.\n", c3); printf("To represent a double quotation mark, use the escape sequence %c%c.\n", c4, c1); return 0; }
[ 문제 6 ] 0~9 사이의 숫자를 서식 ‘%c’ 로 입력 받은 후, 서식 ‘%c’와 ‘%d’를 이용하여 아래와 같이 같은 값을 출력하는 코드를 작성하시오. (문자의 실체 이해하기 응용)
○ 정수로 출력하기 위해 숫자 '0'~'9'의 아스키 코드 값이 연속되어 있음을 이용하시오.
○ 각 숫자의 아스키 코드 값을 알 필요는 없다.key's note :
#include<stdio.h> int main(){ char ch; scanf("%c", &ch); printf("(%%c) %c\n", ch); int num = ch - '0'; printf("(%%d) %d\n", num); return 0; }
[ 문제 7 ] 영어 소문자 a~z의 아스키 코드 값은 문자 순으로 연속되어 있다. 이 성질을 이용하여 입력받은 소문자가 알파벳에서 몇 번째 문자인지 출력하는 프로그램을 작성하시오.
○ a를 0번째 문자, z는 25번째 문자로 가정하라.
○ 각 문자의 아스키 코드 값을 알 필요는 없다.key's note :
#include<stdio.h> int main(){ char ch; scanf("%c", &ch); int num = ch - 'a'; printf("%c is the %dth lower case letter in the English alphabet.\n", ch,num); return 0; }
[ 문제 8 ] 0~25 사이의 정수를 입력 받아, 해당 번째의 영어 대문자가 무엇인지 출력하는 프로그램을 작성하시오.
○ 0번째 문자는 A, 25번째 문자는 Z로 가정하라.
○ 각 문자의 아스키 코드 값을 알 필요는 없다.key's note :
#include<stdio.h> int main(){ int num; scanf("%d", &num); char ch = num + 'A'; printf("The %dth upper case letter in the English alphabet is %c.\n", num,ch); return 0; }
[ 문제 9 ] 영어 소문자를 입력받아 이를 대문자로 변환하는 프로그램을 작성하시오.
○ Hint) 문제 7번과 8번을 결합하면 된다.key's note :
#include<stdio.h> int main(){ char ch; scanf("%c", &ch); char ch1 = ch - 32; printf("%c\n", ch1); return 0; }
[ 문제 10 ] 반대로 영어 대문자를 입력받아 이를 소문자로 변환하는 프로그램을 작성하시오.
key's note :
#include<stdio.h> int main(){ char ch; scanf("%c", &ch); char ch1 = ch + 32; printf("%c\n", ch1); return 0; }
'C언어, 2022 > 2장_변수와 자료형' 카테고리의 다른 글
2.4 C언어_문자 자료형, 자료형 변환 (0) 2022.06.22 2.3 C언어_부동소수 자료형 (0) 2022.06.22 2.2 C언어_정수 자료형 (0) 2022.06.22 2.1 C언어_변수선언과사용 (0) 2022.06.22