• 年度別
  • 分野別
  • キーワード
  • 検索
  • 成績を見る
  • 掲示板
  • サイト情報
  • ITパスポート試験
    令和4年 第96問


    問96

    関数calcXと関数calcYは、引数inDataを用いて計算を行い、その結果を戻り値とする。関数calcXをcalcX(1)として呼び出すと、関数calcXの変数numの値が、1 → 3 → 7 → 13 と変化し、戻り値は13となった。関数calcYをcalcY(1)として呼び出すと、関数calcYの変数numの値が、1 → 5 → 13 → 25 と変化し、戻り値は25となった。プログラム中のa, bに入れる字句の適切な組合せはどれか。

    〔プログラム 1〕
    〇整数型:calcX(整数型:inData)
     整数型:num, i
     num ← inData
     for(iを1から3まで1ずつ増やす)
      num ←[ a ]
     endfor
     return num

    〔プログラム 2〕
    〇整数型:calcY(整数型:inData)
     整数型:num, i
     num ← inData
     for([ b ])
      num ←[ a ]
     endfor
     return num

  • 【a】2 × num + i 【b】iを1から7まで3ずつ増やす
  • 【a】2 × num + i 【b】iを2から6まで2ずつ増やす
  • 【a】num + 2 × i 【b】iを1から7まで3ずつ増やす
  • 【a】num + 2 × i 【b】iを2から6まで2ずつ増やす


    (令和4年 ITパスポート試験 第96問 テクノロジ系/アルゴリズムとプログラミング)

    解説

    (エ)【a】num + 2 × i 【b】iを2から6まで2ずつ増やす
    この問題の正解率:28.6%(やや低い)

    空欄aについて。

    [2×num+i]の場合
    i=1だと、2×1+1=3 → num
    i=2だと、2×3+2=8 → num
    i=3だと、2×8+3=19 → num

    [num+2×i]の場合
    i=1だと、1+2×1=3 → num
    i=2だと、3+2×2=7 → num
    i=3だと、7+2×3=13 → num

    したがって、空欄aは「num + 2 × i」が適切ということになります。

    空欄bについて。

    [iを1から7まで3ずつ増やす]の場合
    i=1だと、1+2×1=3 → num
    i=4だと、3+2×4=11 → num
    i=7だと、11+2×7=25 → num

    [iを2から6まで2ずつ増やす]の場合
    i=2だと、1+2×2=5 → num
    i=4だと、5+2×4=13 → num
    i=6だと、13+2×6=25 → num


    したがって、空欄bは「iを2から6まで2ずつ増やす」が適切です。


    プログラムの問題が苦手な人は、試験では後回しにして別の問題を優先した方が良いかもしれません。



    選択中のリスト
  • NDA過去問一覧