アルゴリズムとプログラミング
令和元年度 秋期 基本情報技術者試験 午前 問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 ← 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)
答えを選ぶ
出典:令和元年度 秋期 基本情報技術者試験 午前 問1(問題文は IPA の公開問題。解説は当サイト作成)
解説に誤りを見つけたら、解説の誤りを報告してください。
答えと解説を見る
正解:エ
覚える知識
10進→2進変換アルゴリズム(除算2進法)
10進整数を2で割った余りを下位桁から並べ、商で割り続けると2進数になる。
この問題で必要なこと
10進数を2で割った余りを下位桁から順に格納し、商を次の被除数とする手順を流れ図で読み取る。
ひっかけ
商と余りの格納先を入れ替えた選択肢や、格納前に j を更新する順序違いと混同させる。
この知識の出題:本試験系 1 回・免除試験 3 回(公開問題での観測値)。頻出知識ランキング554位(全1,254件中)。