ITパスポート 令和6年度 問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- ア {0, 0, 1, 2, 1}
- イ {0, 1, 2, 1, 1}
- ウ {1, 0, 1, 2, 0}
- エ {1, 1, 2, 1, 0}
答えと解説
✓ これが正解エ {1, 1, 2, 1, 0}
解説
一なら片方の字、そうでなければもう片方を並べていきます。
この関数は、配列を先頭から順に見ていき、要素が一と等しければ一方の文字を、そうでなければもう一方の文字を末尾に足していきます。戻り値の文字列は、一文字目から順に一であったかどうかを写したものになります。求める文字列を左から読むと、一文字目と二文字目は一、三文字目は一以外、四文字目は一、五文字目は一以外という並びになります。この形に合う配列を探すと、一と一、次に一以外、次が一、最後が一以外となっているものです。よって、一、一、一以外、一、一以外の順に並んだものが当てはまります。一以外であれば零でも二でも同じ文字になるので、値そのものではなく一かどうかだけを見ます。
ほかの選択肢の解説
- ア {0, 0, 1, 2, 1}:先頭が零なので、一文字目が一に対応する文字になりません。求める文字列は一文字目から一であることを示しているので、最初の要素だけで外れると分かります。一文字目で判定を打ち切れる肢です。
- イ {0, 1, 2, 1, 1}:先頭が零なので、やはり一文字目から合いません。二番目以降には一が並んでいますが、先頭が違う時点で戻り値の一文字目が変わってしまいます。左から順に確かめるのが確実です。
- ウ {1, 0, 1, 2, 0}:先頭は一で合っていますが、二番目が零なので二文字目が変わってしまいます。求める文字列は二文字目も一に対応する文字です。二文字目まで見れば外れると分かります。
関連用語
出典:令和6年度 ITパスポート試験 問62(改変:原典の図表をテキストに書き起こした)
解説は当サイト独自のもので、IPA(独立行政法人情報処理推進機構)とは関係ありません。
関連問題
- 令和8年度 問88:
正六角形に 関する 問題 (プログラム) - 令和8年度 問67:
整列に 関する 問題 (配列) - 令和8年度 問85:
素数に 関する 問題 (引数) - 令和8年度 問62:
ベンチマークテストに 関する 記述 (プログラム) - 令和5年度 問69:
配列に 関する 問題 (配列)
同じ分野の問題
誤りを見つけたら報告する