次のプログラム中の [  ] に入れる正しい答えを,解答群の中から選べ。…

科目B アルゴリズムとプログラミング 科目B 問2

次のプログラム中の [  ] に入れる正しい答えを,解答群の中から選べ。関数convDecimal は,引数として与えられた,“0”と“1”だけから成る,1 文字以上の文字列を,符号なしの2 進数と解釈したときの整数値を返す。例えば,引数として“10010”を与えると18 が返る。関数convDecimal が利用する関数int は,引数で与えられた文字が“0”なら整数値0 を返し,“1”なら整数値1 を返す。

基本情報技術者 2024年度(令和6年度)公開問題 科目B 問2の図基本情報技術者 2024年度(令和6年度)公開問題 科目B 問2の選択肢の図
参考:擬似言語の記述形式(基本情報技術者試験,応用情報技術者試験用)

問題冊子の末尾に載っている参考のページです。

擬似言語の記述形式(基本情報技術者試験,応用情報技術者試験用)擬似言語の記述形式(基本情報技術者試験,応用情報技術者試験用)
正答 エ
正答は エ。空欄には「result × 2 + int(binary の i 文字目の文字)」が入ります。 2 進数の文字列を左(上位の桁)から 1 文字ずつ読むとき、それまでの値 result を 2 倍して(1 桁左へずらして)、読んだ桁の値を足すと、最後に全体の値が得られます。for は i を 1 から length まで増やすので、binary の i 文字目は、左から順の文字です。 【トレース(エを入れ、binary=“10010”、length=5)】 i=1:1 文字目“1” → result = 0 × 2 + 1 = 1
解説の続きをみる続きを閉じる
i=2:2 文字目“0” → result = 1 × 2 + 0 = 2 i=3:3 文字目“0” → result = 2 × 2 + 0 = 4 i=4:4 文字目“1” → result = 4 × 2 + 1 = 9 i=5:5 文字目“0” → result = 9 × 2 + 0 = 18 問題文の例どおり 18 が返ります。 【ほかの選択肢】(“10010”で試した結果) ア result + int(binary の (length - i + 1) 文字目の文字) 誤り   → 各桁の数字を足すだけなので、1 の個数の 2 が返る イ result + int(binary の i 文字目の文字) 誤り   → アと同じく、桁の重みを付けずに足すので 2 が返る ウ result × 2 + int(binary の (length - i + 1) 文字目の文字)   誤り→ 右(下位の桁)から読むことになり、“01001”を左から    読んだのと同じになる    0 → 1 → 2 → 4 → 9 となり、9 が返る 【覚え方】 左から読むときは「それまでの値 × 基数 + 次の桁」です。 10 進数の“123”を ((1 × 10) + 2) × 10 + 3 と計算するのと同じ考え方です。

出典:令和6年度 基本情報技術者試験 科目B 公開問題 問2(独立行政法人情報処理推進機構)出典元ページ

最終更新日

この回を通しで解く この分野を年度横断で解く

「科目B アルゴリズムとプログラミング」のほかの問題

  1. 2025年度(令和7年度)公開問題 科目B 問2次のプログラム中の [  ] に入れる正しい答えを,解答群の中から選べ。
  2. 2025年度(令和7年度)公開問題 科目B 問3次のプログラム中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ
  3. 2025年度(令和7年度)公開問題 科目B 問4次の記述中の [  ] に入れる正しい答えを,解答群の中から選べ。
  4. 2025年度(令和7年度)公開問題 科目B 問5次の記述中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ。
  5. 2026年度(令和8年度)公開問題 科目B 問1次のプログラム中の [  ] に入れる正しい答えを,解答群の中から選べ。
  6. 2026年度(令和8年度)公開問題 科目B 問2次のプログラム中の [  ] に入れる正しい答えを,解答群の中から選べ。

問題文・解答の修正依頼

スポンサーリンク