令和6年度 問62 条件分岐による配列から文字列への変換

問題

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

配列の値に応じてAまたはBを追加する関数convert
コードをテキストで確認
○文字列型: 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}

解説

この問題のポイント

if文のelseは、ifの条件を満たさない全ての場合です。出力から入力を探すときは、欲しい出力を順番に見て、「どの条件ならその文字が出るか」を逆にたどります。

処理を追うと

このif文は、値が1ならA、それ以外ならBを出力します。

0だけでなく2もBです。

AABABを出力するには、入力を順に「1、1、1以外、1、1以外」とすればよいことになります。

{1,1,2,1,0}を入れると、1→A、1→A、2→B、1→A、0→Bとなるためです。

正解:エ

{1, 1, 2, 1, 0}です。

同じ分野の問題

関連する用語

編集・確認:kakoloop · 編集方針

公開日:

内容更新:

問題・解説の誤りを報告する

画像を拡大表示