問題
テクノロジ系
問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}
解説
正解:エ
概要
この問題は,配列の各要素を条件判定し,結果として文字列を順に連結して返す処理を理解しているかを問う問題です。
正解の理由
処理は配列要素が1なら末尾に「A」,それ以外なら「B」を追加します。戻り値が「AABAB」になるには,1番目と2番目と4番目が1,3番目と5番目が1以外である必要があります。よって {1, 1, 2, 1, 0} を選ぶエが正解です。
各選択肢の解説
ア(×): {0, 0, 1, 2, 1} は先頭2要素が1ではないので最初が「BB」となり,「AABAB」にならないため誤りです。
イ(×): {0, 1, 2, 1, 1} は1番目が1ではないので先頭が「B」となり,「AABAB」にならないため誤りです。
ウ(×): {1, 0, 1, 2, 0} は2番目が1ではないので2文字目が「B」となり,「AABAB」にならないため誤りです。
エ(〇): {1, 1, 2, 1, 0} は1,2,4番目が1なので「A」,3,5番目が1以外なので「B」となり,結果が「AABAB」になるため正しいです。
ポイント
「要素が1ならA,それ以外はB」を要素順に並べて文字列にする,という対応付けを先に作ると確実です。