2020 年度プログラミング・期末テスト・解答例

ペーパーテスト

  1.  

    以下のプログラムは動作はするがインデンテーションが滅茶苦茶でプログラム の構造を正しく反映していない。(そして、おそらく作成者の意図したように は動かない。)プログラムの構造を明確にするために「プログラミング」の インデンテーションの約束事(別紙)に厳密に従って(特に 5 番目のルー ルに注意)、必要に応じてブレースを挿入し、インデントしなおせ。ただし、 ブレース内の字下げは紙幅の制限のため 3 文字分とせよ。

    もちろん、プログラムの意味(実行結果)が変わらないようにすること。 (つまり、作成者の(よくわからない)意図を忖度するのではなく、 コンパイラーが解釈する通りにインデントすること。)

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

  2. 次のプログラムは、「整数を入力してください。」 と出力してから一つの 整数値を読み込んで、1 からその数までの整数を順に、ただし、 3 で割り切れるか、または 5 で割り切れる数は飛ばして表示するプログラムである。 例えば、20 を入力すると、

    整数を入力して下さい: 20
    1 2 4 7 8 11 13 14 16 17 19 
    

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

  3. 以下のプログラムの空欄 (ⅰ) に、

    • 2 つの double 型の引数 \(a\), \(b\) を受け取り、\(\dfrac{a - b}{a + b}\) を返す関数
      double foo(double a, double b)
      の定義

    を書き、空欄 (ⅱ) に

    • 実引数 x, y での foo の呼出しを表す式

    を書け。

  4. 以下の問に答えよ。
    1. 次のプログラムの出力結果を下の選択肢より 1 つ選べ。

      (A). 0.000000 0.000000 0.000000     (B). 0.000000 0.000000 0.750000    
      (C). 0.000000 0.750000 0.000000     (D). 0.000000 0.750000 0.750000    
      (E). 0.750000 0.000000 0.000000     (F). 0.750000 0.000000 0.750000    
      (G). 0.750000 0.750000 0.000000     (H). 0.750000 0.750000 0.750000    
      • 正解は、(E) である。

    2. 次のプログラムの出力結果を下の選択肢より 1 つ選べ。

      (A). A D     (B). A B D     (C). A C D     (D). A B C D    
      (E). B D     (F). C D     (G). B C D     (H). D    
      • 正解は (C) である。

    3. 次のプログラムの出力結果を下の選択肢より 1 つ選べ。

      (A). 8 4 2 1!0     (B). 8 4 2!0     (C). 8 4 2 1!1     (D). 8 4 2!1    
      • 正解は (A) である。

    4. 次のプログラムの出力結果を下の選択肢より 1 つ選べ。

      (A).
      (1,1) (1,3) (1,9) 
      (2,1) (2,3) (2,9) 
      (4,1) (4,3) (4,9) 
      (8,1) (8,3) (8,9) 
      
      (B).
      (1,1) (1,2) (1,4) (1,8) 
      (3,1) (3,2) (3,4) (3,8) 
      (9,1) (9,2) (9,4) (9,8) 
      
      (C).
      (1,1) (3,1) (9,1) 
      (1,2) (3,2) (9,2) 
      (1,4) (3,4) (9,4) 
      (1,8) (3,8) (9,8)   
      
      (D).
      (1,1) (2,1) (4,1) (8,1) 
      (1,3) (2,3) (4,3) (8,3) 
      (1,9) (2,9) (4,9) (8,9) 
      
      • 正解は (A) である。

    5. 次のプログラムの出力結果を下の選択肢より 1 つ選べ。

      (A).
      5
      54
      543
      5432
      54321
      
      (B).
      5
      45
      345
      2345
      12345
      
      (C).
      54321
      5432
      543
      54
      5
      
      (D).
      54321
      4321
      321
      21
      1  
      
      (E).
      1
      12
      123
      1234
      12345
      
      (F).
      1
      21
      321
      4321
      54321
      
      (G).
      12345
      1234
      123
      12
      1
      
      (H).
      12345
      2345
      345
      45
      5
      
      • 正解は (F) である。

    6. 次のプログラムの出力結果を下の選択肢より 1 つ選べ。

      (A).(0,0),(0,1),(0,2),(0,3),(1,0),(1,1),(1,2),(1,3),(2,0),(2,1),(2,2),(2,3),
      (B).(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(3,0),(3,1),(3,2),
      (C).(0,0),(0,1),(0,3),(1,0),(1,1),(1,3),(3,0),(3,1),(3,3),
      (D).(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),
      • 正解は (B) である。

    7. (7) 次のプログラムの出力結果を下の選択肢より 1 つ選べ。

      (A). 2 4 2 4     (B). 2 4 4 2     (C). 4 2 2 4     (D). 4 2 4 2    
      • 正解は (C) である。

    8. 次のプログラムの出力結果を下の選択肢より 1 つ選べ。

      (A). 6 9 1 9 2 7 8 9 3 9 4 9 10     (B). 6 9 1 9 2 7 6 9 3 9 4 7 5    
      (C). 6 9 7 9 8 9 6 9 7 9 8 9 10     (D). 6 9 1 9 2 10 6 9 3 9 4 10 5    
      (E). 6 9 1 9 2 10 11 9 3 9 4 10 11     (F). 6 9 10 9 10 11 6 9 10 9 10 11 12
      • 正解は (B) である。

    9. 次のプログラムの出力結果を下の選択肢より 1 つ選べ。

      (A). (1,8,6)(2,7,6)(3,6,6)(4,5,6)(5,4,6)(6,3,6)
      (B). (1,8,6)(1,8,6)(2,7,6)(2,7,6)(3,6,6)(3,6,6)
      (C). (1,8,6)(2,8,6)(3,7,7)(4,7,7)(5,6,8)(6,6,8)
      (D). (1,8,6)(2,8,6)(3,7,6)(4,7,6)(5,6,6)(6,6,6)
      (E). (1,8,6)(2,8,6)(3,8,6)(4,8,6)(5,8,6)(6,8,6)
      (F). (1,8,6)(2,7,6)(3,6,7)(4,5,7)(5,4,8)(6,3,8)
      • 正解は (D) である。

    10. 次のプログラムの出力結果を下の選択肢より 1 つ選べ。

      (A). 1 2 1 4 1 2 1 6 1 2 1 4 1 2 1     (B). 2 1 4 1 3 2 1 6 2 1 4 1 3 2 1    
      (C). 2 1 4 2 1 6 2 1 4 2 1     (D). 1 2 3 1 4 1 2 6 1 2 3 1 4 1 2     
      (E). 1 3 1 2 1 6 1 2 1 4 1 3 1 2 1     (F). 1 2 4 1 2 6 1 2 4 1 2    
      • 正解は (D) である。

オンラインテスト


Koji Kagawa