본문 바로가기
IT/프로그래밍

쉽게 풀어 쓴 C언어 Express 9장 Exercise 문제

by nutrient 2020. 12. 6.
728x90
728x170

쉽게 풀어 쓴 C언어 Express 9장 Exercise 문제

 

1.

#include <stdio.h>

void f(void);

double ratio;

// (b)

extern int counter;

// (d)

int main(void) {

static int setting;

// (f)

...

}

void f(void) {

int number;

// (a)

register int index;

// (c)

extern int total;

// (e)

...

}

 

2.

#include <stdio.h>

int a;

// 파일 전체, 정적, 연결 가능

static int b;

// 파일 전체, 정적, 연결 불가능

extern int c;

// 파일 전체, 정적, 외부 변수 참조

int main(void) {

int d;

// 블록, 자동, 연결 불가능

register int e;

// 블록, 자동, 연결 불가능

static int f;

// 블록, 정적, 연결 불가능 {

int g;

// 블록, 자동, 연결 불가능

}

return 0;

}

3.

(a)

// 전역 변수를 사용하여 프로그램이 복잡해지는 경우

#include <stdio.h>

void f(void);

int i;

int main(void) {

for (i = 0;i < 3; i++) {

printf("*");

f();

}

return 0;

}

void f(void) {

for (i = 0;i < 5; i++)

printf("#");

}

*#####

 

(b)

#include <stdio.h>

void f(int);

int n = 10;

int main(void) {

f(n);

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

return 0;

}

void f(int n) {

n = 20;

}

n=10

(c)

#include <stdio.h>

void f(void);

int x = 1;

int main(void) {

int x = 2;

printf("%d\n", x); {

int x = 3;

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

}

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

return 0;

}

(d)

#include <stdio.h>

void f(void);

int main(void) {

f();

f();

return 0;

}

void f(void) {

static int count = 0;

printf("%d\n", count++);

}

 

4.

(a) 하나 이상의 저장 유형 지정자를 붙이면 안된다. 

(b) 재귀 호출할 때 매개 변수의 값이 줄어들지 않아서 무한히 재귀 호출됨

5.

(a)

5

4

3

2

1

0

반환값은 16

(b)

5

4

3

2

1

0

반환값은 95

6.

int recursive(int n) {

int i, sum=0;

for (i=n; i>=1; i--)

sum += i;

return sum;

}

 

728x90
그리드형

댓글