過去問解きまくり研究所 ホーム

アルゴリズムとプログラミング|令和6年度 ITパスポート試験 問62

関数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
```

解説

一なら片方の字、そうでなければもう片方を並べていきます。

この関数は、配列を先頭から順に見ていき、要素が一と等しければ一方の文字を、そうでなければもう一方の文字を末尾に足していきます。戻り値の文字列は、一文字目から順に一であったかどうかを写したものになります。求める文字列を左から読むと、一文字目と二文字目は一、三文字目は一以外、四文字目は一、五文字目は一以外という並びになります。この形に合う配列を探すと、一と一、次に一以外、次が一、最後が一以外となっているものです。よって、一、一、一以外、一、一以外の順に並んだものが当てはまります。一以外であれば零でも二でも同じ文字になるので、値そのものではなく一かどうかだけを見ます。

ほかの選択肢はなぜ違うのか

この問題に関係する言葉

出典:令和6年度 ITパスポート試験 問62(改変:原典の図表をテキストに書き起こした)

この問題を演習で解く

同じ単元をまとめて解くならアルゴリズムとプログラミングへ。

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)