프로그래밍/C언어

C언어콘서트 7장 Exercise/C언어콘서트 7장 연습문제 답

이번주에 2015. 4. 19. 16:51
반응형

다음과 같은 기술에 부합하는 함수에 대한 헤더를 작성하여라

(a) int형 매개변수 n을 받아서 아무것도 반환하지 않는 print_error() 함수

void print_error(int n)

(b) double형 매개변수 x, y를 받아서 double 형을 반환하는 larger_of() 함수

double larger_of(double x, double y)

(c ) 어떠한 매개변수도 갖지 않고 아무것도 반환하지 않는 side_effect()함수

void side_effect()

 

 

대학에 오니까 다 그릇이 작은거 같아.jpg

 

bltly.link

 

 

2. 왼쪽 박스의 함수 원형 정의에 적합한 return 문을 오른쪽 박스에서 찾아서 연결하여라

int f(void); - return 10 + 20;

void g(int, int); - return;

double h(double, int); - return 1.0;

 

 

3. 다음은 삼각수(triangular number)를 계산하는 프로그램이다. 프로그램의 빈 칸을 채워라

#include <stdio.h> int f(int n);  int main(void) { 	f(10);  	return 0; } int f(int n) { 	int i, result = 0;  	for(i = 0; i<=n; i++) 		result += i;  	return result; }

 

4. 다음의 함수원형 정의가 올바른지를 결정하고, 만약 잘못된 점이 있다면 이유를 설명하고 바르게 수정하여라
 

(a) double f(double x, y); - double f(double x, double y); 

매개변수 y의 형이 없다.

(b) (int) f (double x, double y); - int f (double x, double y);

                                              매개변수의 형이 잘못되었다.

© int f((int))x, (int) y); - int f(int x, int y); 매개변수의 형이 잘못되었다.

(d) float get_area(radisu, pi); - float get_area(float radisu, float pi);

                                            매개변수의 형이 없다.

 

 

5. 다음 프로그램의 출력을 써라

 

#include <stdio.h> int f(int x, int y);  int main(void){          printf("%d\n", f(12 , 3));          return 0; } int f(int x, int y) {     if((x % y) == 0) return 1;     else return 0; }
출력값 

 

 

주인의 장난에 빡친 댕댕이

 

bltly.link

 

6. 다음의 프로그램에서 붉은 색으로 표시된 부분을 함수로 작성하여 프로그램을 수정하여라 함수는 인수와 반환값을 갖도록 설계한다.
#include <stdio.h> int sum_f(int n); int sum = 0;  int main(void){          int n;          printf("정수를입력하시오: ");     scanf("%d", &n);          sum = sum_f(n);          printf("0부터%d까지의합은%d입니다.\n", n, sum);          return 0; }  int sum_f(int n) {     int i;        for(i = 0; i<=n; i++)         sum += i;          return sum; }
7. 다음의 소스 안에에 설명에 적합한 변수를 선언하여라.
#include <stdio.h>void f(void); void f(void); double radio; extern int counter;  int main() { 	static int setting;  	return 0;  } void f(void) { 	int number;  	register int index;  }
8. 다음 프로그램에 등장하는 변수들의 범위, 생존기간, 연결을 설명하여라
#include <stdio.h> int a;  //이 파일 내에서만 접근가능 프로그램 종료시 소멸 static int b; //이 파일에서만 접근가능 프로그램 종료시 소멸 extern int c; //모든 곳에서 접근가능 프로그램 종료시 소멸  int main(void){  	int d; //main 함수 내에서만 사용가능 	register int e;  	static int f; 	{ 		int g; 	} 	return 0; }
9. 다음 함수를 주석과 같이 호출하는 경우에 화면에 출력되는 내용과 함수의 반환값을 구하여라. 

(a)

//sum(5)로 호출

int sum(int n)

{

printf("%d", n);

if(n < 1) return 1;

else return (n + sum(n - 1));

}

 

출력값: 5

반환값: 5 + sum(4)

 

(b)

//asterisk(5)를 호출할 때 출력되는 *의 개수를 쓰시오

void asterisk(int f)

{

if(i > 1){

asterisk(i/2);

asterisk(i/2);

}

printf("*");

}

*의 개수: 7

 

10. 다음 수식에 대하여 생성되는 난수의 범위를 써라.

(a) rand()%100 0~99

(b) rand()%100+1 1~100

(c) rand()%101 0~100

(d) 3 * (rand()%5) 0~12 중에서 3의 배수만

 

 

 

 

 

반응형