• 검색 결과가 없습니다.

LAB #1 C 프로그래밍 기초와 포인터 소개

N/A
N/A
Protected

Academic year: 2022

Share "LAB #1 C 프로그래밍 기초와 포인터 소개"

Copied!
20
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

2016년2학기 고급컴퓨터프로그래밍및실습 (36342-02)

LAB #1

C 프로그래밍 기초와 포인터 소개

1

(2)

C 언어 (복습)

2

(3)

(복습1) 화씨 온도 계산 프로그램

3

섭씨 온도를 입력하세요 : 10.0

섭씨 10.0 도는 화씨 50.0 도 입니다.

실행결과

(4)

(실습1) 온도 변환 프로그램 1

(복습1)의 프로그램을 참고로 하여 다음과 같은 기능을 하는 프로그램을 작성하시오 : 사용자로부터 섭씨 온도를 입력 받을 때마다, 그 온도를 화씨 온도로 변환하여 출력해 준다. 단, 사용자가 입력한 온도가 -100 이면 프로 그램을 종료한다. ( while 사용)

힌트

섭씨 온도 입력

while (섭씨 온도가 -100이 아님 ) { 화씨 온도 계산하여 출력

섭씨 온도 입력 }

4

실행결과

(5)

(복습2) 숫자 출력하기

5

0 1 2 3 4 5 6 7 8 9

실행결과

i = 0; i < 10; i++

(6)

(실습2) 온도 변환 프로그램 2

-20도와 30도 사이의 섭씨 온도를 화씨 온도로 변환하여 화면에 출력하는 프로그램을 작성하시오. 출력은 10도 간격으로 하시오. 즉, 섭씨 -20, -10, 0, 10, 20 30도에 대해 이들을 화씨 온도로 변환하여 출력한다.

힌트 : for 문장 사용

출력 예제

6

(7)

(실습3) 온도 변환 프로그램 3

아래 그림과 같이 출력하는 섭씨/화씨 온도 변환 프로그램을 작성하시오.

이 프로그램은 섭씨 시작 온도와 섭씨 끝 온도, 그리고 출력 간격을 사용자 로부터 받고, 그 요청대로 출력한다. 아래 그림의 예제에서는 섭씨 -10도부 터 5도 간격씩 섭씨 20도까지의 온도를 화씨로 변환하여 출력한다.

7

(8)

(실습4) 삼각형 출력

다음 프로그램은 정사각형을 출력한다. 이 프로그램을 수정하여 아래 그림 과 같이 삼각형을 출력하도록 하시오.

8

사각형출력

삼각형출력

(9)

(실습5) 삼각형 빗변 길이 계산

직각삼각형의 밑변과 높이를 입력으로 받은 후, 그 삼각형의 빗변의 길이를 계산하여 출력하는 프로그램을 작성하시오. 프로그램에서 사용할 변수들 (밑변, 높이, 빗변) 은 모두 double 형으로 하시오.

힌트

math.h 헤더 파일 포함

sqrt ( ) 함수 사용

예제: x = sqrt(y); x = sqrt(2 * k);

double 형 변수로 읽어들일 때는

%lf (long float)를 사용한다.

9

a

b c

실행결과

(10)

(실습6) 피보나치 수열 계산

피보나치 수열은 다음과 같이 정의된다. 첫 두 수는 1이고, 그 다음 수부터 는 바로 앞에 있는 두 수의 합이다.

1 1 2 3 5 8 13 21 34 55 89 144 ...

피보나치 수열의 첫 15개의 수를 화면에 출력하는 프로그램을 작성하시오.

단, 배열은 사용하지 마시오.

10

실행결과

(11)

(복습3) 함수를 사용한 팩토리얼 계산

11

실행결과

함수 호출

(12)

(실습7) 함수를 사용한 피보나치 수열 계산

(복습3)의 프로그램은 함수를 호출하여 팩토리얼을 계산하여 출력한다. 이 와 유사한 방식으로 피보나치 수열을 계산하여 출력하는 프로그램을 작성 하시오.

할 일

피보나치 수열을 계산하는 함수를 작성한다.

이 함수를 호출하여 15번째 숫자까지 출력하는 main( ) 을 작성하시오.

실행 예제

12

(13)

포인터 소개

13

(14)

(복습4)

강의 노트 8장

포인터의 정의, 선언, 기본적인 사용법 ( pp. 3~8)

포인터와 배열 (pp. 20~26)

14

(15)

(실습8) 정수를 가리키는 포인터 연습

다음 작업을 순서대로 실행하는 프로그램을 작성하시오.

정수 변수 a 와 b 를 선언한다.

정수를 가리킬 수 있는 포인터 p 와 q 를 선언한다.

정수 변수 a 에는 10을, b 에는 20을 저장한다.

포인터 p 가 a 를 가리키도록 한다.

포인터 q 가 b 를 가리키도록 한다.

변수 a 에 20을 더한 후 그 값을 출력한다.

포인터 p 가 가리키는 변수에 30을 더한 후 그 값을 출력한다.

포인터 q 가 가리키는 변수의 값을 출력한다.

15

10 20

p q

a b

3060

(16)

(실습9) 포인터 이동 1

아래 프로그램을 실행하면, 포인터 p 와 q가 각각 변수 a와 b를 가리키게 되고, 10과 20이 화면에 출력된다.

이제 포인터 r 이 “포인터 p 가 가리키고 있는 변수”를 가리키도록 하고, p, q, r 이 가리키는 변수들의

값을 모두 화면에 출력해 보시오.

16

10 20

p q

a b

10 20

p q

a b

r

(17)

(실습10) 포인터 이동 2

실습 2의 프로그램에서는 포인터가 다음과 같이 가리키고 있다.

포인터를 왼편 그림과 같이 변경한 후에, 이 포인터들 을 사용해서 두 변수의 값을 출력해 보시오. 포인터를 변경할 때 변수명인 a 와 b 는 사용하지 마시오.

(포인터를 이동할 때는 추가 포인터를 사용해 보시오.)

포인터들을 사용하여 두 변수의 값을 합하여 출력해 보시오.

17

10 20

q p

a b

10 20

p q

a b

참고 ( x  y) temp = x;

x = y;

y = temp;

(18)

(실습11) 변수와 포인터

#include <stdio.h>

int main (void) { int x;

printf(“입력하시오: ");

scanf ("%d", &x);

printf(“x = %d\n", x);

}

옆의 프로그램에서 *로 표시된 위치에 정수 포인터 p를 선언하 고, 그 포인터가 정수 변수 x 를 가리키도록 하시오.

그 이후에는 정의한 포인터만을 사용하여, 현재 프로그램이 하는 일과 동일한 일을 하도록 프로그 램을 수정/완성하시오. (즉, *표 이후에 나타나는 변수명 x 를 모 두 포인터 표현으로 수정하시오.)

18

*

(19)

(실습12) 배열의 덧셈 (배열 버전)

19

프로그램이 아래와 같이 시작된다고 가정하자. 배열 C 의 k번째 원 소에 배열 A와 배열 B의 k번째 원소를 더하여 저장한 후, 그 값들을 모두 출력하시오. ( 단, 0<=k<=9 )

(20)

(실습13) 배열의 덧셈 (포인터 버전)

(실습12) 에서 완성한 프로그램을 수정하여, 배열 A, B, C 의 첫째 원소들을 포인터 p, q, r 이 각각 가리키도록 한다. 그리고 나서 포인터 p, q, r 만을 사용하여 (실습12)와 동일한 작업을 하도록 하시오.

20

A[i]

*(p+i) A

p

참조

관련 문서

그러므로 이와 같이 형 변홖 (type casting) 연산자를 사용하여 드러 나게 형을 맞추어주는 것이 좋은 프로그램 습관이다.. 이 시작 주소가

모바일 컴퓨팅은 무선통신 기능을 지닌 디지털 단말기를 사용하여 이메일이나 기타 정보의 송․수신을 하는 일을 지칭하며, 2) SNS는 사람들이 관계를 기반으로 자신의 생

현재 고추는 그 자극적이고 독특한 맛 그리고 여러 항산화성분 및 c aps ai c i n에 의 한다는 다이어트효과로 인해 국내뿐만 아니라 고추를 즐기지 않았던 다른 여러

하지만 우려되는 점은 인공지능이 사람의 일을 대체하고 있어 그 와 관련된 일을 하는 사람들이 일자리를 잃는다는 것입니다.. 앞으로 인공지 능에 의해 대체될

생태관광은 자연 및 문화환경의 교육과 해설을 포함하며, 생태적으로 지속가능 하도록 유지되는 관광으로 개념을 정의한 기관은?. ①

한 사람이 다른 사람의 직장생활에 더 많은 통제를 하고 싶은 욕구를 느낀다거나, 더 좋은 분위기가 있는 직장으로 옮기고 싶어 하는 바램을 느낀다거나 할 때

 컴퓨터공학과의 김이화 학생과 환경공학과의 홍이화 학생의 정보를 저장 하고자 한다... (예제2) 학과 주소를

사법분야