HOME»基本情報技術者試験掲示板»科目B コードの穴埋め問題が解けない
投稿する
»[6222] CBTの試験中にできること 投稿数:4
»[6221] [科目B]合格された方はどんな点数の取り方? 投稿数:6
科目B コードの穴埋め問題が解けない [6224]
ぽんさん(No.1)
令和6年度 科目B 5問目の様なコード内の穴埋め問題が非常に苦手です。
誇張抜きで正答率1割にも満たないかと思います。
単純にコードを読みといて返される値を答える問題は安定して正解できますので、基本的なコードの読解力はあるかと思います。
穴埋め問題の解き方としては、1からコードを読んでいき、正解だと思う択を選んでいます。
ですが、本当に正解できません。冒頭で提示した令和6年度の問題も、穴埋めの行と問題冒頭の公式の意味合いが一致するので答えが導き出せる~と開設されていますが、そんなもの試験中に思いつける自信がありません。
皆様はこの手の問題はどのように解かれていますか?
誇張抜きで正答率1割にも満たないかと思います。
単純にコードを読みといて返される値を答える問題は安定して正解できますので、基本的なコードの読解力はあるかと思います。
穴埋め問題の解き方としては、1からコードを読んでいき、正解だと思う択を選んでいます。
ですが、本当に正解できません。冒頭で提示した令和6年度の問題も、穴埋めの行と問題冒頭の公式の意味合いが一致するので答えが導き出せる~と開設されていますが、そんなもの試験中に思いつける自信がありません。
皆様はこの手の問題はどのように解かれていますか?
2026.01.14 23:21
taigaさん(No.2)
トレースを正確にやることと慣れではないでしょうか? また途中までトレースして結果に導くトレーニングをすることも有効だと思います。
2026.01.15 06:27
mr.Dさん(No.3)
虫食いが鬼門ということで、
おそらくコードを1つ1つの命令の羅列でコード同士の結びつきや役割、流れを理解できていないから苦労しているのではないかと
全体像が見えてないと言うか、設計図を1行づつ上から下へ読み方を固定してると言うか
例えばあみだくじに1つ当たりがあるとして1本づつ全通り試してる様なもので、
一本づつ辿って追うことは出来るんだと思うのですが、
問題文にある説明通りの正解が明示されていれば予想を付けたり、選択肢から省いたり絞り込むことで答えを導き出せる訳です
該当の問題だと式で使われる要素別に該当する変数が何かを当てはめるだけで答えられます
入力も出力も定義されていて虫食い部分が何かを問われているので、
命令を一から十まで辿る方法は時間を食うだけで現実的につかえません
トレースは万能ではありません。問題によって使い分けましょう
着目すべき部分がどこかを見つける癖をつけましょう
発想を切り替えてくださいね
おそらくコードを1つ1つの命令の羅列でコード同士の結びつきや役割、流れを理解できていないから苦労しているのではないかと
全体像が見えてないと言うか、設計図を1行づつ上から下へ読み方を固定してると言うか
例えばあみだくじに1つ当たりがあるとして1本づつ全通り試してる様なもので、
一本づつ辿って追うことは出来るんだと思うのですが、
問題文にある説明通りの正解が明示されていれば予想を付けたり、選択肢から省いたり絞り込むことで答えを導き出せる訳です
該当の問題だと式で使われる要素別に該当する変数が何かを当てはめるだけで答えられます
入力も出力も定義されていて虫食い部分が何かを問われているので、
命令を一から十まで辿る方法は時間を食うだけで現実的につかえません
トレースは万能ではありません。問題によって使い分けましょう
着目すべき部分がどこかを見つける癖をつけましょう
発想を切り替えてくださいね
2026.01.15 08:44
じゃじおさん(No.4)
私も最初からトレースして時間ばかりかかって、結局この変数なんだったっけ?となっていました。
どうすれば速く解けるか考えて、今は次のやり方に落ち着きました。参考になれば幸いです。
この問題は、問題文中に関連度の式が示されていて、その式の値がコードの最終の出力になります。
こういうパターンの問題は核心部分がコードの後半にあることが多いので、私は「コードの最後 → 上へ」と逆に追って、変数の意味を先に特定します。
具体的には次の手順です
①まず最後の出力行:
relatedItemの値とmaxLの値をこの順にコンマ区切りで出力する
を見て、式の値 Lxy に相当するのは relatedItem/maxL のどちらかだと考えます
②次にその直前の代入:
maxL ← valueL
relatedItem ← otherItems[i]
から、maxL は valueLで、relatedItem は otherItems[i]だとわかる
「valueL」という変数名から、valueL が Lxy だと判断します
③その上の行:
valueL ← (arrayM[i] × ___C___) ÷ (itemCount × arrayK[i])
を見ると、問題文の式と形が一致しているので、ここが式の計算部分だとわかります。
④③のコードと問題文の式を対応させると
arrayM[i] → Mxy
___C___ → 全注文数
itemCount → Kx
arrayK[i] → Ky
と整理できます
⑤ここまでできたら問題文を丁寧に読み
Mxyは「両方買った注文数」
Kxは「商品xの注文数」
Kyは「商品yの注文数」
と確定させます
⑥最後にコード側で“それぞれの注文数のカウントができているか”を確認します。
ポイントとしては
・Kx/Ky は「片方だけ満たす条件で増えるか」
・Mxy は「両方を満たす条件の中で増えるか」
を見ることです。
迷ったら選択肢を入れて部分トレースして矛盾が出ないかを確認します。
参考:
令和6年度_科目B_問5_https://www.fe-siken.com/kakomon/06_haru/b5.html
令和5年度_科目B_問5_https://www.fe-siken.com/kakomon/05_haru/b5.html
どうすれば速く解けるか考えて、今は次のやり方に落ち着きました。参考になれば幸いです。
この問題は、問題文中に関連度の式が示されていて、その式の値がコードの最終の出力になります。
こういうパターンの問題は核心部分がコードの後半にあることが多いので、私は「コードの最後 → 上へ」と逆に追って、変数の意味を先に特定します。
具体的には次の手順です
①まず最後の出力行:
relatedItemの値とmaxLの値をこの順にコンマ区切りで出力する
を見て、式の値 Lxy に相当するのは relatedItem/maxL のどちらかだと考えます
②次にその直前の代入:
maxL ← valueL
relatedItem ← otherItems[i]
から、maxL は valueLで、relatedItem は otherItems[i]だとわかる
「valueL」という変数名から、valueL が Lxy だと判断します
③その上の行:
valueL ← (arrayM[i] × ___C___) ÷ (itemCount × arrayK[i])
を見ると、問題文の式と形が一致しているので、ここが式の計算部分だとわかります。
④③のコードと問題文の式を対応させると
arrayM[i] → Mxy
___C___ → 全注文数
itemCount → Kx
arrayK[i] → Ky
と整理できます
⑤ここまでできたら問題文を丁寧に読み
Mxyは「両方買った注文数」
Kxは「商品xの注文数」
Kyは「商品yの注文数」
と確定させます
⑥最後にコード側で“それぞれの注文数のカウントができているか”を確認します。
ポイントとしては
・Kx/Ky は「片方だけ満たす条件で増えるか」
・Mxy は「両方を満たす条件の中で増えるか」
を見ることです。
迷ったら選択肢を入れて部分トレースして矛盾が出ないかを確認します。
参考:
令和6年度_科目B_問5_https://www.fe-siken.com/kakomon/06_haru/b5.html
令和5年度_科目B_問5_https://www.fe-siken.com/kakomon/05_haru/b5.html
2026.01.17 00:48
ぽんさん(No.5)
お返事遅くなりました。皆様ご回答ありがとうございました!
まだ苦手意識がありますが、引き続き頑張ってみます。
まだ苦手意識がありますが、引き続き頑張ってみます。
2026.01.21 20:21
その他のスレッド
»[6223] 2回受験済み 2月の頭にもう一度受験予定 投稿数:5»[6222] CBTの試験中にできること 投稿数:4
»[6221] [科目B]合格された方はどんな点数の取り方? 投稿数:6
