본문 바로가기
College Computer Science/C Language

[C 프로그래밍 실습] 자료형과 변수 / 전처리와 입출력 (Lab 01)

by 2den 2020. 10. 13.
728x90

<Lab 01 문제 유형 요약>

 

  • Program 1 : 8진수, 16진수, 10진수 아스키코드로 문자 출력
  • Program 2 : 매크로 상수 (#define) 전처리
  • Program 3 : 문자의 8진수, 16진수, 10진수 아스키코드 출력
  • Program 4 : 문자형 연산 (문자와 정수 연산)
  • Program 5 : getchar(), putchar() / 문자의 8진수, 16진수, 10진수 아스키코드 출력
  • Program 6 : 헤더파일 (.h), 매크로 상수
  • Program 7 : 좌측 정렬 출력, 우측 정렬 출력
  • Program 8 : 정수 실수 형변환 (캐스팅casting)

 


 

Program 1

 

다음 조건을 만족하는 프로그램을 작성하시오.

 

  • 아스키코드 값이 8진수로 041에서 045까지인 문자 출력
  • 아스키코드 값이 16진수로 0x41에서 0x45까지인 문자 출력
  • 아스키코드 값이 10진수로 97에서 101까지인 문자 출력
#include <stdio.h>

int main()
{
	printf("%c %c %c %c %c\n", 041, 042, 043, 044, 045);
	printf("%c %c %c %c %c\n", 0x41, 0x42, 0x43, 0x44, 0x45);
	printf("%c %c %c %c %c\n", 97, 98, 99, 100, 101);

	return 0;
}

 

 

 

Program 2

 

아파트 면적인 18평, 25평, 32평, 44평, 52평을 제곱미터(m2)의 면적으로 출력하는 프로그램을 작성하시오. 평을 제곱미터 면적으로 환산하는 매크로를 정의하여 사용하시오.

 

  • 1평은 3.305785제곱미터(m2)
#include <stdio.h>
#define PYEONG 3.305785

int main()
{
	printf("%fm^2 %fm^2 %fm^2 %fm^2 %fm^2", 18*PYEONG, 25*PYEONG, 32*PYEONG, 44*PYEONG, 52*PYEONG);
	return 0;
}

 

* 평은 영어로 표현이 없음

 

 

 

Program 3

 

다음 문자 5개에 대해 다음 조건을 만족하는 프로그램을 작성하시오.

 

  • # $ ^ & * 
  • 문자, 8진수 코드 값, 10진수 코드 값, 16진수 코드 값 출력
#include <stdio.h>

int main()
{
	printf("# : 문자(%c), 8진수(%o), 10진수(%d), 16진수(%x) \n", '#', '#', '#', '#');
	printf("$ : 문자(%c), 8진수(%o), 10진수(%d), 16진수(%x) \n", '$', '$', '$', '$');
	printf("^ : 문자(%c), 8진수(%o), 10진수(%d), 16진수(%x) \n", '^', '^', '^', '^');
	printf("& : 문자(%c), 8진수(%o), 10진수(%d), 16진수(%x) \n", '&', '&', '&', '&');
	printf("* : 문자(%c), 8진수(%o), 10진수(%d), 16진수(%x) \n", '*', '*', '*', '*');

	return 0;
}

 

 

 

Program 4

 

다음 조건을 만족하는 프로그램을 작성하시오.

 

  • 문자형 연산 ‘A’ + 2 결과를 문자로 출력
  • 문자형 연산 ‘A’ + 5 결과를 문자로 출력
  • 문자형 연산 ‘S’ - 1 결과를 문자로 출력
  • 문자형 연산 ‘S’ - 3 결과를 문자로 출력
#include <stdio.h>

int main()
{
	printf("'A' + 2 : %c\n", 'A'+2);
	printf("'A' + 5 : %c\n", 'A'+5);
	printf("'S' - 1 : %c\n", 'S'-1);
	printf("'S' - 3 : %c\n", 'S'-3);

	return 0;
}

 

 

 

Program 5

 

표준 입력으로 문자 하나를 입력받아 다음 조건을 만족하는 프로그램을 작성하시오.

 

  • 함수 getchar()로 문자 하나 입력 받음
  • 함수 putchar()문자 그대로 출력
  • 함수 printf()로 문자의 코드 값을 십진수, 팔진수, 십육진수로 출력
#include <stdio.h>

int main()
{
	char ch = getchar();
	putchar(ch);
	printf("\n십진수(%d), 팔진수(%o), 십육진수(%x)", ch, ch, ch);

	return 0;
}

 

 

 

Program 6

 

표준입력으로 원의 반지름 값인 실수 하나를 입력받아 다음 조건을 만족하는 프로그램을 작성하시오.

 

  • 매크로 상수로 원주율 3.141592 정의 (mymacro.h 에 포함 시킴)
  • 원 반지름 출력, 원 면적 출력 , 원 둘레 출력
// mymacro.h
#pragma once
#define pi 3.141592
#include <stdio.h>
#include "mymacro.h"

int main()
{
	float radius = 0;
	printf("반지름 입력 : ");
	scanf("%f", &radius);
	printf("반지름 : %f\n", radius);
	printf("면적 : %f\n", radius * radius * pi);
	printf("둘레 : %f\n", 2 * radius * pi);

	return 0;
}

 

 

 

Program 7

 

다음 조건을 만족하는 프로그램을 작성하시오.

 

  • 세 개의 아파트 면적의 평을 구분 문자가 포함된 표준 입력 (예: 25, 31, 45 또는 25/31/45)으로 받아 제곱미터(m2)로 출력
  • 1평은 3.305785제곱미터(m2)
#include <stdio.h>
#define PYEONG 3.305785

int main()
{
	int p1 = 0, p2 = 0, p3 = 0;
	scanf("%d/%d/%d", &p1, &p2, &p3);
	printf("%fm^2 / %fm^2 / %fm^2", p1*PYEONG, p2*PYEONG, p3*PYEONG);

	return 0;
}

 

 

 

Program 8

 

두 실수를 표준입력으로 입력받아 다음 조건을 만족하는 프로그램을 작성하시오.

 

  • 두 실수가 가로, 세로인 사각형의 면적을 전체 폭 12, 소수 이하 3자리, 우측 정렬로 출력
  • 두 실수가 가로, 세로인 삼각형의 면적을 전체 폭 12, 소수 이하 3자지, 좌측 정렬로 출력 
#include <stdio.h>

int main()
{
	float width = 0, height = 0;

	printf("가로 : ");
	scanf("%f", &width);
	printf("세로 : ");
	scanf("%f", &height);

	printf("%12.3f\n", width * height);
	printf("%-12.3f\n", width * height / 2);
	
	return 0;
}

 

 

 

Program 9

 

표준입력으로 두 정수를 입력받아 합과 평균을 구하여 출력하는 프로그램을 작성하시오. 

 

  • 합은 정수로, 평균은 실수로 출력
#include <stdio.h>

int main()
{
	int integer1 = 0, integer2 = 0;
	scanf("%d", &integer1);
	scanf("%d", &integer2);
	printf("합 : %d, 평균 : %f\n", integer1 + integer2, (float)(integer1 + integer2) / 2);

	return 0;
}

 

728x90

댓글