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

#include <stdio.h>

int main() {
	double num;
	printf("실수를 입력하시오: ");
	scanf("%lf", &num);
	printf("실수형식으로는 %lf입니다. \n", num);
	printf("지수형식으로는 %e입니다. \n", num);
}

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

#include <stdio.h>

int main() {
	int num;
	printf("16진수 정수를 입력하시오: ");
	scanf("%x", &num);
	printf("8진수로는 %#o입니다. \n", num);
	printf("10진수로는 %d입니다. \n", num);
	printf("16진수로는 %#x입니다.\n", num);
}

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

#include <stdio.h>

int main() {
	int x = 10, y = 20;
	printf("x = %d y = %d \n", x, y);
	x = x ^ y;
	y = x ^ y;
	x = x ^ y;
	printf("x = %d y = %d \n", x, y);
}

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

#include <stdio.h>

int main() {
	double x, y, z;
	printf("상자의 가로 세로 높이를 한번에 입력: ");
	scanf("%lf %lf %lf", &x, &y, &z);
	printf("상자의 부피는 %lf입니다. \n", x * y * z);
}

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

#include <stdio.h>
#define ONE_PYEONG 3.3058

int main() {
	double p;
	printf("평을 입력하세요: ");
	scanf("%lf", &p);
	printf("%lf평방미터입니다. \n", p * ONE_PYEONG);
}

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

#include <stdio.h>

int main() {
	double x;
	x = 3.32e-3 + 9.76e-8;
	printf("%lf \n", x);
}

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

#include <stdio.h>

int main() {
	double e, m, v;
	printf("질량(kg): ");
	scanf("%lf", &m);
	printf("속도(m/s): ");
	scanf("%lf", &v);
	e = m * v * v / 2;
	printf("운동에너지 (J): %lf \n", e);
}

08. 사용자가 아스키 코드값을 입력하면 그 아스키 코드값에 해당하는 문자를출력하는 프로그램을 작성하라. 

#include <stdio.h>

int main() {
	int char_num;
	printf("아스키 코드 값을 입력하세요: ");
	scanf("%d", &char_num);
	printf("문자 : %c입니다. \n", char_num);
}

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

#include <stdio.h>

int main() {
	printf("%c %c %c \n", 'a' + 1, 'a' + 2, 'a' + 3);
}

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

#include <stdio.h>

int main() {
	printf("화재가 발생하였습니다. \a \n");
}

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

#include <stdio.h>

int main() {
	int A = 65, B = 66, C = 67;
	printf("\"ASCII code\", '%c','%c','%c' \n", A, B, C);
	printf("\\t \\a \\n  \n");
}

 


12. 정수형 변수에 대하여 실습하여보자.

int i = 255;
printf("%d \n", i);

 

1) i의 값을 형식 지정자 %o, %x를 사용하여 8진수, 16진수로도 출력하여보라.

8진수: 377, 16진수:  ff

 

2) i을 -1로 초기화한 후에 %x를 사용하여 출력해보자. 어떤 값이 출력되는가? 2의 보수인지를 확인하자. -2, -3도 확인해보자. 

ffffffff (2의 보수이다)

01. 다음 중 C 프로그램에 대하여 잘못 설명한 것을 모두 고르시오. (3)

(1) 프로그램에서 반드시 있어야 하는 함수는 main()이다.

(2) 하나의 프로그램 안에는 main()이 하나만 있어야한다.

(3) 적어도 하나의 변수는 반드시 선언하여야 한다.

(4) 문장의 끝에는 ;을 붙여야 한다.  

 

 변수를 하나도 선언하지 않아도 된다.


02. 주석에 대하여 잘못 설명한 것을 모두 고르시오. (1,2)

(1) 주석이 반드시 있어야 컴파일이 된다.

(2) 주석이 많아지면 실행 파일의 크기가 커진다.

(3) 주석은 \*로 시작하여 */로 끝난다.

(4) //은 현재 위치에서 줄의 끝까지를 주석으로 만든다.  

 

주석은 컴파일 시 컴파일러에 의해 완전히 무시되기 때문에, 주석이 많아져도 실행 파일의 크기에는 전혀 영향을 미치지 않는다.  또한 컴파일 가능 유/무와 관계 없다. (다만 주석이 많아지면 소스 코드 파일의 크기는 커진다.) 


03. 다음 중  C에서 지원하는 자료형의 이름이 아닌 것은? (3)

(1) char

(2) long

(3) integer

(4) float 

 

정수형 자료를 지원하지만, 자료형의 이름은 integer이 아니라 int이다.


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

(1) %int 

(2) %d

(3) %c  

(4) %f

 

%int는 c에서 사용하지 않은 형식 지정자이다. %c는 문자 출력을 위한 형식지정자, %f는 실수형 번수 출력을 위한 형식 지정자이다.  


05.  scanf() 함수에서 double형 변수를 입력하는데 사용되는 형식 지정자는? (5)

(1) %c

(2) %d

(3) %f

(4) %lf

 

%c는 char형, %d는 int형(정수형), %f는 float형 변수를입력하는데 사용된다.


06. 다음 코드에 주석을 붙이시오. 아래 코드가 하는 일은 무엇인가?

#include <stdio.h> // 표준 입출력 함수를 사용하기 위해 stdio.h 헤더 파일 포함

int main (void) // 메인 함수 선언
{
	int x, y; // 정수형 변수 x와 y 선언
    
    scanf("%d %d", &x, &y); // 사용자로부터 두 개의 정수를 입력받아 변수 x와 y에 저장
    printf("덧셈: %d\n", x + y); // x와 y의 합을 출력
    printf("뺄셈: %d\n", x - y); // x에서 y를 뺀 값을 출력
    printf("곱셈: %d\n", x * y); // x와 y의 곱을 출력
    printf("나눗셈: %d\n", x / y); // x를 y로 나눈 몫을 출력
    return 0; // 프로그램 종료, 반환값 0
}

07. 다음 코드는 인치를 mm로 변환하는 프로그램이다. 빈칸을 채우고 주석을 추가하라.

#include <stdio.h>

scanf("%f",&inch);

08. 다음 소스 파일은 두 개의 정수를 받아서 곱셈을 하여서 출력한다. 오류를 찾아서 정정하시오.

#include <stdio.h>

int main (void)
{
	int x;
    int y;
    int prod;
    scanf("%d", &x);
    scnaf("%d, &y);
    prod = x * y;
    printf("곱셈의 결과= %f", prod);
    return 0;
}

09. 다음의 문장을 실행하였을 때, 화면에 출력되는 내용을 쓰시오. 변수 x는 , y = 20이라고 가정하자.

(a) It's never too late.
 It never rains but it pours
(b) 10
(c) 30
(d) 10 + 20 = 30
(e) 10 * 20 = 200
(f) *
**
***
****

01. 프로그램 개발 과정을 순서대로 적으시오 (3 -> 2 -> 5 -> 1 -> 6 -> 4)

(1) 컴파일과 링크

(2) 알고리즘의 개발

(3) 요구 사항 분석

(4) 유지보수

(5) 프로그램 실행과 디버깅


 

02. 다음과 같은 실행결과가 나오도록 빈칸을 채우시오.

#include <stdio.h>
int main (void)
{
	printf("비주얼 스튜디오로 \n");
    printf("C언어를 시작합니다.");
    return 0;
  }

03. 다음 각각의 코드에는 오류가 있을 수 있다. 오류가 있다면 찾아서 올바르게 수정하라.

(a) 

printf("Hello World!"); // "" 빼먹음

 

(b)

int main (void) // ; 제거

 

(c)

int main (void) // M -> m (대문자 -> 소문자)

 

(d)

printf("Hello World!"); // ; 빼먹음

 


04. 다음의 설명에맞는 문장(들)을 작성하여 보시오.

(a) 화면에 "Hi! Programmers"와 줄바꿈 문자를 출력한다.

printf("Hi! Programmers \n");

 

(b) 화면에줄바꿈 문자와 "Good Morning"을 출력한다.

printf("\nGood Morning");

 

(c)"C언어",  "C++언어", " Java 언어"를 한 줄에 하나씩 출력한다. 

printf("C언어 \n");
printf("C++언어 \n");
printf("Java 언어 \n");

+ Recent posts