[연습문제]
1. getchar() 함수를 이용하여 세 글자 이상의 문자열을 입력받고서 그 중 두 번째 문자를
printf() 함수로 화면에 출력하세요.
[소스코드]
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
void main()
{
char szBuffer[128] = { 0 };
szBuffer[0] = getchar();
szBuffer[1] = getchar();
printf("second character : %c", szBuffer[1]);
}
[실행결과]
2. gets() 함수로 문자열을 입력받고서 printf() 함수를 호출하여 같은 문자열을 화면에 출력하세요.
단, 문자열의 최대 길이는 영문 32자 미만이라고 가정합니다.
[소스코드]
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
void main()
{
char szBuffer[32] = { 0 };
int len = sizeof(szBuffer) / sizeof(char);
char* rc = gets_s(szBuffer, len);
if (rc != NULL)
{
printf("%s\n", szBuffer);
}
}
[실행결과]
3. 2번 문제의 코드를 수정하여 출력한 문자열이 저장된 메모리의 주소를 문자열 앞에 추가
로 출력할 수 있게 하세요.
[소스코드]
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
void main()
{
char szBuffer[32] = { 0 };
int len = sizeof(szBuffer) / sizeof(char);
char* rc = gets_s(szBuffer, len);
if (rc != NULL)
{
printf("[%p] %s\n", szBuffer, szBuffer);
}
}
[실행결과]
4. 사용자로부터 한 문자를 입력받아 10진수로 출력하는 프로그램을 작성하세요. 단, getch() 함수로 입력을 받고 printf() 함수로 출력하세요.
[소스코드]
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
void main()
{
char c;
c = _getch();
printf("%d\n", (int)c);
}
[실행결과]
5. 사용자로부터 정수를 입력받아 8진수와 16진수로 출력하는 프로그램을 작성하세요. 단,
직접 변환하는 과정을 계산하지 말고 printf() 함수의 형식 문자를 활용하세요.
[소스코드]
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
void main()
{
int nData;
scanf("%d", &nData);
printf("8진수: %o, 16진수: 0x%X", nData, nData);
}
[실행결과]
6. 사용자로부터 영문 소문자 한 글자를 getch() 함수로 입력받고서 일정 정숫값을 빼서 문자로 변환하여 출력하는 프로그램을 작성하세요. 참고로 아스키 코드 표를 이용하면 좀더 쉽게 문제를 해결할 수 있습니다.
[소스코드]
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
void main()
{
char c = _getch();
_putch(c - 32);
return;
}
[실행결과]
7. 두 실수를 입력받아 평균을 구하고서 소수점 이하 둘째 자리까지 출력하는 프로그램을 작성하세요. 단, 소수점 이하 셋째 자리가 절사되거나 반올림되는 것은 전혀 고려하지 않아도 좋습니다.
[소스코드]
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
void main()
{
float a, b;
printf("Input Number: ");
scanf("%f %f", &a, &b);
printf("%.2f\n", (a + b) / 2.f);
return;
}
[실행결과]
8. 사용자로부터 음수 하나를 입력받아 printf() 함수를 이용하여 부호가 없는 정수형과 16진수로 출력하는 프로그램을 작성하세요. 단, 출력되는 두 값은 각각 다른 행에 출력되어야 합니다.
[소스코드]
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
void main()
{
int nData = 0;
scanf("%d", &nData);
printf("%u \n0x%x \n", nData, nData);
return;
}
[실행결과]
'c언어' 카테고리의 다른 글
6. 기타 연산자 (0) | 2023.05.29 |
---|---|
5. 기초 연산자 (0) | 2023.05.27 |
[문법] getchar()/putchar() (0) | 2023.05.08 |
3. 기본 이론과 개발 도구의 활용 연습문제 (0) | 2023.04.30 |
2. C언어 입문 연습문제 (0) | 2023.04.26 |