令和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
- ア{0, 0, 1, 2, 1}
- イ{0, 1, 2, 1, 1}
- ウ{1, 0, 1, 2, 0}
- エ{1, 1, 2, 1, 0}
正解:エ
解説
配列の各要素を先頭から見て,値が 1 なら “A”,1 以外なら “B” を末尾に追加します。戻り値が “AABAB” になるには,要素が順に「1,1,1以外,1,1以外」でなければなりません。選択肢のうちこの並びになるのは {1, 1, 2, 1, 0} です。
選択肢ごとの解説
- ア誤り。順に B,B,A,B,A となり,“BBABA” が戻り値になります。
- イ誤り。順に B,A,B,A,A となり,“BABAA” が戻り値になります。
- ウ誤り。順に A,B,A,B,B となり,“ABABB” が戻り値になります。
- エ正しい。順に A,A,B,A,B となり,“AABAB” が戻り値になるので適切です。