プログラミング・中間テスト過去問(2016 年度)・解答例

全体

ペーパーテスト

  1. 問1:

    次のプログラムは一つの実数値を読み込んで、 それを 3 倍した値と 切り捨てた値を表示するプログラムである。 例えば、2.7 を入力すると、

        それを 3 倍した値は 8.100000 です。
        それを切り捨てた値は 2 です。
    

    と出力する。 空欄を埋めて、プログラムを完成せよ。

    int main(void) {
        double x;
        printf("実数を入力して下さい: ");
        scanf("%lf  ", &x   );
        printf("それを 3 倍した値は %f    です。\n",   x * 3  );
        printf("それを切り捨てた値は %d    です。\n",   (int)x);
        return 0;
    }
    
  2. 問2:

    次のプログラムの出力を書け。

    int main(void) {
        int k = 60, a = 1;
    
        if (k % 2 == 0) {
            a *= 2;
        }
        else if (k % 3 == 0) {
            a *= 3;
        } 
        if (k % 5 == 0) {
            a *= 5;
        }
        printf("%d\n", a);
        return 0;
    }
    
  3. 問3:

    以下の空欄を埋めて、 初項1、公比3の等比数列 \(1, 3, 9, 27, \ldots\) の1000未満の部分を出力する プログラムを完成させよ。

    int main(void) {
        int n;
    
        for (                         ) {
            printf("%d ", n);
        }
    
        printf("\n");
        return 0;
    }
    
  4. 問4:

    以下のプログラムは、整数の組のデータを (i,j) という形式で出力する。 このプログラムの出力を書け。ただし、 空白は明示的に空白記号(␣)を、 改行は明示的に矢印(↓)を書くこと。
    int main(void) {
        int i, j, n = 3;
        for (i = n; i > 0; i--) {
            for (j = 1; j <= i; j++) {
                printf("(%d,%d) ", i, j);
            }
            printf("\n");
        }
        return 0;
    }
    

オンラインテスト


Koji Kagawa