2025년 10월 15일 수요일

기술 임용 고사 C언어 - 모의고사 2회

기술 임용 고사 C언어 - 모의고사 2회

출제 범위 : 예비 교사를 위한 기술 임용 C언어 1-7장

문제 1 (2024년 기출 변형)

아래 CODE는 직원의 근무 평점과 근속 연수에 따라 특별 보너스 지급 여부를 결정하는 프로그램이다. <조건>을 만족할 경우에만 "특별 보너스 대상입니다."가 출력된다. RESULT 실행화면을 참조하여 ㉠, ㉡, ㉢에 들어갈 코드를 순서대로 작성하시오.

⚠️ <조건>
  • 근무 평점이 90점 이상이고, 근속 연수가 10년 이상이어야 보너스를 지급한다.
  • 또는, 근무 평점이 95점 이상이면 근속 연수와 관계없이 보너스를 지급한다.

💻 CODE

#include <stdio.h>
int main(void){
    int score, years;
    printf("근무 평점을 입력하시오: ");
    scanf("%d", &score);
    printf("근속 연수를 입력하시오: ");
    scanf("%d", );

    if()
        printf("특별 보너스 대상입니다.\n");
    
        printf("특별 보너스 대상이 아닙니다.\n");

    return 0;
}

📋 RESULT

근무 평점을 입력하시오: 92 근속 연수를 입력하시오: 12 특별 보너스 대상입니다.
📚 예비 교사를 위한 기술 임용 C언어 교재
  • Chapter 04. 변수
    • p. 70: scanf 함수
  • Chapter 05. 연산자
    • p. 86: 비교 연산자
    • p. 88: 논리 연산자
  • Chapter 06. 조건문
    • p. 110: if-else

문제 2 (2022년 기출 변형)

아래는 '과잉수(Abundant number)'에 대한 정의와 이를 판별하는 C언어 프로그램 CODE이다. '과잉수'란 "자기 자신을 제외한 모든 약수의 합이 자기 자신보다 큰 수"를 의미한다. 예를 들어 12의 자신을 제외한 약수는 1, 2, 3, 4, 6이고 이 약수들의 합은 1+2+3+4+6=16이다. 약수들의 합(16)이 원래의 수(12)보다 크므로 12는 과잉수이다. <작성방법>에 따라 순서대로 서술하시오.

💻 CODE

#include <stdio.h>
int main(void) {
    int i, num, sum = 0;
    printf("양의 정수를 입력하시오: ");
    scanf("%d", &num);

    for (i = 1; i < num; i++) {
        if () {
            ;
        }
    }

    if ()
        printf("%d는 과잉수입니다.\n", num);
    else
        printf("%d는 과잉수가 아닙니다.\n", num);

    return 0;
}
✍️ <작성 방법>
  1. ㉠에 들어갈 조건식을 작성하시오.
  2. ㉡에 들어갈 코드를 작성하시오.
  3. ㉢에 들어갈 조건식을 작성하시오.
📚 예비 교사를 위한 기술 임용 C언어 교재
  • Chapter 05. 연산자
    • p. 77: 나머지 연산자 %
    • p. 80: 복합 대입 연산자 +=
  • Chapter 06. 조건문
    • p. 108: if
  • Chapter 07. 반복문
    • p. 126: for

문제 3 (2019년 기출 변형)

아래 CODE는 표준입력장치로부터 양의 정수 1개를 입력받아, 그 수의 계승(Factorial) 값을 구하는 프로그램이다. RESULT 실행화면을 참조하여 ㉠, ㉡, ㉢에 들어갈 코드를 순서대로 작성하시오. (단, 계승 값은 int 자료형의 범위를 넘지 않는다고 가정한다.)

💻 CODE

#include <stdio.h>
int main(void) {
    int i, n;
    int fact = ;
    printf("계승을 계산할 양의 정수를 입력하시오: ");
    scanf("%d", &n);

    for (i = 1; ; i++) {
        ;
    }

    printf("%d의 계승(Factorial) 값은 %d입니다.\n", n, fact);
    return 0;
}

📋 RESULT

계승을 계산할 양의 정수를 입력하시오: 5 5의 계승(Factorial) 값은 120입니다.
📚 예비 교사를 위한 기술 임용 C언어 교재
  • Chapter 04. 변수
    • p. 62: 변수 초기화
    • p. 70: scanf 함수
  • Chapter 05. 연산자
    • p. 80: 복합 대입 연산자 *=
  • Chapter 07. 반복문
    • p. 126: for
    • p. 129: for문을 이용한 합계 계산 응용

문제 4 (2020년 기출 변형)

아래 CODE는 1부터 사용자가 입력한 양의 정수까지의 숫자 중, 3과 5의 공배수들의 합을 구하는 프로그램이다. RESULT 실행화면을 참조하여 ㉠, ㉡, ㉢에 들어갈 코드를 순서대로 작성하시오.

💻 CODE

#include <stdio.h>
int main(void) {
    int i = 1, j = 0, sum = 0;
    printf("범위를 지정할 양의 정수를 입력하시오: ");
    scanf("%d", );

    while (i <= j) {
        if () {
            sum += i;
        }
        ;
    }

    printf("1부터 %d까지 3과 5의 공배수의 합은 %d입니다.\n", j, sum);
    return 0;
}

📋 RESULT

범위를 지정할 양의 정수를 입력하시오: 30 1부터 30까지 3과 5의 공배수의 합은 45입니다.
📚 예비 교사를 위한 기술 임용 C언어 교재
  • Chapter 05. 연산자
    • p. 77: 나머지 연산자 %
    • p. 88: 논리 연산자 &&
  • Chapter 06. 조건문
    • p. 108: if
  • Chapter 07. 반복문
    • p. 132: while

문제 5 (2021년 기출 변형)

아래 CODE는 1부터 100 사이의 임의의 숫자를 맞추는 게임 프로그램이다. 사용자가 숫자를 계속 입력하다가 77을 입력하면 게임이 종료된다. RESULT 실행화면과 <조건>을 참조하여 ㉠, ㉡, ㉢에 들어갈 코드를 순서대로 작성하시오.

⚠️ <조건>
  • 사용자가 숫자를 입력할 때마다 정답인지 아닌지 판별한다.
  • 숫자 77을 입력하면 "정답입니다!"를 출력하고 프로그램을 종료한다.

💻 CODE

#include <stdio.h>
int main(void) {
    int guess = 0;
    int answer = 77;

    while () {
        printf("숫자를 입력하세요 (1~100): ");
        scanf("%d", &guess);

        if (guess == answer) {
            printf("정답입니다!\n");
            ;
        } else {
            ;
        }
    }
    printf("게임을 종료합니다.\n");
    return 0;
}

📋 RESULT

숫자를 입력하세요 (1~100): 50 틀렸습니다. 다시 시도하세요. 숫자를 입력하세요 (1~100): 80 틀렸습니다. 다시 시도하세요. 숫자를 입력하세요 (1~100): 77 정답입니다! 게임을 종료합니다.
📚 예비 교사를 위한 기술 임용 C언어 교재
  • Chapter 06. 조건문
    • p. 110: if-else
    • p. 120: break 문의 역할
  • Chapter 07. 반복문
    • p. 132: while
    • p. 142: 반복 흐름 제어

댓글 없음:

댓글 쓰기