35PM58|第35回 臨床工学技士国家試験 過去問

過去問題(分野未登録)第35回

図は入力値の平均を求めるフローチャートである。(a)、(b)に入る組合せはどれか。

35PM58の問題画像
解答・解説を見る

正解: 3

正答

3

公式正答は 3 です。正答内容は (a)n ← n + 1 (b)s ← s + x です。

この問題のポイント

平均値を求めるには、採用した入力値の個数 (n) と合計 (s) を別々に更新し、最後に (s/n) を計算します。終了を表す負のセンチネル値は、個数にも合計にも含めません。

解説

フローチャートでは (n) を入力値の個数、(s) を入力値の総和として使います。入力 (x) が平均計算の対象であることを確認した後、1件受け取るたびに

​(n\leftarrow n+1)

​(s\leftarrow s+x)

​と更新します。負の入力は処理終了を示すセンチネルであり、その判定でループを抜けるため、(n) に加算せず (s) にも加えません。最後に (s/n) を出力すれば、採用した値だけの算術平均になります。本問は少なくとも1個の有効入力がある前提で、0除算処理は図の範囲外です。

選択肢の確認

選択肢1:(a)n ← n + x (b)s ← s + 1

正答ではありません。 個数 (n) へ入力値 (x) を足し、総和 (s) へ1を足しており、個数と合計の更新が逆です。(s/n) は平均になりません。

選択肢2:(a)n ← n + n (b)s ← s + n

正答ではありません。 (n) を倍増させ、(s) へ個数を加えても入力値 (x) の個数と総和を保持できません。入力内容を反映しない更新です。

選択肢3:(a)n ← n + 1 (b)s ← s + x

正答です。 有効入力ごとに個数を1増やし、その入力値を総和へ加えます。負のセンチネルを更新前に除外すれば、最後の (s/n) が平均値になります。

選択肢4:(a)n ← n + s (b)s ← x + 1

正答ではありません。 (n) に総和を足し、(s) を現在の入力値と1だけで上書きするため、過去の個数も総和も保持できません。

選択肢5:(a)n ← n + x (b)s ← s + s

正答ではありません。 (n) は個数ではなく入力値の累積となり、(s) は入力 (x) を加えず自身を倍増します。平均計算に必要な状態変数を更新できません。

覚えるポイント

  • 平均値は「総和÷個数」なので、総和 (s) と個数 (n) を別々に保持する。
  • 有効入力1件ごとに (n\leftarrow n+1)、(s\leftarrow s+x)。
  • 終了センチネルは判定してからループを抜け、個数・総和へ含めない。

掲載内容は受験学習用に編集しています。正式な正答・採点上の取扱いは、各試験実施機関の発表を優先してください。 情報の確認方法と訂正窓口は編集方針に掲載しています。 本サービスは診断・治療・臨床判断を目的とするものではありません。

問題文・正答・解説に誤りを見つけたら、この問題の誤りを報告する([email protected])までお知らせください。確認して修正します。

関連問題

← 35PM5735PM59 →
学習アプリでこの問題を解く(記録・メモ・カード化)