1. 함수에 대한 설명 중 잘못된 것을 모두 고르시오(4점) ( )
① 함수를 정의하기 전에 반드시 함수 원형 정의가 있어야 한다.

② 함수의 매개 변수는 전혀 없을 수도 있다.

③ 함수는 값을 반환하지 않을 수도 있다.

④ 함수 안에 문장이 하나도 없을 수도 있다.

2. 다음의 함수 원형 정의 중에서 잘못된 것을 모두 고르시오(4점) ( )

① int func(int x, y); ② void func(x, y);

③ char func(double); ④ void func(void, void);

3. 다음 라이브러리 함수 반환값의 범위는?(4점) ( )

(a) rand() % 10

(b) rand() % 5 + 2

4. 다음의 함수 정의에서 잘못된 것을 지적하라(6점).

(a)

int func(int x, y)___________________________

{___________________________

return ++x;___________________________

}___________________________

(b)

void func(int x)___________________________

{___________________________

return ++x;___________________________

}___________________________

(c)

int func(int x; int y)___________________________

{___________________________

return ++x;___________________________

}___________________________

5. 지역 변수에 대한 설명 중 잘못된 것을 모두 고르시오(4점). ( )

① 지역 변수의 초기값을 지정하지 않으면 자동적으로 0이 된다.

② 지역 변수의 이름과 전역 변수의 이름은 같을 수도 있다.

③ 지역 변수와 매개 변수의 이름은 서로 달라야 한다.

④ 지역 변수는 블록 외부에서도 접근이 가능하다.

⑤ 지역 변수는 정의된 블록이 끝나면 자동적으로 소멸된다.

6. 다음 프로그램에서 각 변수를 지역 변수와 전역 변수, 정적 변수 등으로 분류하시오. 또 각 변수의 범위와 초기값을 추측하여 보시오(4점).

#include <stdio.h>

int a;

double b;

int main(void)

{

int c;

for(c=0;c<10;c++)

{

int d;

static int e;

printf("a=%d, b=%f, c=%d, d=%d\n", a, b, c, d, e);

}

}

변수의 분류

범위

초기값

변수 a

변수 b

변수 c

변수 d

변수 e

7. 잠시 인간 컴퓨터가 되어 보자. 다음 프로그램의 결과를 예측하여 보라.(6점)

int x = 100;

void test(void)

{

int x = 200;

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

{

int x = 300;

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

x++;

}

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

}

8. 배열 char a[5][6]은 총 몇 개의 원소를 가지는가?(4점) ( )

① 20 ② 24 ③ 30 ④ 42

9. 다음 중 잘못 선언된 배열을 모두 선택하시오.(4점) ( )

① int a[200+1];

② #define MAX 100

int a[MAX];

③ int v = 100;

int a[v];

④ int a[100.25];

10. int a[100] = { 10 }; 으로 선언된 배열에서 a[99]의 초기값은 무엇인가?(4점) ( )

11. 다음 중 잘못 초기화된 배열을 모두 선택하시오.(4점) ( )

① int a[] = { 1, 2, 3, 4, 5};

② int a[100] = { 1, 2, 3, 4, 5};

③ int a[100] = { x, y, z };// x, y, z는 변수

④ int a[100] = { 0, 0 };

12. 배열에 대한 설명 중 잘못된 것을 모두 고르시오(4점). ( )

① a[x+1]와 같이 변수를 인덱스로 하여 배열을 참조할 수는 없다.

② 배열의 인덱스는 1부터 시작한다.

③ 배열을 함수의 매개 변수로 전달하는 경우에 원본이 전달된다.

④ 배열 원소를 함수의 매개 변수로 전달하는 경우에는 복사본이 전달된다.

⑤ 배열은 크기가 커서 지역 변수로 만들 수 없다.

13. 다음 프로그램의 오류를 전부 수정하시오(6점).

#define MAX_SIZE 3_____________________________

int main(void)_____________________________

{_____________________________

int a[MAX_SIZE] = { 0, 1, 2, 3 };_____________________________

int b[3.0];_____________________________

for(i=0;i<=MAX_SIZE; i++)_____________________________

b[i]=a[i];_____________________________

return 0;_____________________________

}_____________________________

15. 로또 복권 당첨 번호를 생성하고 사용자의 복권 번호를 받아서 당첨 여부를 판별하는 프로그램을 작성하여 보자. (20점).

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:rect style="WIDTH: 448.65pt; HEIGHT: 40.04pt; v-text-anchor: top" id=_x94665984 strokeweight="0.33pt" strokecolor="#0000ff" fillcolor="#ffffff"><v:stroke></v:stroke><v:fill type="gradientradial" focusposition="0.00,0.50" color2="#ccffcc"></v:fill><v:textbox>

구입한 복권 번호를 입력하세요: 35 25 11 2 3 7

당첨 번호: 35 25 11 2 3 7

축하합니다.

</v:textbox></v:rect>

<v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shape style="WIDTH: 21.55pt; HEIGHT: 9.75pt; v-text-anchor: top" id=_x93566064 type="#_x0000_t75"><v:imagedata src="file:///C:\Users\a\AppData\Local\Temp\DRW00001358349d.gif" o:title="DRW00001358349d"></v:imagedata><?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" /><w:wrap type="topAndBottom"></w:wrap></v:shape>16. 크기의 2차원 배열을 만들고 0에서 100 사이의 난수를 생성하여 배열 원소를 초기화시킨다. 대각선 원소들의 합을 구하여 출력하라. (20점)