• 年度別
  • 分野別
  • キーワード
  • 検索
  • 成績を見る
  • 掲示板
  • サイト情報
  • ITパスポート試験
    令和5年 第60問


    問60

    手続printArrayは、配列integerArrayの要素を並べ替えて出力する。手続printArrayを呼び出したときの出力はどれか。ここで、配列の要素番号は1から始まる。

    [プログラム]
    ○printArray()
     整数型: n, m
     整数型の配列: integerArray ←{2, 4, 1, 3}
     for(nを1から(integerArrayの要素数 − 1)まで1ずつ増やす)
      for(mを1から(integerArrayの要素数 − n)まで1ずつ増やす)
       if(integerArray[m] > integerArray[m + 1])
        integerArray[m]とintegerArray[m + 1]の値を入れ替える
       endif
      endfor
     endfor
     integerArrayの全ての要素を先頭から順にコンマ区切りで出力する

  • 1, 2, 3, 4
  • 1, 3, 2, 4
  • 3, 1, 4, 2
  • 4, 3, 2, 1


    (令和5年 ITパスポート試験 第60問 テクノロジ系/アルゴリズムとプログラミング)

    解説

    (ア)1, 2, 3, 4
    この問題の正解率:28.4%(やや低い)

    integerArray = {2, 4, 1, 3}
    integerArrayの要素数 = 4
    for(nを1からintegerArrayの要素数-1まで1ずつ増やす) → nを1から3まで繰り返す。
    ・n = 1 のループ処理
    for(mを1から integerArrayの要素数-nまで1ずつ増やす) → mを1から3まで繰り返す。
    integerArray[1] の要素は2,integerArray[2] の要素は4
    2 > 4 false
    integerArray[2] の要素は4,integerArray[3] の要素は1
    4 > 1 true
    2つの位置を入れ替える。 → integerArray = {2, 1, 4, 3}
    integerArray[3] の要素は4,integerArray[4] の要素は3
    4 > 3 true
    2つの位置を入れ替える。 → integerArray = {2, 1, 3, 4}
    ・n = 2 のループ処理
    for(mを1から integerArrayの要素数-nまで1ずつ増やす) → mを1から2まで繰り返す。
    integerArray[1] の要素は2,integerArray[2] の要素は1
    2 > 1 true
    2つの位置を入れ替える。 → integerArray = {1, 2, 3, 4}
    integerArray[2] の要素は2,integerArray[3] の要素は3
    2 > 3 false
    ・n = 3 のループ処理
    for(mを1から integerArrayの要素数-nまで1ずつ増やす) → mを1から1まで繰り返す。
    integerArray[1] の要素は1,integerArray[2] の要素は2
    1 > 2 false
    配列 integerArray の要素は {1, 2, 3, 4}となる。


    上記のプログラムを実行した結果を導き出す問題です。