코딩 테스트 예상 문제 - 학생 성적 및 보너스 메시지 출력

  • 2 minutes to read

문제

다음 C 프로그램이 실행되었을 때의 동작을 설명하고, 출력 결과를 예측하시오.

소스 코드 파일명: student_grades_and_messages.c

#include <stdio.h>

int main() {
    int scores[] = { 92, 55, 78, 84, 63 };
    char grades[5];
    char* messages[] = { "Superb!", "Just passed", "Well done", "Very good", "Needs more effort" };
    for (int i = 0; i < 5; i++) {
        if (scores[i] >= 85) {
            grades[i] = 'A';
        } else if (scores[i] >= 70) {
            grades[i] = 'B';
        } else if (scores[i] >= 60) {
            grades[i] = 'C';
        } else if (scores[i] >= 50) {
            grades[i] = 'D';
        } else {
            grades[i] = 'F';
        }
    }

    for (int i = 0; i < 5; i++) {
        printf("%d. Score: %d, Grade: %c, Remark: %s\n", i + 1, scores[i], grades[i], messages[i]);
    }
    return 0;
}

입력 예시

이 프로그램은 사용자로부터 입력을 받지 않습니다.

출력 예시

1. Score: 92, Grade: A, Remark: Superb!
2. Score: 55, Grade: D, Remark: Just passed
3. Score: 78, Grade: B, Remark: Well done
4. Score: 84, Grade: B, Remark: Very good
5. Score: 63, Grade: C, Remark: Needs more effort

해설

이 프로그램은 학생들의 점수를 배열로 저장하고, 각 점수에 따라 학생의 등급을 결정합니다. 또한 각 점수에 따라 특정 메시지를 출력합니다.

  1. int scores[] = {92, 55, 78, 84, 63};는 각 학생의 점수를 배열로 선언하고 초기화합니다.
  2. char grades[5];는 각 학생의 등급을 저장할 문자 배열을 선언합니다.
  3. char* messages[] = {"Superb!", "Just passed", "Well done", "Very good", "Needs more effort"};는 각 점수 범위에 해당하는 메시지를 저장합니다.
  4. 첫 번째 for 루프에서 점수에 따라 등급을 결정합니다.
    • 85점 이상은 'A', 70점 이상은 'B', 60점 이상은 'C', 50점 이상은 'D', 그 외는 'F'.
  5. 두 번째 for 루프에서 각 학생의 점수, 등급, 메시지를 출력합니다.

이 프로그램은 조건문과 반복문을 통해 점수에 따른 등급 결정과 개별 메시지 출력을 보여줍니다, 각 점수 범위에 맞는 피드백을 제공하여 학생들에게 명확한 성과 평가를 제공합니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com