ITパスポート試験 過去問解説
引数とは?ITパスポート試験 2024年 (令和6年) 問85を解説
ITパスポート試験 2024年 (令和6年) 問85は、引数に関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。
問題文
関数binaryToIntegerは,1桁以上の符号なし2進数を文字列で表した値を引数binaryStrで受け取り,その値を整数に変換した結果を戻り値とする。例えば,引数として"100"を受け取ると,4を返す。プログラム中のa,bに入れる字句の適切な組合せはどれか。 [プログラム] ○整数型: binaryToInteger(文字列型: binaryStr) 整数型: integerNum, digitNum, exponent, i integerNum ← 0 for (i を 1 から binaryStrの文字数 まで 1 ずつ増やす) digitNum ← binaryStrの末尾からi番目の文字を整数型に変換した値 // 例: 文字"1"であれば整数値1に変換 exponent ← [a] integerNum ← [b] endfor return integerNum
この問題の出題ポイント
- 引数の定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
- テクノロジ系分野では、用語の目的・主体・責任範囲の違いが選択肢で問われやすい。
- 関連タグ: アルゴリズムとプログラミング、2進数変換、繰り返し、基数変換。
選択肢
- アa=(2のi乗)-1, b=integerNum × digitNum × exponent
- イa=(2のi乗)-1, b=integerNum + digitNum × exponent
- ウa=2の(i-1)乗, b=integerNum × digitNum × exponent
- エa=2の(i-1)乗, b=integerNum + digitNum × exponent正解
正解
エ: a=2の(i-1)乗, b=integerNum + digitNum × exponent
解説
2進数の文字列では、末尾から数えてi番目の桁の重みは である。そこで、exponentに2の(i-1)乗を代入し、桁の値digitNumに重みを掛けた値を、これまでの合計integerNumに足していく。例えば「100」では、i=3のときに が加わり、4になる。
なぜ他の選択肢が違うのか
ア
(2のi乗)-1は、i=1で1、i=2で3、i=3で7となり、2進数の桁の重みにならない。さらに、integerNumに掛けると、初期値が0なので結果は常に0になる。
イ
足し合わせる形は正しいが、(2のi乗)-1は1、3、7、…となり、桁の重みにならない。「100」の場合も、4ではなく7になってしまう。
ウ
重みの式は正しいが、integerNumに掛けると、初期値が0なので結果は常に0になる。足し合わせる必要がある。
エ(正解)
正しい。桁の重みは2の(i-1)乗で、桁の値に重みを掛けた値をintegerNumに足していけば、2進数の値が求まる。
解き方の整理
引数の問題では、選択肢のキーワードだけで判断せず、問題文が示す条件と正解選択肢の説明が一致しているかを見ます。誤答選択肢は、似た用語を混ぜる、主体を入れ替える、目的や範囲を広げすぎる、という形で作られることが多いため、選択肢別解説まで確認しておくと復習効率が上がります。
関連用語
関連問題
前後の問題
2024年 (令和6年) の関連する問題
復習を続ける
間違えた問題、苦手タグ、模試履歴を保存して復習する導線を用意しています。広告なしPro、弱点分析、復習リマインダーは段階的に提供予定です。