C언어 콘서트 #2

201215488 김민수

01 C언어에서 사용 가능한 주석의 형태는? 1,3

/ .../ , /* ... */ , // ...

02 C언어에서 지원하는 자료형이 아닌 것은? 3

integer (int..)

03 printf() 함수에서 정수형 변수를 출력하는 데 사용되는 형식 지정자는? 2

%d

04 scanf() 함수에서 사용자로부터 실수 값을 읽어들여서 double변수에 저장하는데 사용되는 형식 지정자는? 4

%lf

05 프로그램 안에서 입력을 처리하여서 출력을 생성하는 가상적인 기계와 같은 것은? 2

함수

06 프로그램 안에서 데이터 값이 저장되는 상자라고 생각할 수 있는 것은? 1

변수

07 안녕하세요?

인사드립니다.

위 두문장 출력하는 프로그램 소스

#include<stdio.h>

int main(void)

{

printf("안녕하세요?\n");

printf("인사드립니다.\n");

}

08 다음 프로그램에서 오류를 지적하고 올바르게 수정하여라. (바르게된 소스)

/* 이 프로그램은 화면에 텍스트를 출력합니다.

#include<stdio.h>

int main

{

printf("Hello World! \n");

return 0

}

->

/* 이 프로그램은 화면에 텍스트를 출력합니다.*/

#include<stdio.h>

int main()

{

printf("Hello World! \n");

return 0;

}

1. 주석이 닫히지 않음

2. main뒤에 ()가 없음

3. return 0 뒤에 ;가 빠짐

09 다음과 같이 출력하는 프로그램을 작성하여라. 가격은 price라는 변수 사용

제품의 가격은 22000원입니다.

#include<stdio.h>

int main(void)

{

int price;

price=22000;

printf("제품의 가격은 %d원입니다.\n",price);

return 0;

}

10 마일을 킬로미터로 변환하는 프로그램. 헤더 stdio/main(void)/함수시작/mile km float형 변수선언/"마일을 입력하시오:" 텍스트입력/mile값 받기/mile*1.609=km/km출력/0반환/끝 순으로 소스짜라

#include<stdio.h>

int main(void)

{

float mlie,km;

printf("마일을 입력하시오:");

scanf("%f", &mlie);

km = mlie * 1.609;

printf("%f킬로미터\n",km);

return 0;

}

%.3f같은 방식으로 유효숫자를 지정해주는 것도 좋을 것 같습니다.

11 다음 예제 프로그램에 작성자 작성날짜 각 문장이 하는 작업을 설명하는 주석을 추가하여라.

/* 2012년 3월 30일 김민수입니다.

사칙연산에 관련된 예제프로그램입니다. */

#include<stdio.h>  // 헤더파일 포함

/* #include : #은 전처리기(preprocessor)지시자, include는 포함하다.\

<stdio.h> : standard input output . header file

헤더파일을 여러개 포함시켜 다양한 함수를 사용할 수 있다.*/

int main(void) // 함수의 시작

/* int : 출력타입 / main : 함수이름 ***C언어에서 반드시 필요!

void : 입력타입 (void는 아무 것도 없다는 의미이다.) */

{

int x,y; // int 정수 (4바이트) 변수선언 x,y

scanf("%d%d",&x,&y); // int변수를 입력(scan)받는다, 사용변수(%d)는 각각 x,y이다.

printf("덧셈: %d\n", x + y);  // ""안의 내용을 프린트(출력), %d(정수 형식지정자)를 사용, %d는 x+y. \n은 한줄.

/* printf : 출력하다. ""사이에 들어있는 txt.

즉 문자열(string)을 출력하는 라이브러리 함수(컴파일러가 기본적으로 제공하는 함수)*/

printf("뺄셈: %d\n", x - y);// ""안의 내용을 프린트(출력), %d(정수 형식지정자)를 사용, %d는 x-y.

printf("곱셈: %d\n", x * y);// ""안의 내용을 프린트(출력), %d(정수 형식지정자)를 사용, %d는 x*y.

printf("나눗셈: %d\n", x / y);// ""안의 내용을 프린트(출력), %d(정수 형식지정자)를 사용, %d는 x/y.

return 0;  //프로그램을 끝낸다.

/* return 0; : 함수가 작업을 끝내고 작업의 결과를 반환할 때 사용됨.

main함수가 작업을 끝내고 외부(win등의 os)로 0값(프로그램의 정상적 종료)을 반환함. */

} //{ } : 함수의 시작과 끝

저장시 사소한 문제가 생겨 캡쳐이미지에서는 주석에 약간의 수정을 가미하였습니다.

12

//첫번째 프로그램

#include stdio,h

integer main(void)

{

int x

x = 20;

printf(현재 x의 값은 %d입니다.);

return 0;

}

1. <> 헤더파일 포함시킬때 빠짐

2. .대신 ,가 들어가있다.

3. integer이 아니라 int다. (int를 풀어쓴건데 프로그램 사용할땐 int!)

4. int x에서 세미콜론(;) 누락

5. printf에서 큰따옴표 ("") 누락

6. printf에서 뒤쪽큰따옴표 뒤에 %d에 ,x 누락

#include<stdio.h> // <>가 빠져있고 .대신 ,가 들어가있다.

int main(void) // integer이 아니라 int다. (int를 풀어쓴건데 프로그램 사용할땐 int!)

{

int x; // int x에서 세미콜론(;) 누락

x = 20;

printf("현재 x의 값은 %d입니다.:",x); // printf에서 큰따옴표 ("") 누락 printf에서 %d에 ,x 누락

return 0;

}

이렇게 되어야함.

programming

01 사용자로부터 3개의 정수를 입력받은 후, 평균 계산해서 출력해라

정수를 입력하시오: 10

정수를 입력하시오: 20

정수를 입력하시오: 30

평균은 20입니다.

Hint의 알고리즘에는 READ Y가 들어가야 합니다.

#include<stdio.h>

int main(void)

{

int x,y,z,avg; // 정수 변수 x,y,z,avg 선언

printf("정수를 입력하시오: "); // 사용자에게 안내 메세지 출력

scanf("%d", &x); // 첫 번째 정수를 x로 읽어들임

printf("정수를 입력하시오: "); // 사용자에게 안내메세지 출력

scanf("%d", &y); // 두 번째 정수를 y로 읽어들임

printf("정수를 입력하시오: "); // 사용자에게 안내메세지 출력

scanf("%d", &z); // 세 번째 정수를 z로 읽어들임

avg = (x+y+z)/3; // 평균계산

printf(\n"평균은 %d입니다. \n", avg); // 평균출력

return 0;

}

정수를 모두 x로 읽으라고 써있는데 그렇다면 y,z의 용도가 없으니 오탈자로 생각하겠습니다.

02 센티미터를 인치로 변환하는 프로그램을 작성하여보자. 프로그램의 입력과 추력은 다음과 같다.

센티미터를 입력하시오: 2.54 Enter

2.54cm는 1인치입니다. Enter

#include<stdio.h>

int main(void)

{

double cm,in; // 변수 cm,in 선언

printf("센티미터를 입력하시오: "); // 사용자에게 안내 메세지 출력

scanf("%lf", &cm); // cm를 입력받음

in = cm / 2.54; // cm와 in를 계산

printf("%.2lfcm는 %.0lf인치입니다. \n",cm,in); // 출력화면에서 각각 2.54, 1이 출력되었기 때문에 유효숫자를 조절해준다.

return 0;

}

// int를 사용해야하는지, 유효숫자를 체크해야하는지 문제의 의도가 불분명합니다.

03 온스로 표시된 무게를 그램으로 변경하는 프로그램을 작성하여 보자. 1온스는 28.3그램이다.

온스를 입력하시오: 3.8 Enter

3.8온스는 __그램입니다.

#include<stdio.h>

int main(void)

{

double o,g; // 변수 o,g 선언

printf("온스를 입력하시오: "); // 사용자에게 안내 메세지 출력

scanf("%lf", &o); // o를 입력받음

g = o * 28.3; // o와 g를 계산

printf("%.1lf온스는 %.2lf그램입니다. \n",o,g); // 유효숫자를 조절해준다.

return 0;

}

04 달의 중력은 지구의 약 17%라고 한다. 자신의 몸무게를 입력받아서 달에서의 몸무게를 계산하는 프로그램을 작성하여보자.

몸무게를 입력하시오: 70 Enter

달에서의 몸무게는 16kg입니다. Enter

#include<stdio.h>

int main(void)

{

double e,m; // 변수 e,m 선언

printf("몸무게를 입력하시오: "); // 사용자에게 안내 메세지 출력

scanf("%lf", &e); // o를 입력받음

m = e * 0.17 ; // e와 m을 계산

printf("달에서의 몸무게는 %.0lfkg입니다. \n",m); // 유효숫자를 조절해준다.

return 0;

}

// 문제에서 중력이 17%라는 것은 무게 또한 그렇다는 의미로 해석했으나, 문제와 약간 다르군요.

// 문제에서는 16kg이 나왔으나, 계산기 또한 11.9정도의 근사값이 출력됩니다..