HOME»サンプル問題»[科目B]問14

サンプル問題 [科目B]問14

問14

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

 要素数が1以上で,昇順に整列済みの配列を基に,配列を特徴づける五つの値を返すプログラムである。
 関数 summarize を summarize({0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1}) として呼び出すと,戻り値は である。

〔プログラム〕
b14_1.gif/image-size:478×253
  • {0.1, 0.3, 0.5, 0.7, 1}
  • {0.1, 0.3, 0.5, 0.8, 1}
  • {0.1, 0.3, 0.6, 0.7, 1}
  • {0.1, 0.3, 0.6, 0.8, 1}
  • {0.1, 0.4, 0.5, 0.7, 1}
  • {0.1, 0.4, 0.5, 0.8, 1}
  • {0.1, 0.4, 0.6, 0.7, 1}
  • {0.1, 0.4, 0.6, 0.8, 1}

分類

アルゴリズムとプログラミング » プログラミングの諸分野への適用

正解

解説

関数 summarize では、for文を使って配列 p の要素ひとつずつに対して、サブルーチンである関数 findRank を呼出し、その結果を戻り値の配列である rankData に追加しています。

配列 p は{0, 0.25, 0.5, 0.75, 1}なので、rankData には、以下の5つの結果が格納されることになります。ここで、sortedDataの要素数 は10なので、関数 findRank 内で使われている"sortedDataの要素数-1"は9となります。
findRank(sortedData, 0)
i ← (0 × 9) = 0 を切り上げた値 ⇒ 0
return sortedData[1] = 0.1
findRank(sortedData, 0.25)
i ← (0.25 × 9) = 2.25を切り上げた値 ⇒ 3
return sortedData[4] = 0.4
findRank(sortedData, 0.5)
i ← (0.5 × 9) = 4.5を切り上げた値 ⇒ 5
return sortedData[6] = 0.6
findRank(sortedData, 0.75)
i ← (0.75 × 9) = 6.75を切り上げた値 ⇒ 7
return sortedData[8] = 0.8
findRank(sortedData, 1)
i ← (1 × 9) = 9を切り上げた値 ⇒ 9
return sortedData[0] = 1
戻り値 rankData の内容は{0.1, 0.4, 0.6, 0.8, 1}になっています。したがって「ク」が正解です。
© 2010-2024 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop