次の流れ図は、10進整数j(0<j<100)を8桁の2進数に変換する処理を表している。2進数は下位桁から順に、配列の要素NISHIN(1)からNISHIN(8)に格納される。流れ図のa及びbに入れる処理はどれか。ここで、j div 2はjを2で割った商の整数部分を、j mod 2はjを2で割った余りを表す。
2進変換は余りを先に取り出し、その後で商に更新する
![流れ図:開始→jを入力→ループ端「変換 k:1,1,8(注)」→[a]→[b]→ループ端「変換」→終了。(注)ループ端の繰返し指定は、変数名:初期値,増分,終値を示す。](/data/fe/figures/fe-2022s-kamokuA-2.jpg)
| a | b | |
|---|---|---|
| ア | j ← j div 2 | NISHIN(k) ← j mod 2 |
| イ | j ← j mod 2 | NISHIN(k) ← j div 2 |
| ウ | NISHIN(k) ← j div 2 | j ← j mod 2 |
| エ | NISHIN(k) ← j mod 2 | j ← j div 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進変換は「2で割った余りをその桁の値とし、商を次の対象にする」繰返しで行う。余りは下位桁から順に確定するので、まず j mod 2 を配列のk番目に格納し、その後で j を j div 2 に更新する順序でなければならない。先に商へ更新してしまうと、取り出すべき桁の情報が失われる。
選択肢ごとの解説
- ア先に商で更新するため、格納する余りが1つ先の桁のものになってしまう。
- イjに余りを代入すると元の数が壊れ、以降の桁が求められない。
- ウ商を配列に入れており、桁の値(0か1)にならない。
- エ余りを配列に格納してから商で更新する、正しい順序。
この問題は2回出題されています
- 2019年度 秋期 午前 問1この問題の代表ページ
- 2022年度 公開問題 科目A 問2(このページ)
同じ分野の他の問題
- 次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。…2026年度 公開問題 科目B 問5
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 関数func1に与…2026年度 公開問題 科目B 問3
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数complementは、引数として渡された8ビット型…2026年度 公開問題 科目B 問2
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 次のプログラムは、…2026年度 公開問題 科目B 問1
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数changeは、10より大きい整数を引数nで受け取り…2025年度 公開問題 科目B 問2
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。