跳到正文

平成21年度 秋期 ITパスポート試験 問54

这道题的解析和你的作答记录。

問54
頻出度★☆☆

数字が書かれた箱を図のように積み上げてある。表に示す操作を,操作1,操作2,操作3,操作4の順に行った場合,操作4が終わったときの箱の状態はどれか。 図(下から上の順):1,2,2,3,4 表

操作名操作の内容
操作1箱を上から二つ取り出し,取り出した箱に書かれた値を加算した値を書いた箱を新たに一番上に積む。
操作2数字3を書いた箱を新たに一番上に積む。
操作3箱を上から三つ取り出し,取り出した箱に書かれた値の平均値を求める。その平均値を書いた箱を新たに一番上に積む。
操作4箱を上から二つ取り出し,取り出した箱に書かれた値の差の絶対値を求める。その絶対値を書いた箱を新たに一番上に積む。
出典 平成21年度 秋期 ITパスポート試験 問54
解説

問 54

  • 错误ア

    这是只有 0 的一层。最终状态是 1 和 2 两层,所以层数和数值都不相符。操作4 之前的箱子堆从下往上是 1、2、4,取出的是上方两个 4 和 2,其差的绝对值为 |4-2|=2,不会变成 0;而且留在下方的 1 号箱子也不会消失。

  • イ

    正解 箱子堆的行为就是「从最上方取出、堆放到最上方」的后进先出(栈)方式。图中初始状态从下往上依次为 1、2、2、3、4 共五层。操作1 取出上方两个 4 和 3,堆上写有 4+3=7 的箱子,于是从下往上变为 1、2、2、7。操作2 不取出箱子,只堆上一个 3,因此从下往上是 1、2、2、7、3 共五层。操作3 取出上方三个 3、7、2,堆上它们的平均值 (3+7+2)/3=4,于是从下往上变为 1、2、4 共三层。操作4 取出上方两个 4 和 2,堆上差的绝对值 |4-2|=2,因此最终状态从下往上是 1、2 共两层。从上往下写就是 2、1,所以选项 イ 正确。

  • 错误ウ

    这是从下往上 1、2、4 的三层,但这是执行操作4 之前(操作3 结束时)的状态。题目问的是操作4 结束时的状态,因此还需要取出上方两个 4 和 2 并堆上 2 的处理。这相当于提前一步停止了操作。

  • 错误エ

    这是从下往上 1、2、2、1 的四层,但最终状态是两层,层数不符。操作1、操作3、操作4 取出的个数(2 个、3 个、2 个)都多于堆上的 1 个,因此层数会相应减少。即使算上操作2 增加的 1 层,最终层数也是 5-1+1-2-1=2 层。数值的排列也与 1、2 不一致。

ここがポイント
  • 箱子的堆叠就是后进先出(LIFO)的栈本身,取出和堆放都始终在最上方进行。
  • 对于依次施加多个操作的题目,把每个操作之后箱子堆的状态(层数和数值)逐一写下来追踪,最为可靠。
用語
解答問54イ
练这一题

作答记录