프로그래밍 실습2 수행평가

2학년 (   )반  (   )번  이름 : (        )

1.. C언어로 성적을 처리하는 프로그램을 작성하려고 한다. 다음에 제시한 표를 보고 빈칸에 해당하는 코드를 작성하시오. [총10점, 각 2점]

이름	과목 A	과목 B	과목 C	총점(sum)	평균(avg)
홍길동	90	85	92	267	소숫점 2자리까지 출력
실행예시	과목 A : 90 //입력값 과목 B : 85 //입력값 과목 C : 92 //입력값 총점=267, 평균=89.00
실행코드	#include <stdio.h> int main( ){ int 과목A, 과목B, 과목C, sum; float avg; printf("과목 A : "); scanf("%d", &과목A); printf("과목 B : "); scanf("%d", &과목B); printf("과목 C : "); scanf("%d", &과목C); sum= 과목A + 과목B + 과목C; avg= (float)sum/3; printf("총점=%d, 평균=%.2f\n", sum, avg); return 0; }
문제유형	틀린 곳 찾기 (5군데 중 5군데 출제)

3. 다음은 프로그램을 실행한 결과값을 적으시오. [5점]

실행코드
#include <stdio.h> int main( ) { int a, b; int m; a=4; b=12; m=(a*b)/10; printf("%d", m); return 0; }
문제유형	출력값 산출문제 (a와 b, m에 들어가는 연산자와 숫자 변형)

4.  C언어로 성적을 처리하는 프로그램을 작성하려고 한다. 다음 실행결과를 나오기 위해 고쳐야 하는 곳을 3군데 찾으시오. [9점, 틀린곳당 각3점]

프로그램 소스코드	실행결과(정답)
#include <stdio.h> int main( ) { int a b; char ch; a=5; b=7; ch=’p’; printf("테스트\n“); printf("%f\n", 3.14); printf("%c\n", ch); printf("합=%d", a+b); return 0; }	테스트 3.140000 p 합=12
	주의!
	문자 한개는 ‘ ’ (홑따옴표) 문자열(여러개)는 “ ” (쌍따옴표)
	문제유형
	틀린 곳 찾기 (12군데 중 3군데 랜덤 출제)

5. 다음 프로그램은 두 수를 입력받아 합을 나타내는 프로그래밍이다. 빈칸에 들어갈 것을 적으시오.

[10점, 빈칸당 각2점]

프로그램 소스코드	실행값
#include <stdio.h> int main( ) { int num1; int num2; int sum; scanf("%d %d", &num1, &num2); sum = num1 + num2; printf("%d", sum); return 0; }	5(입력값) 10(입력값) 15(출력값)
문제 유형	빈칸 채우기 5개

CHAPTER 2. 입출력함수(P.88-89)

1. 원화 100,000원을 달러로 계산하는 프로그램을 실행했을 때 출력값 중 빈칸을 적으시오. [5점]

조건

정답

출력값

	달러	원화	환율
변수명	dol	won	rate
자료형	float	int	float

원화 : 100,000원

환율 : 1122.44

#include <stdio.h>

int main( )

{

float dol, rate ;

int won;

printf("won: ");

scanf("%d", &won);

printf("rate: ");

scanf("%f", &rate);

dol= won / rate;

printf("달러=%.2f", dol);

return 0;

}

won : 100,000(입력값)

rate : 1122.44

달러 = ???

문제 유형

출력값 산출문제

(원화와 환율 숫자 변형)

3. C언어를 사용한 사칙연산 결과를 출력하는 프로그램이다. 입력값과 출력값을 보고 프로그램 소스 코드를 완성하시오. [9점, 틀린곳당 각3점]

정답	입력값
#include <stdio.h> int main( ) { int a, b; scanf("%d", &a); scanf("%d", &b); printf("%d+%d=%d\n", a, b, a+b); printf("%d-%d=%d\n", a, b, a-b); printf("%d*%d=%d\n", a, b, a*b); printf("%d/%d=%d", a, b, a/b); return 0; }	6 2
	출력값
	6 + 2 =8 6 - 2 =4 6 * 2 =12 6 / 2 =3
문제유형	틀린 곳 고치기(위의 밑줄친 17군데 중 3군데 랜덤하게 출제)

4. 다음 알고리즘을 코딩하는 프로그램을 C언어로 완성하시오. [5점]

알고리즘	정답
단계 1 : 정수 x와 y를 입력받는다. 단계 2 : z = x / y 단계 3 : 계산된 z의 값의 소수 첫째 자리의 수를 변수 a, 둘째 자리의 수를 변수 b, 셋째 자리의 수를 변수 c에 저장한다. 단계 4 : a할 b푼 c리를 출력한다. (3.141592.. 경우 1할 4푼 1리라고 한다.) 단계 5 : 종료	#include <stdio.h> int main( ) { int a, b, c, x, y; float z; scanf(“%d”, &x); scanf(“%d”, &y); z= (float) x / y; a=(int) (z * 10) %10; b=(int) (z * 100) % 10; c=(int) (z * 1000) % 10; printf("%d할 %d푼 %d리", a, b, c); return 0; }
입력값 예시)	출력값 예시)
13 7	8할 5푼 7리
문제유형	입력받은 수에 따른 출력값 산출문제 (입력값은 랜덤하게 출제)

CHAPTER 3. 연산자(P.108-109)

1. 다음 순서도는 입사 성적을 판단하여 입사 여부를 결정하는 과정을 나타내고 있다. “합격”을 출력하기 위한 조건의 논리식을 작성하시오. [5점]

의사코드	조건
	A : 특별채용 대상(참 또는 거짓) B : 입사 시험 점수(0 ~ 100) C : 면접 점수(0 ~ 100)
	정답
	순서도에서 합격하기 위한 조건은 첫째, 특별 채용 대상(A)가 참이거나, 입사 시험 점수(B)가 90보다 크고 면접 점수(C)가 50보다 커야 한다. 따라서 ‘합격’을 출력하기 위한 논리식은 A || (B>90 && C>50) 이다.
	문제 유형	hint!
	빈칸 채우기	A,B,C,||,&&,90,50,>,( ) 기호를 활용하여 조합하기

3. 다음 의사코드를 C 언어로 작성하여 실행하였을 때 16이 출력되도록 프로그래밍하려고 한다. 빈칸에 들어갈 내용을 작성하시오.

[10점, 빈칸당 각2점]

의사코드

정답

단계 1 : 변수 a=1, sum=0

단계 2 : sum=sum+a

단계 3 : a>=7이면 단계 6으로 이동

단계 4 : a=a+2

단계 5 : 단계 2로 이동

단계 6 : sum 출력

단계 7 : 종료

#include <stdio.h>

int main()

{

int a,  sum;

a=1, sum=0;

while(a<=7)

{

sum = sum + a;

a = a + 2;

}

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

return 0; }

과정

반복	초기값	1	2	3	4
sum	0	0+1	0+1+3	0+1+3+5	0+1+3+5+7
a	1	3	5	7	9

문제 유형

빈칸 채우기 (7군데중 5군데)

5. 다음 순서도는 콩나물 자동 재배기의 작동을 나타낸 것이다. ㉠을 순서도의 빈칸 (가)에 조건식으로 구현하는 프로그램을 작성하시오. [5점]

[콩나물 자동 재배기]	순서도
콩나물 자동 재배기를 통해 신선한 콩나물을 재배할 수 있습니다. 물은 자동으로 공급됩니다. ㉠매 24시간마다 배양액을 공급하여 빠르게 성장하도록 합니다. 시간은 변수 T로 지정합니다.
정답
배양액을 24시간마다 공급: 시간(T)을 24로 나눈 나머지가 0일 경우마다 배양액을 공급. 따라서 ㉠의 프로그램은 (T%24)==0
문제 유형
빈칸 채우기 (T%24)==0공급시간은 변경합니다.

CHAPTER 4. 제어문(P.136-137)

1. C 언어를 사용하여 학생의 성적을 입력받아서 평어(A,B,C,D,E)를 다음 조건에 맞게 출력하는 프로그래밍을 작성하시오. [18점, 빈칸당 각2점]

조건	정답
입력점수가 90점 이상이면 ‘A’를 출력 입력점수가 90점 미만 80점 이상이면 ‘B’를 출력 입력점수가 80점 미만 70점 이상이면 ‘C’를 출력 입력점수가 70점 미만 60점 이상이면 ‘D’를 출력 입력점수가 60점 미만이면 ‘E’를 출력	#include <stdio.h> int main(){ int a; scanf(“%d”, &a); if(a>=90) printf(“A\n”); else if(a>=80) printf(“B\n”); else if(a>=70) printf(“C\n”); else if(a>=60) printf(“D\n”); else printf(“E\n”); return 0; }
문제유형
빈칸 채우기 (9군데중 9군데)

5. 정수를 입력받아 양수, 음수를 판별하는 프로그래밍을 작성하시오. (입력받을 변수명:a)

[9점, 결과값당 각3점]

실행화면	정답
5 //입력값 양수 //출력값 -2 //입력값 음수 //출력값 0 //입력값 0 //출력값	#include <stdio.h> int main(){ int a; scanf(“%d”, &a); if(a>0) printf(“양수”); else if(a<0) printf(“음수”); else printf(“0”); }
문제유형
코드를 보고 입력값에 따른 출력값을 적으시오. 입력값은 랜덤하게 나옴. 결과값은 양수, 음수, 0 3개중에 1개임. 총3문제 출제