アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 20151220 実施分 問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 → ループ端「変換」→ 終了。(注)ループ端の繰返し指定は,変数名:初期値,増分,終値 を示す。選択肢は表(列 a, b): ア 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: 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免除 修了試験 20151220 実施分 問1
答えと解説を見る
正解:エ
覚える知識
10進→2進変換アルゴリズム(除算2進法)
10進整数は2で割った余りを下位桁から順に並べ、商で繰り返すと2進数になる。
この問題で必要なこと
10進数を2で割った余りを下位桁から順に格納し、商を次の被除数にする。余りを先に格納してから j を更新する順序を読み取る。
ひっかけ
div と mod の役割の取り違えと、j を更新してから余りを求める順序の誤りを誘う。
この知識の出題:本試験系 1 回・免除試験 3 回(公開問題での観測値)