본문 바로가기

프로그래밍/C언어

쉽게 풀어쓴 C언어 Express 4장 Programming

1.사용자로부터 하나의 실수를 입력받아서 소수점 표기 방법과 지수 표기 방법으로 동시에 출력하는 프로그램을 작성하라.


#include <stdio.h>


void main()
{

     double num1;

    

     printf("실수를 입력하시오.");   //사용자에게 실수를 입력받기위한 설명 출력
     scanf("%lf",&num1);   //사용자에게 실수를 입력받는다.
    
     printf("실수형식으로는 %f입니다\n",num1);  //%f를 사용하여 입력받은 값을 실수로 출력
     printf("지수형식으로는 %e입니다\n",num1);  //%e를 사용하여 입력받은 값을 지수로 출력
}

 

 


2.사용자로부터 정수를 16진수로 입력받아서 8진수,10진수,16진수 형태로 출력하는 프로그램을 작성하라.


#include <stdio.h>


void main()
{

     int input;

    

     printf("16진수 정수를 입력하시오."); //사용자에게 정수를 입력받기위해 설명출력
     scanf("%x",&input);  //사용자에게 정수를 입력받는다.
    
     printf("8진수로는 %o입니다\n",input); //%o를 사용하여 입력받은 값을 8진수로 출력
     printf("10진수로는 %d입니다\n",input); //%d를 사용하여 입력받은 값을 10진수로 출력
     printf("16진수로는 %x입니다\n",input); //%x를 사용하여 입력받은 값을 16진수로 출력
     /*책과 결과 값이 다르게나옴 변수와 자료형 125쪽 참고사항확인*/
}

 

 


3.int형의 변수 xy의 값을 서로 교환하는 프로그램을 작성하여 보자. 별도의 변수가 필요하면 정의하여서 사용한다. 변수 xy10,20의 값으로 초기화하라.


#include <stdio.h>

void main()
{
     int x=10;
     int y=20;
     int temp;

 

     printf("x=%d y=%d\n",x,y); //x와 y의 초기 값을 출력

 

     temp=x;  //x를 temp에 대입
     x=y;  //y를 x에 대입
     y=temp;  //temp를 y에 대입

 

     printf("x=%d y=%d\n",x,y); //바뀐x와 y의 결과 값을 출력
}

 


 

4.상자의 부피를 구하는 프로그램을 작성하여 보자. 부피는 길이*너비*높이로 계산된다. 길이, 너비, 높이는 모두 double형의 실수로 입력받아 보자.


#include <stdio.h>

void main()
{
     double w,h,d,result;

 

     printf("상자의 가로 세로 높이를 한번에 입력:");
     scanf("%lf %lf %lf",&w,&h,&d); //값을 입력받는다.

 

     result=w*h*d; //result는 입력받은 값을 모두 곱한 값이다.

 

     printf("상자의 부피는 %f입니다.\n",result); //상자의 부피를 출력
}

 


 

5.우리나라에서 많이 사용되는 면적의 단위인 평을 제곱미터로 환산하는 프로그램을 작성하라. 여기서 1평은 3.3m²이다. 변수들의 자료형은 어떤 것을 선택하는 것이 좋은가? 기호 상수를 이용하여 1평당 제곱미터를 나타내어라


#include <stdio.h>
#define SQMETER_PER_PYEONG 3.3058 //기호 상수를 이용하여 정의


void main()
{
     double input,result;

 

     printf("평을 입력하세요.");
     scanf("%lf",&input); //값을 입력받는다.

 

     result=input*SQMETER_PER_PYEONG;   //result는 입력받은 값을 모두 곱한 값이다.

 

     printf("%f평방미터입니다.\n",result); //결과 값을 출력
}

 

 

6.다음과 같은 수식의 값을 계산하여 화면에 출력하는 프로그램을 작성하라. 지수 표기법을 사용하여 변수들을 초기화한다.


#include <stdio.h>


void main()
{
     double num1,num2,result;

 

     num1=3.32e-3;
     num2=9.76e-8;
 

     result=num1+num2; 

 

     printf("%f\n",result); //결과 값을 출력
}​

 


 

7.물리학에서 운동에너지는 E=mv²/2.0으로 계산된다. 사용자로부터 질량(m)과 속도(v)를 받아서 운동에너지(E)를 계산하는 프로그램을 작성하여 보자. 모든 변수는 double형을 사용하라.

#include <stdio.h>

void main()
{
     double mass, speed, kenergy;

    

     printf("질량을 입력해주세요:");
     scanf("%lf", &mass);     //질량을 입력받는다.

    

     printf("속도를 입력해주세요:");
     scanf("%lf", &speed);     //속도를 입력받는다.

     

     kenergy = 0.5*mass*speed*speed;     //운동에너지공식

    

     printf("운동에너지: %f\n", kenergy);     //계산된 운동에너지출력
}

 

 

8.‘a'+1, 'a'+2, 'a'+3을 문자 형식(%c)으로 출력하는 프로그램을 작성하라. 이 프로그램에서 알 수 있는 것은 무엇인가?


#include <stdio.h>


void main()
{
     printf("'a'+1=%c\n",'a'+1);     //'a'는 a에 해당하는 아스키코드값을 의미
     printf("'a'+2=%c\n",'a'+2);
     printf("'a'+3=%c\n",'a'+3);
}

 


 

9.경보음이 울린 후에 다음과 같은 메시지를 출력하고 다시 경보음이 울리는 프로그램을 작성하여보자.


#include <stdio.h>


void main()
{
     char sound ='\a';    //경보음
    

     printf("%c(경보음)화재가 발생하였습니다.",sound);   //sound가 들리고 문자를 출력
     printf("%c\n", sound);     //sound
}

 

 

10.다음과 같이 화면에 출력하는 프로그램을 작성하라.


#include <stdio.h>


void main()
{
     char code1 = 'A';
     char code2 = 'B';
     char code3 = 'C';
    

     printf( "\"ASCII code\",\'%c\',\'%c\',\'%c\'\n" ,code1,code2,code3);
     printf( "
\\t \\a \\n\n" );
     /*힌트 "를 출력하려면 \"와 같이 한다. \을 출력하려면 \\와 같이 한다.*/
}