令和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
- ア{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}
要点要素が1ならA、それ以外ならBを順に追加して文字列を作る
解説
関数convertは配列の要素を先頭から順に調べ、1ならA、1以外ならBを末尾に追加します。エの{1, 1, 2, 1, 0}は、1→A、1→A、2→B、1→A、0→Bとなり「AABAB」になります。
- ア:{0, 0, 1, 2, 1} は「BBABA」になるので誤り。
- イ:{0, 1, 2, 1, 1} は「BABAA」になるので誤り。
- ウ:{1, 0, 1, 2, 0} は「ABABB」になるので誤り。