2023 年度「プログラミング」中間テスト・解答例

全体

ペーパーテスト

  1. 以下のプログラムは動作はするがインデンテーションが滅茶苦茶でプログラム の構造を正しく反映していない。(そして、おそらく作成者の意図したように は動かない。)プログラムの構造を明確にするために if 文、if 〜 else 文、for 文、while 文は「インデンテーションの約束事」(別紙)の 5.「鉄の掟」に従って、 必ずブレースを使用するように(ただしプログラムの意味(実行結果)が変わらないように)書き換え、さらに 「インデンテーションの約束事」の 0. 〜 4. に従ってインデントしなおせ。

    解答は、最初の #include <stdio.h> は省略せよ。 また、解答欄のスペースの都合で、(最後は別として)空行は入れずに記入せよ。

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

    実数を入力して下さい: 4.256
    3.14 倍した値は 13.363840 です。
    100 倍して切り捨てた値は 425 です。
    

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

    (ⅴ), (ⅵ) は %.0fd * 100 でよいと思うかもしれないが、 これは切り捨てにはならず、偶数丸めになる(ことが多い)。(C 言語の仕様では明確に定まっていない。)

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

  4. 以下の空欄を埋めて、 96 以上 200 未満の 4 の倍数をすべて昇順 (つまり、96, 100, 104, …, の順)に出力するプログラムを完成させよ。

  5. 以下のプログラムは、整数の組のデータを (i,j) という形式で出力する。 このプログラムの出力を書け。ただし、この問題の解答では、 空白は明示的に空白記号()を、 改行は矢印()を書くこと。

オンラインテスト


Koji Kagawa