본문 바로가기
프로그래밍 문제/C, C++ Problem

[C기초 플러스] 4장 연습문제

by Physics 2022. 2. 27.
728x90

1. 먼저 이름을 요청하고 이어서 다시 성을 요청한다. 그리고 나서, 성 이름 순으로 출력하는 프로그램을 작성하라.

#include <stdio.h>
#define max_words 100
int main(void){
	
	char last_name[max_words], first_name[max_words];
	printf("Please write your last name: ");
	scanf("%s", last_name);

	printf("Please write your first name: ");
	scanf("%s", first_name);

	printf("This is your name: %s %s\n", first_name, last_name);

}

 

2. 이름을 요청하고, 그 이름을 다음과 같은 포멧으로 출력하는 프로그램을 작성하여라. 
  a. 큰 따옴표로 감싸서 출력한다. 
  b. 20문자의 필드 너비에 필드 전체를 큰따옴표로 감싸서 출력한다. 
  c. 20문자의 필드 너비에 왼쪽으로 정렬하여, 필드 전체를 큰따옴표로 감싸서 출력한다. 
  d. 이름보다 3문자 더 넓은 필드 너비에 출력한다. 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define max_words 100

int main(void){

	char last_name[max_words];
	printf("Please your last name: ");
	scanf("%s", last_name);
	
	printf("Your name is as follows;\n");
	printf("1.\"%s\"\n", last_name);
	printf("2.\"%20s\"\n", last_name);
	printf("3.\"%-20s\"\n", last_name);
	printf("4.\"%*s\"\n", (int)strlen(last_name) + 3, last_name);
}

 

3. 하나의 부동소수점을 읽고, 그것을 먼저 소수점 표기로 출력하고, 이어서 지수 표기로 출력하는 프로그램을 작성하여라. 출력 포멧은 다음과 같아야 한다. 
  a. 입력된 것은 21.3 또는 2.1e+001이다. 
  b. 입력된 것은 +21.290 또는 2.129E+001이다. 

#include <stdio.h>
#include <stdlib.h>

int main(void){

	float number;
	printf("Please write down one real number:");
	scanf("%f", &number);

	printf("Your number is %f or %e\n", number, number);

}

 

4. 인치 단위의 키와 이름을 요청하여 그 정보를 다음과 같은 포멧으로 출력하는 프로그램을 작성하라. 
    당신의 키는 6.208 피트입니다. 
  a. 여기서는 float형을 사용하고 나눗셈을 위해 /를 사용한다. 원한다면, 키를 센티미터 단위로 요청하고 미터 단위로 출력해도 된다. 

#include <stdio.h>
#include <stdlib.h>
#define max_words 100

int main(void){
	
	float height;
	char last_name[max_words];

	printf("Please write your last name: ");
	scanf("%s", last_name);
	printf("Please write your height (in inch units): ");
	scanf("%f", &height);
	printf("Mr. %s, your height is %f\n", last_name, height);	

}

 

5. 먼저 이름을 요청하고, 이어서 성을 요청한다. 입력된 성과 이름을 한 라인에 출력하고 그 다음 라인에는 성과 이름을 구성하는 글자 수를, 다음과 같이, 성과 이름의 끝 글자에 맞추어 작성하여라.
Melissa Honeybee 
        7             8 
그리고 나서 이번에는 다음과 같이 같은 정보를 출력하되 글자수를 성과 이름의 첫 글자에 맞추어 작성하여라.
Melissa Honeybee 
7         8

#include <stdio.h>
#include <string.h>
#define max_words 100

int main(){
	
	char first_name[max_words], last_name[max_words];

	printf("Please write your last name: ");
	scanf("%s", last_name);
	printf("Please write your first name: ");
	scanf("%s", first_name);

	printf("%s %s\n", first_name, last_name);
	printf("%*d %*d\n", (int)strlen(first_name), (int)strlen(first_name), (int)strlen(last_name), (int)strlen(last_name));
	printf("%s %s\n", first_name, last_name);
	printf("%-*d %-*d\n", (int)strlen(first_name), (int)strlen(first_name), (int)strlen(last_name), (int)strlen(last_name));
}

 

6. double 형 변수를 1.0/3.0으로 설정하고, float형 변수를 1.0/3.0으로 설정하는 프로그램을 작성하라. 그 결과를 다음과 같은 방법으로 세번 출력한다. 
  a. 첫번째: 소수점 아래 4자리까지 출력한다. 
  b. 두번째: 소수점 아래 12자리까지 출력한다. 
  c. 세번째: 소수점 아래 16자리까지 출력한다. 
프로그램에 float.h를 포함시켜, FLT_DIG와 DBL_DIG의 값을 출력하라. 출력된 값들이 이들의 값과 동일한가? 

 

 

728x90

댓글