応用情報技術者試験 応用情報技術者試験 平成31年度春期 午前 問9: 同一メモリ上で転送するとき,転送元の開始アドレス,転送先の開始アドレス,方向フラグ及び転送語数をパラメタとして指定することによってブロック転送ができる CPU

←
応用情報技術者試験 平成31年度春期 午前
Q 99 / 80
同一メモリ上で転送するとき,転送元の開始アドレス,転送先の開始アドレス,方向フラグ及び転送語数をパラメタとして指定することによってブロック転送ができる CPU がある。図のようにアドレス 1001 から 1004 の内容をアドレス 1003 から 1006 に転送するとき,パラメタとして適切なものはどれか。ここで,転送は開始アドレスから 1 語ずつ行われ,方向フラグに 0 を指定するとアドレスの昇順に,1 を指定するとアドレスの降順に転送を行うものとする。
転送元の開始アドレス転送先の開始アドレス方向フラグ転送語数
ア1001100304
イ1001100314
ウ1004100604
エ1004100614
アドレス 1000〜1007 のメモリブロック転送図(実行前・実行後)
この問の正解率:73.08%(535件)

解説

応用情報技術者試験 平成31年度春期 午前 問9「同一メモリ上で転送するとき,転送元の開始アドレス,転送先の開始アドレス,方向フラ…」の正解と解説です。応用情報技術者試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約73%です。

正解

エ. 転送元の開始アドレス:1004,転送先の開始アドレス:1006,方向フラグ:1,転送語数:4

正答率 73.1%(535人中 391人が正解)

問題の解説

転送元の 1001 から 1004 と転送先の 1003 から 1006 は、1003 と 1004 番地で重なっている。昇順に転送すると、1001 の内容を 1003 へ書いた時点で元の 1003 の内容が消え、まだ読んでいないデータが壊れる。そこで末尾から降順(方向フラグ 1)に、1004 から 1006 へ、1003 から 1005 へ、と 1 語ずつ移せば、4 語を正しく転送できる。

選択肢ごとの解説

  • ア昇順では 1001 を 1003 へ、1002 を 1004 へ書いた後、書換え済みの 1003 と 1004 を読んで転送するため、元のデータが失われる。
  • イ降順だと 1001 から 1000、999 の方向へ進むため、転送したい 1001 から 1004 の範囲から外れる。
  • ウ1004 から昇順に進むと、1005 以降の範囲を転送することになり、1001 から 1004 の内容は移らない。
  • エ正しい。後ろの 1004 と 1006 から降順に転送するので、1004 を 1006 へ、1003 を 1005 へ、1002 を 1004 へ、1001 を 1003 へと、未転送の元データを壊さずに移せる。

応用情報技術者試験 平成31年度春期 午前 の過去問一覧に戻る・問9

応用情報技術者試験 の iOS アプリ版

アプリ版なら、よりスムーズに動作し、
スワイプで問題遷移ができます。

応用情報技術者試験 合格.dev を App Store でダウンロード