科目A問62
関数 convert は,整数型の配列を一定のルールで文字列に変換するプログラムである。関数 convert を convert(arrayInput) として呼び出したときの戻り値が"AABAB"になる引数 arrayInput の値はどれか。ここで,arrayInput の要素数は1以上とし,配列の要素番号は1から始まる。
〔プログラム〕
〔プログラム〕

| {0,0,1,2,1} | |
| {0,1,2,1,1} | |
| {1,0,1,2,0} | |
| {1,1,2,1,0} |
『情報処理過去問.com』からiPhoneアプリがリリースされました!!
正解
- エ
解説
この問題の関数convertは、整数配列arrayInputを先頭から順に見て、各要素が1なら”A”、それ以外(0や2など)なら“B”を文字列に追加していき、最後にその文字列を返す処理です。
つまり「どの位置が1か」で戻り値の文字列が決まります。
求める戻り値は“AABAB”なので、各文字に対応する配列要素は次の条件になります。
1文字目 A → 1番目は1
2文字目 A → 2番目は1
3文字目 B → 3番目は1以外
4文字目 A → 4番目は1
5文字目 B → 5番目は1以外
よって条件は「1番目・2番目・4番目が1、それ以外は1ではない配列」となります。
つまり「どの位置が1か」で戻り値の文字列が決まります。
求める戻り値は“AABAB”なので、各文字に対応する配列要素は次の条件になります。
1文字目 A → 1番目は1
2文字目 A → 2番目は1
3文字目 B → 3番目は1以外
4文字目 A → 4番目は1
5文字目 B → 5番目は1以外
よって条件は「1番目・2番目・4番目が1、それ以外は1ではない配列」となります。