アルゴリズムとプログラミング

基本情報技術者試験 科目A免除 修了試験 20120122 実施分 問1

次の流れ図は,10 進整数 j(0<j<100)を 8 桁の 2 進数に変換する処理を表している。2 進数は下位桁から順に,配列の要素 NISHIN(1) から NISHIN(8) に格納される。流れ図の a 及び b に入る処理はどれか。ここで,j div 2 は j を 2 で割った商の整数部分を,j mod 2 は j を 2 で割った余りを表す。
流れ図: 開始 → 「j を入力」(入力平行四辺形)→ ループ始端「変換 k : 1, 1, 8 (注)」→ 処理 a → 処理 b → ループ終端「変換」→ 終了。(注) ループ端の繰返し指定は,変数名:初期値,増分,終値 を示す。 選択肢の表:
ab
アj div 2 → jj mod 2 → NISHIN(k)
イj div 2 → NISHIN(k)j mod 2 → j
ウj mod 2 → jj div 2 → NISHIN(k)
エj mod 2 → NISHIN(k)j div 2 → j
  • ア a: j div 2 → j / b: j mod 2 → NISHIN(k)
  • イ a: j div 2 → NISHIN(k) / b: j mod 2 → j
  • ウ a: j mod 2 → j / b: j div 2 → NISHIN(k)
  • エ a: j mod 2 → NISHIN(k) / b: j div 2 → j

出典:基本情報技術者試験 科目A免除 修了試験 20120122 実施分 問1

答えと解説を見る

正解:エ

覚える知識

10進→2進変換アルゴリズム(除算2進法)

10進整数を2で繰り返し割り、各回の余りを下位桁から並べると2進数が得られる。

この問題で必要なこと

10進整数を2で割った余りを下位桁から順に格納し、商を次の被除数にする。余りを格納してから商でjを更新する順序を読み取る。

ひっかけ

jの更新を先に行うと余りが失われる、div/modの取り違え、格納先と更新先の取り違え。

この知識の出題:本試験系 1 回・免除試験 3 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「数値を扱うアルゴリズムと計算問題」で学ぶ

同じ知識の過去問