다음과 같은 기술에 부합하는 함수에 대한 헤더를 작성하여라
(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()
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; }
(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; }
#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의 배수만
'프로그래밍 > C언어' 카테고리의 다른 글
C언어콘서트 7장 프로그래밍 답/c언어콘서트 솔루션 7장 (6) | 2015.05.20 |
---|---|
C언어콘서트 6장 프로그래밍 답/c언어콘서트 솔루션 6장 (0) | 2015.04.18 |
C언어콘서트 6장 Exercise/C언어콘서트 6장 연습문제 답 (2) | 2015.04.17 |
C언어콘서트 5장 프로그래밍 답/c언어콘서트 솔루션 5장 (2) | 2015.03.14 |
C언어콘서트 5장 Exercise/C언어콘서트 5장 연습문제 답 (6) | 2015.03.11 |