資格部

資格・検定の試験情報、対策方法、問題解説などをご紹介

FE 科目B 令和5年度 問4

 

 次の記述中の   に入れる正しい答えを,解答群の中から選べ。ここで,配列の要素番号は 1 から始まる。

 関数 add は,引数で指定された正の整数 value を大域の整数型の配列 hashArray に格納する。格納できた場合は true を返し,格納できなかった場合は false を返す。ここで,整数 value を hashArray のどの要素に格納すべきかを,関数 calcHash1 及び calcHash2 を利用して決める。
 手続 test は,関数 add を呼び出して,hashArray に正の整数を格納する。手続 test の処理が終了した直後の hashArray の内容は,   である。

〔プログラム〕
大域: 整数型の配列: hashArray
◯論理型: add(整数型: value)
 整数型: i ← calcHash1(value)
 if (hashArray[i] = -1)
  hashArray[i] ← value
  return true
 else
  i ← calcHash2(value)
  if (hashArray[i] = -1)
   hashArray[i] ← value
   return true
  endif
 endif
 return false

◯整数型: calcHash1(整数型: value)
 return (value mod hashArrayの要素数) + 1

◯整数型: calcHash2(整数型: value)
 return ((value + 3) mod hashArrayの要素数) + 1

◯test()
 hashArray ← {5個の -1}
 add(3)
 add(18)
 add(11)

解答群

  1. {-1, 3, -1, 18, 11}
  2. {-1, 11, -1, 3, -1}
  3. {-1, 11, -1, 18, -1}
  4. {-1, 18, -1, 3, 11}
  5. {-1, 18, 11, 3, -1}

解答・解説

解答

 エ

解説

 ー

前問 一覧 次問