基本情報技術者試験 基本情報技術者試験 令和5年度 科目A 公開問題 午前 問2: 双方向のポインタをもつリスト構造のデータを表に示す。この表において新たな社員 G を社員 A と社員 K の間に追加する。追加後の表のポインタ a〜f の中で追

基本情報技術者試験 令和5年度 科目A 公開問題
Q 22 / 20
双方向のポインタをもつリスト構造のデータを表に示す。この表において新たな社員 G を社員 A と社員 K の間に追加する。追加後の表のポインタ a〜f の中で追加前と比べて値が変わるポインタだけを全て列記したものはどれか。 【元の表 (社員, アドレス, 次ポインタ, 前ポインタ)】 ・社員 A: アドレス 100, 次 300, 前 0 ・社員 T: アドレス 200, 次 0, 前 300 ・社員 K: アドレス 300, 次 200, 前 100 【追加後 (社員, アドレス, 次, 前)】 ・社員 A: アドレス 100, 次 a, 前 b ・社員 T: アドレス 200, 次 c, 前 d ・社員 K: アドレス 300, 次 e, 前 f ・社員 G: アドレス 400 (新規)
この問の正解率:56.53%(1,118件)
この問題の本文・選択肢・正解・解説(展開)

問題本文

双方向のポインタをもつリスト構造のデータを表に示す。この表において新たな社員 G を社員 A と社員 K の間に追加する。追加後の表のポインタ a〜f の中で追加前と比べて値が変わるポインタだけを全て列記したものはどれか。 【元の表 (社員, アドレス, 次ポインタ, 前ポインタ)】 ・社員 A: アドレス 100, 次 300, 前 0 ・社員 T: アドレス 200, 次 0, 前 300 ・社員 K: アドレス 300, 次 200, 前 100 【追加後 (社員, アドレス, 次, 前)】 ・社員 A: アドレス 100, 次 a, 前 b ・社員 T: アドレス 200, 次 c, 前 d ・社員 K: アドレス 300, 次 e, 前 f ・社員 G: アドレス 400 (新規)

選択肢

  • .a, b, e, f
  • .a, e, f
  • .a, f
  • .b, e

正解

. a, f

解説

双方向リストで A と K の間に G を挿入する場合、A の次ポインタ(a)を G のアドレス 400 に、K の前ポインタ(f)を 400 に変更する必要があります。T は影響を受けず、G のポインタ x,y は新規追加なので「値が変わる」対象外。変わるのは a と f だけでウが正解。

選択肢ごとの解説

  • .b は社員 A の前ポインタですが、A の前は元から 0 で変更されません。e は K の次ポインタですが、これも変わりません。
  • .e(K の次ポインタ)は変わらないので含めるのは誤りです。
  • .A の次ポインタ a と K の前ポインタ f だけが新ノード G の挿入により値が変わるため、正解です。
  • .b(A の前ポインタ)と e(K の次ポインタ)はどちらも変更されないため誤りです。

基本情報技術者試験 令和5年度 科目A 公開問題過去問一覧へ戻る・問2