問題本文
次の流れ図は,10進整数j(0<j<100)を8桁の2進数に変換する処理を表している。2進数は下位桁から順に,配列の要素 NISHIN(1) から NISHIN(8) に格納される。流れ図のa及びbに入れる処理はどれか。ここで,j div 2 は j を 2 で割った商の整数部分を,j mod 2 は j を 2 で割った余りを表す。
選択肢
- ア.a: j ← j div 2, b: NISHIN(k) ← j mod 2
- イ.a: j ← j mod 2, b: NISHIN(k) ← j div 2
- ウ.a: NISHIN(k) ← j div 2, b: j ← j mod 2
- エ.a: NISHIN(k) ← j mod 2, b: j ← j div 2
正解
エ. a: NISHIN(k) ← j mod 2, b: j ← j div 2
解説
2進変換は j mod 2 で最下位ビットを取り出し、次に j div 2 で次の桁に進む。先に NISHIN(k) へ余りを格納し、その後 j を更新する順序が正しい。
選択肢ごとの解説
- ア.先に j を div 2 で更新してから余りを取ると、別の桁の値が格納される。
- イ.j ← j mod 2 で j 自体を上書きすると以降の処理ができない。
- ウ.j div 2 を NISHIN に格納し、その後 j ← j mod 2 では商と余りが逆。
- エ.NISHIN(k) ← j mod 2 で下位桁を保存→j ← j div 2 で次桁へ進む=正しい順序。
基本情報技術者試験 令和元年度 秋期 午前 の過去問一覧へ戻る・問1