연습문제와 소스코드는 제가 직접 풀어 작성한 것이므로 오타, 오답 이 존재할 수 있습니다.
참고 부탁드립니다.
Quiz(p.190)
1. 프로그램이 시잘될 때 운영체제에 의해서 호출되는 특별한 함수는?
[답]
① 진입점 함수
2. C 프로그램에서 자주 사용하는 기능을 미리 함수로 준비해둔 것은?
[답]
② 라이브러리 함수
3. 함수의 요건 중 생략할 수 있는 것은?
[답]
③ 함수의 선언
Quiz(p.214)
1. 함수를 호출한 곳에서 함수 안으로 전달되는 값을 저장하는 변수는?
[답]
② 매개변수
2. 다음 중 함수를 정의할 때 해야 하는 일이 아닌 것은?
[답]
④ 인자를 지정해서 함수를 호출한다.
3. 함수를 호출할 때 실제로 전달되는 값을 무엇이라고 하는가?
[답]
② 인자
4. 함수를 호출할 때 주의사항이 아닌 것은?
[답]
⑤ 인자의 개수와 매개변수의 개수가 같아야 한다.
5. 함수의 리턴형, 함수 이름, 매개변수에 대한 정보만 미리 알려주는 것을 무엇이라고 하는지 모두 고르시오.
[답]
① 함수의 정의
Quiz(p.223)
1. 지역 변수의 사용 범위는?
[답]
③ 지역 변수가 선언된 블록 안
2. 전역 변수를 따로 초기화하지 않았을 때의 값은?
[답]
② 0
3. 전역 변수의 소멸 시점은?
[답]
③ 더 이상 사용되지 않을 때
4. 지역 변수와 전역 변수가 이름이 같을 때 우선적으로 사용되는 것은?
[답]
① 지역 변수
연습문제(p.224~227)
1. 함수의 개념에 대한 설명 중 잘못된 것을 모두 고르시오.
[답]
③ 함수를 호출하려면 함수의 내부 코드를 구체적으로 알아야 한다.
④ 함수를 호출할 때마다 함수의 코드가 복사된다.
2. 다음 중 함수를 사용할 때의장점을 모두 고르시오.
[답]
② 코드의 재사용성이 증가된다.
③ 프로그램을 유지 보수하기 쉽다.
⑤ 기능 위주로 함수를 작성해서 사용하므로 프로그램의 모듈화가 증대된다.
3. 함수에 대한 설명 중 잘못된 것을 모두 고르시오.
[답]
① 함수의 정의는 생략할 수 없다.
⑤ 함수를 호출할 때는 인자가 매개변수보다 부족하면 0을 대신 전달한다.
4. 함수의 리턴형과 매개변수에 대한 설명 중 잘못된 것을 모두 고르시오.
[답]
④ 함수의 처리 결과가 둘 이상일 때는 함수의 리턴값 대신 매개변수를 이용해야 한다.
⑦ 함수의 매개변수는 최대 8개만 사용할 수 있다.
5. 함수의 요건 세 가지를 모두 쓰시오.
[답]
함수의 정의
함수의 호출
함수의 선언
6. 리턴값과 매개변수가 있는 함수의 호출에 대한 설명 중 잘못된 것을 모두 고르시오.
[답]
② 인자와 매개변수의 데이터형이 다르면 매개변수를 인자의 데이터형으로 형 변환한다.
③ 함수의 리턴값을 사용하지 않으면 함수가 호출되지 않는다.
⑥ 함수의 리턴값이 리턴형과 일치하지 않으면 형 변환한다.
⑧ 인자와 매개변수의 순서는 서로 달라도 상관없다.
7. 지역 변수와 전역 변수에 대한 설명 중 잘못된 것을 모두 고르시오.
[답]
⑤ if나 while 블록 안에 선언된 변수는 해당 블록을 빠져나온 다음에도 사용할 수 있다.
8. 가로와 세로의 길이를 매개변수로 전달받아 직사각형의 둘레를 구하는 함수의 원형을 작성하시오. (단, 가로와 세로의 길이, 직사각형의 둘레는 모두 정수이다.)
[답]
int calculateRectangleCircumference(int lengthHorizontal, int lengthVertical) {
int circumference = 2 * (lengthHorizontal + lengthVertical);
return circumference;
}
9. 문자를 매개변수로 전달받아 영문자인지 검사하는 함수의 원형을 작성하시오.
[답]
bool isEnglishCharacter(char ch) {
if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')) {
return true;
} else {
return false;
}
}
10. 제품의 가격과 할인율을 매개변수로 전달받아 할인 가격을 구하는 함수의 원형을 작성하시오.
[답]
int sale(int price, double rate){
return price * rate / 100;
}
11. 정수 2개를 매개변수로 전달받아 두 수의 최대 공약수를 구하는 함수의 원형을 작성하시오.
[답]
int gcd(int a, int b) {
int temp;
while (b != 0) {
temp = b;
b = a % b;
a = temp;
}
return a;
}
12. 다음 코드에서 박스로 표시된 부분을 함수로 정의하시오. 함수의 리턴형, 함수 이름, 매개변수는 직접 정한다. 그 다음, 정의한 함수를 호출하도록 코드를 수정하시오.
[답]
작성 중
13. 다음 프로그램에서 ___에 필요한 코드를 작성하시오.
[답]
int get_seconds(int hours, int minutes, int seconds);
14. 다음 프로그램의 실행 결과를 쓰시오.
[답]
data = 10
프로그래밍과제(p.228~231)
1. 정수와 배수의 개수를 매개변수로 전달받아 정수의 배수를 출력하는 함수를 작성하시오. 이 함수를 이용해서 입력받은 정수의 배수를 20개씩 출력하는 프로그램을 작성하시오. 정수로 0보다 작거나 같은 값이 입력되면 프로그램을 종료한다.
[답]
#include <stdio.h>
void function(int num, int number);
int main(void) {
int num;
int number = 20;
while (1) {
printf("정수? ");
scanf_s("%d", &num);
if (num <= 0) {
break;
}
function(num, number);
}
return 0;
}
void function(int num, int number) {
for (int i = 1; i <= number; i++) {
printf("%d ", num * i);
}
printf("\n");
}
2. 가로와 세로의 길이를 매개변수로 전달받아 직사각형의 둘레를 구하는 함수를 작성하시오. 이 함수를 이용해서 입력받은 가로, 세로의 길이를 직사각형의 둘레를 구하는 프로그램을 작성하시오.
[답]
#include <stdio.h>
int cir(int, int);
int main(void) {
int w;
int h;
printf("가로?");
scanf_s("%d", &w);
printf("세로?");
scanf_s("%d", &h);
printf("직사각형의 둘레: %d",cir(w, h));
}
int cir(int w, int h) {
int cir = 2*(w + h);
return cir;
}
3. 두 점 x,y 좌표를 매개변수로 전달받아 두 점 사이의 직선 거리를 구하는 함수를 작성하시오. 이 함수를 이용해서 입력받은 시작점부터 끝점 사이의 직선 거리를 구하는 프로그램을 작성하시오.
[답]
작성 중
'연습 문제' 카테고리의 다른 글
프로그래밍논리 학습을 위한 순서도 작성 기법 7장 Test 답안 해설 (0) | 2023.08.30 |
---|---|
프로그래밍논리 학습을 위한 순서도 작성 기법 6장 Test 답안 해설 (0) | 2023.08.30 |
프로그래밍논리 학습을 위한 순서도 작성 기법 5장 Test 답안 해설 (2) (0) | 2023.08.15 |
프로그래밍논리 학습을 위한 순서도 작성 기법 5장 Test 답안 해설 (1) (0) | 2023.08.10 |
프로그래밍논리 학습을 위한 순서도 작성 기법 4장 Test 답안 해설 (0) | 2023.07.05 |
댓글