본문 바로가기

c언어

4. 기본 입출력 함수

[연습문제]

 

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);
}

[실행결과]

a입력 했음

 

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