過去問.com - 資格試験の過去問 | 予想問題の解説つき無料問題集

第三種電気主任技術者の過去問 令和2年度(2020年) 機械 問63

問題

このページは問題閲覧ページです。正解率や解答履歴を残すには、 「条件を設定して出題する」をご利用ください。
[ 設定等 ]
図は、n個の配列の数値を大きい順(降順)に並べ替えるプログラムのフローチャートである。次の問に答えよ。

図中の(ア)~(ウ)に当てはまる処理の組合せとして、正しいものを次の選択肢の中から一つ選べ。
問題文の画像
   1 .
ア:a[ i ]> a[ j ]  イ:a[ j ]← a[ i ]  ウ:a[ i ]← m
   2 .
ア:a[ i ]> a[ j ]  イ:a[ i ]← a[ j ]  ウ:a[ j ]← m
   3 .
ア:a[ i ]< a[ j ]  イ:a[ j ]← a[ i ]  ウ:a[ i ]← m
   4 .
ア:a[ i ]< a[ j ]  イ:a[ j ]← a[ i ]  ウ:a[ j ]← m
   5 .
ア:a[ i ]< a[ j ]  イ:a[ i ]← a[ j ]  ウ:a[ j ]← m
( 第三種 電気主任技術者試験 令和2年度(2020年) 機械 問63 )
このページは問題閲覧ページの為、解答履歴が残りません。
解答履歴を残すには、
条件を設定して出題する」をご利用ください。

この過去問の解説 (2件)

0

ループを使い、配列の中身を入れ替えていく処理を行っています。

プログラミングの知識があれば、

見ただけで並べ替えの処理だろうことがわかりますが、

知らなければ初見では分かりづらいと思います。

1からnまでの配列a[1]~a[n]について、

iに1を代入し、

iよりも1大きいjを用意しています。

その後、条件[ア]について、

YESならば、mにa[i]を代入したのち、

[イ]・[ウ]の処理を続けます。

一方[ア]がNOならば、この処理はスキップされ、

jの次の数字を参照し、

これが、配列の最大番を超えていないかを確認しています。

よって、想定される並べ替え処理は、

あるiを固定し、

jにはiより後の番号を最大番に到達するまで参照して行きながら、

j番のa[j]の方が、i番のa[i]よりも大きければ、 ⇒[ア]

mにa[i]を仮保存し、

a[i]とa[j]を入れ替えるため、

a[i]にa[j]を入れて、 ⇒[イ]

a[j]には仮保存しておいたm(=当時のa[i])を入れる、 ⇒[ウ]

という処理です。

よって、正解は[5]です。

付箋メモを残すことが出来ます。
0

正解:【5】

この問題にあるプログラムは、2つのループを回して、数値を大きい順に並べ替える構造です。

配列の“頭”に、順番に大きい数値を持ってくる構造になっています。

Xの部分は、並べかえるコマンドの部分になります。a[i]とa[j]を入れ替えるようになっています。

並べる対象の場合、一時保存用変数mに a[i] を保存するので、(イ)では a[i] に a[j] を入れ、最後の(ウ)では a[j]に一時保存したmを入れます。

この一連のコマンドはa[j]を配列の頭の方に持ってくるので、a[i]がa[j]より小さい時実行する必要があります。

上記より、

 (ア)は a[i] < a[j]

 (イ)は a[i] ← a[j]

 (ウ)は a[j] ← m

となります。

以上により、選択肢の【5】が正解となります。

問題に解答すると、解説が表示されます。
解説が空白の場合は、広告ブロック機能を無効にしてください。
他のページから戻ってきた時、過去問ドットコムはいつでも続きから始めることが出来ます。
また、広告右上の×ボタンを押すと広告の設定が変更できます。
この第三種電気主任技術者 過去問のURLは  です。
付箋は自分だけが見れます(非公開です)。