it-kakomon › ITパスポート › 令和6年度 › 問62

令和6年度 ITパスポート 問62(テクノロジ)

出典:令和6年度 ITパスポート試験 公開問題 問62(独立行政法人情報処理推進機構(IPA))

関数convertは,整数型の配列を一定のルールで文字列に変換するプログラムである。関数convertをconvert(arrayInput)として呼び出したときの戻り値が“AABAB”になる引数arrayInputの値はどれか。ここで,arrayInputの要素数は1以上とし,配列の要素番号は1から始まる。 〔プログラム〕  ○文字列型: convert(整数型の配列: arrayInput)   文字列型: stringOutput ← "" // 空文字列を格納   整数型: i   for (i を 1 から arrayInput の要素数 まで 1 ずつ増やす)    if (arrayInput[i] が 1 と等しい)     stringOutput の末尾 に "A" を追加する    else     stringOutput の末尾 に "B" を追加する    endif   endfor   return stringOutput
  1. ア{0, 0, 1, 2, 1}
  2. イ{0, 1, 2, 1, 1}
  3. ウ{1, 0, 1, 2, 0}
  4. エ{1, 1, 2, 1, 0}
正解と解説を見る

正解:エ

【プログラムの動き】

関数convertは、配列arrayInputの要素を先頭から順に調べ、要素が1なら"A"、1以外なら"B"を、文字列stringOutputの末尾に追加していきます。最後に、できた文字列を返します。

つまり、戻り値の各文字は、配列の同じ位置の要素に対応します。

・"A":その位置の要素が1

・"B":その位置の要素が1以外(0や2など)

【戻り値"AABAB"になる配列】

"AABAB"を1文字ずつ見ると、配列の要素は次の条件を満たす必要があります。

1番目:1、2番目:1、3番目:1以外、4番目:1、5番目:1以外

【選択肢の検討】

ア:{0, 0, 1, 2, 1} は "BBABA" になります。

イ:{0, 1, 2, 1, 1} は "BABAA" になります。

ウ:{1, 0, 1, 2, 0} は "ABABB" になります。

エ:{1, 1, 2, 1, 0} は "AABAB" になり、条件を満たします。

よって、正解は選択肢エです。

まず令和8年度の100問を通しで解いてみる(無料)