정보처리기사 2017년도 C언어 기출문제

업데이트:

2017년 1회

#include <stdio.h>

main(){
	int num[10];				// 정수 10개의 자리를 가진 배열 num을 정의
	int min=9999;
	int i;
	
	for(i=0; i<10; i++){
		scanf("%d", &num[i]);		// 배열 num에 정수를 입력
	}
	
	for(i=0; i<10; i++){
		if(min>num[i]){			// 배열 num 안의 정수가 min의 값보다 작으면,
			min=num[i];		// min의 값을 그 정수값으로 교환. 이를 전체 배열의 수로 반복하면 min값은 배열 내 정수 중 가장 작은 값이 남게 된다
		}
	}
	printf("가장 작은 값은 %d이다", min);	// 두 번째 for문을 통해 도출된 배열 num 내의 최소값을 문자열과 함께 출려
}

입력된 10개의 값 중 최소값을 출력

2017년 2회

#include <stdio.h>

int isprime(int number){
	int i;
	for(i=2; i<number; i++)
		if(number%i == 0)		// number를 i값으로 나누어서 그 나머지가 0인 경우
			return 0;		// 소수가 될 수 없으므로 0을 반환한다(기억하지 않음)
		return 1;			// 소수이므로 1을 반환한다(기억해둠)
}

int main(){
	int number=100, cnt=0, i;
	for(i=2; i<number; i++)
		cnt = cnt + isprime(i);					// 변수 cnt에 위의 isprime 클래스에서 1이 반환된 숫자의 개수를 더해준다
	printf("%d를 넘지 않는 소수는 %d개입니다.\n", number, cnt);		// 문자열과 함께 해당 숫자와, 그 숫자를 넘지 않는 소수의 개수를 출력
	return 0;
}

100를 넘지 않는 소수는 25개입니다.

2017년 3회

#include <stdio.h>

int res10(){
	return 4;				// 5) res10()=4
}

int res30(){
	return 30 + res10();			// 4) res30()=30+res10() -> 6) 30+4=34
}

int res200(){
	return 200 + res30();			// 3) res200=200+res30() -> 7) 200+34=234
}

int main(){					// 1) 가장 먼저 읽는 클래스는 main()
	int result;
	result=res200();			// 2) res200()값을 result에 대입시킨다 -> 8) res200()=234
	printf("%d\n", result);			// 9) 234를 출력
}

234

2017년 3회

#include <stdio.h>

int power(int data, int exp){
	int i, result=1;
	for(i=0; i<exp; i++)
		result = result * data;		// 초기값이 1로 설정되어있는 변수 result에 data를 exp회만큼 곱해준다(제곱값을 구하는 클래스)
	return result;
}

int main(){
	printf("%d\n", power(2,10));		// 2를 10회만큼 곱해주었을 때의 값 1024를 출력
	return 0;
}

1024