모든 예시들은 실전C프로그래밍(21세기사, 나중채_김도년_김영갑_박천수_박태순_양효식_임필옥_장문정_장 윤_한동일 공저)에 수록되어 있는 것들입니다.
p.58
[문제 1] 두 정수를 입력 받고 합을 계산해주는 프로그램을 작성하시오.
실행 예시에서 밑줄 친 굵은 글씨는 사용자가 입력하는 값
이하 실습문제에서 동일하게 적용
실행 예시
첫 번째 정수 : 4
두번째 정수 : 5
합 : 9
int main(void) {
int a,b;
printf("첫 번째 정수: ");
scanf("%d",&a);
printf("두 번째 정수: ");
scanf("%d",&b);
printf("합: %d",a+b);
return 0;
}
[문제 2] 두 개의 부동소수형 변수를 선언하고 다음과 같이 초기화 한 후, 두 수의 합을 계산해주는 프로그램을 작성하시오.
부동소수 초기화 값 4.2와 5.1
실행 결과
첫 번째 수 : 4.200000
두 번째 수: 5.100000
합: 9.300000
int main(void) {
double a=4.2,b=5.1;
printf("첫 번째 수: ");
scanf("%lf",&a);
printf("두 번쨰 수: ");
scanf("%lf",&b);
printf("합: %lf",a+b);
return 0;
}
[문제 3] 사용자에게 정수를 입력받아 int형 변수에 저장하고, 이를 char형 변수에 복사 한 후 , 두 값을 %d 서식을 사용하여 출력하는 프로그램을 작성하시오.
아래의 입력 값을 이용해 실행시켜 보시오.( 각 자료형의 표현 범위 이해하기)
10, -10, 100, -100, 200, -200, 500, -500
실행 예시
입력 : 10
출력(int)->10
출력(char)->10
int main(void) {
int input;
char c;
printf("입력: ");
scanf("%d",&input);
c=input;
printf("출력(int)->%d\n출력(char)->%d",input,c);
return 0;
}
[문제 4] 위 문제를 char형 변수 대신 unsigned char형 변수를 이용하여 작성하고, 동일한 값을 입력하여 실행시켜 보시오. (자료형의 표현 범위 이해하기)
int main(void) {
int input;
unsigned char c;
printf("입력: ");
scanf("%d",&input);
c=input;
printf("출력(int)->%d\n출력(char)->%d",input,c);
return 0;
}
[문제 5] 화면에 다음과 같이 출력하시오. (이스케이스 시퀀스 이용)
실행 결과
큰 따옴표는 "입니다.
작은 따옴표는 '입니다.문자 A는 'A' 입니다.큰 따옴표의 이스케이프 시퀀스는 \"입니다.
int main(void) {
printf("큰 따옴표는 \" 입니다.\n작은 따옴표는\'입니다.\n문자 A는 \'A\'입니다.\n큰 따옴표의 이스케이프 시퀀스는 \\\"입니다.");
return 0;
}
[문제6] 0~9 사이의 숫자를 서식 '%c'로 입력 받은 후, 서식 '%c'와 '%d' 를 이용하여 아래와 같이 출력하는 코드를 작성하시오. (문자의 실체 이해하기 응용)
정수로 출력하기 위해 숫자 '0'~'9'의 아스키 코드 값이 연속되어 있음을 이용하시오.
각 숫자의 아스키 코드 값을 알 필요는 없다.
실행 예시
문자형 입력(%c) : 4
문자로 출력(%c) : 4
정수로 출력(%d) : 4
int main(void) {
char c;
printf("문자형 입력(%%c) : ");
scanf("%c",&c);
printf("문자로 출력(%%c) : %c\n정수로 출력(%%d) : %d",c,c-48);
}
%를 출력하기 위해서 %%사용
[문제 7-1]영어 소문자 a~z의 아스키 코드 값은 문자 순으로 연속되어 있다. 이 성질을 이용하여 입력받은 소문자가 알파벳에서 몇 번째 문자인지 출력하는 프로그램을 작성하시오.
a를 0번째 문자, z는 25번째 문자로 가정하라.
각 문자의 아스키 코드 값을 알 필요는 없다.
실행 예시
소문자 입력 : b
b는 1번째 영어 소문자
int main(void) {
char c;
int num;
printf("소문자 입력: ");
scanf("%c",&c);
printf("\n%c는 %d번째 영어 소문자",c,c-'a');
}
[문제 7-2] 0~25 사이의 정수를 입력 받아, 해당 번째의 영어 대문자가 무엇인지 출력하는 프로그램을 작성하시오
0번째 문자는 A, 25번째 answksms Z로 가정하라
각 문자의 아스키 코드 값을 알 필요는 없다.
실행 예시정수 입력(0~25) : 11번째 영어 대문자는 B
int main(void) {
char c;
int num;
printf("정수 입력: ");
scanf("%d",&num);
printf("\n%d번쨰 영어 대문자는 %c",num,'A'+num);
}
[문제 7-3]영어 소문자를 입력받아 이를 대문자로 변환하는 프로그램을 작성하시오.
hint) 문제 7-1번과 7-2번을 결합하면 됌
int main(void) {
char c;
printf("소문자 입력: ");
scanf("%c",&c);
printf("\n대문자 출력: %c",c-'a'+'A');
}
[문제 8]반대로 영어 대문자를 입력받아 이를 소문자로 변환하는 프로그램을 작성하시오
실행 예시
대문자 입력: B
소문자 출력 : b
int main(void) {
char c;
printf("대문자 입력: ");
scanf("%c",&c);
printf("\n소문자 출력: %c",c-'A'+'a');
}
'프로그래밍 공부 > C' 카테고리의 다른 글
2020.01.05 4장 수식과 연산자 (0) | 2020.11.03 |
---|---|
2020.01.05 3장 입출력 (0) | 2020.11.03 |
2020.01.05 1장 C프로그래밍 시작하기 (0) | 2020.11.03 |
[C언어] 최대 공약수와 최소 공배수 구하기 (0) | 2020.01.28 |
[C언어] 정수를 입력받아 역순으로 바꾸기 (0) | 2018.04.15 |