期末テスト(ペーパー)の評価

問題

正解

Ⅰ. (ⅰ).  %d    (ⅱ).  &n    (ⅲ).  %f    (ⅳ).  n*7/5.0   など(別解あり)
Ⅱ.  1
Ⅲ.  i=5; i<50; i+=5
Ⅳ. (ⅰ). C (ⅱ). B (ⅲ). D (ⅳ). A (ⅴ). D (ⅵ). C (ⅶ). D (ⅷ). B (ⅸ). A

平均点 27.08点(満点 32点)

得点分布

32*******
30〜31*********************
28〜29*******************
26〜27********
24〜25*****
22〜23****
20〜21****
〜19*****

期末テスト(オンライン)の評価

問題

平均点 3.64点(満点 8点)

得点分布

8****************
7 
6***********
5 
4*********
3*
2****************
1*
0*******************

正答例

問1

#include <stdio.h>

int main(void) {
    int k, n=1;
    for (k=1; k<10; k++) {
        if (k%3!=0) {
            n*=k;
        }
    }
    printf("%d ", n);
    return 0;
}

以下はコメント。

問2

#include <stdio.h>

int main(void) {
    int i, j, k=0, w, h;

    printf("横幅:"); scanf("%d", &w);
    printf("高さ:"); scanf("%d", &h);

    for (i=0; i<h; i++) {
        for (j=0; j<w; j++) {  
            printf("%d", k++ % 10);
        } 
        printf("\n");
    }

    return 0;
}

問3

#include <stdio.h>

int multiplicity(int m, int n) {
    int c = 0;

    while (n%m == 0) {
        n /= m;
        c++;
    }

    return c;
}

int main(void) {
    printf("multiplicity(2, 3) = %d\n", multiplicity(2, 3));
    printf("multiplicity(2, 12) = %d\n", multiplicity(2, 12));
    printf("multiplicity(2, 200) = %d\n", multiplicity(2, 200));
    printf("multiplicity(2, 1023) = %d\n", multiplicity(2, 1023));
    printf("multiplicity(3, 162) = %d\n", multiplicity(3, 162));
    printf("multiplicity(5, 1000) = %d\n", multiplicity(5, 1000));
    printf("multiplicity(3, 999999999) = %d\n", multiplicity(3, 999999999));

    return 0;
}

問4

#include <stdio.h>

int increasing(int vc[], int no) {
    int i;
    for (i=1; i<no; i++) {
        if (vc[i]<=vc[i-1]) {
            return 0; 
        }  
    }
    return 1;
}

int arr1[] = {2, 3, 5, 7, 11, 13};
int arr2[] = {2, 3, 7, 5, 11, 13};
int arr3[] = {1, 2, 3, 4, 5, 6, 7, 1};
int arr4[] = {1, 2, 3, 4, 5, 6, 7, 7};
int arr5[] = {1, 2, 3, 4, 5, 6, 7, 9};

int main(void) {
    if (increasing(arr1, sizeof(arr1)/sizeof(int))) {
        printf("arr1は単調増加です。\n");
    } else {
        printf("arr1は単調増加ではありません。\n");
    }
    if (increasing(arr2, sizeof(arr2)/sizeof(int))) {
        printf("arr2は単調増加です。\n");
    } else {
        printf("arr2は単調増加ではありません。\n");
    }
    if (increasing(arr3, sizeof(arr3)/sizeof(int))) {
        printf("arr3は単調増加です。\n");
    } else {
        printf("arr3は単調増加ではありません。\n");
    }
    if (increasing(arr4, sizeof(arr4)/sizeof(int))) {
        printf("arr4は単調増加です。\n");
    } else {
        printf("arr4は単調増加ではありません。\n");
    }
    if (increasing(arr5, sizeof(arr5)/sizeof(int))) {
        printf("arr5は単調増加です。\n");
    } else {
        printf("arr5は単調増加ではありません。\n");
    }

    return 0;
}

戻る


Koji Kagawa(kagawa@eng.〜)