本文へスキップ

FUNDAMENTAL INFORMATION TECHNOLOGY ENGINEER

基本情報技術者の問題解説

プログラムの基本要素 標準 fe_b_v89_alg_blank_003

問題

配列 a={3,5,2,8,4} に対して、次の手続 score(a) を実行したときの戻り値はどれか。

○整数型: score(整数型の配列: a)
  整数型: i, s ← 0
  for (i を 1 から aの要素数 まで 1 ずつ増やす)
    if ( (a[i] + i) mod 3 = 0 )
      s ← s + a[i] × i
    else
      s ← s - i
    endif
  endfor
  return s
  1. 26
  2. 32
  3. 46
  4. 50
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲

正解と解説

正解:46

正解:46

各回で見るのは a[i] 単体ではなく、a[i]+i を3で割った余りである。条件が偽のときは a[i] を引くのではなく、添字 i だけを引く点に注意する。

i=4では (8+4) mod 3 = 0 なので 8×4=32 を加え、i=5でも (4+5) mod 3 = 0 なので20を加える。途中の -6 から 26、46 へ大きく増える流れを追うと正解に到達できる。

i判定sの変化
1(3+1) mod3=10-1=-1
2(5+2) mod3=1-1-2=-3
3(2+3) mod3=2-3-3=-6
4(8+4) mod3=0-6+32=26
5(4+5) mod3=026+20=46

この問題について

出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲

公開問題・サンプル問題の形式、擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。

公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。

参考範囲: 2026年度現行科目B・シラバスVer.9.x参考

RELATED

関連問題